加密和解密PDF檔案

關於加密服務

加密服務可讓您加密和解密檔案。 當文檔加密時,其內容將變得不可讀。 授權用戶可以解密文檔以獲得對內容的訪問。 如果PDF檔案使用密碼加密,使用者必須先指定開啟的密碼,才能在Adobe Reader或Adobe Acrobat中檢視該檔案。 同樣地,如果PDF檔案使用憑證加密,使用者必須使用與用來加密PDF檔案的憑證(私密金鑰)對應的公開金鑰來解密PDF檔案。

您可以使用Encryption服務完成以下任務:

使用密碼加密PDF檔案

當您使用密碼加密PDF檔案時,使用者必須指定密碼才能在Adobe Reader或Acrobat中開啟PDF檔案。 此外,在對檔案執行其他AEM Forms作業(例如數位簽署PDF檔案)之前,必須先解除鎖定密碼加密的PDF檔案。

注意

如果您將加密的PDF檔案上傳至AEM Forms存放庫,它將無法解密PDF檔案並擷取XDP內容。 建議您不要在將檔案上傳至AEM Forms儲存庫之前加密檔案。 (請參閱編寫資源。)

注意

如需加密服務的詳細資訊,請參閱AEM Forms的服務參考

步驟摘要

要使用密碼加密PDF文檔,請執行以下步驟:

  1. 包含專案檔案。
  2. 建立加密客戶端API對象。
  3. 取得要加密的PDF檔案。
  4. 設定加密運行時選項。
  5. 新增密碼。
  6. 將加密的PDF檔案儲存為PDF檔案。

包含專案檔案

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

必須將下列JAR檔案添加到項目的類路徑中:

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-encryption-client.jar
  • adobe-utilities.jar(若AEM Forms部署在JBoss上,則為必要項)
  • jbossall-client.jar(如果AEM Forms部署在JBoss上,則為必要)

建立加密客戶端API對象

要以寫程式方式執行加密服務操作,必須建立加密服務客戶端。

取得PDF檔案以加密

您必須取得未加密的PDF檔案,才能使用密碼來加密檔案。 如果您嘗試保護已加密的PDF檔案,會造成例外。

設定加密運行時選項

若要使用密碼加密PDF檔案,請指定4個值,包括2個密碼值。 第一個密碼值用於加密PDF文檔,在開啟PDF文檔時必須指定。 第二個密碼值(稱為主密碼值)用於從PDF文檔中刪除加密。 密碼值區分大小寫,這兩個密碼值不能是相同的值。

您必須指定要加密的PDF檔案資源。 您可以加密整份PDF檔案、除檔案中繼資料外的所有內容,或僅加密檔案的附件。 如果您只加密檔案的附件,當使用者嘗試存取檔案附件時,會提示使用者輸入密碼。

在加密PDF檔案時,您可以指定與安全檔案相關的權限。 透過指定權限,您可以控制開啟密碼加密PDF檔案的使用者可執行的動作。 例如,若要成功擷取表單資料,您必須設定下列權限:

  • PASSWORD_EDIT_ADD
  • PASSWORD_EDIT_MODIFY
注意

權限指定為PasswordEncryptionPermission枚舉值。

新增密碼

在擷取不安全的PDF檔案並設定加密執行時值後,您可以在PDF檔案中新增密碼。

將加密的PDF檔案儲存為PDF檔案

您可以將密碼加密的PDF檔案儲存為PDF檔案。

另請參閱

使用Java API加密PDF檔案

使用web service API加密PDF檔案

包含AEM Forms Java程式庫檔案

設定連接屬性

Encryption Service API快速入門

使用憑證加密PDF檔案

使用Java API加密PDF檔案

使用Encryption API(Java),以密碼加密PDF檔案:

  1. 包含專案檔案。

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

  2. 建立加密用戶端API。

    • 建立包含連接屬性的ServiceClientFactory對象。
    • 使用其建構子並傳遞ServiceClientFactory對象,建立EncryptionServiceClient對象。
  3. 取得要加密的PDF檔案。

    • 建立java.io.FileInputStream對象,該對象表示要加密的PDF文檔,方法是使用其建構子並傳遞指定PDF文檔位置的字串值。
    • 使用其建構子並傳遞java.io.FileInputStream對象,建立com.adobe.idp.Document對象。
  4. 設定加密運行時選項。

    • 通過調用PasswordEncryptionOptionSpec對象的建構子建立<a0/>對象。
    • 調用PasswordEncryptionOptionSpec物件的setEncryptOption方法並傳遞指定要加密之檔案資源的PasswordEncryptionOption列舉值,以指定要加密的PDF檔案資源。 例如,若要加密整個PDF檔案,包括其中繼資料及其附件,請指定PasswordEncryptionOption.ALL
    • 使用ArrayList建構函式建立儲存加密權限的java.util.List物件。
    • 通過調用java.util.List對象「s add」方法並傳遞與要設定的權限相對應的枚舉值來指定權限。 例如,若要設定允許使用者複製PDF檔案中資料的權限,請指定PasswordEncryptionPermission.PASSWORD_EDIT_COPY。 (請針對每個要設定的權限重複此步驟)。
    • 調用PasswordEncryptionOptionSpec物件的setCompatability方法並傳遞指定Acrobat相容性等級的列舉值,以指定Acrobat相容性選項。 例如,您可以指定PasswordEncryptionCompatability.ACRO_7
    • 指定密碼值,讓使用者呼叫PasswordEncryptionOptionSpec物件的setDocumentOpenPassword方法並傳遞代表開啟密碼的字串值,以開啟加密的PDF檔案。
    • 指定主密碼值,讓使用者透過叫用PasswordEncryptionOptionSpec物件的setPermissionPassword方法並傳遞代表主密碼的字串值,從PDF檔案移除加密。
  5. 新增密碼。

    叫用EncryptionServiceClient物件的encryptPDFUsingPassword方法並傳遞下列值,以加密PDF檔案:

    • 包含要使用密碼加密的PDF文檔的com.adobe.idp.Document對象。
    • 包含加密運行時選項的PasswordEncryptionOptionSpec對象。

    encryptPDFUsingPassword方法會傳回包含密碼加密PDF檔案的com.adobe.idp.Document物件。

  6. 將加密的PDF檔案儲存為PDF檔案。

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

另請參閱

步驟摘要

快速入門(SOAP模式):使用Java API加密PDF檔案

包含AEM Forms Java程式庫檔案

設定連接屬性

使用web service API加密PDF檔案

使用Encryption API(web service),以密碼加密PDF檔案:

  1. 包含專案檔案。

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

    注意

    localhost取代為代管AEM Forms之伺服器的IP位址。

  2. 建立加密客戶端API對象。

    • 使用其預設建構子建立EncryptionServiceClient對象。

    • 使用System.ServiceModel.EndpointAddress建構函式建立EncryptionServiceClient.Endpoint.Address物件。 將指定WSDL的字串值傳遞至AEM Forms服務(例如http://localhost:8080/soap/services/EncryptionService?WSDL)。 您不需要使用lc_version屬性。 建立服務參考時,將使用此屬性。)

    • 獲取EncryptionServiceClient.Endpoint.Binding欄位的值,建立System.ServiceModel.BasicHttpBinding對象。 將返回值轉換為BasicHttpBinding

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

    • 執行下列工作以啟用基本HTTP驗證:

      • 將AEM表單使用者名稱指派給欄位EncryptionServiceClient.ClientCredentials.UserName.UserName
      • 將相應的口令值分配給欄位EncryptionServiceClient.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資料成員,以填充BLOB對象。
  4. 設定加密運行時選項。

    • 使用其建構子建立PasswordEncryptionOptionSpec對象。
    • PasswordEncryptionOptionSpec物件的encryptOption資料成員指派PasswordEncryptionOption列舉值,以指定要加密的PDF檔案資源。 若要加密整個PDF,包括其中繼資料及其附件,請指派PasswordEncryptionOption.ALL給此資料成員。
    • PasswordEncryptionOptionSpec物件的compatability資料成員指派PasswordEncryptionCompatability列舉值,以指定Acrobat相容性選項。 例如,將PasswordEncryptionCompatability.ACRO_7指派給此資料成員。
    • 指定密碼值,讓使用者為PasswordEncryptionOptionSpec物件的documentOpenPassword資料成員指派代表開啟密碼的字串值,以開啟加密的PDF檔案。
    • 指定密碼值,讓使用者將代表主密碼的字串值指派給PasswordEncryptionOptionSpec物件的permissionPassword資料成員,以移除PDF檔案的加密。
  5. 新增密碼。

    叫用EncryptionServiceClient物件的encryptPDFUsingPassword方法並傳遞下列值,以加密PDF檔案:

    • 包含要使用密碼加密的PDF文檔的BLOB對象。
    • 包含加密運行時選項的PasswordEncryptionOptionSpec對象。

    encryptPDFUsingPassword方法會傳回包含密碼加密PDF檔案的BLOB物件。

  6. 將加密的PDF檔案儲存為PDF檔案。

    • 通過調用System.IO.FileStream對象的建構子並傳遞一個字串值來建立<a0/>對象,該字串值表示受保護PDF文檔的檔案位置。
    • 建立一個位元組陣列,用於儲存encryptPDFUsingPassword方法返回的BLOB對象的資料內容。 獲取BLOB對象MTOM資料成員的值,以填充位元組陣列。
    • 調用System.IO.BinaryWriter對象的建構子並傳遞System.IO.FileStream對象,以建立<a0/>對象。
    • 調用System.IO.BinaryWriter物件的Write方法並傳遞位元組陣列,將位元組陣列的內容寫入PDF檔案。

另請參閱

步驟摘要

使用MTOM叫用AEM Forms

使用SwaRef叫用AEM表格

使用憑證加密PDF檔案

憑證式加密可讓您透過公開金鑰技術,為特定收件者加密檔案。 可以為不同的收件者授予不同的檔案權限。 公鑰技術使加密的許多方面成為可能。 演算法用來產生兩個大數字,稱為​keys,具有以下屬性:

  • 一個密鑰用於加密一組資料。 隨後,只能使用其他密鑰解密資料。
  • 不可能區分一把鑰匙和另一把鑰匙。

其中一個金鑰可當成使用者的私密金鑰。 請務必僅讓使用者存取此金鑰。 另一個金鑰是使用者的公開金鑰,可與其他人共用。

公開金鑰憑證包含使用者的公開金鑰和識別資訊。 X.509格式用於儲存憑證。 證書通常由證書頒發機構(CA)核發和數位簽名,該機構是一個認可的實體,提供對證書有效性的信任度。 憑證有到期日,之後即不再有效。 此外,證書撤銷清單(CRL)提供在證書到期日前被撤銷的證書資訊。 憑證授權機構會定期發佈CRL。 證書的撤銷狀態也可以通過網路上的聯機證書狀態協定(OCSP)來檢索。

注意

如果您將加密的PDF檔案上傳至AEM Forms存放庫,它將無法解密PDF檔案並擷取XDP內容。 建議您不要在將檔案上傳至AEM Forms儲存庫之前加密檔案。 (請參閱編寫資源。)

注意

您必須先確保將憑證新增至AEM Forms,才能使用憑證加密PDF檔案。 憑證是使用管理控制台或使用信任管理器API以程式設計方式新增。 (請參閱使用Trust Manager API匯入認證。)

注意

如需加密服務的詳細資訊,請參閱AEM Forms的服務參考

步驟摘要

要使用證書加密PDF文檔,請執行以下步驟:

  1. 包含專案檔案。
  2. 建立加密客戶端API對象。
  3. 取得要加密的PDF檔案。
  4. 參考憑證。
  5. 設定加密運行時選項。
  6. 建立憑證加密的PDF檔案。
  7. 將加密的PDF檔案儲存為PDF檔案。

包含專案檔案

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

必須將下列JAR檔案添加到項目的類路徑中:

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-encryption-client.jar
  • adobe-utilities.jar(如果AEM Forms部署在JBoss Application Server上,則為必要項)
  • jbossall-client.jar(如果AEM Forms部署在JBoss Application Server上,則為必需)

建立加密客戶端API對象

要以寫程式方式執行加密服務操作,必須建立加密服務客戶端。 如果您使用Java Encryption Service API,請建立EncrytionServiceClient物件。 如果您使用Web服務Encryption Service API,請建立EncryptionServiceService對象。

取得PDF檔案以加密

您必須取得未加密的PDF檔案才能加密。 如果您嘗試保護已加密的PDF檔案,則會擲出例外。

參考憑證

若要使用憑證來加密PDF檔案,請參考用來加密PDF檔案的憑證。 憑證是。cer檔案、.crt檔案或。pem檔案。 PKCS#12檔案用於儲存具有相應證書的私鑰。

使用憑證加密PDF檔案時,請指定與安全檔案相關的權限。 透過指定權限,您可以控制開啟憑證加密PDF檔案的使用者可執行的動作。

設定加密運行時選項

指定要加密的PDF檔案資源。 您可以加密整份PDF檔案、除檔案中繼資料以外的所有內容,或僅加密檔案的附件。

建立憑證加密的PDF檔案

擷取不安全的PDF檔案、參考憑證並設定執行時期選項後,您就可以建立憑證加密的PDF檔案。 在PDF檔案加密後,您需要對應的公開金鑰才能解密。

將加密的PDF檔案儲存為PDF檔案

您可以將加密的PDF檔案儲存為PDF檔案。

另請參閱

使用Java API使用憑證加密PDF檔案

使用web service API使用憑證加密PDF檔案

包含AEM Forms Java程式庫檔案

設定連接屬性

Encryption Service API快速入門

使用密碼加密PDF檔案

使用Java API使用憑證加密PDF檔案

使用Encryption API(Java)使用憑證來加密PDF檔案:

  1. 包含專案檔案。

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

  2. 建立加密客戶端API對象。

    • 建立包含連接屬性的ServiceClientFactory對象。
    • 使用其建構子並傳遞ServiceClientFactory對象,建立EncryptionServiceClient對象。
  3. 取得要加密的PDF檔案。

    • 建立java.io.FileInputStream對象,該對象表示要加密的PDF文檔,方法是使用其建構子並傳遞指定PDF文檔位置的字串值。
    • 使用其建構子並傳遞java.io.FileInputStream對象,建立com.adobe.idp.Document對象。
  4. 參考憑證。

    • 使用java.util.List的建構函式建立可儲存權限資訊的<a0/>物件。
    • 調用java.util.List物件的add方法並傳遞CertificateEncryptionPermissions列舉值,以指定與加密檔案相關的權限,此列舉值代表授予開啟安全PDF檔案之使用者的權限。 例如,若要指定所有權限,請傳遞CertificateEncryptionPermissions.PKI_ALL_PERM
    • 使用其建構子建立Recipient對象。
    • 建立java.io.FileInputStream對象,該對象表示通過使用其建構子並傳遞指定證書位置的字串值來加密PDF文檔的證書。
    • 使用其建構子並傳遞代表證書的java.io.FileInputStream對象,建立com.adobe.idp.Document對象。
    • 叫用Recipient物件的setX509Cert方法,並傳遞包含憑證的com.adobe.idp.Document物件。 (此外,Recipient物件可以有Truststore憑證別名或LDAP URL做為憑證來源)。
    • 使用CertificateEncryptionIdentity的建構函式建立可儲存權限和憑證資訊的<a0/>物件。
    • 叫用CertificateEncryptionIdentity物件的setPerms方法,並傳遞儲存權限資訊的java.util.List物件。
    • 叫用CertificateEncryptionIdentity物件的setRecipient方法,並傳遞儲存憑證資訊的Recipient物件。
    • 使用java.util.List的建構函式建立儲存憑證資訊的<a0/>物件。
    • 叫用java.util.List物件的add方法並傳遞CertificateEncryptionIdentity物件。 (此java.util.List對象作為參數傳遞給encryptPDFUsingCertificates方法。)
  5. 設定加密運行時選項。

    • 通過調用CertificateEncryptionOptionSpec對象的建構子建立<a0/>對象。
    • 調用CertificateEncryptionOptionSpec物件的setOption方法並傳遞指定要加密之檔案資源的CertificateEncryptionOption列舉值,以指定要加密的PDF檔案資源。 例如,若要加密整個PDF檔案,包括其中繼資料及其附件,請指定CertificateEncryptionOption.ALL
    • 調用CertificateEncryptionOptionSpec物件的setCompat方法並傳遞指定Acrobat相容性等級的CertificateEncryptionCompatibility列舉值,以指定Acrobat相容性選項。 例如,您可以指定CertificateEncryptionCompatibility.ACRO_7
  6. 建立憑證加密的PDF檔案。

    使用憑證來加密PDF檔案,方法是叫用EncryptionServiceClient物件的encryptPDFUsingCertificates方法並傳遞下列值:

    • 包含要加密的PDF文檔的com.adobe.idp.Document對象。
    • 儲存證書資訊的java.util.List對象。
    • 包含加密運行時選項的CertificateEncryptionOptionSpec對象。

    encryptPDFUsingCertificates方法會傳回包含憑證加密PDF檔案的com.adobe.idp.Document物件。

  7. 將加密的PDF檔案儲存為PDF檔案。

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

另請參閱

步驟摘要

快速入門(SOAP模式):使用Java API使用憑證加密PDF檔案

包含AEM Forms Java程式庫檔案

設定連接屬性

使用web service API使用憑證加密PDF檔案

使用Encryption API(web service)使用憑證來加密PDF檔案:

  1. 包含專案檔案。

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

    注意

    localhost取代為代管AEM Forms之伺服器的IP位址。

  2. 建立加密客戶端API對象。

    • 使用其預設建構子建立EncryptionServiceClient對象。

    • 使用System.ServiceModel.EndpointAddress建構函式建立EncryptionServiceClient.Endpoint.Address物件。 將指定WSDL的字串值傳遞至AEM Forms服務(例如http://localhost:8080/soap/services/EncryptionService?WSDL)。 您不需要使用lc_version屬性。 建立服務參考時,將使用此屬性。)

    • 獲取EncryptionServiceClient.Endpoint.Binding欄位的值,建立System.ServiceModel.BasicHttpBinding對象。 將返回值轉換為BasicHttpBinding

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

    • 執行下列工作以啟用基本HTTP驗證:

      • 將AEM表單使用者名稱指派給欄位EncryptionServiceClient.ClientCredentials.UserName.UserName
      • 將相應的口令值分配給欄位EncryptionServiceClient.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對象的<a1/>屬性指定位元組陣列的內容來填充BLOB對象。
  4. 參考憑證。

    • 使用其建構子建立Recipient對象。 此對象將儲存證書資訊。
    • 使用其建構子建立BLOB對象。 此BLOB物件會儲存加密PDF檔案的憑證。
    • 通過調用System.IO.FileStream對象的建構子並傳遞一個字串值來建立<a0/>對象,該字串值表示證書的檔案位置以及開啟檔案的模式。
    • 建立儲存System.IO.FileStream對象內容的位元組陣列。 您可以取得System.IO.FileStream物件的Length屬性,以判斷位元組陣列的大小。
    • 調用System.IO.FileStream物件的Read方法,並傳遞要讀取的位元組陣列、開始位置和串流長度,以串流資料填入位元組陣列。
    • 將位元組陣列的內容分配給BLOB對象的MTOM資料成員,以填充BLOB對象。
    • 將儲存憑證的BLOB物件指派給Recipient物件的x509Cert資料成員。
    • 使用CertificateEncryptionIdentity的建構函式建立儲存憑證資訊的<a0/>物件。
    • 將儲存憑證的Recipient物件指派給CertificateEncryptionIdentity物件的收件者資料成員。
    • 建立Object陣列,並將CertificateEncryptionIdentity對象分配給Object陣列的第一個元素。 此Object陣列作為參數傳遞給encryptPDFUsingCertificates方法。
  5. 設定加密運行時選項。

    • 使用其建構子建立CertificateEncryptionOptionSpec對象。
    • CertificateEncryptionOptionSpec物件的option資料成員指派CertificateEncryptionOption列舉值,以指定要加密的PDF檔案資源。 要加密整個PDF文檔,包括其元資料及其附件,請將CertificateEncryptionOption.ALL分配給此資料成員。
    • CertificateEncryptionOptionSpec物件的compat資料成員指派CertificateEncryptionCompatibility列舉值,以指定Acrobat相容性選項。 例如,將CertificateEncryptionCompatibility.ACRO_7指派給此資料成員。
  6. 建立憑證加密的PDF檔案。

    使用憑證來加密PDF檔案,方法是叫用EncryptionServiceService物件的encryptPDFUsingCertificates方法並傳遞下列值:

    • 包含要加密的PDF文檔的BLOB對象。
    • 儲存證書資訊的Object陣列。
    • 包含加密運行時選項的CertificateEncryptionOptionSpec對象。

    encryptPDFUsingCertificates方法會傳回包含憑證加密PDF檔案的BLOB物件。

  7. 將加密的PDF檔案儲存為PDF檔案。

    • 通過調用System.IO.FileStream對象的建構子並傳遞一個字串值來建立<a0/>對象,該字串值表示受保護PDF文檔的檔案位置。
    • 建立一個位元組陣列,用於儲存encryptPDFUsingCertificates方法返回的BLOB對象的資料內容。 獲取BLOB對象binaryData資料成員的值,以填充位元組陣列。
    • 調用System.IO.BinaryWriter對象的建構子並傳遞System.IO.FileStream對象,以建立<a0/>對象。
    • 調用System.IO.BinaryWriter物件的Write方法並傳遞位元組陣列,將位元組陣列的內容寫入PDF檔案。

另請參閱

步驟摘要

使用MTOM叫用AEM Forms

使用SwaRef叫用AEM表格

刪除基於證書的加密

您可從PDF檔案移除憑證式加密,讓使用者在Adobe Reader或Acrobat中開啟PDF檔案。 若要從使用憑證加密的PDF檔案移除加密,必須參考公開金鑰。 從PDF檔案移除加密後,就不再安全。

注意

如需加密服務的詳細資訊,請參閱AEM Forms的服務參考

步驟摘要

要從PDF文檔中刪除基於證書的加密,請執行以下步驟:

  1. 包含專案檔案。
  2. 建立加密服務客戶端。
  3. 取得加密的PDF檔案。
  4. 刪除加密。
  5. 將PDF檔案儲存為PDF檔案。

包含專案檔案

將必要的檔案加入您的開發專案中。 如果要使用Java建立客戶端應用程式,請包括必要的JAR檔案。 如果您使用web services,請確定您包含proxy檔案。

必須將下列JAR檔案添加到項目的類路徑中:

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-encryption-client.jar
  • adobe-utilities.jar(如果AEM Forms部署在JBoss Application Server上,則為必要項)
  • jbossall-client.jar(如果AEM Forms部署在JBoss Application Server上,則為必需)

建立加密服務客戶端

要以寫程式方式執行加密服務操作,必須建立加密服務客戶端。 如果您使用Java Encryption Service API,請建立EncrytionServiceClient物件。 如果您使用Web服務Encryption Service API,請建立EncryptionServiceService對象。

取得加密的PDF檔案

您必須取得加密的PDF檔案,才能移除憑證式加密。 如果您嘗試從未加密的PDF檔案移除加密,則會擲出例外。 同樣地,如果您嘗試從密碼加密的檔案中移除憑證式加密,則會擲出例外。

刪除加密

若要從加密的PDF檔案移除憑證式加密,您需要加密的PDF檔案和與用來加密PDF檔案的金鑰相對應的私密金鑰。 從加密的PDF檔案移除憑證式加密時,會指定私密金鑰的別名值。 如需公開金鑰的詳細資訊,請參閱使用憑證加密PDF檔案

注意

私密金鑰會儲存在AEM Forms信任商店中。 將證書放在那裡時,會指定別名值。

儲存PDF檔案

從加密的PDF檔案移除憑證式加密後,您就可將PDF檔案儲存為PDF檔案。 使用者可在Adobe Reader或Acrobat中開啟PDF檔案。

另請參閱

使用Java API移除憑證式加密

使用web service API移除憑證式加密

包含AEM Forms Java程式庫檔案

設定連接屬性

Encryption Service API快速入門

使用Java API移除憑證式加密

使用Encryption API(Java)從PDF檔案移除憑證式加密:

  1. 包含專案檔案。

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

  2. 建立加密服務客戶端。

    • 建立包含連接屬性的ServiceClientFactory對象。
    • 使用其建構子並傳遞ServiceClientFactory對象,建立EncryptionServiceClient對象。
  3. 取得加密的PDF檔案。

    • 使用其建構函式並傳遞指定加密PDF檔案位置的字串值,建立代表加密PDF檔案的java.io.FileInputStream物件。
    • 使用其建構子並傳遞java.io.FileInputStream對象,建立com.adobe.idp.Document對象。
  4. 刪除加密。

    調用EncryptionServiceClient物件的removePDFCertificateSecurity方法並傳遞下列值,以移除PDF檔案中的憑證式加密:

    • 包含加密PDF文檔的com.adobe.idp.Document對象。
    • 一個字串值,它指定與用於加密PDf文檔的密鑰相對應的私鑰的別名。

    removePDFCertificateSecurity方法傳回包含不安全PDF檔案的com.adobe.idp.Document物件。

  5. 儲存PDF檔案。

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

另請參閱

步驟摘要

快速入門(SOAP模式):使用Java API移除憑證式加密

包含AEM Forms Java程式庫檔案

設定連接屬性

使用web service API移除憑證式加密

使用Encryption API(web service)移除憑證式加密:

  1. 包含專案檔案。

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

    注意

    localhost取代為代管AEM Forms之伺服器的IP位址。

  2. 建立加密服務客戶端。

    • 使用其預設建構子建立EncryptionServiceClient對象。

    • 使用System.ServiceModel.EndpointAddress建構函式建立EncryptionServiceClient.Endpoint.Address物件。 將指定WSDL的字串值傳遞至AEM Forms服務(例如http://localhost:8080/soap/services/EncryptionService?WSDL)。 您不需要使用lc_version屬性。 建立服務參考時,將使用此屬性。)

    • 獲取EncryptionServiceClient.Endpoint.Binding欄位的值,建立System.ServiceModel.BasicHttpBinding對象。 將返回值轉換為BasicHttpBinding

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

    • 執行下列工作以啟用基本HTTP驗證:

      • 將AEM表單使用者名稱指派給欄位EncryptionServiceClient.ClientCredentials.UserName.UserName
      • 將相應的口令值分配給欄位EncryptionServiceClient.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資料成員,以填充BLOB對象。
  4. 刪除加密。

    叫用EncryptionServiceClient物件的removePDFCertificateSecurity方法並傳遞下列值:

    • BLOB物件,包含代表加密PDF檔案的檔案串流資料。
    • 一個字串值,它指定與用於加密PDf文檔的私鑰相對應的公鑰的別名。

    removePDFCredentialSecurity方法傳回包含不安全PDF檔案的BLOB物件。

  5. 儲存PDF檔案。

    • 通過調用System.IO.FileStream對象的建構子並傳遞一個字串值來建立<a0/>對象,該字串值表示不安全PDF文檔的檔案位置。
    • 建立一個位元組陣列,用於儲存removePDFPasswordSecurity方法返回的BLOB對象的內容。 獲取BLOB對象MTOM資料成員的值,以填充位元組陣列。
    • 調用System.IO.BinaryWriter對象的建構子並傳遞System.IO.FileStream對象,以建立<a0/>對象。
    • 調用System.IO.BinaryWriter物件的Write方法並傳遞位元組陣列,將位元組陣列的內容寫入PDF檔案。

另請參閱

步驟摘要

使用MTOM叫用AEM Forms

使用SwaRef叫用AEM表格

刪除密碼加密

您可從PDF檔案移除密碼加密,讓使用者在Adobe Reader或Acrobat中開啟PDF檔案,而不需指定密碼。 從PDF檔案移除密碼加密後,檔案就不再安全。

注意

如需加密服務的詳細資訊,請參閱AEM Forms的服務參考

步驟摘要

要從PDF文檔中刪除基於密碼的加密,請執行以下步驟:

  1. 包含專案檔案
  2. 建立加密服務客戶端。
  3. 取得加密的PDF檔案。
  4. 刪除密碼。
  5. 將PDF檔案儲存為PDF檔案。

包含專案檔案

將必要的檔案加入您的開發專案中。 如果要使用Java建立客戶端應用程式,請包括必要的JAR檔案。 如果您使用web services,請確定您包含proxy檔案。

必須將下列JAR檔案添加到項目的類路徑中:

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-encryption-client.jar
  • adobe-utilities.jar(若AEM Forms部署在JBoss上,則為必要項)
  • jbossall-client.jar(如果AEM Forms部署在JBoss上,則為必要)

建立加密服務客戶端

要以寫程式方式執行加密服務操作,必須建立加密服務客戶端。 如果您使用Java Encryption Service API,請建立EncrytionServiceClient物件。 如果您使用Web服務Encryption Service API,請建立EncryptionServiceService對象。

取得加密的PDF檔案

您必須取得加密的PDF檔案,才能移除密碼型加密。 如果您嘗試從未加密的PDF檔案移除加密,則會擲出例外。

刪除密碼

若要從加密的PDF檔案移除密碼型加密,您需要加密的PDF檔案和用於從PDF檔案移除加密的主密碼值。 用於開啟密碼加密的PDF文檔的密碼不能用於刪除加密。 當使用密碼加密PDF檔案時,會指定主密碼。 (請參閱使用密碼加密PDF檔案)。

儲存PDF檔案

在Encryption服務移除PDF檔案中以密碼為基礎的加密後,您可以將PDF檔案儲存為PDF檔案。 使用者可以在Adobe Reader或Acrobat中開啟PDF檔案,毋需指定密碼。

另請參閱

包含AEM Forms Java程式庫檔案

設定連接屬性

Encryption Service API快速入門

使用密碼加密PDF檔案

使用Java API移除密碼加密

使用Encryption API(Java)從PDF檔案移除密碼加密:

  1. 包含專案檔案。

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

  2. 建立加密服務客戶端。

    • 建立包含連接屬性的ServiceClientFactory對象。
    • 使用其建構子並傳遞ServiceClientFactory對象,建立EncryptionServiceClient對象。
  3. 取得加密的PDF檔案。

    • 使用其建構函式並傳遞指定PDF檔案位置的字串值,建立代表加密PDF檔案的java.io.FileInputStream物件。
    • 使用其建構子並傳遞java.io.FileInputStream對象,建立com.adobe.idp.Document對象。
  4. 刪除密碼。

    調用EncryptionServiceClient物件的removePDFPasswordSecurity方法並傳遞下列值,以移除PDF檔案中以密碼為基礎的加密:

    • com.adobe.idp.Document物件,其中包含加密的PDF檔案。
    • 一個字串值,它指定用於從PDF文檔中刪除加密的主密碼值。

    removePDFPasswordSecurity方法傳回包含不安全PDF檔案的com.adobe.idp.Document物件。

  5. 儲存PDF檔案。

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

另請參閱

快速入門(SOAP模式):使用Java API移除密碼加密

使用web service API刪除基於密碼的加密

使用Encryption API(web service)移除密碼型加密:

  1. 包含專案檔案。

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

    注意

    localhost取代為代管AEM Forms之伺服器的IP位址。

  2. 建立加密服務客戶端。

    • 使用其預設建構子建立EncryptionServiceClient對象。

    • 使用System.ServiceModel.EndpointAddress建構函式建立EncryptionServiceClient.Endpoint.Address物件。 將指定WSDL的字串值傳遞至AEM Forms服務(例如http://localhost:8080/soap/services/EncryptionService?WSDL)。 您不需要使用lc_version屬性。 建立服務參考時,將使用此屬性。)

    • 獲取EncryptionServiceClient.Endpoint.Binding欄位的值,建立System.ServiceModel.BasicHttpBinding對象。 將返回值轉換為BasicHttpBinding

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

    • 執行下列工作以啟用基本HTTP驗證:

      • 將AEM表單使用者名稱指派給欄位EncryptionServiceClient.ClientCredentials.UserName.UserName
      • 將相應的口令值分配給欄位EncryptionServiceClient.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資料成員,以填充BLOB對象。
  4. 刪除密碼。

    叫用EncryptionServiceService物件的removePDFPasswordSecurity方法並傳遞下列值:

    • BLOB物件,包含代表加密PDF檔案的檔案串流資料。
    • 一個字串值,它指定用於從PDF文檔中刪除加密的口令值。 此值是在使用密碼加密PDF文檔時指定的。

    removePDFPasswordSecurity方法傳回包含不安全PDF檔案的BLOB物件。

  5. 儲存PDF檔案。

    • 通過調用System.IO.FileStream對象的建構子並傳遞一個字串值來建立<a0/>對象,該字串值表示不安全PDF文檔的檔案位置。
    • 建立一個位元組陣列,用於儲存removePDFPasswordSecurity方法返回的BLOB對象的內容。 獲取BLOB對象MTOM資料成員的值,以填充位元組陣列。
    • 調用System.IO.BinaryWriter對象的建構子並傳遞System.IO.FileStream對象,以建立<a0/>對象。
    • 調用System.IO.BinaryWriter物件的Write方法並傳遞位元組陣列,將位元組陣列的內容寫入PDF檔案。

另請參閱

使用MTOM叫用AEM Forms

使用SwaRef叫用AEM表格

解鎖加密的PDF檔案

必須先解除鎖定密碼加密或憑證加密的PDF檔案,才能對其執行其他AEM Forms作業。 如果您嘗試對加密的PDF檔案執行操作,將會產生例外。 在解除鎖定加密的PDF檔案後,您可以對其執行一或多個操作。 這些作業可以屬於其他服務,例如Acrobat Reader DC擴充功能服務。

注意

如需加密服務的詳細資訊,請參閱AEM Forms的服務參考

步驟摘要

要解除鎖定加密的PDF文檔,請執行以下步驟:

  1. 包含專案檔案。
  2. 建立加密服務客戶端。
  3. 取得加密的PDF檔案。
  4. 解除鎖定檔案。
  5. 執行AEM Forms作業。

包含專案檔案

將必要的檔案加入您的開發專案中。 如果要使用Java建立客戶端應用程式,請包括必要的JAR檔案。 如果您使用web services,請確定您包含proxy檔案。

必須將下列JAR檔案添加到項目的類路徑中:

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-encryption-client.jar
  • adobe-utilities.jar(如果AEM Forms部署在JBoss Application Server上,則為必要項)
  • jbossall-client.jar(如果AEM Forms部署在JBoss Application Server上,則為必需)

建立加密服務客戶端

要以寫程式方式執行加密服務操作,必須建立加密服務客戶端。 如果您使用Java Encryption Service API,請建立EncrytionServiceClient物件。 如果您使用Web服務Encryption Service API,請建立EncryptionServiceService對象。

取得加密的PDF檔案

您必須取得加密的PDF檔案,才能解除鎖定。 如果您嘗試解除鎖定未加密的PDF檔案,則會擲出例外。

解除鎖定檔案

若要解除鎖定密碼加密的PDF檔案,您需要加密的PDF檔案和用來開啟密碼加密的PDF檔案的密碼值。 此值是在使用密碼加密PDF文檔時指定的。 (請參閱使用密碼加密PDF檔案)。

若要解除鎖定憑證加密的PDF檔案,您需要加密的PDF檔案,以及與用來加密PDF檔案的私密金鑰相對應的公開金鑰別名值。

執行AEM Forms作業

在解除鎖定加密的PDF檔案後,您可以對其執行其他服務操作,例如套用使用權。 此操作屬於Acrobat Reader DC Extensions服務。

另請參閱

使用Java API解除鎖定加密的PDF檔案

使用web service API解除鎖定加密的PDF檔案

包含AEM Forms Java程式庫檔案

設定連接屬性

Encryption Service API快速入門

使用Java API解除鎖定加密的PDF檔案

使用加密API(Java)解除鎖定加密的PDF檔案:

  1. 包含專案檔案。

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

  2. 建立加密服務客戶端。

    • 建立包含連接屬性的ServiceClientFactory對象。
    • 使用其建構子並傳遞ServiceClientFactory對象,建立EncryptionServiceClient對象。
  3. 取得加密的PDF檔案。

    • 使用其建構函式並傳遞指定加密PDF檔案位置的字串值,建立代表加密PDF檔案的java.io.FileInputStream物件。
    • 使用其建構子並傳遞java.io.FileInputStream對象,建立com.adobe.idp.Document對象。
  4. 解除鎖定檔案。

    叫用EncryptionServiceClient物件的unlockPDFUsingPasswordunlockPDFUsingCredential方法,解除鎖定加密的PDF檔案。

    要解鎖使用密碼加密的PDF文檔,請調用unlockPDFUsingPassword方法並傳遞以下值:

    • com.adobe.idp.Document物件,其中包含密碼加密的PDF檔案。
    • 一個字串值,它指定用於開啟密碼加密的PDF文檔的密碼值。 此值是在使用密碼加密PDF文檔時指定的。

    要解鎖使用證書加密的PDF文檔,請調用unlockPDFUsingCredential方法並傳遞以下值:

    • com.adobe.idp.Document物件,其中包含憑證加密的PDF檔案。
    • 一個字串值,它指定與用於加密PDF文檔的私鑰相對應的公鑰的別名。

    unlockPDFUsingPasswordunlockPDFUsingCredential方法都會傳回您傳遞至其他AEM Forms Java方法以執行作業的com.adobe.idp.Document物件。

  5. 執行AEM Forms作業。

    對解除鎖定的PDF檔案執行AEM Forms作業,以符合您的業務需求。 例如,假設您要將使用權限套用至解除鎖定的PDF檔案,請將unlockPDFUsingPasswordunlockPDFUsingCredential方法傳回的com.adobe.idp.Document物件傳遞至ReaderExtensionsServiceClient物件的applyUsageRights方法。

另請參閱

步驟摘要

快速入門(SOAP模式):使用Java API (SOAP模式)解除加密的PDF檔案鎖定

將使用權套用至PDF檔案

包含AEM Forms Java程式庫檔案

設定連接屬性

使用web service API解除鎖定加密的PDF檔案

使用Encryption API(web service)解除鎖定加密的PDF檔案:

  1. 包含專案檔案。

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

    注意

    localhost取代為代管AEM Forms之伺服器的IP位址。

  2. 建立加密服務客戶端。

    • 使用其預設建構子建立EncryptionServiceClient對象。

    • 使用System.ServiceModel.EndpointAddress建構函式建立EncryptionServiceClient.Endpoint.Address物件。 將指定WSDL的字串值傳遞至AEM Forms服務(例如http://localhost:8080/soap/services/EncryptionService?WSDL)。 您不需要使用lc_version屬性。 建立服務參考時,將使用此屬性。)

    • 獲取EncryptionServiceClient.Endpoint.Binding欄位的值,建立System.ServiceModel.BasicHttpBinding對象。 將返回值轉換為BasicHttpBinding

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

    • 執行下列工作以啟用基本HTTP驗證:

      • 將AEM表單使用者名稱指派給欄位EncryptionServiceClient.ClientCredentials.UserName.UserName
      • 將相應的口令值分配給欄位EncryptionServiceClient.ClientCredentials.UserName.Password
      • 將常數值HttpClientCredentialType.Basic分配給欄位BasicHttpBindingSecurity.Transport.ClientCredentialType
      • 將常數值BasicHttpSecurityMode.TransportCredentialOnly分配給欄位BasicHttpBindingSecurity.Security.Mode
  3. 取得加密的PDF檔案。

    • 使用其建構子建立BLOB對象。
    • 通過調用其建構子並傳遞一個字串值來建立System.IO.FileStream對象,該字串值表示加密的PDF文檔的檔案位置以及開啟檔案的模式。
    • 建立儲存System.IO.FileStream對象內容的位元組陣列。 您可以取得System.IO.FileStream物件的Length屬性,以判斷位元組陣列的大小。
    • 調用System.IO.FileStream物件的Read方法,並傳遞要讀取的位元組陣列、開始位置和串流長度,以串流資料填入位元組陣列。
    • 將位元組陣列的內容分配給BLOB對象的MTOM資料成員,以填充BLOB對象。
  4. 解除鎖定檔案。

    叫用EncryptionServiceClient物件的unlockPDFUsingPasswordunlockPDFUsingCredential方法,解除鎖定加密的PDF檔案。

    要解鎖使用密碼加密的PDF文檔,請調用unlockPDFUsingPassword方法並傳遞以下值:

    • BLOB物件,其中包含密碼加密的PDF檔案。
    • 一個字串值,它指定用於開啟密碼加密的PDF文檔的密碼值。 此值是在使用密碼加密PDF文檔時指定的。

    要解鎖使用證書加密的PDF文檔,請調用unlockPDFUsingCredential方法並傳遞以下值:

    • BLOB物件,其中包含憑證加密的PDF檔案。
    • 一個字串值,它指定與用於加密PDf文檔的私鑰相對應的公鑰的別名。

    unlockPDFUsingPasswordunlockPDFUsingCredential方法都會傳回您傳遞至其他AEM Forms方法以執行作業的com.adobe.idp.Document物件。

  5. 執行AEM Forms作業。

    對解除鎖定的PDF檔案執行AEM Forms作業,以符合您的業務需求。 例如,假設您要將使用權限套用至解除鎖定的PDF檔案,請將unlockPDFUsingPasswordunlockPDFUsingCredential方法傳回的BLOB物件傳遞至ReaderExtensionsServiceClient物件的applyUsageRights方法。

另請參閱

步驟摘要

使用MTOM叫用AEM Forms

使用SwaRef叫用AEM表格

確定加密類型

您可以使用Java Encryption Service API或web service Encryption Service API,以程式設計方式決定要保護PDF檔案的加密類型。 有時需要動態判斷PDF檔案是否已加密,若已加密,則需要加密類型。 例如,您可以決定PDF檔案是使用密碼加密或Rights Management原則來保護。

PDF檔案可受下列加密類型保護:

  • 密碼加密
  • 憑證式加密
  • 由Rights Management服務建立的策略
  • 另一種加密
注意

如需加密服務的詳細資訊,請參閱AEM Forms的服務參考

步驟摘要

要確定保護PDF文檔的加密類型,請執行以下步驟:

  1. 包含專案檔案。
  2. 建立加密服務客戶端。
  3. 取得加密的PDF檔案。
  4. 確定加密類型。

包含專案檔案

將必要的檔案加入您的開發專案中。 如果要使用Java建立客戶端應用程式,請包括必要的JAR檔案。 如果您使用web services,請確定您包含proxy檔案。

必須將下列JAR檔案添加到項目的類路徑中:

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-encryption-client.jar
  • adobe-utilities.jar(如果AEM Forms部署在JBoss Application Server上,則為必要項)
  • jbossall-client.jar(如果AEM Forms部署在JBoss Application Server上,則為必需)

建立服務客戶端

要以寫程式方式執行加密服務操作,必須建立加密服務客戶端。 如果您使用Java Encryption Service API,請建立EncrytionServiceClient物件。 如果您使用Web服務Encryption Service API,請建立EncryptionServiceService對象。

取得加密的PDF檔案

您必須取得PDF檔案,以決定要保護它的加密類型。

確定加密類型

您可以決定保護PDF檔案的加密類型。 如果PDF檔案未受保護,則加密服務會通知您PDF檔案未受到保護。

另請參閱

使用Java API確定加密類型

使用web service API確定加密類型

包含AEM Forms Java程式庫檔案

設定連接屬性

Encryption Service API快速入門

使用原則保護檔案

使用Java API確定加密類型

使用Encryption API(Java)確定保護PDF檔案的加密類型:

  1. 包含專案檔案。

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

  2. 建立服務客戶端。

    • 建立包含連接屬性的ServiceClientFactory對象。
    • 使用其建構子並傳遞ServiceClientFactory對象,建立EncryptionServiceClient對象。
  3. 取得加密的PDF檔案。

    • 使用PDF檔案的建構函式並傳遞指定PDF檔案位置的字串值,建立代表PDF檔案的java.io.FileInputStream物件。
    • 使用其建構子並傳遞java.io.FileInputStream對象,建立com.adobe.idp.Document對象。
  4. 確定加密類型。

    • 調用EncryptionServiceClient物件的getPDFEncryption方法並傳遞包含PDF檔案的com.adobe.idp.Document物件,以判斷加密類型。 此方法返回EncryptionTypeResult對象。
    • 叫用EncryptionTypeResult物件的getEncryptionType方法。 此方法傳回指定加密類型的EncryptionType列舉值。 例如,如果PDF檔案受到密碼加密的保護,此方法會傳回EncryptionType.PASSWORD

另請參閱

步驟摘要

快速入門(SOAP模式):使用Java API確定加密類型

包含AEM Forms Java程式庫檔案

設定連接屬性

使用web service API確定加密類型

使用Encryption API(web service)確定保護PDF檔案的加密類型:

  1. 包含專案檔案。

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

    注意

    localhost取代為代管AEM Forms之伺服器的IP位址。

  2. 建立服務客戶端。

    • 使用其預設建構子建立EncryptionServiceClient對象。

    • 使用System.ServiceModel.EndpointAddress建構函式建立EncryptionServiceClient.Endpoint.Address物件。 將指定WSDL的字串值傳遞至AEM Forms服務(例如http://localhost:8080/soap/services/EncryptionService?WSDL)。 您不需要使用lc_version屬性。 建立服務參考時,將使用此屬性。)

    • 獲取EncryptionServiceClient.Endpoint.Binding欄位的值,建立System.ServiceModel.BasicHttpBinding對象。 將返回值轉換為BasicHttpBinding

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

    • 執行下列工作以啟用基本HTTP驗證:

      • 將AEM表單使用者名稱指派給欄位EncryptionServiceClient.ClientCredentials.UserName.UserName
      • 將相應的口令值分配給欄位EncryptionServiceClient.ClientCredentials.UserName.Password
      • 將常數值HttpClientCredentialType.Basic分配給欄位BasicHttpBindingSecurity.Transport.ClientCredentialType
      • 將常數值BasicHttpSecurityMode.TransportCredentialOnly分配給欄位BasicHttpBindingSecurity.Security.Mode
  3. 取得加密的PDF檔案。

    • 使用其建構子建立BLOB對象。
    • 通過調用其建構子並傳遞一個字串值來建立System.IO.FileStream對象,該字串值表示加密的PDF文檔的檔案位置以及開啟檔案的模式。
    • 建立儲存System.IO.FileStream對象內容的位元組陣列。 您可以取得System.IO.FileStream物件的Length屬性,以判斷位元組陣列的大小。
    • 調用System.IO.FileStream物件的Read方法,並傳遞要讀取的位元組陣列、開始位置和串流長度,以串流資料填入位元組陣列。
    • 將位元組陣列的內容分配給BLOB對象的MTOM資料成員,以填充BLOB對象。
  4. 確定加密類型。

    • 叫用EncryptionServiceClient物件的getPDFEncryption方法,並傳遞包含PDF檔案的BLOB物件。 此方法返回EncryptionTypeResult對象。
    • 取得EncryptionTypeResult物件的encryptionType資料方法的值。 例如,如果PDF檔案使用密碼加密進行保護,則此資料成員的值為EncryptionType.PASSWORD

另請參閱

步驟摘要

使用MTOM叫用AEM Forms

使用SwaRef叫用AEM表格

本頁內容