加密和解密PDF文档

关于加密服务

Encryption服务允许您加密和解密文档。 文档加密后,其内容将变得不可读。 授权用户可解密文档以获得对内容的访问。 如果PDF文档使用密码进行加密,则用户必须指定打开密码,才能在Adobe Reader或Adobe Acrobat中查看文档。 同样,如果PDF文档使用证书加密,则用户必须使用与用于加密PDF文档的证书(私钥)对应的公钥对PDF文档进行解密。

您可以使用加密服务完成以下任务:

注意

有关加密服务的详细信息,请参 阅AEM Forms的服务参考

使用密码加密PDF文档

当您使用口令加密PDF文档时,用户必须指定口令才能在Adobe Reader或Acrobat中打开PDF文档。 此外,在对PDF文档进行数字签名等其他AEM表单操作之前,必须先对文档执行密码加密的PDF文档。

注意

如果将加密的PDF文档上传到AEM Forms存储库,则它将无法解密PDF文档并提取XDP内容。 建议在将文档上传到AEM Forms存储库之前,不要加密该订阅。 (请参阅 编写资源。)

注意

有关加密服务的详细信息,请参 阅AEM Forms的服务参考

步骤摘要

要使用口令加密PDF文档,请执行以下步骤:

  1. 包括项目文件。
  2. 创建Encryption Client API对象。
  3. 获取要加密的PDF文档。
  4. 设置加密运行时选项。
  5. 添加密码。
  6. 将加密的PDF文档另存为PDF文件。

包括项目文件

在开发项目中包含必要的文件。 如果您使用Java创建客户端应用程序,请包含必要的JAR文件。 如果您使用Web服务,请确保包含代理文件。

以下JAR文件必须添加到项目的类路径中:

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-encryption-client.jar
  • adobe-utilities.jar(在JBoss上部署AEM表单时为必需)
  • jbossall-client.jar(在JBoss上部署AEM表单时需要)

创建加密客户端API对象

要以编程方式执行加密服务操作,必须创建加密服务客户端。

获取要加密的PDF文档

您必须获得未加密的PDF文档,才能使用密码加密文档。 如果尝试保护已加密的PDF文档,则会引起异常。

设置加密运行时选项

要使用口令加密PDF文档,请指定四个值,包括两个口令值。 第一个口令值用于加密PDF文档,打开PDF文档时必须指定该值。 第二个口令值(名为主口令值)用于从PDF文档中删除加密。 密码值区分大小写,这两个密码值不能相同。

必须指定要加密的PDF文档资源。 您可以加密整个PDF文档,除文档元数据之外的所有内容,或仅加密文档的附件。 如果仅加密文档的附件,则用户尝试访问文件附件时会提示输入口令。

在加密PDF文档时,您可以指定与安全文档关联的权限。 通过指定权限,您可以控制打开密码加密的PDF文档的用户允许执行的操作。 例如,要成功提取表单数据,您必须设置以下权限:

  • PASSWORD_EDIT_ADD
  • PASSWORD_EDIT_MODIFY
注意

权限指定为 PasswordEncryptionPermission 明细列表值。

添加密码

在检索不安全的PDF文档并设置加密运行时值后,可向PDF文档添加密码。

将加密的PDF文档另存为PDF文件

您可以将密码加密的PDF文档另存为PDF文件。

另请参阅

使用Java API加密PDF文档

使用Web服务API加密PDF文档

包括AEM Forms Java库文件

设置连接属性

Encryption Service API快速开始

使用证书加密PDF文档

使用Java API加密PDF文档

使用加密API(Java)使用口令加密PDF文档:

  1. 包括项目文件。

    在Java项目的类路径中包含客户端JAR文件,如adobe-encryption-client.jar。

  2. 创建加密客户端API。

    • 创建包 ServiceClientFactory 含连接属性的对象。
    • 使用对 EncryptionServiceClient 象的构造函数并传递该对 ServiceClientFactory 象。
  3. 获取要加密的PDF文档。

    • 创建一 java.io.FileInputStream 个对象,它表示要加密的PDF文档,方法是使用其构造函数并传递一个指定PDF文档位置的字符串值。
    • 使用对 com.adobe.idp.Document 象的构造函数并传递该对象来创建 java.io.FileInputStream 对象。
  4. 设置加密运行时选项。

    • 通过调 PasswordEncryptionOptionSpec 用对象的构造函数创建对象。
    • 通过调用对象的方法并传递指定要加密的文档 PasswordEncryptionOptionSpec 资源的文档 setEncryptOption 值,指定要加 PasswordEncryptionOption 密的PDF明细列表资源。 例如,要加密整个PDF文档,包括其元数据及其附件,请指定 PasswordEncryptionOption.ALL
    • 使用构 java.util.List 造函数创建存储加密权限的对 ArrayList 象。
    • 通过调用对象“s java.util.List 方法”并传 add 递与要设置的权限对应的明细列表值来指定权限。 例如,要设置允许用户复制PDF文档中的数据的权限,请指定 PasswordEncryptionPermission.PASSWORD_EDIT_COPY。 (对于要设置的每个权限,重复此步骤)。
    • 通过调用对象的方法并传递指定Acrobat PasswordEncryptionOptionSpec 兼容性级 setCompatability 别的明细列表值,指定Acrobat兼容性选项。 For example, you can specify PasswordEncryptionCompatability.ACRO_7.
    • 指定密码值,允许用户通过调用对象的方法并传递表示打开密码的 PasswordEncryptionOptionSpec 字符串值 setDocumentOpenPassword 来打开加密的PDF文档。
    • 指定主口令值,该值允许用户通过调用对象的方法并传递表示主口令的字符串值 PasswordEncryptionOptionSpec , setPermissionPassword 从PDF文档中删除加密。
  5. 添加密码。

    通过调用对象的方法并传 EncryptionServiceClient 递以下值 encryptPDFUsingPassword 来加密PDF文档:

    • com.adobe.idp.Document 含要使用口令加密的PDF文档的对象。
    • 包含 PasswordEncryptionOptionSpec 加密运行时选项的对象。

    该方 encryptPDFUsingPassword 法返回一个 com.adobe.idp.Document 对象,该对象包含密码加密的PDF文档。

  6. 将加密的PDF文档另存为PDF文件。

    • 创建一 java.io.File 个对象,并确保文件扩展名为。pdf。
    • 调用对 com.adobe.idp.Document 象的方 copyToFile 法,将对象的内容复 com.adobe.idp.Document 制到文件。 确保使用由 com.adobe.idp.Document 该方法返回的对 encryptPDFUsingPassword 象。

另请参阅

步骤摘要

快速开始(SOAP模式):使用Java API加密PDF文档

包括AEM Forms Java库文件

设置连接属性

使用Web服务API加密PDF文档

使用Encryption API(Web服务)使用口令加密PDF文档:

  1. 包括项目文件。

    创建使用MTOM的Microsoft .NET项目。 确保使用以下WSDL定义: http://localhost:8080/soap/services/EncryptionService?WSDL&lc_version=9.0.1.

    注意

    替换 localhost 为承载AEM Forms的服务器的IP地址。

  2. 创建Encryption Client API对象。

    • 使用对 EncryptionServiceClient 象的默认构造函数创建对象。

    • 使用构 EncryptionServiceClient.Endpoint.Address 造函数创建对 System.ServiceModel.EndpointAddress 象。 将指定WSDL的字符串值传递给AEM Forms服务(例如, http://localhost:8080/soap/services/EncryptionService?WSDL.)您无需使用该属 lc_version 性。 在创建服务引用时,会使用此属性。)

    • 通过 System.ServiceModel.BasicHttpBinding 获取字段的值创建对 EncryptionServiceClient.Endpoint.Binding 象。 将返回值转换为 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 节数组的内容分配给对象的数据成 BLOB 员,以填充 MTOM 对象。
  4. 设置加密运行时选项。

    • 使用对 PasswordEncryptionOptionSpec 象的构造函数创建对象。
    • 通过为对象的数据成员分配文档值, PasswordEncryptionOption 指定要加密 PasswordEncryptionOptionSpec 的PDF明细列表 encryptOption 资源。 要加密整个PDF(包括其元数据及其附件),请将 PasswordEncryptionOption.ALL 其分配给该数据成员。
    • 通过为对象的数据成员分 PasswordEncryptionCompatability 配明细列表值来指 PasswordEncryptionOptionSpec 定Acrobat兼 compatability 容性选项。 例如,分配 PasswordEncryptionCompatability.ACRO_7 给此数据成员。
    • 指定密码值,允许用户通过为对象的数据成员分配表示打开密码的字符串值来打 PasswordEncryptionOptionSpec 开加密的PDF documentOpenPassword 文档。
    • 指定密码值,允许用户通过为对象的数据成员分配表示主密码的字符串值,从PDF文档中删 PasswordEncryptionOptionSpec 除加 permissionPassword 密。
  5. 添加密码。

    通过调用对象的方法并传 EncryptionServiceClient 递以下值 encryptPDFUsingPassword 来加密PDF文档:

    • BLOB 含要使用口令加密的PDF文档的对象。
    • 包含 PasswordEncryptionOptionSpec 加密运行时选项的对象。

    该方 encryptPDFUsingPassword 法返回一个 BLOB 对象,该对象包含密码加密的PDF文档。

  6. 将加密的PDF文档另存为PDF文件。

    • 通过调 System.IO.FileStream 用对象的构造函数并传递一个表示受保护PDF文档的文件位置的字符串值,创建一个对象。
    • 创建一个字节数组,它存储由方法返 BLOB 回的对象的数据内 encryptPDFUsingPassword 容。 通过获取对象数据成员的值 BLOB 填充字节 MTOM 数组。
    • 通过调 System.IO.BinaryWriter 用对象的构造函数并传递该对 System.IO.FileStream 象来创建。
    • 通过调用对象的方法并传递字节数组,将字 System.IO.BinaryWriter 节数组的内 Write 容写入PDF文件。

另请参阅

步骤摘要

使用MTOM调用AEM Forms

使用SwaRef调用AEM表单

使用证书加密PDF文档

基于证书的加密允许您通过公钥技术为特定收件人加密文档。 可以为各种收件人授予不同的文档权限。 公钥技术使加密的许多方面成为可能。 算法用于生成两个大数字,即 ,它们具有以下属性:

  • 一个密钥用于加密一组数据。 随后,只能使用其他密钥解密数据。
  • 不可能把一个钥匙和另一个钥匙区分开来。

其中一个键用作用户的私钥。 只有用户才有权访问此密钥,这一点很重要。 另一个密钥是用户的公钥,可与他人共享。

公钥证书包含用户的公钥和标识信息。 X.509格式用于存储证书。 证书通常由证书颁发机构(CA)颁发和数字签名,该机构是提供对证书有效性的置信度的公认实体。 证书的到期日期已到期,之后证书不再有效。 此外,证书撤销列表(CRL)还提供在证书到期日前被吊销的证书的相关信息。 CRL由证书颁发机构定期发布。 还可以通过网络上的联机证书状态协议(OCSP)检索证书的撤销状态。

注意

如果将加密的PDF文档上传到AEM Forms存储库,则它将无法解密PDF文档并提取XDP内容。 建议在将文档上传到AEM Forms存储库之前,不要加密该订阅。 (请参阅 编写资源。)

注意

在使用证书加密PDF文档之前,必须确保将证书添加到AEM Forms。 证书是使用管理控制台添加的,或使用Trust Manager API以编程方式添加的。 (请参 阅使用Trust Manager API导入凭据。)

注意

有关加密服务的详细信息,请参 阅AEM Forms的服务参考

步骤摘要

要使用证书加密PDF文档,请执行以下步骤:

  1. 包括项目文件。
  2. 创建Encryption Client API对象。
  3. 获取要加密的PDF文档。
  4. 引用证书。
  5. 设置加密运行时选项。
  6. 创建证书加密的PDF文档。
  7. 将加密的PDF文档另存为PDF文件。

包括项目文件

在开发项目中包含必要的文件。 如果您使用Java创建客户端应用程序,请包含必要的JAR文件。 如果您使用Web服务,请确保包含代理文件。

以下JAR文件必须添加到项目的类路径中:

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-encryption-client.jar
  • adobe-utilities.jar(在JBoss Application Server上部署AEM Forms时为必需)
  • jbossall-client.jar(在JBoss Application Server上部署AEM表单时需要)

创建加密客户端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服务API使用证书加密PDF文档

包括AEM Forms Java库文件

设置连接属性

Encryption Service API快速开始

使用密码加密PDF文档

使用Java API使用证书加密PDF文档

使用加密API(Java)使用证书加密PDF文档:

  1. 包括项目文件。

    在Java项目的类路径中包含客户端JAR文件,如adobe-encryption-client.jar。

  2. 创建Encryption Client API对象。

    • 创建包 ServiceClientFactory 含连接属性的对象。
    • 使用对 EncryptionServiceClient 象的构造函数并传递该对 ServiceClientFactory 象。
  3. 获取要加密的PDF文档。

    • 创建一 java.io.FileInputStream 个对象,它表示要加密的PDF文档,方法是使用其构造函数并传递一个指定PDF文档位置的字符串值。
    • 使用对 com.adobe.idp.Document 象的构造函数并传递该对象来创建 java.io.FileInputStream 对象。
  4. 引用证书。

    • 创建一个 java.util.List 对象,该对象使用其构造函数存储权限信息。
    • 通过调用对象的方法并传递一个文档值,指 java.util.List add CertificateEncryptionPermissions 定与加密关联的权限,该明细列表值表示授予打开受保护PDF文档的用户的权限。 例如,要指定所有权限,请通过 CertificateEncryptionPermissions.PKI_ALL_PERM
    • 使用对 Recipient 象的构造函数创建对象。
    • 创建一 java.io.FileInputStream 个对象,它表示使用PDF文档的构造函数并传递一个指定证书位置的字符串值来加密该证书。
    • 通过使用 com.adobe.idp.Document 其构造函数并传递表示证书的 java.io.FileInputStream 对象来创建对象。
    • 调用对 Recipient 象的方 setX509Cert 法并传递包 com.adobe.idp.Document 含证书的对象。 (此外,该对 Recipient象可以有Truststore证书别名或LDAP URL作为证书源。)
    • 使用 CertificateEncryptionIdentity 其构造函数创建存储权限和证书信息的对象。
    • 调用对 CertificateEncryptionIdentity 象的方 setPerms 法并传递存储 java.util.List 权限信息的对象。
    • 调用对 CertificateEncryptionIdentity 象的方 setRecipient 法并传递存储证 Recipient 书信息的对象。
    • 使用 java.util.List 其构造函数创建存储证书信息的对象。
    • 调用 java.util.List 对象的add方法并传递对 CertificateEncryptionIdentity 象。 (此对 java.util.List 象作为参数传递给该 encryptPDFUsingCertificates 方法。)
  5. 设置加密运行时选项。

    • 通过调 CertificateEncryptionOptionSpec 用对象的构造函数创建对象。
    • 通过调用对象的方法并传递指定要加密的文档 CertificateEncryptionOptionSpec 资源的文档 setOption 值,指定要加 CertificateEncryptionOption 密的PDF明细列表资源。 例如,要加密整个PDF文档,包括其元数据及其附件,请指定 CertificateEncryptionOption.ALL
    • 通过调用对象的方法并传递 CertificateEncryptionOptionSpec 指定Acrobat兼容 setCompat 性级别的 CertificateEncryptionCompatibility 明细列表值来指定Acrobat兼容性选项。 For example, you can specify CertificateEncryptionCompatibility.ACRO_7.
  6. 创建证书加密的PDF文档。

    通过调用对象的方法并传递以下值, EncryptionServiceClient 使用证书 encryptPDFUsingCertificates 加密PDF文档:

    • com.adobe.idp.Document 含要加密的PDF文档的对象。
    • 存储 java.util.List 证书信息的对象。
    • 包含 CertificateEncryptionOptionSpec 加密运行时选项的对象。

    该方 encryptPDFUsingCertificates 法返回一个 com.adobe.idp.Document 对象,该对象包含证书加密的PDF文档。

  7. 将加密的PDF文档另存为PDF文件。

    • 创建一 java.io.File 个对象,并确保文件扩展名为。pdf。
    • 调用对 com.adobe.idp.Document 象的方 copyToFile 法,将对象的内容复 com.adobe.idp.Document 制到文件。 确保使用由 com.adobe.idp.Document 该方法返回的对 encryptPDFUsingCertificates 象。

另请参阅

步骤摘要

快速开始(SOAP模式):使用Java API使用证书加密PDF文档

包括AEM Forms Java库文件

设置连接属性

使用Web服务API使用证书加密PDF文档

使用Encryption API(Web服务)使用证书加密PDF文档:

  1. 包括项目文件。

    创建使用MTOM的Microsoft .NET项目。 确保使用以下WSDL定义: http://localhost:8080/soap/services/EncryptionService?WSDL&lc_version=9.0.1.

    注意

    替换 localhost 为承载AEM Forms的服务器的IP地址。

  2. 创建Encryption Client API对象。

    • 使用对 EncryptionServiceClient 象的默认构造函数创建对象。

    • 使用构 EncryptionServiceClient.Endpoint.Address 造函数创建对 System.ServiceModel.EndpointAddress 象。 将指定WSDL的字符串值传递给AEM Forms服务(例如, http://localhost:8080/soap/services/EncryptionService?WSDL.)您无需使用该属 lc_version 性。 在创建服务引用时,会使用此属性。)

    • 通过 System.ServiceModel.BasicHttpBinding 获取字段的值创建对 EncryptionServiceClient.Endpoint.Binding 象。 将返回值转换为 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 为字节数组的内容来填充对象。
  4. 引用证书。

    • 使用对 Recipient 象的构造函数创建对象。 此对象将存储证书信息。
    • 使用对 BLOB 象的构造函数创建对象。 此对 BLOB 象将存储加密PDF文档的证书。
    • 通过调 System.IO.FileStream 用对象的构造函数并传递一个字符串值来创建对象,该字符串值表示证书的文件位置以及打开文件的模式。
    • 创建存储对象内容的字节数 System.IO.FileStream 组。 您可以通过获取对象的属性来确定字 System.IO.FileStream 节数组的大 Length 小。
    • 通过调用对象的方法并传递要读取的字 System.IO.FileStream 节数组、开始 Read 位置和流长度,用流数据填充字节数组。
    • 将字 BLOB 节数组的内容分配给对象的数据成 BLOB 员,以填充 MTOM 对象。
    • 将存储 BLOB 证书的对象分配给该对象 Recipient 的数据成 x509Cert 员。
    • 使用 CertificateEncryptionIdentity 其构造函数创建存储证书信息的对象。
    • 将存储 Recipient 证书的对象指定给对 CertificateEncryptionIdentity象的收件人数据成员。
    • 创建数 Object 组,然后将对 CertificateEncryptionIdentity 象指定给该数组的第一个元 Object 素。 此 Object 数组作为参数传递给方 encryptPDFUsingCertificates 法。
  5. 设置加密运行时选项。

    • 使用对 CertificateEncryptionOptionSpec 象的构造函数创建对象。
    • 通过为对象的数据成员分配文档值, CertificateEncryptionOption 指定要加密 CertificateEncryptionOptionSpec 的PDF明细列表 option 资源。 要加密整个PDF文档(包括其元数据及其附件),请为此数 CertificateEncryptionOption.ALL 据成员分配。
    • 通过为对象的数据成员分 CertificateEncryptionCompatibility 配明细列表值来指 CertificateEncryptionOptionSpec 定Acrobat兼 compat 容性选项。 例如,分配 CertificateEncryptionCompatibility.ACRO_7 给此数据成员。
  6. 创建证书加密的PDF文档。

    通过调用对象的方法并传递以下值, EncryptionServiceService 使用证书 encryptPDFUsingCertificates 加密PDF文档:

    • BLOB 含要加密的PDF文档的对象。
    • 存储 Object 证书信息的数组。
    • 包含 CertificateEncryptionOptionSpec 加密运行时选项的对象。

    该方 encryptPDFUsingCertificates 法返回一个 BLOB 对象,该对象包含证书加密的PDF文档。

  7. 将加密的PDF文档另存为PDF文件。

    • 通过调 System.IO.FileStream 用对象的构造函数并传递一个表示受保护PDF文档的文件位置的字符串值,创建一个对象。
    • 创建一个字节数组,它存储由方法返 BLOB 回的对象的数据内 encryptPDFUsingCertificates 容。 通过获取对象数据成员的值 BLOB 填充字节 binaryData 数组。
    • 通过调 System.IO.BinaryWriter 用对象的构造函数并传递该对 System.IO.FileStream 象来创建。
    • 通过调用对象的方法并传递字节数组,将字 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服务,请确保包含代理文件。

以下JAR文件必须添加到项目的类路径中:

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-encryption-client.jar
  • adobe-utilities.jar(在JBoss Application Server上部署AEM Forms时为必需)
  • jbossall-client.jar(在JBoss Application Server上部署AEM表单时需要)

创建加密服务客户端

要以编程方式执行加密服务操作,必须创建加密服务客户端。 如果您使用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服务API删除基于证书的加密

包括AEM Forms Java库文件

设置连接属性

Encryption Service API快速开始

使用Java API删除基于证书的加密

使用Encryption API(Java)从PDF文档中删除基于证书的加密:

  1. 包括项目文件。

    在Java项目的类路径中包含客户端JAR文件,如adobe-encryption-client.jar。

  2. 创建加密服务客户端。

    • 创建包 ServiceClientFactory 含连接属性的对象。
    • 使用对 EncryptionServiceClient 象的构造函数并传递该对 ServiceClientFactory 象。
  3. 获取加密的PDF文档。

    • 使用 java.io.FileInputStream 其构造函数并传递指定加密PDF文档位置的字符串值,创建表示加密PDF文档的对象。
    • 使用对 com.adobe.idp.Document 象的构造函数并传递该对象来创建 java.io.FileInputStream 对象。
  4. 删除加密。

    通过调用对象的方法并传递以下值,从PDF文档 EncryptionServiceClient 中删除基 removePDFCertificateSecurity 于证书的加密:

    • com.adobe.idp.Document 含加密的PDF文档的对象。
    • 一个字符串值,它指定私钥的别名,该别名与用于加密PDf文档的密钥相对应。

    该方 removePDFCertificateSecurity 法返回一个对 com.adobe.idp.Document 象,该对象包含不安全的PDF文档。

  5. 保存PDF文档。

    • 创建一 java.io.File 个对象,并确保文件扩展名为。pdf。
    • 调用对 com.adobe.idp.Document 象的方 copyToFile 法,将对象的内容复 Document 制到文件。 确保使用由 com.adobe.idp.Document 该方法返回的对 removePDFCredentialSecurity 象。

另请参阅

步骤摘要

快速开始(SOAP模式):使用Java API删除基于证书的加密

包括AEM Forms Java库文件

设置连接属性

使用Web服务API删除基于证书的加密

使用Encryption API(Web服务)删除基于证书的加密:

  1. 包括项目文件。

    创建使用MTOM的Microsoft .NET项目。 确保使用以下WSDL定义: http://localhost:8080/soap/services/EncryptionService?WSDL&lc_version=9.0.1.

    注意

    替换 localhost 为承载AEM Forms的服务器的IP地址。

  2. 创建加密服务客户端。

    • 使用对 EncryptionServiceClient 象的默认构造函数创建对象。

    • 使用构 EncryptionServiceClient.Endpoint.Address 造函数创建对 System.ServiceModel.EndpointAddress 象。 将指定WSDL的字符串值传递给AEM Forms服务(例如, http://localhost:8080/soap/services/EncryptionService?WSDL.)您无需使用该属 lc_version 性。 在创建服务引用时,会使用此属性。)

    • 通过 System.ServiceModel.BasicHttpBinding 获取字段的值创建对 EncryptionServiceClient.Endpoint.Binding 象。 将返回值转换为 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 节数组的内容分配给对象的数据成 BLOB 员,以填充 MTOM 对象。
  4. 删除加密。

    调用对 EncryptionServiceClient 象的方 removePDFCertificateSecurity 法并传递以下值:

    • 包含 BLOB 表示加密PDF文档的文件流数据的对象。
    • 一个字符串值,它指定与用于加密PDF文档的私钥对应的公钥的别名。

    该方 removePDFCredentialSecurity 法返回一个对 BLOB 象,该对象包含不安全的PDF文档。

  5. 保存PDF文档。

    • 通过调 System.IO.FileStream 用对象的构造函数并传递一个字符串值来创建一个对象,该字符串值表示不安全PDF文档的文件位置。
    • 创建一个字节数组,它存储方 BLOB 法返回的对象的内 removePDFPasswordSecurity 容。 通过获取对象数据成员的值 BLOB 填充字节 MTOM 数组。
    • 通过调 System.IO.BinaryWriter 用对象的构造函数并传递该对 System.IO.FileStream 象来创建。
    • 通过调用对象的方法并传递字节数组,将字 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服务,请确保包含代理文件。

以下JAR文件必须添加到项目的类路径中:

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-encryption-client.jar
  • adobe-utilities.jar(在JBoss上部署AEM表单时为必需)
  • jbossall-client.jar(在JBoss上部署AEM表单时需要)

创建加密服务客户端

要以编程方式执行加密服务操作,必须创建加密服务客户端。 如果您使用Java Encryption Service API,请创建一个对 EncrytionServiceClient 象。 如果您使用Web服务Encryption Service API,请创建一个对 EncryptionServiceService 象。

获取加密的PDF文档

您必须获得加密的PDF文档才能删除基于密码的加密。 如果尝试从未加密的PDF文档中删除加密,则会引发异常。

删除密码

要从加密的PDF文档中删除基于密码的加密,您需要加密的PDF文档和用于从PDF文档中删除加密的主密码值。 用于打开密码加密的PDF文档的密码不能用于删除加密。 当PDF文档使用密码加密时,将指定主密码。 (请参 阅使用口令加密PDF文档。)

保存PDF文档

在“加密”服务从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 含连接属性的对象。
    • 使用对 EncryptionServiceClient 象的构造函数并传递该对 ServiceClientFactory 象。
  3. 获取加密的PDF文档。

    • 使用 java.io.FileInputStream 其构造函数并传递指定PDF文档位置的字符串值,创建表示加密的PDF文档的对象。
    • 使用对 com.adobe.idp.Document 象的构造函数并传递该对象来创建 java.io.FileInputStream 对象。
  4. 删除密码。

    通过调用对象的方法并传递以下值,从PDF文档 EncryptionServiceClient 中删除基 removePDFPasswordSecurity 于口令的加密:

    • com.adobe.idp.Document 含加密的PDF文档的对象。
    • 一个字符串值,它指定用于从PDF文档中删除加密的主密码值。

    该方 removePDFPasswordSecurity 法返回一个对 com.adobe.idp.Document 象,该对象包含不安全的PDF文档。

  5. 保存PDF文档。

    • 创建一 java.io.File 个对象,并确保文件扩展名为。pdf。
    • 调用对 com.adobe.idp.Document 象的方 copyToFile 法,将对象的内容复 Document 制到文件。 确保使用由 Document 该方法返回的对 removePDFPasswordSecurity 象。

另请参阅

快速开始(SOAP模式):使用Java API删除基于口令的加密

使用Web服务API删除基于密码的加密

使用Encryption API(Web服务)删除基于密码的加密:

  1. 包括项目文件。

    创建使用MTOM的Microsoft .NET项目。 确保使用以下WSDL定义: http://localhost:8080/soap/services/EncryptionService?WSDL&lc_version=9.0.1.

    注意

    替换 localhost 为承载AEM Forms的服务器的IP地址。

  2. 创建加密服务客户端。

    • 使用对 EncryptionServiceClient 象的默认构造函数创建对象。

    • 使用构 EncryptionServiceClient.Endpoint.Address 造函数创建对 System.ServiceModel.EndpointAddress 象。 将指定WSDL的字符串值传递给AEM Forms服务(例如, http://localhost:8080/soap/services/EncryptionService?WSDL.)您无需使用该属 lc_version 性。 在创建服务引用时,会使用此属性。)

    • 通过 System.ServiceModel.BasicHttpBinding 获取字段的值创建对 EncryptionServiceClient.Endpoint.Binding 象。 将返回值转换为 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 节数组的内容分配给对象的数据成 BLOB 员,以填充 MTOM 对象。
  4. 删除密码。

    调用对 EncryptionServiceService 象的方 removePDFPasswordSecurity 法并传递以下值:

    • 包含 BLOB 表示加密PDF文档的文件流数据的对象。
    • 一个字符串值,它指定用于从PDF文档中删除加密的口令值。 使用口令加密PDF文档时指定此值。

    该方 removePDFPasswordSecurity 法返回一个对 BLOB 象,该对象包含不安全的PDF文档。

  5. 保存PDF文档。

    • 通过调 System.IO.FileStream 用对象的构造函数并传递一个字符串值来创建一个对象,该字符串值表示不安全PDF文档的文件位置。
    • 创建一个字节数组,它存储方 BLOB 法返回的对象的内 removePDFPasswordSecurity 容。 通过获取对象数据成员的值 BLOB 填充字节 MTOM 数组。
    • 通过调 System.IO.BinaryWriter 用对象的构造函数并传递该对 System.IO.FileStream 象来创建。
    • 通过调用对象的方法并传递字节数组,将字 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服务,请确保包含代理文件。

以下JAR文件必须添加到项目的类路径中:

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-encryption-client.jar
  • adobe-utilities.jar(在JBoss Application Server上部署AEM Forms时为必需)
  • jbossall-client.jar(在JBoss Application Server上部署AEM表单时需要)

创建加密服务客户端

要以编程方式执行加密服务操作,必须创建加密服务客户端。 如果您使用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服务API解锁加密的PDF文档

包括AEM Forms Java库文件

设置连接属性

Encryption Service API快速开始

使用Java API解锁加密的PDF文档

使用Encryption API(Java)解锁加密的PDF文档:

  1. 包括项目文件。

    在Java项目的类路径中包含客户端JAR文件,如adobe-encryption-client.jar。

  2. 创建加密服务客户端。

    • 创建包 ServiceClientFactory 含连接属性的对象。
    • 使用对 EncryptionServiceClient 象的构造函数并传递该对 ServiceClientFactory 象。
  3. 获取加密的PDF文档。

    • 使用 java.io.FileInputStream 其构造函数并传递指定加密PDF文档位置的字符串值,创建表示加密PDF文档的对象。
    • 使用对 com.adobe.idp.Document 象的构造函数并传递该对象来创建 java.io.FileInputStream 对象。
  4. 解锁文档。

    通过调用对象或方法解锁加 EncryptionServiceClient 密的PDF unlockPDFUsingPassword 文档 unlockPDFUsingCredential

    要解锁使用密码加密的PDF文档,请调用该方 unlockPDFUsingPassword 法并传递以下值:

    • com.adobe.idp.Document 含密码加密的PDF文档的对象。
    • 一个字符串值,它指定用于打开密码加密的PDF文档的密码值。 使用口令加密PDF文档时指定此值。

    要解锁使用证书加密的PDF文档,请调用该方 unlockPDFUsingCredential 法并传递以下值:

    • com.adobe.idp.Document 含证书加密的PDF文档的对象。
    • 一个字符串值,它指定与用于加密PDF文档的私钥相对应的公钥的别名。

    该方 unlockPDFUsingPassword 法和 unlockPDFUsingCredential 方法都会返回一个对象,您将该对象传递给另 com.adobe.idp.Document 一个AEM Forms Java方法以执行操作。

  5. 执行AEM Forms操作。

    在已解锁的PDF文档上执行AEM Forms操作,以满足您的业务要求。 例如,假定要将使用权限应用于已解锁的PDF文档,请将由或方法返回的对 com.adobe.idp.Document 象传递 unlockPDFUsingPassword unlockPDFUsingCredential 给对 ReaderExtensionsServiceClient 象的方 applyUsageRights 法。

另请参阅

步骤摘要

快速开始(SOAP模式):使用Java API (SOAP模式)解锁加密的PDF文档

将使用权限应用于PDF文档

包括AEM Forms Java库文件

设置连接属性

使用Web服务API解锁加密的PDF文档

使用加密API(Web服务)解锁加密的PDF文档:

  1. 包括项目文件。

    创建使用MTOM的Microsoft .NET项目。 确保使用以下WSDL定义: http://localhost:8080/soap/services/EncryptionService?WSDL&lc_version=9.0.1.

    注意

    替换 localhost 为承载AEM Forms的服务器的IP地址。

  2. 创建加密服务客户端。

    • 使用对 EncryptionServiceClient 象的默认构造函数创建对象。

    • 使用构 EncryptionServiceClient.Endpoint.Address 造函数创建对 System.ServiceModel.EndpointAddress 象。 将指定WSDL的字符串值传递给AEM Forms服务(例如, http://localhost:8080/soap/services/EncryptionService?WSDL.)您无需使用该属 lc_version 性。 在创建服务引用时,会使用此属性。)

    • 通过 System.ServiceModel.BasicHttpBinding 获取字段的值创建对 EncryptionServiceClient.Endpoint.Binding 象。 将返回值转换为 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 节数组的内容分配给对象的数据成 BLOB 员,以填充 MTOM 对象。
  4. 解锁文档。

    通过调用对象或方法解锁加 EncryptionServiceClient 密的PDF unlockPDFUsingPassword 文档 unlockPDFUsingCredential

    要解锁使用密码加密的PDF文档,请调用该方 unlockPDFUsingPassword 法并传递以下值:

    • BLOB 含密码加密的PDF文档的对象。
    • 一个字符串值,它指定用于打开密码加密的PDF文档的密码值。 使用口令加密PDF文档时指定此值。

    要解锁使用证书加密的PDF文档,请调用该方 unlockPDFUsingCredential 法并传递以下值:

    • BLOB 含证书加密的PDF文档的对象。
    • 一个字符串值,它指定与用于加密PDF文档的私钥对应的公钥的别名。

    该方 unlockPDFUsingPassword 法和 unlockPDFUsingCredential 方法都会返回一个对象,您将该对象传递给 com.adobe.idp.Document 另一个AEM Forms方法以执行操作。

  5. 执行AEM Forms操作。

    在已解锁的PDF文档上执行AEM Forms操作,以满足您的业务要求。 例如,假定要将使用权限应用于已解锁的PDF文档,请将由或方法返回的对 BLOB 象传递 unlockPDFUsingPassword unlockPDFUsingCredential 给对 ReaderExtensionsServiceClient 象的方 applyUsageRights 法。

另请参阅

步骤摘要

使用MTOM调用AEM Forms

使用SwaRef调用AEM表单

确定加密类型

您可以使用Java Encryption Service API或Web服务Encryption Service API以编程方式确定保护PDF文档的加密类型。 有时,需要动态确定PDF文档是否已加密,如果已加密,则还需要确定加密类型。 例如,您可以确定PDF文档是使用基于密码的加密还是使用Rights Management策略进行保护。

PDF文档可以受以下加密类型的保护:

  • 基于密码的加密
  • 基于证书的加密
  • 由Rights Management服务创建的策略
  • 另一种加密
注意

有关加密服务的详细信息,请参 阅AEM Forms的服务参考

步骤摘要

要确定保护PDF文档的加密类型,请执行以下步骤:

  1. 包括项目文件。
  2. 创建加密服务客户端。
  3. 获取加密的PDF文档。
  4. 确定加密类型。

包括项目文件

在开发项目中包含必要的文件。 如果您使用Java创建客户端应用程序,请包含必要的JAR文件。 如果您使用Web服务,请确保包含代理文件。

以下JAR文件必须添加到项目的类路径中:

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-encryption-client.jar
  • adobe-utilities.jar(在JBoss Application Server上部署AEM Forms时为必需)
  • jbossall-client.jar(在JBoss Application Server上部署AEM表单时需要)

创建服务客户端

要以编程方式执行加密服务操作,必须创建加密服务客户端。 如果您使用Java Encryption Service API,请创建一个对 EncrytionServiceClient 象。 如果您使用Web服务Encryption Service API,请创建一个对 EncryptionServiceService 象。

获取加密的PDF文档

您必须获得PDF文档,以确定保护它的加密类型。

确定加密类型

您可以确定保护PDF文档的加密类型。 如果PDF文档未受保护,则加密服务会通知您PDF文档未受到保护。

另请参阅

使用Java API确定加密类型

使用Web服务API确定加密类型

包括AEM Forms Java库文件

设置连接属性

Encryption Service API快速开始

使用策略保护文档

使用Java API确定加密类型

使用加密API(Java)确定保护PDF文档的加密类型:

  1. 包括项目文件。

    在Java项目的类路径中包含客户端JAR文件,如adobe-encryption-client.jar。

  2. 创建服务客户端。

    • 创建包 ServiceClientFactory 含连接属性的对象。
    • 使用对 EncryptionServiceClient 象的构造函数并传递该对 ServiceClientFactory 象。
  3. 获取加密的PDF文档。

    • 使用 java.io.FileInputStream PDF文档的构造函数并传递一个指定PDF文档位置的字符串值,创建一个表示PDF的对象。
    • 使用对 com.adobe.idp.Document 象的构造函数并传递该对象来创建 java.io.FileInputStream 对象。
  4. 确定加密类型。

    • 通过调用对象的方法并 EncryptionServiceClient 传递包含PDF getPDFEncryption 文档的 com.adobe.idp.Document 对象,确定加密类型。 此方法返回一个 EncryptionTypeResult 对象。
    • 调用 EncryptionTypeResult 对象的方 getEncryptionType 法。 此方法返回 EncryptionType 指定加密类型的enum值。 例如,如果PDF文档使用基于密码的加密进行保护,则此方法将返回 EncryptionType.PASSWORD

另请参阅

步骤摘要

快速开始(SOAP模式):使用Java API确定加密类型

包括AEM Forms Java库文件

设置连接属性

使用Web服务API确定加密类型

使用Encryption API(Web服务)确定保护PDF文档的加密类型:

  1. 包括项目文件。

    创建使用MTOM的Microsoft .NET项目。 确保使用以下WSDL定义: http://localhost:8080/soap/services/EncryptionService?WSDL&lc_version=9.0.1.

    注意

    替换 localhost 为承载AEM Forms的服务器的IP地址。

  2. 创建服务客户端。

    • 使用对 EncryptionServiceClient 象的默认构造函数创建对象。

    • 使用构 EncryptionServiceClient.Endpoint.Address 造函数创建对 System.ServiceModel.EndpointAddress 象。 将指定WSDL的字符串值传递给AEM Forms服务(例如, http://localhost:8080/soap/services/EncryptionService?WSDL.)您无需使用该属 lc_version 性。 在创建服务引用时,会使用此属性。)

    • 通过 System.ServiceModel.BasicHttpBinding 获取字段的值创建对 EncryptionServiceClient.Endpoint.Binding 象。 将返回值转换为 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 节数组的内容分配给对象的数据成 BLOB 员,以填充 MTOM 对象。
  4. 确定加密类型。

    • 调用对 EncryptionServiceClient 象的方 getPDFEncryption 法并传递包 BLOB 含PDF文档的对象。 此方法返回一个 EncryptionTypeResult 对象。
    • 获取对象的数 EncryptionTypeResult 据方法 encryptionType 的值。 例如,如果PDF文档使用基于密码的加密进行保护,则此数据成员的值为 EncryptionType.PASSWORD

另请参阅

步骤摘要

使用MTOM调用AEM Forms

使用SwaRef调用AEM表单

在此页面上