本文档中的示例和示例仅适用于JEE环境上的AEM Forms 。
Acrobat Reader DC扩展服务通过扩展Adobe Reader的功能,使您的组织可以轻松共享交互式PDF文档。 Acrobat Reader DC扩展服务完全支持任何PDF文档,直到(包括)PDF1.7。它适用于Adobe Reader 7.0及更高版本。 该服务会向PDF文档添加使用权限,激活在使用Adobe Reader打开PDF文档时通常不可用的功能。 第三方用户无需其他软件或插件即可使用启用了权限的文档。
您可以使用Acrobat Reader DC扩展服务完成这些任务:
有关Acrobat Reader DC扩展服务的更多信息,请参阅 AEM Forms的服务参考.
您可以使用Acrobat Reader DC扩展Java客户端API和Web服务向PDF文档应用使用权限。 使用权限与Acrobat中默认提供的功能有关,但在Adobe Reader中不可用,例如向表单添加注释或填写表单字段并保存表单的功能。 已应用使用权限的PDF文档称为启用权限的文档。 在Adobe Reader中打开启用了权限的文档的用户可以执行为该特定文档启用的操作。
使用将使用权限应用于PDF文档时 applyUsageRights
方法,是Java API的一部分,您可以设置 isModeFinal
的参数 ReaderExtensionsOptionSpec
对象对象 false
. 这会导致表单处理的计数器未更新并改进性能。 如果您不介意更新表单处理计数器,建议您将 isModeFinal
参数至 false
.
有关Acrobat Reader DC扩展服务的更多信息,请参阅 AEM Forms的服务参考.
要对PDF文档应用使用权限,请执行以下步骤:
包含项目文件
在开发项目中包含必要的文件。 如果要使用Java创建客户端应用程序,请包含必要的JAR文件。 如果您使用的是Web服务,请确保包含代理文件。
创建Acrobat Reader DC扩展客户端对象
要以编程方式执行Acrobat Reader DC扩展服务操作,您必须创建Acrobat Reader DC扩展服务客户端对象。 如果您使用Acrobat Reader DC扩展Java API,请创建 ReaderExtensionsServiceClient
对象。 如果您使用Acrobat Reader DC扩展Web服务API,请创建 ReaderExtensionsServiceService
对象。
检索PDF文档
检索PDF文档以应用使用权限。 启用权限的PDF文档包含使用权限字典。 当Adobe Reader打开包含此类词典的文档时,它仅启用词典中为该文档指定的使用权限。 如果文档不包含使用权限词典,则Acrobat Reader DC扩展服务会创建一个使用权限词典。 如果它已经包含字典,则Acrobat Reader DC扩展服务会使用您指定的字典覆盖现有使用权限。 词典指定启用哪些使用权限。 当用户在Adobe Reader中打开文档时,仅允许词典中指定的使用权限。
指定要应用的使用权限
您可以设置的使用权限取决于您从Adobe Systems Incorporated购买的凭据。 凭据通常提供设置一组相关使用权限的权限,例如与交互式表单相关的使用权限。 每个凭据都提供了创建特定数量的已启用权限的PDF文档的权利。 评估凭据授权创建无限数量的草稿文档。
如果尝试分配凭据不允许的使用权限,则会导致异常。
对PDF文档应用使用权限
要对PDF文档应用使用权限,请引用用于应用使用权限的凭据的别名(凭据通常在安装AEM Forms期间安装)。 另外,您必须指定应用了使用权限的PDF文档。 有关配置凭据的信息,请参阅应用程序服务器的安装和部署指南。
保存启用权限的PDF文档
在Acrobat Reader DC扩展服务将使用权限应用于PDF文档后,您可以将启用权限的PDF文档另存为PDF文件。
另请参阅
使用Acrobat Reader DC扩展API (Java)对PDF文档应用使用权限:
包含项目文件
将客户端JAR文件(如adobe-reader-extensions-client.jar)包含在Java项目的类路径中。
创建Acrobat Reader DC扩展客户端对象。
ServiceClientFactory
包含连接属性的对象。ReaderExtensionsServiceClient
对象,使用它的构造函数传递 ServiceClientFactory
对象。检索PDF文档。
java.io.FileInputStream
通过使用其构造函数并传递指定PDF文档位置的字符串值来表示PDF文档的对象。com.adobe.idp.Document
对象,使用它的构造函数传递 java.io.FileInputStream
对象。指定要应用的使用权限。
UsageRights
通过其构造函数表示使用权限的对象。UsageRights
对象。 例如,要添加 enableFormFillIn
使用权限,调用 UsageRights
对象的 enableFormFillIn
方法和路径 true
. (对要应用的每个使用权限重复此步骤)。对PDF文档应用使用权限。
创建 ReaderExtensionsOptionSpec
对象。 此对象包含Acrobat Reader DC扩展服务所需的运行时选项。 调用此构造函数时,必须指定以下值:
UsageRights
包含应用于文档的使用权限的对象。PDF通过调用 ReaderExtensionsServiceClient
对象的 applyUsageRights
方法并传递以下值:
com.adobe.idp.Document
包含应用了使用权限的PDF文档的对象。null
.)此 ReaderExtensionsOptionSpec
包含运行时选项的对象。
此 applyUsageRights
方法返回 com.adobe.idp.Document
包含启用权限的PDF文档的对象。
保存启用权限的PDF文档。
java.io.File
对象并确保文件扩展名为.pdf。com.adobe.idp.Document
对象的 copyToFile
用于复制 com.adobe.idp.Document
对象到文件(确保您使用 com.adobe.idp.Document
返回的对象 applyUsageRights
方法)。另请参阅
使用Acrobat Reader DC扩展API(Web服务)对PDF文档应用使用权限:
包括项目文件。
创建使用MTOM的Microsoft .NET项目。 确保使用以下WSDL定义: http://localhost:8080/soap/services/ReaderExtensionsService?WSDL&lc_version=9.0.1
.
替换 localhost
,其中包含托管AEM Forms的服务器的IP地址。
创建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身份验证:
ReaderExtensionsServiceClient.ClientCredentials.UserName.UserName
.ReaderExtensionsServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
到字段 BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
到字段 BasicHttpBindingSecurity.Security.Mode
.检索PDF文档。
BLOB
对象。 此 BLOB
对象用于存储应用了使用权限的PDF文档。System.IO.FileStream
对象,方法是调用其构造函数并传递一个字符串值,该字符串值表示PDF文档的文件位置以及打开文件的模式。System.IO.FileStream
对象。 您可以通过获取 System.IO.FileStream
对象的 Length
属性。System.IO.FileStream
对象的 Read
方法。 传递字节数组、起始位置和要读取的流长度。BLOB
对象,通过指定其 MTOM
属性与字节数组的内容。指定要应用的使用权限。
UsageRights
通过其构造函数表示使用权限的对象。true
到属于的相应数据成员 UsageRights
对象。 例如,要添加 enableFormFillIn
使用权限,分配 true
到 UsageRights
对象的 enableFormFillIn
数据成员。 (对要应用的每个使用权限重复此步骤)。对PDF文档应用使用权限。
创建 ReaderExtensionsOptionSpec
对象。 此对象包含Acrobat Reader DC扩展服务所需的运行时选项。
分配 UsageRights
对象 ReaderExtensionsOptionSpec
对象的 usageRights
数据成员。
指定一个字符串值,该值指定在Adobe Reader中打开启用了权限的PDF文档时用户看到的消息 ReaderExtensionsOptionSpec
对象的 message
数据成员。
PDF通过调用 ReaderExtensionsServiceClient
对象的 applyUsageRights
方法并传递以下值:
BLOB
包含应用了使用权限的PDF文档的对象。null
.)此 ReaderExtensionsOptionSpec
包含运行时选项的对象。
此 applyUsageRights
方法返回 BLOB
包含启用权限的PDF文档的对象。
保存启用权限的PDF文档。
System.IO.FileStream
对象通过调用其构造函数。 传递一个字符串值,该值表示启用权限的PDF文档的文件位置。BLOB
返回的对象 applyUsageRights
方法。 通过获取的值,填充字节数组 BLOB
对象的 MTOM
数据成员。System.IO.BinaryWriter
对象通过调用其构造函数并传递 System.IO.FileStream
对象。System.IO.BinaryWriter
对象的 Write
和传递字节数组。另请参阅
您可以从启用了权限的文档中删除使用权限。 从启用了权限的PDF文档中删除使用权限对于在其上执行其他AEM Forms操作也是必需的。 例如,在设置使用权限之前,必须对PDF文档进行数字签名(或认证)。 因此,如果要对启用权限的文档执行操作,必须从PDF文档中删除使用权限,执行其他操作,如对文档进行数字签名,然后重新将使用权限应用到文档。
有关Acrobat Reader DC扩展服务的更多信息,请参阅 AEM Forms的服务参考.
要从启用权限的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文档。
另请参阅
使用Acrobat Reader DC扩展API (Java)从启用了权限的PDF文档中删除使用权限:
包括项目文件。
将客户端JAR文件(如adobe-reader-extensions-client.jar)包含在Java项目的类路径中。
创建Acrobat Reader DC扩展客户端对象。
创建 ReaderExtensionsServiceClient
对象,使用它的构造函数传递 ServiceClientFactory
包含连接属性的对象。
检索PDF文档。
java.io.FileInputStream
对象,通过使用其构造函数并传递指定PDF文档位置的字符串值,来表示启用权限的PDF文档。com.adobe.idp.Document
对象,使用它的构造函数传递 java.io.FileInputStream
对象。从PDF文档中删除使用权限。
通过调用,从PDF文档中删除使用权限 ReaderExtensionsServiceClient
对象的 removeUsageRights
方法和传递 com.adobe.idp.Document
包含启用权限的PDF文档的对象。 此方法会返回 com.adobe.idp.Document
包含没有使用权限的PDF文档的对象。
对PDF文档应用使用权限。
java.io.File
对象并确保文件扩展名为。PDF。Document
对象的 copyToFile
用于复制 Document
对象到文件(确保您使用 Document
返回的对象 removeUsageRights
方法)。另请参阅
快速入门(SOAP模式):使用Java API从PDF文档中删除使用权限
使用Acrobat Reader DC扩展API(Web服务),从启用了权限的PDF文档中删除使用权限:
包括项目文件。
创建使用MTOM的Microsoft .NET项目。 确保使用以下WSDL定义: http://localhost:8080/soap/services/ReaderExtensionsService?WSDL&lc_version=9.0.1
.
替换 localhost
,其中包含托管AEM Forms的服务器的IP地址。
创建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身份验证:
ReaderExtensionsServiceClient.ClientCredentials.UserName.UserName
.ReaderExtensionsServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
到字段 BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
到字段 BasicHttpBindingSecurity.Security.Mode
.检索PDF文档。
BLOB
对象。 此 BLOB
对象用于存储启用权限的PDF文档,使用权限将从该文档中删除。System.IO.FileStream
对象,方法是调用其构造函数并传递一个字符串值,该字符串值表示PDF文档的文件位置以及打开文件的模式。System.IO.FileStream
对象。 您可以通过获取 System.IO.FileStream
对象的 Length
属性。System.IO.FileStream
对象的 Read
方法,并传递字节数组、起始位置和要读取的流长度。BLOB
对象,通过指定其 MTOM
属性与字节数组的内容。从PDF文档中删除使用权限。
通过调用,从PDF文档中删除使用权限 ReaderExtensionsServiceClient
对象的 removeUsageRights
方法和传递 BLOB
包含启用权限的PDF文档的对象。 此方法会返回 BLOB
包含没有使用权限的PDF文档的对象。
对PDF文档应用使用权限。
System.IO.FileStream
对象,方法是调用其构造函数并传递一个表示PDF文件位置的字符串值。BLOB
返回的对象 removeUsageRights
方法。 通过获取的值,填充字节数组 BLOB
对象的 MTOM
数据成员。System.IO.BinaryWriter
对象通过调用其构造函数并传递 System.IO.FileStream
对象。另请参阅
您可以检索有关用于向启用权限的PDF文档应用使用权限的凭据的信息。 通过检索有关凭据的信息,您可以获取信息,例如证书不再有效的日期。
有关Acrobat Reader DC扩展服务的更多信息,请参阅 AEM Forms的服务参考.
要检索有关用于向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文档后,您可以获取有关用于对其应用使用权限的凭据的信息。 您可以获取有关凭据的以下信息:
另请参阅
使用Acrobat Reader DC扩展API (Java)检索凭据信息:
包括项目文件。
将客户端JAR文件(如adobe-reader-extensions-client.jar)包含在Java项目的类路径中。
创建Acrobat Reader DC扩展客户端对象。
创建 ReaderExtensionsServiceClient
对象,使用它的构造函数传递 ServiceClientFactory
包含连接属性的对象。
检索PDF文档。
java.io.FileInputStream
对象,通过使用该对象的构造函数并传递指定启用权限的PDF文档位置的字符串值来表示启用权限的PDF文档。com.adobe.idp.Document
对象,使用它的构造函数传递 java.io.FileInputStream
对象。从PDF文档中删除使用权限。
ReaderExtensionsServiceClient
对象的 getDocumentUsageRights
方法和传递 com.adobe.idp.Document
包含启用权限的PDF文档的对象。 此方法返回 GetUsageRightsResult
包含凭据信息的对象。GetUsageRightsResult
对象的 getNotAfter
方法。 此方法会返回 java.util.Date
表示凭据不再有效的日期的对象。GetUsageRightsResult
对象的 getMessage
方法。 此方法返回代表消息的字符串值。另请参阅
使用Acrobat Reader DC扩展API(Web服务)检索凭据信息:
包括项目文件。
创建使用MTOM的Microsoft .NET项目。 确保使用以下WSDL定义: http://localhost:8080/soap/services/ReaderExtensionsService?WSDL&lc_version=9.0.1
.
替换 localhost
,其中包含托管AEM Forms的服务器的IP地址。
创建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身份验证:
ReaderExtensionsServiceClient.ClientCredentials.UserName.UserName
.ReaderExtensionsServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
到字段 BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
到字段 BasicHttpBindingSecurity.Security.Mode
.检索PDF文档。
BLOB
对象。 此 BLOB
对象用于存储启用权限的PDF文档。System.IO.FileStream
对象,方法是调用其构造函数并传递一个字符串值,该字符串值表示启用权限的PDF文档的文件位置以及打开文件的模式。System.IO.FileStream
对象。 您可以通过获取 System.IO.FileStream
对象的 Length
属性。System.IO.FileStream
对象的 Read
方法,并传递字节数组、起始位置和要读取的流长度。BLOB
对象,通过指定其 MTOM
属性与字节数组的内容。从PDF文档中删除使用权限。
ReaderExtensionsServiceClient
对象的 getDocumentUsageRights
方法和传递 com.adobe.idp.Document
包含启用权限的PDF文档的对象。 此方法会返回 GetUsageRightsResult
包含凭据信息的对象。GetUsageRightsResult
对象的 notAfter
数据成员。 此数据成员的数据类型为 System.DateTime
.GetUsageRightsResult
对象的 message
数据成员。 此数据成员的数据类型是一个字符串。GetUsageRightsResult
对象的 useCount
数据成员。 此数据成员的数据类型是整数。另请参阅