今回は、ActivePDF Toolkit を使って、既存する PDF にセキュリティを追加する方法をご案内したいと思います。
要件
ActivePDF Toolkit : 評価版はここからダウンロードできます。
使い方
ActivePDF Toolkit は、クラスライブラリで、機能を利用するには、Toolkit のインスタンスを作成し、必要なプロパティ、メソッドを設定して、PDF ファイルを出力する形になります。これをコードすると以下のようになります。(今回は、C# を使って説明します。)
// Instantiate Object APToolkitNET.Toolkit oTK = new APToolkitNET.Toolkit(); // 出力する PDF ファイルの指定 oTK.OpenOutputFile ("new.pdf"); // Close the new file to complete PDF creation oTK.CloseOutputFile(); // Release Object oTK.Dispose();
これが Toolkit の基本となるコードです。
各行の説明
APToolkitNET.Toolkit oTK = new APToolkitNET.Toolkit();
でオブジェクトをインスタンス化し、
oTK.OpenOutputFile ("new.pdf");
で、”new.pdf” という PDF を作成、
oTK.CloseOutputFile();
で、作成した PDF を閉じます。
OpenOutputFile メソッドの前後にプロパティやメソッドを設定して、透かしを追加したり、セキュリティを追加したり、ページの結合や、抽出を行います。
※ C# / VB.NET を使用する場合、.NET DLL (APToolkitNET.dll) への参照を追加する必要があります ([ソリューション エクスプローラー] で [参照] を右クリックするか、[プロジェクト | 参照の追加] をクリックしてください)。APToolkitNET.dll は、Toolkit のインストール フォルダにあります。
今回のゴール
今回は、既存の PDF にセキュリティを設定するコードを紹介します。先程の基本コードに 3 つのメソッドを追加するだけです。
まず一つ目
セキュリティを設定するメソッドの SetPDFSecurity を OpenOutputFile メソッドの前に呼びます。
// Instantiate Object APToolkitNET.Toolkit oTK = new APToolkitNET.Toolkit(); // Add encryption to the output PDF oTK.SetPDFSecurity (5, "userpass", "ownerpass", true, false, true, false, true, false, true, false);
SetPDFSecurity のパラメーターを説明します。 詳細は Toolkit の API リファレンスを確認してください。
Data Type | 名前 | 説明 |
int | nEncryLevel |
暗号化レベル 2 = RC4 40 bit 3 = RC4 128 bit 4 = AES 128 bit 5 = AES 256 bit |
String | UserPassword | 文書を表示するためのパスワード |
String | OwnerPassword | 文書を編集・修正するためのパスワード |
long | CanPrint |
印刷の可否 True = 印刷可 False = 印刷不可 |
long | CanEdit |
編集の可否 True = 編集可 False = 編集不可 |
long | CanCopy |
テキストと画像のコピーの可否 True = コピー可 False = コピー不可 |
long | CanModify |
文書の修正の可否 True = 修正可 False = 修正不可 |
long | CanFillinFormFields |
フォームフィールドへの入力の可否 True = 入力可 False = 入力不可 |
long | CanMakeAccessible |
アクセシビリティ機能の有効/無効 True = 有効 False = 無効 |
long | CanAssemble |
文書アセンブリ (ページの削除、回転、挿入、抽出操作) の可否 True = 可 False = 不可 |
long | CanReproduce |
高解像度印刷の可否 True = 可 False = 不可 |
※ 評価版の場合、指定したパスワードの前に “DEMO” の文字が追加されるので注意してください。今回の例の場合は、”userpass” は “DEMOuserpass”、”ownerpass” は “DEMOownerpass” になります。
次に 2 つ目
セキュリティを設定する既存の PDF を指定する OpenInputFile を呼び出します。
// Instantiate Object APToolkitNET.Toolkit oTK = new APToolkitNET.Toolkit(); // Add encryption to the output PDF file oTK.SetPDFSecurity (5, "userpass", "ownerpass", true, false, true, false, true, false, true, false); // Open the existing PDF file oTK.OpenInputFile("PDF.pdf"); // 出力する PDF ファイルの指定 oTK.OpenOutputFile ("new.pdf");
最後の 3 つ目
既存の PDF のページを新しく作成した PDF にコピーする CopyForm を呼び出します。
// Instantiate Object APToolkitNET.Toolkit oTK = new APToolkitNET.Toolkit(); // Add encryption to the output PDF file oTK.SetPDFSecurity (5, "userpass", "ownerpass", true, false, true, false, true, false, true, false); // Open the existing PDF file oTK.OpenInputFile("PDF.pdf"); // 出力する PDF ファイルの指定 oTK.OpenOutputFile ("new.pdf"); // Copy the template (with any changes) to the new file oTK.CopyForm(0, 0);
CopyForm メソッドの最初のパラメーターは、コピーする入力ファイルの最初のページを指定します。0 を設定するとファイルの 1 ページ目になります。
2 つ目のパラメーターは、コピーする入力ファイルの最後のページになります。0 を設定するとファイルの最後のページとなります。
今回の例では、ファイルの全ページをコピーするので、0 と 0 を指定しています。
例えば、3 ページ目から 10 ページ目までコピーする場合は、CopyForm (3, 10) と指定します。
最後に今回新しく作成した PDF ファイルを閉じれば完了です。
// Instantiate Object APToolkitNET.Toolkit oTK = new APToolkitNET.Toolkit(); // Add encryption to the output PDF file oTK.SetPDFSecurity (5, "userpass", "ownerpass", true, false, true, false, true, false, true, false); // Open the existing PDF file oTK.OpenInputFile("PDF.pdf"); // 出力する PDF ファイルの指定 oTK.OpenOutputFile ("new.pdf"); // Copy the template (with any changes) to the new file oTK.CopyForm(0, 0); oTK.CloseOutputFile(); // Release Object oTK.Dispose();
コンパイルして動作を確認してみてください。引き続き別のファイルにセキュリティを設定する場合は、CloseOutputFile の後に、ClearPDFSecurity を呼び出して、セキュリティの設定をクリアしてください。
おまけ
今回紹介した SetPDFSecurity、OpenInputFile、OpenOutputFile, CopyForm, CloseOutputFile メソッドを 1 つに纏めた便利なメソッドもあります。
それが EncryptPDF です。EncryptPDF を使うと、上記のコードが下記のようになります。
// Instantiate Object APToolkitNET.Toolkit oTK = new APToolkitNET.Toolkit(); // Add encryption to the output PDF file oTK.EncryptPDF (5, "PDF.pdf", "new.pdf", "userpass", "ownerpass", true, false, true, false, true, false, true, false); // Release Object oTK.Dispose();
セキュリティの設定だけの場合は、EncryptPDF を使ってみてください。
ActivePDF Toolkit の製品ページ: