Acrobat Reader DC扩展服务通过扩展Adobe Reader的功能使您的组织能够轻松共享交互式PDF文档。 Acrobat Reader DC扩展服务完全支持任何PDF文档,最高包括PDF 1.7。它可与Adobe Reader7.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打开启用权限的文档的用户可以执行为该特定文档启用的操作。
使用applyUsageRights
方法(它是Java API的一部分)对PDF文档应用使用权限时,可以将ReaderExtensionsOptionSpec
对象的isModeFinal
参数设置为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文档:
包括项目文件
在Java项目的类路径中包含客户端JAR文件,如adobe-reader-extensions-client.jar。
创建一个Acrobat Reader DC扩展Client对象。
ServiceClientFactory
对象。ReaderExtensionsServiceClient
对象的构造函数并传递ServiceClientFactory
对象,创建<a0/>对象。检索PDF文档。
java.io.FileInputStream
对象。com.adobe.idp.Document
对象的构造函数并传递java.io.FileInputStream
对象,创建<a0/>对象。指定要应用的使用权限。
UsageRights
对象。UsageRights
对象的相应方法。 例如,要添加enableFormFillIn
使用权限,请调用UsageRights
对象的enableFormFillIn
方法并传递true
。 (对要应用的每个使用权限重复此步骤)。将使用权限应用于PDF文档。
使用ReaderExtensionsOptionSpec
对象的构造函数创建<a0/>对象。 此对象包含Acrobat Reader DC扩展服务所需的运行时选项。 调用此构造函数时,必须指定以下值:
UsageRights
对象,其中包含要应用于文档的使用权限。通过调用ReaderExtensionsServiceClient
对象的applyUsageRights
方法并传递以下值,将使用权限应用于PDF文档:
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
对象的内容复制到文件(确保使用applyUsageRights
方法返回的com.adobe.idp.Document
对象)。另请参阅
使用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扩展Client对象。
使用其默认构造函数创建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身份验证:
ReaderExtensionsServiceClient.ClientCredentials.UserName.UserName
指定AEM表单用户名。ReaderExtensionsServiceClient.ClientCredentials.UserName.Password
分配相应的口令值。HttpClientCredentialType.Basic
指定到字段BasicHttpBindingSecurity.Transport.ClientCredentialType
。BasicHttpSecurityMode.TransportCredentialOnly
指定到字段BasicHttpBindingSecurity.Security.Mode
。检索PDF文档。
BLOB
对象的构造函数创建<a0/>对象。 BLOB
对象用于存储应用了使用权限的PDF文档。System.IO.FileStream
对象的构造函数并传递一个字符串值,该字符串值表示PDF文档的文件位置以及打开文件的模式。System.IO.FileStream
对象内容的字节数组。 通过获取System.IO.FileStream
对象的Length
属性,可以确定字节数组的大小。System.IO.FileStream
对象的Read
方法,用流数据填充字节数组。 传递要读取的字节数组、开始位置和流长度。MTOM
对象的<a1/>属性指定字节数组的内容,填充BLOB
对象。指定要应用的使用权限。
UsageRights
对象。true
指定给属于UsageRights
对象的相应数据成员。 例如,要添加enableFormFillIn
使用权限,请将true
分配给UsageRights
对象的enableFormFillIn
数据成员。 (对要应用的每个使用权限重复此步骤)。将使用权限应用于PDF文档。
使用ReaderExtensionsOptionSpec
对象的构造函数创建<a0/>对象。 此对象包含Acrobat Reader DC扩展服务所需的运行时选项。
将UsageRights
对象指定给ReaderExtensionsOptionSpec
对象的usageRights
数据成员。
为ReaderExtensionsOptionSpec
对象的message
文档成员指定一个字符串值,该值指定用户在Adobe Reader打开启用权限的PDF时看到的消息。
通过调用ReaderExtensionsServiceClient
对象的applyUsageRights
方法并传递以下值,将使用权限应用于PDF文档:
BLOB
对象,其中包含应用了使用权限的PDF文档。null
。)包含运行时选项的ReaderExtensionsOptionSpec
对象。
applyUsageRights
方法返回一个BLOB
对象,该对象包含启用权限的PDF文档。
保存启用权限的PDF文档。
System.IO.FileStream
对象。 传递一个字符串值,它表示启用权限的PDF文档的文件位置。applyUsageRights
方法返回的BLOB
对象的数据内容。 通过获取BLOB
对象的MTOM
数据成员的值,填充字节数组。System.IO.BinaryWriter
对象的构造函数并传递System.IO.FileStream
对象,创建<a0/>对象。System.IO.BinaryWriter
对象的Write
方法并传递字节数组,将字节数组的内容写入PDF文件。另请参阅
您可以从启用权限的文档中删除使用权限。 要对启用权限的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文档中删除使用权限:
包括项目文件。
在Java项目的类路径中包含客户端JAR文件,如adobe-reader-extensions-client.jar。
创建一个Acrobat Reader DC扩展Client对象。
使用ReaderExtensionsServiceClient
对象的构造函数创建一个ServiceClientFactory
对象,并传递一个包含连接属性的<a1/>对象。
检索PDF文档。
java.io.FileInputStream
对象的构造函数并传递一个指定PDF文档位置的字符串值,创建一个<a0/>对象,它表示启用权限的PDF文档。com.adobe.idp.Document
对象的构造函数并传递java.io.FileInputStream
对象,创建<a0/>对象。从PDF文档中删除使用权限。
通过调用ReaderExtensionsServiceClient
对象的removeUsageRights
方法并传递包含启用权限的PDF文档的com.adobe.idp.Document
对象,从PDF文档中删除使用权限。 此方法返回一个com.adobe.idp.Document
对象,该对象包含没有使用权限的PDF文档。
将使用权限应用于PDF文档。
java.io.File
对象,并确保文件扩展名为。PDF。Document
对象的copyToFile
方法,将Document
对象的内容复制到文件(确保使用removeUsageRights
方法返回的Document
对象)。另请参阅
快速开始(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扩展Client对象。
使用其默认构造函数创建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身份验证:
ReaderExtensionsServiceClient.ClientCredentials.UserName.UserName
指定AEM表单用户名。ReaderExtensionsServiceClient.ClientCredentials.UserName.Password
分配相应的口令值。HttpClientCredentialType.Basic
指定到字段BasicHttpBindingSecurity.Transport.ClientCredentialType
。BasicHttpSecurityMode.TransportCredentialOnly
指定到字段BasicHttpBindingSecurity.Security.Mode
。检索PDF文档。
BLOB
对象的构造函数创建<a0/>对象。 BLOB
对象用于存储启用权限的PDF文档,从中删除了使用权限。System.IO.FileStream
对象的构造函数并传递一个字符串值,该字符串值表示PDF文档的文件位置以及打开文件的模式。System.IO.FileStream
对象内容的字节数组。 通过获取System.IO.FileStream
对象的Length
属性,可以确定字节数组的大小。System.IO.FileStream
对象的Read
方法并传递要读取的字节数组、开始位置和流长度,用流数据填充字节数组。MTOM
对象的<a1/>属性指定字节数组的内容,填充BLOB
对象。从PDF文档中删除使用权限。
通过调用ReaderExtensionsServiceClient
对象的removeUsageRights
方法并传递包含启用权限的PDF文档的BLOB
对象,从PDF文档中删除使用权限。 此方法返回一个BLOB
对象,该对象包含没有使用权限的PDF文档。
将使用权限应用于PDF文档。
System.IO.FileStream
对象的构造函数并传递一个表示PDF文件位置的字符串值,创建一个<a0/>对象。removeUsageRights
方法返回的BLOB
对象的数据内容。 通过获取BLOB
对象的MTOM
数据成员的值,填充字节数组。System.IO.BinaryWriter
对象的构造函数并传递System.IO.FileStream
对象,创建<a0/>对象。另请参阅
您可以检索有关用于将使用权限应用于启用权限的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)检索凭据信息:
包括项目文件。
在Java项目的类路径中包含客户端JAR文件,如adobe-reader-extensions-client.jar。
创建一个Acrobat Reader DC扩展Client对象。
使用ReaderExtensionsServiceClient
对象的构造函数创建一个ServiceClientFactory
对象,并传递一个包含连接属性的<a1/>对象。
检索PDF文档。
java.io.FileInputStream
对象的构造函数并传递一个字符串值,该字符串值指定启用权限的PDF文档的位置,以创建表示启用权限的PDF文档的对象。com.adobe.idp.Document
对象的构造函数并传递java.io.FileInputStream
对象,创建<a0/>对象。从PDF文档中删除使用权限。
ReaderExtensionsServiceClient
对象的getDocumentUsageRights
方法并传递包含启用权限的PDF文档的com.adobe.idp.Document
对象,检索有关用于将使用权限应用于PDF文档的凭据的信息。 此方法返回包含凭据信息的GetUsageRightsResult
对象。GetUsageRightsResult
对象的getNotAfter
方法检索凭据不再有效的日期。 此方法返回一个java.util.Date
对象,它表示凭据不再有效的日期。GetUsageRightsResult
对象的getMessage
方法,检索在Adobe Reader打开启用权限的PDF文档时显示的消息。 此方法返回表示消息的字符串值。另请参阅
使用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扩展Client对象。
使用其默认构造函数创建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身份验证:
ReaderExtensionsServiceClient.ClientCredentials.UserName.UserName
指定AEM表单用户名。ReaderExtensionsServiceClient.ClientCredentials.UserName.Password
分配相应的口令值。HttpClientCredentialType.Basic
指定到字段BasicHttpBindingSecurity.Transport.ClientCredentialType
。BasicHttpSecurityMode.TransportCredentialOnly
指定到字段BasicHttpBindingSecurity.Security.Mode
。检索PDF文档。
BLOB
对象的构造函数创建<a0/>对象。 BLOB
对象用于存储启用权限的PDF文档。System.IO.FileStream
对象的构造函数并传递一个字符串值,该字符串值表示启用权限的PDF文档的文件位置以及打开文件的模式。System.IO.FileStream
对象内容的字节数组。 通过获取System.IO.FileStream
对象的Length
属性,可以确定字节数组的大小。System.IO.FileStream
对象的Read
方法并传递要读取的字节数组、开始位置和流长度,用流数据填充字节数组。MTOM
对象的<a1/>属性指定字节数组的内容,填充BLOB
对象。从PDF文档中删除使用权限。
ReaderExtensionsServiceClient
对象的getDocumentUsageRights
方法并传递包含启用权限的PDF文档的com.adobe.idp.Document
对象,检索有关用于将使用权限应用于PDF文档的凭据的信息。 此方法返回包含凭据信息的GetUsageRightsResult
对象。GetUsageRightsResult
对象的notAfter
数据成员的值,检索此凭据不再有效的日期。 此数据成员的数据类型为System.DateTime
。GetUsageRightsResult
对象的message
文档成员的值,检索在Adobe Reader打开启用权限的PDF时显示的消息。 此数据成员的数据类型是字符串。GetUsageRightsResult
对象的useCount
数据成员的值,检索凭据的使用次数。 此数据成员的数据类型是整数。另请参阅