Show Menu
トピック×

ポータブル保護ライブラリを使用して、ポリシーで保護された PDF ドキュメントを Reader 用に拡張します。

Document Security のポリシーによって保護された PDF ドキュメントを Reader 用に拡張するには、Document Security、Reader Extension の概念および Java プログラム言語について詳しくなければなりません。
Document Security を使用して、特定の PDF ドキュメントへのアクセスを認証済のユーザーのみに制限することができます。また、保護されたドキュメントを受信者がどのように使用できるかを指定することができます。例えば、Document Security のポリシーによって保護されたドキュメントで、受信者が印刷、コピー、またはテキスト編集を行えるかどうかを指定できます。Document Security の詳細については、「 Document Security について 」を参照してください。
Reader Extensions により Acrobat Reader を介して Adobe PDF ドキュメントでインタラクティブ機能を使用できます。通常これらのインタラクティブ機能は、Adobe Acrobat Professional と Standard でのみ可能になります。To learn about the interactive features that reader extension can enable, see Adobe Experience Manager Forms DocAssurance service .
Portable Protection Library を使用して、ネットワークにドキュメントを送信することなくドキュメントにポリシーを適用できます。ネットワークを経由するのは、セキュリティ証明書と保護ポリシーの詳細のみです。 実際のドキュメントはクライアントの手元から離れることはなく、保護ポリシーはクライアント側のローカルに適用されます。

Document Security のポリシーで保護された PDF ドキュメントの Reader 用の拡張

ポリシーで保護されたドキュメントは暗号化されています。通常の Reader Extension API では、ポリシーで保護された PDF ドキュメントの使用権限を適用、削除、復元することはできません。Document Security のポリシーで保護された PDF ドキュメントの使用権限を適用、削除、復元できる API を提供しているのは、Portable Protection Library の Reader Extensions サービスのみです。

Reader Extensions サービス

Reader Extension サービスでは、ポリシーで保護された PDF ドキュメントに使用権限を追加し、通常 Adobe Acrobat Reader で PDF ドキュメントを開いた場合に使用できる機能をアクティブにします。このサービスには、ポリシーで保護されたドキュメントの使用権限を削除および復元できる API も用意されています。
Reader Extensions サービスは、PDF 標準 1.6 に基づいた PDF ドキュメントを完全にサポートします。Acrobat Reader は別として、サードパーティユーザーは、ポリシーで保護された PDF ドキュメントを扱うためにソフトウェアまたはプラグインを追加する必要はありません。
Reader Extensions サービスを使用すると、次のタスクを実行できます。
  • ポリシーで保護された PDF ドキュメントに使用権限を適用。
  • ポリシーで保護された PDF ドキュメントの使用権限を削除。
  • ポリシーで保護された PDF ドキュメントに適用された使用権限を復元。

Document Security のポリシーで保護された PDF ドキュメントに使用権限を提供。

applyUsageRights Java API を使用して、ポリシーで保護された PDF ドキュメントに使用権限を適用できます。使用権限は、Acrobat ではデフォルトで利用できるが Adobe Reader では利用できない機能(フォームにコメントを追加する機能や、フォームフィールドにデータを入力してフォームを保存する機能など)に関連しています。使用権限が与えられた PDF ドキュメントは、使用権限を付与されたドキュメントと呼ばれます。使用権限を付与されたドキュメントを Adobe Reader で開いたユーザーは、そのドキュメントで有効になっている操作を実行できます。
​構文: InputStream applyUsageRights(InputStream inputFile, File certFile, String credentialPassword, UsageRights usageRights)
パラメーター
説明
inputFile
使用権限を付与する PDF ドキュメントを示す InputStream を指定します。LiveCycle Rights Management または AEM Forms Document Security で保護されたドキュメントを使用することができます。
certFile
.jks ファイルを示すファイルオブジェクトを指定します。.jks ファイルはキーストアファイルです。このファイルは、使用権限を許可する証明書を指し示します。
credentialPassword
キーストアのパスワードを指定します。
usageRights
usageRights のオブジェクトタイプを指定します。usageRights のオブジェクトは、ポリシーで保護された PDF ドキュメントに適用できる個々の権限を表します。

ポリシーで保護された PDF ドキュメントに適用された使用権限を復元。 

getDocumentUsageRights Java API を使用して、ポリシーで保護された PDF ドキュメントの Reader Extension の使用権限を復元できます。使用権限に関する情報を取得することで、ポリシーで保護されたPDFドキュメントに対してReader Extensionが有効になっている機能について学ぶことができます。
​構文: public GetUsageRightsResult getDocumentUsageRights(InputStream inDoc)
パラメーター
説明
inDoc
使用権限の復元元の PDF ドキュメントを示す InputStream を指定します。LiveCycle Rights Management または AEM Forms Document Security で保護されたドキュメントを使用することができます。

コードサンプル

//Create a ServiceClientFactory instance
ServiceClientFactory factory = ServiceClientFactory.createInstance(connectionProps);
//Create a RightsManagementClient object
RightsManagementClient2 rmClient2= new RightsManagementClient2(factory);

String inputFileName = "C:\\Sample\\protected.pdf"; //Input file can be RM protected or unprotected pdf file
File certFile = new File("C:\\Sample\\cert.jks"); //RE certificate file
String password = "password"; //password for RE certificate
UsageRights usageRights = getUsageRights(true,true,false,false,true,true,false,false,false,false,true);

//RE rights to be applied on the file : FormFillIn, FormDataImportExport, SubmitStandalone, OnlineForms, DynamicFormField, DynamicFormPages, BarcodeDecoding, DigitalSignatures, Comments, CommentsOnline, EmbeddedFiles

InputStream inputFileStream = new FileInputStream(inputFileName);
InputStream output = rmClient2.getRightsManagementReaderExtensionService().applyUsageRights(inputFileStream, certFile, credentialPassword, rights);

String outputFileName = "C:\\Sample\\ReAdded.pdf";
//Save the PDF document
File myFile = new File(outputFileName);
FileOutputStream outputStream = new FileOutputStream(myFile);

int read = 0;
byte[] bytes = new byte[1024];

while ((read = output.read(bytes)) != -1) {

    outputStream.write(bytes, 0, read);
}

System.out.println("UsageRights applied successfully to the document. ”);
 outputStream.close();
inputFileStream.close();

//Get Usage Rights for the output pdf document
InputStream fileWithRe = new FileInputStream(myFile);

GetUsageRightsResult usageRights = rmClient2.getRightsManagementReaderExtensionService().getDocumentUsageRights(fileWithRe);

UsageRights rights = usageRights.getRights();
String right1 = rights1.toString();
System.out.println("RE rights for the file are :\n"+right1);
 fileWithRe.close();

ポリシーで保護された PDF ドキュメントの使用権限の削除

removeUsageRights Java API を使用して、ポリシーで保護されたドキュメントから使用権限を削除することができます。ドキュメントに対してその他の AEM Forms の操作を実行するには、ポリシーで保護された PDF ドキュメントから使用権限を削除する必要があります。例えば、PDF ドキュメントに対する電子署名(または認証)は、使用権限を設定する前に実行する必要があります。したがって、ポリシーで保護されたドキュメントに対して操作を行う場合、その PDF ドキュメントから使用権限を削除し、PDF ドキュメントへの電子署名など、その他の操作を行った後にドキュメントに対して使用権限を再び適用します。
​構文: InputStream removeUsageRights(InputStream inputFile)
パラメーター
説明
inputFile
使用権限を削除する PDF ドキュメントを示す InputStream を指定します。 LiveCycle Rights Management または AEM Forms Document Security で保護されたドキュメントを使用することができます。

コードサンプル

//Create a ServiceClientFactory instance
ServiceClientFactory factory = ServiceClientFactory.createInstance(connectionProps);
//Create a RightsManagementClient object
RightsManagementClient2 rmClient2= new RightsManagementClient2(factory);

String inputFileName = "C:\\Sample\\fileWithRe.pdf"; //Input file can be RM protected or unprotected pdf file
InputStream inputFileStream = new FileInputStream(inputFileName);

InputStream fileStream = rmClient2.getRightsManagementReaderExtensionService().removeUsageRights(inputFileStream);

String outputFileName = "C:\\Sample\\ReRemoveded.pdf";
//Save the PDF document
File myFile = new File(outputFileName);
FileOutputStream outputStream = new FileOutputStream(myFile);

int read = 0;
byte[] bytes = new byte[1024];

while ((read = fileStream.read(bytes)) != -1) {

    outputStream.write(bytes, 0, read);
}
System.out.println("RE rights removed successfully from the document.”);
outputStream.close();
inputFileStream.close();