PDFlib

高度なPDFアプリケーションの開発を支援する定番プログラムライブラリー Supported by インフォテック株式会社

PLOP / PLOP DS サンプル集(クックブック)

本サンプルプログラムは、PDF の権限やパスワードの追加、ウェブ最適化を行う PLOP、 PDF に電子署名、タイムスタンプを付与する PLOP DS の基本的な機能を実際のプログラムで紹介したものです。

本サイトでダウンロードした PLOP、PLOP DS は、一部機能の制限を除き、評価版として無償でお使いいただけます。

パスワードを用いて暗号化

暗号化されていない PDF 文書を、ユーザー・マスターパスワードを用いて暗号化します。

ユーザーパスワードは、PDF 文書を開く際に使用するパスワードです。PDF 文書の閲覧を制限します。

マスターパスワードは、PDF の機能制限を設定できる権限パスワードです。 マスターパスワードを設定すると、印刷や編集を制限することができ、パスワードを入力するまでセキュリティ設定を変更できません。

必要な製品:PDFlib PLOP 又は PDFlib PLOP DS

 
/*
 * パスワードを用いて暗号化:
 * 暗号化されていない PDF 文書を、ユーザー・マスターパスワードを用いて暗号化します。
 *
 * 必要な製品 : PDFlib PLOP 5 又は PDFlib PLOP DS 5
 */


 import java.io.*;
 import com.pdflib.PLOPException;
 import com.pdflib.plop;
 
 public class encrypt {
     public static void main (String argv[]) {
         plop plop = null;
         
         try {
             /* 既存 PDF に関する変数を用意します */
             final String in_filename = "PLOP-datasheet.pdf";
             final String in_password = "";
             String optlist;
             
             /* 出力する新規 PDF に関する変数を用意します */
             final String out_filename = "PLOP-datasheet-encrypted.pdf";
             final String out_master = "DEMO";
             final String out_user = "demo";
             final String permissions = "";
             int doc;
             
             /* 本サンプルに必要なデータが保存されているディレクトリを指定します。適宜変更してください */
             final String searchpath = "../data";
             
             
             plop = new plop();
             
             optlist = "searchpath={" + searchpath + "}";
             plop.set_option(optlist);
             
             /* パスワード付与等の保護がされていない既存の PDF を開きます */
             optlist = "password {" + in_password + "} ";
             if ((doc = plop.open_document(in_filename, optlist)) == -1) {
                 System.err.println("Error: " + plop.get_errmsg());
                 plop.delete();
                 System.exit(2);
             }
             
             /* パスワードを付与した新規 PDF を作成します */
             optlist = "masterpassword {" + out_master + "} userpassword {" + 
                             out_user + "} permissions {" + permissions + "} " +"input="+ doc;
             
             if (plop.create_document(out_filename, optlist) == -1) {
                 System.err.println("Error: " + plop.get_errmsg());
                 plop.delete();
                 System.exit(2);
             }
             
             /* 文書ファイルを閉じます */
             plop.close_document(doc, "");
             
         } catch (PLOPException e) {
             System.err.println("PLOP exception occurred in encrypt sample:");
             System.err.println("[" + e.get_errnum() + "] " + e.get_apiname() + ": " + e.get_errmsg());
         } catch (Exception e) {
             System.err.println(e);
         } finally {
             /* PLOP オブジェクトを削除します */
             if (plop != null) plop.delete();
         }
     }
 }

関連ページ

  • PLOP の製品情報

    PLOP の機能、対応する PDF バージョン、利用用途等、製品情報について紹介しています。

(Apr 30, 2020)