Reader使用可攜式保護程式庫擴充受原則保護的PDF檔案

您必須熟悉檔案安全性、讀者擴充功能和Java程式設計語言的概念,才能擴充受原則保護的檔案安全性PDF檔案。

您可以使用檔案安全性,將特定PDF檔案的存取權限限制給僅授權的使用者。 您也可以決定收件者如何使用受保護的檔案。 例如,您可以指定收件者是否可以列印、複製或編輯受原則保護之檔案的文字。 若要進一步瞭解檔案安全性,請參閱關於檔案安全性

您可以使用Reader擴充功能,在Adobe PDF檔案中透過Acrobat Reader啟用互動功能。 這些互動功能通常只能透過Adobe Acrobat專業版和標準版提供。 要瞭解Reader擴充功能可啟用的互動功能,請參閱Adobe Experience Manager FormsDocAssurance服務​

您可以使用可攜式保護程式庫,在檔案上套用原則,而不需要透過網路傳送檔案。 只有安全證書和保護策略詳細資訊才能通過網路傳輸。 實際文檔永遠不會離開客戶機,保護策略將在客戶機上本地應用。

Reader擴充檔案安全性原則保護的PDF檔案

受原則保護的檔案是加密的檔案。 您無法使用標準的Reader-Extension API來套用、移除和擷取受原則保護PDF檔案的使用權限。 只有可攜式保護程式庫的Reader擴充功能服務才提供API,以套用、移除和擷取檔案保全原則保護之PDF檔案的使用權。

Reader擴展服務

Reader擴充功能服務會將使用權新增至受原則保護的PDF檔案,以啟用在使用Adobe AcrobatReader開啟PDF檔案時無法正常使用的功能。 此外,它還具備API,可移除和擷取受原則保護檔案的使用權限。

Reader擴充功能服務完全支援以PDF標準1.6及更新版本為基礎的PDF檔案。 除了Acrobat Reader以外,協力廠商使用者不需要額外的軟體或外掛程式,就能使用受原則保護的PDF檔案。

您可以使用Reader擴展服務完成以下任務:

  • 套用使用權限至受原則保護的PDF檔案。
  • 移除受原則保護PDF檔案的使用權限。
  • 擷取套用至受原則保護之PDF檔案的使用權限。

將使用權限套用至受檔案保全原則保護的PDF檔案

您可以使用applyUsageRightsJava API,將使用權限套用至受原則保護的PDF檔案。 使用權限與Acrobat預設在Adobe Reader但不在的功能相關,例如在表單中新增註解或填寫表單欄位並儲存表單的功能。 具有套用使用權限的PDF檔案稱為具有權限的檔案。 在Adobe Reader開啟啟用權限的檔案的使用者可以執行針對該特定檔案啟用的作業。

語法: InputStream applyUsageRights(InputStream inputFile, File certFile, String credentialPassword, UsageRights usageRights)

參數

說明

inputFile

指定InputStream,它代表要套用使用權的PDF檔案。 您可以使用LiveCycleRights Management或AEM Forms檔案安全性保護檔案。

certFile

指定表示。jks檔案的檔案對象。 .jks檔案是密鑰庫檔案。 它指向授與使用權的憑證。

credentialPassword

指定密鑰庫的密碼。

usageRights

指定類型UsageRights的對象。 usageRights物件代表可套用至受原則保護之PDF檔案的個別權限。

擷取套用至受原則保護之PDF檔案的使用權限。  

您可以使用getDocumentUsageRightsJava API來擷取套用至受原則保護PDF檔案的Reader擴充功能使用權限。 透過擷取使用權的相關資訊,您可以瞭解受原則保護的PDF檔案所啟用的讀者擴充功能。

語法: public GetUsageRightsResult getDocumentUsageRights(InputStream inDoc)

參數

說明

inDoc

指定InputStream,它代表要從中擷取使用權的PDF檔案。 您可以使用LiveCycleRights Management或AEM Forms檔案安全性保護檔案。

程式碼範例

//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檔案的使用權

您可以使用removeUsageRightsJava API來移除受原則保護檔案的使用權限。 從受原則保護的PDF檔案移除使用權是對檔案執行其他AEM Forms作業的必要條件。 例如,您必須先數位簽署(或認證)PDF檔案,才能設定使用權。 因此,如果您想要對受原則保護的檔案執行作業,您必須從PDF檔案移除使用權限、執行其他作業,例如數位簽署檔案,然後重新套用檔案的使用權限。

語法: InputStream removeUsageRights(InputStream inputFile)

參數

說明

inputFile

指定InputStream,它代表要移除其使用
權限的PDF檔案。 您可以使用LiveCycleRights Management或AEM Forms檔案安全性保護檔案。

程式碼範例

//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();

本頁內容

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now