使用Java API套用使用權限

使用Acrobat Reader DC擴充功能API(Java),將使用權套用至PDF檔案:

  1. 包含項目檔案

    在您Java專案的類別路徑中包含用戶端JAR檔案,例如adobe-reader-extensions-client.jar。

  2. 建立Acrobat Reader DC擴充功能用戶端物件。

    • 建立 ServiceClientFactory 包含連接屬性的對象。
    • 建立 ReaderExtensionsServiceClient 對象,使用其建構子並傳遞 ServiceClientFactory 物件。
  3. 檢索PDF文檔。

    • 建立 java.io.FileInputStream 表示PDF文檔的對象,方法是使用其建構子並傳遞一個字串值,該字串值指定PDF文檔的位置。
    • 建立 com.adobe.idp.Document 對象,使用其建構子並傳遞 java.io.FileInputStream 物件。
  4. 指定要應用的使用權限。

    • 建立 UsageRights 使用其建構子表示使用權的物件。
    • 對於每個要應用的使用權,調用屬於 UsageRights 物件。 例如,若要新增 enableFormFillIn 使用權限,調用 UsageRights 物件 enableFormFillIn 方法和傳遞 true. (請針對每個使用權限重複此步驟以套用)。
  5. 將使用權應用於PDF文檔。

    • 建立 ReaderExtensionsOptionSpec 物件,使用其建構子。 此物件包含Acrobat Reader DC擴充功能服務所需的執行階段選項。 調用此建構子時,必須指定以下值:

      • UsageRights 包含要應用於文檔的使用權限的對象。
      • 一個字串值,它指定在Adobe Reader 7.x中開啟啟用權限的PDF檔案時,使用者會看見的訊息。Adobe Reader 8.0未顯示此訊息。
    • 通過調用 ReaderExtensionsServiceClient 物件 applyUsageRights 方法並傳遞下列值:

      • com.adobe.idp.Document 包含應用使用權限的PDF文檔的對象。
      • 一個字串值,它指定憑據的別名,使您能夠應用使用權限。
      • 指定相應密碼值的字串值。 (目前會忽略此參數。 你可以通過 null.)
    • ReaderExtensionsOptionSpec 包含運行時選項的對象。

    applyUsageRights 方法傳回 com.adobe.idp.Document 包含已啟用權限的PDF文檔的對象。

  6. 保存啟用權限的PDF文檔。

    • 建立 java.io.File 物件,並確定副檔名為.pdf。
    • 叫用 com.adobe.idp.Document 物件 copyToFile 複製內容的方法 com.adobe.idp.Document 物件(請確定您使用 com.adobe.idp.Document 由傳回的物件 applyUsageRights 方法)。

使用網站服務API套用使用權限

使用Acrobat Reader DC擴充功能API(網站服務),將使用權套用至PDF檔案:

  1. 包含專案檔案。

    建立使用MTOM的Microsoft .NET專案。 確保使用以下WSDL定義: http://localhost:8080/soap/services/ReaderExtensionsService?WSDL&lc_version=9.0.1.

    注意
    取代 localhost 和托管AEM Forms之伺服器的IP位址。
  2. 建立Acrobat Reader DC擴充功能用戶端物件。

    • 建立 ReaderExtensionsServiceClient 物件,使用其預設建構函式。

    • 建立 ReaderExtensionsServiceClient.Endpoint.Address 物件,使用 System.ServiceModel.EndpointAddress 建構子。 將指定WSDL的字串值傳遞至AEM Forms服務(例如 http://localhost:8080/soap/services/ReaderExtensionsService?blob=mtom. 確定您指定 ?blob=mtom.)

    • 建立 System.ServiceModel.BasicHttpBinding 物件,方法是取得 ReaderExtensionsServiceClient.Endpoint.Binding 欄位。 將傳回值轉換為 BasicHttpBinding.

    • 設定 System.ServiceModel.BasicHttpBinding 物件 MessageEncoding 欄位至 WSMessageEncoding.Mtom. 此值可確保使用MTOM。

    • 通過執行以下任務來啟用基本HTTP身份驗證:

      • 將AEM表單使用者名稱指派給欄位 ReaderExtensionsServiceClient.ClientCredentials.UserName.UserName.
      • 為欄位分配相應的密碼值 ReaderExtensionsServiceClient.ClientCredentials.UserName.Password.
      • 指派常數值 HttpClientCredentialType.Basic 欄位 BasicHttpBindingSecurity.Transport.ClientCredentialType.
      • 指派常數值 BasicHttpSecurityMode.TransportCredentialOnly 欄位 BasicHttpBindingSecurity.Security.Mode.
  3. 檢索PDF文檔。

    • 建立 BLOB 物件,使用其建構子。 此 BLOB 對象用於儲存應用了使用權限的PDF文檔。
    • 建立 System.IO.FileStream 對象,方法是調用其建構子並傳遞一個字串值,該字串值表示PDF文檔的檔案位置以及開啟檔案的模式。
    • 建立位元組陣列,用於儲存 System.IO.FileStream 物件。 您可以取得 System.IO.FileStream 物件 Length 屬性。
    • 叫用 System.IO.FileStream 物件 Read 方法。 傳遞位元組陣列、起始位置和資料流長度以讀取。
    • 填入 BLOB 對象,通過賦值 MTOM 屬性(包含位元組陣列的內容)。
  4. 指定要應用的使用權限。

    • 建立 UsageRights 使用其建構子表示使用權的物件。
    • 對於每個要套用的用法,指派值 trueUsageRights 物件。 例如,若要新增 enableFormFillIn 使用權限,指派 trueUsageRights 物件 enableFormFillIn 資料成員。 (請針對每個使用權限重複此步驟以套用)。
  5. 將使用權應用於PDF文檔。

    • 建立 ReaderExtensionsOptionSpec 物件,使用其建構子。 此物件包含Acrobat Reader DC擴充功能服務所需的執行階段選項。

    • 指派 UsageRights 物件 ReaderExtensionsOptionSpec 物件 usageRights 資料成員。

    • 將字串值指定在Adobe Reader中開啟啟用權限的PDF檔案時,使用者會看見的訊息,指派給 ReaderExtensionsOptionSpec 物件 message 資料成員。

    • 通過調用 ReaderExtensionsServiceClient 物件 applyUsageRights 方法並傳遞下列值:

      • BLOB 包含應用使用權限的PDF文檔的對象。
      • 一個字串值,它指定憑據的別名,使您能夠應用使用權限。
      • 指定相應密碼值的字串值。 (目前會忽略此參數。 你可以通過 null.)
    • ReaderExtensionsOptionSpec 包含運行時選項的對象。

    applyUsageRights 方法傳回 BLOB 包含已啟用權限的PDF文檔的對象。

  6. 保存啟用權限的PDF文檔。

    • 建立 System.IO.FileStream 對象,方法是調用其建構子。 傳遞一個字串值,該字串值表示啟用權限的PDF文檔的檔案位置。
    • 建立位元組陣列,用於儲存 BLOB 由傳回的物件 applyUsageRights 方法。 取得 BLOB 物件 MTOM 資料成員。
    • 建立 System.IO.BinaryWriter 對象,調用其建構子並傳遞 System.IO.FileStream 物件。
    • 調用 System.IO.BinaryWriter 物件 Write 方法,並傳遞位元組陣列。

從PDF文檔中刪除使用權限

您可以從啟用權限的文檔中刪除使用權限。 若要對啟用權限的PDF檔案執行其他AEM Forms作業,也必須移除該檔案的使用權限。 例如,您必須先以數位方式簽署(或認證)PDF檔案,才能設定使用權限。 因此,如果要對啟用權限的文檔執行操作,則必須從PDF文檔中刪除使用權限,執行其他操作,例如對文檔進行數字簽名,然後對文檔重新應用使用權限。

注意
如需Acrobat Reader DC擴充功能服務的詳細資訊,請參閱 AEM Forms服務參考.

步驟摘要

要從啟用權限的PDF文檔中刪除使用權限,請執行以下步驟:

  1. 包含專案檔案。
  2. 建立Acrobat Reader DC擴充功能用戶端物件。
  3. 檢索啟用權限的PDF文檔。
  4. 從PDF文檔中刪除使用權限。
  5. 保存PDF文檔。

包含項目檔案

在您的開發專案中加入必要的檔案。 如果您使用Java建立客戶端應用程式,請包括必要的JAR檔案。 如果您使用Web服務,請確定您包含Proxy檔案。

建立Acrobat Reader DC擴充功能用戶端物件

您必須先建立Acrobat Reader DC擴充功能服務用戶端物件,才能以程式設計方式執行Acrobat Reader DC擴充功能服務作業。 如果您使用Java API,請建立 ReaderExtensionsServiceClient 物件。 如果您使用Acrobat Reader DC擴充功能Web服務API,請建立 ReaderExtensionsServiceService 物件。

檢索啟用權限的PDF文檔

檢索啟用權限的PDF文檔,以刪除使用權限。

從PDF文檔中刪除使用權限

檢索已啟用權限的PDF文檔後,您可以刪除使用權限。 移除使用權限後,在Adobe Reader中檢視PDF檔案時,該檔案將沒有任何其他功能。

保存PDF文檔

您可以將不再包含使用權的PDF檔案儲存為PDF檔案。 儲存為PDF檔案後,即可在Adobe Reader或Acrobat中檢視PDF檔案。

另請參閱

使用Java API移除使用權限

使用網站服務API移除使用權限

包含AEM Forms Java程式庫檔案

設定連接屬性

Acrobat Reader DC擴充功能服務API快速入門

將使用權應用於PDF文檔

使用Java API移除使用權限

使用Acrobat Reader DC擴充功能API(Java),從啟用權限的PDF檔案中移除使用權限:

  1. 包含專案檔案。

    在您Java專案的類別路徑中包含用戶端JAR檔案,例如adobe-reader-extensions-client.jar。

  2. 建立Acrobat Reader DC擴充功能用戶端物件。

    建立 ReaderExtensionsServiceClient 對象,使用其建構子並傳遞 ServiceClientFactory 包含連接屬性的對象。

  3. 檢索PDF文檔。

    • 建立 java.io.FileInputStream 表示啟用權限的PDF文檔的對象,方法是使用其建構子並傳遞一個字串值,該字串值指定PDF文檔的位置。
    • 建立 com.adobe.idp.Document 對象,使用其建構子並傳遞 java.io.FileInputStream 物件。
  4. 從PDF文檔中刪除使用權限。

    通過調用 ReaderExtensionsServiceClient 物件 removeUsageRights 方法和傳遞 com.adobe.idp.Document 包含已啟用權限的PDF文檔的對象。 此方法會傳回 com.adobe.idp.Document 包含沒有使用權限的PDF文檔的對象。

  5. 將使用權應用於PDF文檔。

    • 建立 java.io.File 物件,並確定副檔名為。PDF。
    • 叫用 Document 物件 copyToFile 複製內容的方法 Document 物件(請確定您使用 Document 由傳回的物件 removeUsageRights 方法)。

使用網站服務API移除使用權限

使用Acrobat Reader DC擴充功能API(網站服務),從啟用權限的PDF檔案中移除使用權限:

  1. 包含專案檔案。

    建立使用MTOM的Microsoft .NET專案。 確保使用以下WSDL定義: http://localhost:8080/soap/services/ReaderExtensionsService?WSDL&lc_version=9.0.1.

    注意
    取代 localhost 和托管AEM Forms之伺服器的IP位址。
  2. 建立Acrobat Reader DC擴充功能用戶端物件。

    • 建立 ReaderExtensionsServiceClient 物件,使用其預設建構函式。

    • 建立 ReaderExtensionsServiceClient.Endpoint.Address 物件,使用 System.ServiceModel.EndpointAddress 建構子。 將指定WSDL的字串值傳遞至AEM Forms服務(例如 http://localhost:8080/soap/services/ReaderExtensionsService?blob=mtom. 確定您指定 ?blob=mtom.)

    • 建立 System.ServiceModel.BasicHttpBinding 物件,方法是取得 ReaderExtensionsServiceClient.Endpoint.Binding 欄位。 將傳回值轉換為 BasicHttpBinding.

    • 設定 System.ServiceModel.BasicHttpBinding 物件 MessageEncoding 欄位至 WSMessageEncoding.Mtom. 此值可確保使用MTOM。

    • 通過執行以下任務來啟用基本HTTP身份驗證:

      • 將AEM表單使用者名稱指派給欄位 ReaderExtensionsServiceClient.ClientCredentials.UserName.UserName.
      • 為欄位分配相應的密碼值 ReaderExtensionsServiceClient.ClientCredentials.UserName.Password.
      • 指派常數值 HttpClientCredentialType.Basic 欄位 BasicHttpBindingSecurity.Transport.ClientCredentialType.
      • 指派常數值 BasicHttpSecurityMode.TransportCredentialOnly 欄位 BasicHttpBindingSecurity.Security.Mode.
  3. 檢索PDF文檔。

    • 建立 BLOB 物件,使用其建構子。 此 BLOB 對象用於儲存啟用權限的PDF文檔,從中刪除使用權限。
    • 建立 System.IO.FileStream 對象,方法是調用其建構子並傳遞一個字串值,該字串值表示PDF文檔的檔案位置以及開啟檔案的模式。
    • 建立位元組陣列,用於儲存 System.IO.FileStream 物件。 您可以取得 System.IO.FileStream 物件 Length 屬性。
    • 叫用 System.IO.FileStream 物件 Read 方法,並傳遞位元組陣列、起始位置及流長度以讀取。
    • 填入 BLOB 對象,通過賦值 MTOM 屬性(包含位元組陣列的內容)。
  4. 從PDF文檔中刪除使用權限。

    通過調用 ReaderExtensionsServiceClient 物件 removeUsageRights 方法和傳遞 BLOB 包含已啟用權限的PDF文檔的對象。 此方法會傳回 BLOB 包含沒有使用權限的PDF文檔的對象。

  5. 將使用權應用於PDF文檔。

    • 建立 System.IO.FileStream 物件,方法是叫用其建構函式並傳遞代表PDF檔案位置的字串值。
    • 建立位元組陣列,用於儲存 BLOB 由傳回的物件 removeUsageRights 方法。 取得 BLOB 物件 MTOM 資料成員。
    • 建立 System.IO.BinaryWriter 對象,調用其建構子並傳遞 System.IO.FileStream 物件。

檢索憑據資訊

您可以檢索有關憑據的資訊,該憑據用於將使用權限應用於啟用權限的PDF文檔。 通過檢索有關憑據的資訊,可以獲取諸如證書失效日期等資訊。

注意
如需Acrobat Reader DC擴充功能服務的詳細資訊,請參閱 AEM Forms服務參考.

步驟摘要

要檢索有關用於將使用權應用於PDF文檔的憑據的資訊,請執行以下步驟:

  1. 包含專案檔案。
  2. 建立Acrobat Reader DC擴充功能用戶端物件。
  3. 檢索啟用權限的PDF文檔。
  4. 檢索有關憑據的資訊。

包含項目檔案

在您的開發專案中加入必要的檔案。 如果您使用Java建立客戶端應用程式,請包括必要的JAR檔案。 如果您使用Web服務,請確定您包含Proxy檔案。

建立Acrobat Reader DC擴充功能用戶端物件

您必須先建立Acrobat Reader DC擴充功能服務用戶端物件,才能以程式設計方式執行Acrobat Reader DC擴充功能服務作業。 如果您使用Java API,請建立 ReaderExtensionsServiceClient 物件。 如果您使用Acrobat Reader DC擴充功能Web服務API,請建立 ReaderExtensionsServiceService 物件。

檢索啟用權限的PDF文檔

必須檢索啟用權限的PDF文檔,才能檢索有關憑據的資訊。 您還可以通過指定憑據的別名來檢索有關憑據的資訊;但是,如果要檢索有關用於將使用權應用於啟用特定權限的PDF文檔的憑據的資訊,則必須檢索該文檔。

檢索有關憑據的資訊

檢索啟用權限的PDF文檔後,可以獲取有關用於應用使用權限的憑據的資訊。 您可以獲取有關憑據的以下資訊:

  • 開啟啟用權限的Adobe Reader檔案時,在PDF中顯示的訊息。
  • 憑據失效的日期。
  • 憑據無效的日期。
  • 為此啟用權限的PDF文檔設定的使用權限。
  • 已使用憑據的次數。
  1. 包含專案檔案。

    在您Java專案的類別路徑中包含用戶端JAR檔案,例如adobe-reader-extensions-client.jar。

  2. 建立Acrobat Reader DC擴充功能用戶端物件。

    建立 ReaderExtensionsServiceClient 對象,使用其建構子並傳遞 ServiceClientFactory 包含連接屬性的對象。

  3. 檢索PDF文檔。

    • 建立 java.io.FileInputStream 表示啟用權限的PDF文檔的對象,方法是使用其建構子並傳遞一個字串值,該字串值指定啟用權限的PDF文檔的位置。
    • 建立 com.adobe.idp.Document 對象,使用其建構子並傳遞 java.io.FileInputStream 物件。
  4. 從PDF文檔中刪除使用權限。

    • 通過調用 ReaderExtensionsServiceClient 物件 getDocumentUsageRights 方法和傳遞 com.adobe.idp.Document 包含已啟用權限的PDF文檔的對象。 此方法會傳回 GetUsageRightsResult 包含憑據資訊的對象。
    • 通過調用 GetUsageRightsResult 物件 getNotAfter 方法。 此方法會傳回 java.util.Date 表示憑據不再有效的日期的對象。
    • 借由叫用 GetUsageRightsResult 物件 getMessage 方法。 此方法會傳回代表訊息的字串值。