PDFlib

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

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

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

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

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

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

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

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

create_document() 関数のオプションでパスワードを設定します。 ユーザ―パスワードを設定するには userpassword オプションを使用し、 マスターパスワードを設定するには masterpassword オプションを使用します。 また、同関数の input オプションでパスワードを付与した既存 PDF を指定(open_document() で取得した文書ハンドル)します。

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

処理の流れ

①既存の PDF 文書を開く

open_document() 関数を使って、パスワードを付与したい既存の PDF ファイルを開きます。

②パスワードを付与して PDF を出力する

create_document() 関数で、オプションで指定したパスワードで保護した PDF を作成します。

③PDF 文書を閉じる

close_document() 関数で、PDF 文書を閉じれば、パスワードの付与は完了します。

ソースコードと出力結果

 
/*
 * パスワードを用いて暗号化:
 * 暗号化されていない 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 オブジェクトを作成する */
             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);
             }
             
             /* ③PDF 文書を閉じる */
             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)