使用Java API套用使用許可權

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

  1. 包含專案檔案

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

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

    • 建立包含連線屬性的ServiceClientFactory物件。
    • 使用它的建構函式並傳遞ServiceClientFactory物件來建立ReaderExtensionsServiceClient物件。
  3. 擷取PDF檔案。

    • 使用它的建構函式並傳遞指定PDF檔案位置的字串值,建立代表PDF檔案的java.io.FileInputStream物件。
    • 使用它的建構函式並傳遞java.io.FileInputStream物件來建立com.adobe.idp.Document物件。
  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方法並傳遞下列值,將使用許可權套用至PDF檔案:

      • 包含套用使用許可權之PDF檔案的com.adobe.idp.Document物件。
      • 字串值,指定可讓您套用使用許可權的認證別名。
      • 字串值,指定對應的密碼值。 (目前會忽略此引數。 您可以傳遞null。)
    • 包含執行階段選項的ReaderExtensionsOptionSpec物件。

    applyUsageRights方法傳回包含已啟用許可權的PDF檔案的com.adobe.idp.Document物件。

  6. 儲存啟用許可權的PDF檔案。

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

使用網站服務API套用使用許可權

使用Acrobat Reader DC擴充功能API (Web服務)將使用許可權套用至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物件。

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

    • 取得ReaderExtensionsServiceClient.Endpoint.Binding欄位的值,以建立System.ServiceModel.BasicHttpBinding物件。 將傳回值轉換為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方法,以串流資料填入位元組陣列。 傳遞位元組陣列、起始位置以及要讀取的資料流長度。
    • 以位元組陣列的內容指派物件的MTOM屬性,填入BLOB物件。
  4. 指定要套用的使用許可權。

    • 使用建構函式建立代表使用許可權的UsageRights物件。
    • 針對要套用的每個使用許可權,將值true指派給屬於UsageRights物件的對應資料成員。 例如,若要新增enableFormFillIn使用許可權,請將true指派給UsageRights物件的enableFormFillIn資料成員。 (針對要套用的每個使用許可權,重複此步驟)。
  5. 套用使用許可權至PDF檔案。

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

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

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

    • 透過叫用ReaderExtensionsServiceClient物件的applyUsageRights方法並傳遞下列值,將使用許可權套用至PDF檔案:

      • 包含套用使用許可權之PDF檔案的BLOB物件。
      • 字串值,指定可讓您套用使用許可權的認證別名。
      • 字串值,指定對應的密碼值。 (目前會忽略此引數。 您可以傳遞null。)
    • 包含執行階段選項的ReaderExtensionsOptionSpec物件。

    applyUsageRights方法傳回包含已啟用許可權的PDF檔案的BLOB物件。

  6. 儲存啟用許可權的PDF檔案。

    • 透過叫用它的建構函式來建立System.IO.FileStream物件。 傳遞代表已啟用許可權之PDF檔案之檔案位置的字串值。
    • 建立位元組陣列,儲存applyUsageRights方法傳回的BLOB物件的資料內容。 取得BLOB物件的MTOM資料成員的值,以填入位元組陣列。
    • 透過叫用它的建構函式並傳遞System.IO.FileStream物件來建立System.IO.BinaryWriter物件。
    • 呼叫System.IO.BinaryWriter物件的Write方法並傳遞位元組陣列,將位元組陣列的內容寫入PDF檔案。

從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擴充功能使用者端物件。

    使用它的建構函式並傳遞包含連線屬性的ServiceClientFactory物件來建立ReaderExtensionsServiceClient物件。

  3. 擷取PDF檔案。

    • 使用啟用許可權的PDF檔案的建構函式,並傳遞指定PDF檔案位置的字串值,來建立代表該文檔的java.io.FileInputStream物件。
    • 使用它的建構函式並傳遞java.io.FileInputStream物件來建立com.adobe.idp.Document物件。
  4. 從PDF檔案中移除使用許可權。

    透過叫用ReaderExtensionsServiceClient物件的removeUsageRights方法並傳遞包含啟用許可權的PDF檔案的com.adobe.idp.Document物件,從PDF檔案中移除使用許可權。 此方法傳回的com.adobe.idp.Document物件包含沒有使用許可權的PDF檔案。

  5. 套用使用許可權至PDF檔案。

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

使用網站服務API移除使用許可權

使用Acrobat Reader DC擴充功能API (Web服務),從已啟用許可權的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物件。

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

    • 取得ReaderExtensionsServiceClient.Endpoint.Binding欄位的值,以建立System.ServiceModel.BasicHttpBinding物件。 將傳回值轉換為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方法,並傳遞要讀取的位元組陣列、起始位置和資料流長度,以資料流資料填入位元組陣列。
    • 以位元組陣列的內容指派物件的MTOM屬性,填入BLOB物件。
  4. 從PDF檔案中移除使用許可權。

    透過叫用ReaderExtensionsServiceClient物件的removeUsageRights方法並傳遞包含啟用許可權的PDF檔案的BLOB物件,從PDF檔案中移除使用許可權。 此方法傳回的BLOB物件包含沒有使用許可權的PDF檔案。

  5. 套用使用許可權至PDF檔案。

    • 建立System.IO.FileStream物件,方法為叫用其建構函式,並傳遞代表PDF檔案位置的字串值。
    • 建立位元組陣列,儲存removeUsageRights方法傳回的BLOB物件的資料內容。 取得BLOB物件的MTOM資料成員的值,以填入位元組陣列。
    • 透過叫用它的建構函式並傳遞System.IO.FileStream物件來建立System.IO.BinaryWriter物件。

正在擷取認證資訊

您可以擷取用來將使用許可權套用至已啟用許可權的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檔案後,您可以取得用來套用使用許可權之認證的相關資訊。 您可以取得下列關於認證的資訊:

  • 開啟許可權啟用的PDF檔案時,Adobe Reader中顯示的訊息。
  • 認證不再有效的日期。
  • 認證無效的日期。
  • 為此許可權啟用的PDF檔案設定的使用許可權。
  • 已使用認證的次數。
  1. 包含專案檔案。

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

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

    使用它的建構函式並傳遞包含連線屬性的ServiceClientFactory物件來建立ReaderExtensionsServiceClient物件。

  3. 擷取PDF檔案。

    • 使用啟用許可權的PDF檔案的建構函式,並傳遞字串值(指定啟用許可權的PDF檔案的位置),來建立代表啟用許可權之檔案的java.io.FileInputStream物件。
    • 使用它的建構函式並傳遞java.io.FileInputStream物件來建立com.adobe.idp.Document物件。
  4. 從PDF檔案中移除使用許可權。

    • 透過叫用ReaderExtensionsServiceClient物件的getDocumentUsageRights方法並傳遞包含啟用許可權的PDF檔案的com.adobe.idp.Document物件,擷取用於套用使用許可權至PDF檔案的認證相關資訊。 此方法傳回包含認證資訊的GetUsageRightsResult物件。
    • 叫用GetUsageRightsResult物件的getNotAfter方法,擷取認證不再有效的日期。 此方法會傳回java.util.Date物件,代表認證不再有效的日期。
    • 叫用GetUsageRightsResult物件的getMessage方法,擷取當啟用許可權的PDF檔案開啟時Adobe Reader中顯示的訊息。 此方法會傳回代表訊息的字串值。

使用網站服務API擷取認證資訊

使用Acrobat Reader DC擴充功能API (Web服務)擷取認證資訊:

  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物件。

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

    • 取得ReaderExtensionsServiceClient.Endpoint.Binding欄位的值,以建立System.ServiceModel.BasicHttpBinding物件。 將傳回值轉換為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方法,並傳遞要讀取的位元組陣列、起始位置和資料流長度,以資料流資料填入位元組陣列。
    • 以位元組陣列的內容指派物件的MTOM屬性,填入BLOB物件。
  4. 從PDF檔案中移除使用許可權。

    • 透過叫用ReaderExtensionsServiceClient物件的getDocumentUsageRights方法並傳遞包含啟用許可權的PDF檔案的com.adobe.idp.Document物件,擷取用於套用使用許可權至PDF檔案的認證相關資訊。 此方法會傳回包含認證資訊的GetUsageRightsResult物件。
    • 取得GetUsageRightsResult物件的notAfter資料成員的值,以擷取認證不再有效的日期。 此資料成員的資料型別為System.DateTime
    • 取得GetUsageRightsResult物件的message資料成員的值,擷取在Adobe Reader中開啟啟用許可權的PDF檔案時顯示的訊息。 此資料成員的資料型別是字串。
    • 透過取得GetUsageRightsResult物件的useCount資料成員的值來擷取使用認證的次數。 此資料成員的資料型別是整數。
recommendation-more-help