CloseEncrypt メソッド

PDFを暗号化し、ハンドルをそのPDFへ閉じる。PDFへの全ての書き込み操作はファイナライズされ、そして全て内部メモリ構造はリリースされる。暗号化ベースのセキュリティを持つ出力PDFを得たい場合、このメソッドを使用してください。

Sub CloseEncrypt(UserPassword As String,
                 OwnerPassword As String,
                 Encryption As prcSecEncryption,
                 AnnotationPerm As prcSecAnnotationPerm,
                 ExtractionPerm As prcSecExtractionPerm,
                 ModificationPerm As prcSecModificationPerm,
                 PrintingPerm As prcSecPrintingPerm)

 

パラメータ

戻り値

なし

注意点

備考 1:

もし、暗号化された出力PDFを得たい場合、PDFの変更を終了する際にCloseEncrypt またはCloseMemEncryp を確実にコールしてください。ファイルハンドルを閉じない場合、PDFファイルは完全に書き出されず無効とみなされるでしょう。更に、ファイルハンドルによって内部で使われるメモリが割り当てられないでしょう。; いくつかのプログラミング言語やフレームワークにおいて、これはメモリのリークとして現れ、その他においては、EasyPDF SDKが対応していないコードであるがために、予想のできない不要データのコレクションという結果になってしまうでしょう。暗号化されたPDFを書き出したい場合、 常にCloseEncrypt またはCloseMemEncrypt を確実にコールしてください。

一旦ファイルハンドルが閉じられると、いかなるハンドルのメソッド上のコールも許可されません。例外としてCloseCloseMem、CloseEncrypt、CloseMemEncryptCloseDecrypt または CloseMemDecrypt へは繰り返しコールされることが可能です。つまり、もしあなたが例外処理イディオムを使用すれば、安全にClose またはその変化型を早期のハンドルクローズに関係なく最終ブロック内で、コールすることができます。

しかしながら、1番目のコールしたCloseCloseMem、CloseEncrypt、 CloseMemEncryptCloseDecrypt またはCloseMemDecrypt だけが実際にファイルハンドルを閉じ、そしてそれは成功や失敗に関わらず実行されるということに注意してください。もし何らかの理由でClose またはその変化型への最初のコールが失敗した場合、その後ファイルハンドルは閉じられ、その内部メモリは自由になり、ある例外が発生します。1番目のコール以外のCloseまたはその変化型へのいかなるコールは無視されます。(それは何も実行せず、エラーも起しません。)

備考 2:

お持ちのオリジナル入力PDFがすでに暗号化されており、もし出力PDFのセキュリティ設定(例えば、パスワードや許可)を変更したい場合、その後CloseEncrypt または CloseMemEncrypt をコールしてください。 出力PDFのセキュリティ設定を変更したくない場合、オリジナルのセキュリティ設定を保持するために Close またはCloseMem をコールしてください。

備考 3:

もし、いかなるセキュリティ機能を有効にする場合、オーナーパスワードまたはユーザーパスワードを確実に設定してください。両方のパスワードを設定する場合、それらは異なるものでなければいけません。

また、ユーザーパスワードが設定されオーナーパスワードが指定されなかった場合、許可フラグは無視され、全ての許可が全ての操作において容認されることを覚えておいてください。言い換えれば、許可フラグは、オーナーパスワードが存在するときにだけ尊重されます。

セキュリティ機能は何らかの方法で組み合わせることが可能ですが、可能な組合せの中から下記5つだけがAdobe Acrobat により提供されていること気をつけてください。(128-bit 暗号化を使用するとき) Acrobat 内で可能な5つのコンフィギュレーションは、下記の通り実行されます。:

Acrobat "変更許可されたもの" easyPDF SDK フラグの組合せ
なし

PRN_SEC_MODIFY_PERM_NONE | PRN_SEC_ANNOT_PERM_NONE

挿入、削除、そしてページの回転

PRN_SEC_MODIFY_PERM_ASSEMBLY | PRN_SEC_ANNOT_PERM_NONE

フォームフィールドを埋める、そして既存の署名フィールドへ署名する
PRN_SEC_MODIFY_PERM_NONE | PRN_SEC_ANNOT_PERM_FORM
コメントをつける、フォームフィールドを埋める、そして既存の署名フィールドへ署名する PRN_SEC_MODIFY_PERM_NONE | PRN_SEC_ANNOT_PERM_FULL
ページの抽出すること以外
PRN_SEC_MODIFY_PERM_FULL | PRN_SEC_ANNOT_PERM_FULL

VBScript における使用例

Set oProcessor = CreateObject("easyPDF.PDFProcessor.7")
Set oProcessorHandle = oProcessor.OpenFile("C:\input.pdf", "C:\output.pdf", "ownerPassword")
oProcessorHandle.AddHyperlink 0, _
                              0, _
                              50, _
                              80, _
                              370, _
                              100, _
                              "http://www.bcltechnologies.com/", _
                              PRC_BORDERSTYLE_DASHLINE_MEDIUM, _
                              RGB(255, 0, 0)
oProcessorHandle.AddStamp "C:\image.jpg", _
                          0, _
                          PRC_STAMP_HPOS_CENTER, _
                          PRC_STAMP_VPOS_CENTER, _
                          PRC_STAMP_ZORDER_TOP, _
                          0, _
                          0, _
                          0, _
                          100
oProcessorHandle.CloseEncrypt "new_user_password", _
                                 "new_owner_password", _
                                 PRC_SEC_ENCRYPT_128BITS, _
                                 PRC_SEC_ANNOT_PERM_NONE, _
                                 PRC_SEC_EXTR_PERM_NONE, _
                                 PRC_SEC_MODIFY_PERM_NONE, _
                                 PRC_SEC_PRINT_PERM_NONE

VB.NET における使用例

Dim oProcessor As PDFProcessor = Nothing
Dim oProcessorHandle As PDFProcessorHandle = Nothing
Try
   oProcessor = New PDFProcessor
   oProcessorHandle = oProcessor.OpenFile("C:\input.pdf", "C:\output.pdf", "ownerPassword")
   oProcessorHandle.AddHyperlink(0, _
                                 0, _
                                 50, _
                                 80, _
                                 370, _
                                 100, _
                                 "http://www.bcltechnologies.com", _
                                 prcAnnotBorderStyle.PRC_BORDERSTYLE_DASHLINE_MEDIUM, _
                                 0)
   oProcessorHandle.AddStamp("C:\image.jpg", _
                             0, _
                             prcStampHPosition.PRC_STAMP_HPOS_CENTER, _
                             prcStampVPosition.PRC_STAMP_VPOS_CENTER, _
                             prcStampZOrder.PRC_STAMP_ZORDER_TOP, _
                             0, _
                             0, _
                             0, _
                             100)
      oProcessorHandle.CloseEncrypt("new_user_password", _
                                    "new_owner_password", _
prcSecEncryption.PRC_SEC_ENCRYPT_128BITS, _
prcSecAnnotationPerm.PRC_SEC_ANNOT_PERM_NONE, _
prcSecExtractionPerm.PRC_SEC_EXTR_PERM_NONE, _
prcSecModificationPerm.PRC_SEC_MODIFY_PERM_NONE, _
prcSecPrintingPerm.PRC_SEC_PRINT_PERM_NONE)
Catch ex As System.Runtime.InteropServices.COMException


   MessageBox.Show(ex.Message)
Finally
      oProcessorHandle.Close()
End Try

C#における使用例

PDFProcessor oProcessor = null;
PDFProcessorHandle oProcessorHandle = null;
try
{
   oProcessor = new PDFProcessor();
   oProcessorHandle = oProcessor.OpenFile(@"C:\input.pdf", @"C:\output.pdf", "ownerPassword");
   oProcessorHandle.AddHyperlink(0, 
                                 0, 
                                 50, 
                                 80, 
                                 370, 
                                 100, 
                                 "http://www.bcltechnologies.com", 
                                 prcAnnotBorderStyle.PRC_BORDERSTYLE_DASHLINE_MEDIUM, 
                                 0);
   oProcessorHandle.AddStamp(@"C:\image.jpg", 
                             0, 
                             prcStampHPosition.PRC_STAMP_HPOS_CENTER, 
                             prcStampVPosition.PRC_STAMP_VPOS_CENTER, 
                             prcStampZOrder.PRC_STAMP_ZORDER_TOP, 
                             0, 
                             0, 
                             0, 
                             100);

   oProcessorHandle.CloseEncrypt("new_user_password", 
                                 "new_owner_password", 
                                 prcSecEncryption.PRC_SEC_ENCRYPT_128BITS, 
                                 prcSecAnnotationPerm.PRC_SEC_ANNOT_PERM_NONE, 
                                 prcSecExtractionPerm.PRC_SEC_EXTR_PERM_NONE, 
                                 prcSecModificationPerm.PRC_SEC_MODIFY_PERM_NONE, 
                                 prcSecPrintingPerm.PRC_SEC_PRINT_PERM_NONE);
}
catch(System.Runtime.InteropServices.COMException ex)
{
   MessageBox.Show(ex.Message);
}
finally
{
oProcessorHandle.Close();
}