使用Java API应用使用权限

使用Acrobat Reader DC扩展API (Java)对PDF文档应用使用权限:

  1. 包含项目文件

    将客户端JAR文件(如adobe-reader-extensions-client.jar)包含在Java项目的类路径中。

  2. 创建Acrobat Reader DC扩展客户端对象。

    • 创建包含连接属性的ServiceClientFactory对象。
    • 使用对象的构造函数创建ReaderExtensionsServiceClient对象并传递ServiceClientFactory对象。
  3. 检索PDF文档。

    • 通过使用其构造函数并传递指定PDF文档位置的字符串值,创建表示PDF文档的java.io.FileInputStream对象。
    • 使用对象的构造函数创建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方法并传递以下值,将使用权限应用于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对象)。

使用Web服务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数据成员。

    • 指定一个字符串值,该值指定在Adobe Reader中打开启用了权限的PDF文档时用户看到的消息到ReaderExtensionsOptionSpec对象的message数据成员。

    • 通过调用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服务,请确保包含代理文件。

创建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删除使用权限

使用Web服务API删除使用权限

包括AEM Forms Java库文件

设置连接属性

Acrobat Reader DC扩展服务API快速入门

将使用权限应用于PDF文档

使用Java API删除使用权限

使用Acrobat Reader DC扩展API (Java)从启用了权限的PDF文档中删除使用权限:

  1. 包括项目文件。

    将客户端JAR文件(如adobe-reader-extensions-client.jar)包含在Java项目的类路径中。

  2. 创建Acrobat Reader DC扩展客户端对象。

    使用对象的构造函数创建ReaderExtensionsServiceClient对象,并传递包含连接属性的ServiceClientFactory对象。

  3. 检索PDF文档。

    • 使用启用权限的PDF文档的构造函数并传递指定PDF文档位置的字符串值,创建表示该文档的java.io.FileInputStream对象。
    • 使用对象的构造函数创建com.adobe.idp.Document对象并传递java.io.FileInputStream对象。
  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对象)。

使用Web服务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文档应用使用权限。

    • 通过调用其构造函数并传递表示PDF文件位置的字符串值来创建System.IO.FileStream对象。
    • 创建一个字节数组,用于存储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服务,请确保包含代理文件。

创建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. 包括项目文件。

    将客户端JAR文件(如adobe-reader-extensions-client.jar)包含在Java项目的类路径中。

  2. 创建Acrobat Reader DC扩展客户端对象。

    使用对象的构造函数创建ReaderExtensionsServiceClient对象,并传递包含连接属性的ServiceClientFactory对象。

  3. 检索PDF文档。

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

    • 通过调用ReaderExtensionsServiceClient对象的getDocumentUsageRights方法并传递包含启用权限的PDF文档的com.adobe.idp.Document对象,检索有关用于向PDF文档应用使用权限的凭据的信息。 此方法返回包含凭据信息的GetUsageRightsResult对象。
    • 通过调用GetUsageRightsResult对象的getNotAfter方法,检索凭据不再有效的日期。 此方法返回表示凭据不再有效的日期的java.util.Date对象。
    • 通过调用GetUsageRightsResult对象的getMessage方法,检索在启用权限的PDF文档打开时在Adobe Reader中显示的消息。 此方法返回代表消息的字符串值。

使用Web服务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