使用策略保护文档 protecting-documents-with-policies
本文档中的示例和示例仅适用于JEE环境上的AEM Forms。
关于Document Security服务
Document Security服务使用户能够动态地将机密性设置应用于Adobe PDF文档,并保持对文档的控制,无论这些文档的分布范围如何。
Document Security服务通过允许用户保持对收件人如何使用受策略保护的PDF文档的控制,防止信息超出用户可及的范围。 用户可以指定谁可以打开文档,限制他们使用文档的方式,并在文档分发后监视文档。 用户还可以动态控制对受策略保护文档的访问,甚至可以动态撤销对文档的访问。
Document Security服务还可以保护其他文件类型,如Microsoft Word文件(DOC文件)。 您可以使用Document Security客户端API处理这些文件类型。 支持以下版本:
- Microsoft Office 2003文件(DOC、XLS、PPT文件)
- Microsoft Office 2007文件(DOCX、XLSX、PPTX文件)
- PTC Pro/E文件
为清楚起见,以下两个部分讨论了如何使用Word文档:
您可以使用Document Security服务完成以下任务:
- 创建策略。 有关信息,请参阅创建策略。
- 修改策略。 有关信息,请参阅修改策略。
- 删除策略。 有关信息,请参阅删除策略。
- 将策略应用于PDF文档。 有关信息,请参阅将策略应用到PDF文档。
- 从PDF文档中删除策略。 有关信息,请参阅从PDF文档中删除策略。
- Inspect受策略保护的文档。 有关信息,请参阅检查受策略保护的PDF文档。
- 撤销对PDF文档的访问权限。 有关信息,请参阅撤销对文档的访问权限。
- 恢复对已撤消文档的访问。 有关信息,请参阅恢复对已撤消文档的访问。
- 创建水印。 有关信息,请参阅创建水印。
- 搜索事件。 有关信息,请参阅搜索事件。
创建策略 creating-policies
您可以使用Document Security Java API或Web服务API以编程方式创建策略。 策略 是包含文档安全设置、授权用户和使用权限的信息集合。 您可以使用适用于不同情况和用户的安全设置创建和保存任意数量的策略。
通过策略,您可以执行以下任务:
- 指定可以打开文档的个人。 收件人可以属于组织,也可以是组织的外部成员。
- 指定收件人可以如何使用文档。 您可以限制对其他Acrobat和Adobe Reader功能的访问。 这些功能包括打印和复制文本、添加签名以及向文档添加注释的功能。
- 随时更改访问和安全设置,即使在分发受策略保护的文档之后也是如此。
- 在分发文档后监视文档的使用。 您可以查看文档的使用方式以及谁在使用它。 例如,您可以查找某人何时打开了文档。
使用Web服务创建策略 creating-a-policy-using-web-services
使用Web服务API创建策略时,请引用描述策略的现有可移植文档权限语言(PDRL) XML文件。 策略权限和主体在PDRL文档中定义。 以下XML文档是一个PDRL文档示例。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Policy PolicyInstanceVersion="1" PolicyID="5DA3F847-DE76-F9CC-63EA-49A8D59154DE" PolicyCreationTime="2004-08-30T00:02:28.294+00:00" PolicyType="1" PolicySchemaVersion="1.0" PolicyName="SDK Test Policy -4344050357301573237" PolicyDescription="An SDK Test policy" xmlns="https://www.adobe.com/schema/1.0/pdrl">
<PolicyEntry>
<ns1:Permission PermissionName="com.adobe.aps.onlineOpen" Access="ALLOW" xmlns:ns1="https://www.adobe.com/schema/1.0/pdrl" xmlns="https://www.adobe.com/schema/1.0/pdrl-ex" />
<ns2:Permission PermissionName="com.adobe.aps.offlineOpen" Access="ALLOW" xmlns:ns2="https://www.adobe.com/schema/1.0/pdrl" xmlns="https://www.adobe.com/schema/1.0/pdrl-ex" />
<ns3:Permission PermissionName="com.adobe.aps.pdf.editNotes" Access="ALLOW" xmlns:ns3="https://www.adobe.com/schema/1.0/pdrl" xmlns="https://www.adobe.com/schema/1.0/pdrl-ex" />
<ns4:Permission PermissionName="com.adobe.aps.pdf.fillAndSign" Access="ALLOW" xmlns:ns4="https://www.adobe.com/schema/1.0/pdrl" xmlns="https://www.adobe.com/schema/1.0/pdrl-ex" />
<Principal PrincipalNameType="SYSTEM">
<PrincipalDomain>EDC_SPECIAL</PrincipalDomain>
<PrincipalName>all_internal_users</PrincipalName>
</Principal>
</PolicyEntry>
<PolicyEntry>
<ns5:Permission PermissionName="com.adobe.aps.onlineOpen" Access="ALLOW" xmlns:ns5="https://www.adobe.com/schema/1.0/pdrl" xmlns="https://www.adobe.com/schema/1.0/pdrl-ex" />
<ns6:Permission PermissionName="com.adobe.aps.offlineOpen" Access="ALLOW" xmlns:ns6="https://www.adobe.com/schema/1.0/pdrl" xmlns="https://www.adobe.com/schema/1.0/pdrl-ex" />
<ns7:Permission PermissionName="com.adobe.aps.pdf.copy" Access="ALLOW" xmlns:ns7="https://www.adobe.com/schema/1.0/pdrl" xmlns="https://www.adobe.com/schema/1.0/pdrl-ex" />
<ns8:Permission PermissionName="com.adobe.aps.pdf.printLow" Access="ALLOW" xmlns="https://www.adobe.com/schema/1.0/pdrl-ex" xmlns:ns8="https://www.adobe.com/schema/1.0/pdrl" />
<ns9:Permission PermissionName="com.adobe.aps.policySwitch" Access="ALLOW" xmlns:ns9="https://www.adobe.com/schema/1.0/pdrl" xmlns="https://www.adobe.com/schema/1.0/pdrl-ex" />
<ns10:Permission PermissionName="com.adobe.aps.revoke" Access="ALLOW" xmlns="https://www.adobe.com/schema/1.0/pdrl-ex" xmlns:ns10="https://www.adobe.com/schema/1.0/pdrl" />
<ns11:Permission PermissionName="com.adobe.aps.pdf.edit" Access="ALLOW" xmlns:ns11="https://www.adobe.com/schema/1.0/pdrl" xmlns="https://www.adobe.com/schema/1.0/pdrl-ex" />
<ns12:Permission PermissionName="com.adobe.aps.pdf.editNotes" Access="ALLOW" xmlns:ns12="https://www.adobe.com/schema/1.0/pdrl" xmlns="https://www.adobe.com/schema/1.0/pdrl-ex" />
<ns13:Permission PermissionName="com.adobe.aps.pdf.fillAndSign" Access="ALLOW" xmlns:ns13="https://www.adobe.com/schema/1.0/pdrl" xmlns="https://www.adobe.com/schema/1.0/pdrl-ex" />
<ns14:Permission PermissionName="com.adobe.aps.pdf.printHigh" Access="ALLOW" xmlns:ns14="https://www.adobe.com/schema/1.0/pdrl" xmlns="https://www.adobe.com/schema/1.0/pdrl-ex" />
<Principal PrincipalNameType="SYSTEM">
<PrincipalDomain>EDC_SPECIAL</PrincipalDomain>
<PrincipalName>publisher</PrincipalName>
</Principal>
</PolicyEntry>
<OfflineLeasePeriod>
<Duration>P31D</Duration>
</OfflineLeasePeriod>
<AuditSettings isTracked="true" />
<PolicyValidityPeriod isAbsoluteTime="false">
<ValidityPeriodRelative>
<NotBeforeRelative>PT0S</NotBeforeRelative>
<NotAfterRelative>P20D</NotAfterRelative>
</ValidityPeriodRelative>
</PolicyValidityPeriod>
</Policy>
步骤摘要 summary-of-steps
要创建策略,请执行以下步骤:
- 包括项目文件。
- 创建Document Security客户端API对象。
- 设置策略的属性。
- 创建策略条目。
- 注册策略。
包含项目文件
在开发项目中包含必要的文件。 如果要使用Java创建客户端应用程序,请包含必要的JAR文件。 如果您使用的是Web服务,请确保包含代理文件。
必须将以下JAR文件添加到项目的类路径中:
- adobe-rightsmanagement-client.jar
- namespace.jar(如果AEM Forms部署在JBoss上)
- jaxb-api.jar(如果AEM Forms部署在JBoss上)
- jaxb-impl.jar(如果AEM Forms部署在JBoss上)
- jaxb-libs.jar(如果AEM Forms部署在JBoss上)
- jaxb-xjc.jar(如果AEM Forms部署在JBoss上)
- relaxngDatatype.jar(如果AEM Forms部署在JBoss上)
- xsdlib.jar(如果AEM Forms部署在JBoss上)
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-utilities.jar
- jbossall-client.jar(如果未在JBoss上部署AEM Forms,请使用其他JAR文件)
有关这些JAR文件位置的信息,请参阅包括AEM Forms Java库文件。
创建Document Security客户端API对象
在以编程方式执行Document Security服务操作之前,请先创建Document Security服务客户端对象。
设置策略的属性
要创建策略,请设置策略属性。 必需的属性是策略名称。 每个策略集的策略名称必须是唯一的。 策略集只是策略的集合。 如果策略属于不同的策略集,则可能存在两个同名策略。 但是,单个策略集中的两个策略不能具有相同的策略名称。
要设置的另一个有用属性是有效期。 有效期是指受策略保护的文档可供授权收件人访问的时间段。 如果不设置此属性,则策略始终有效。
可以将有效期设置为以下选项之一:
- 从文档发布之时起文档可访问的一组天数
- 结束日期后,无法访问文档
- 文档可访问的特定日期范围
- 始终有效
您可以仅指定开始日期,这样策略就会在开始日期之后生效。 如果只指定结束日期,则该策略在结束日期之前有效。 但是,如果未定义开始日期和结束日期,则会引发异常。
在设置属于策略的属性时,您还可以设置加密设置。 将策略应用到文档时,这些加密设置将生效。 可以指定以下加密值:
- AES256:表示使用256位密钥的AES加密算法。
- AES128:表示使用128位密钥的AES加密算法。
- NoEncryption: 表示不加密。
指定NoEncryption
选项时,不能将PlaintextMetadata
选项设置为false
。 如果尝试这样做,则会引发异常。
Policy
接口描述。创建策略条目
策略条目将承担者(组和用户)和权限附加到策略。 策略必须至少有一个策略条目。 例如,假设您执行以下任务:
- 创建并注册一个策略条目,该策略条目允许组仅查看联机文档,并禁止收件人复制文档。
- 将策略条目附加到策略。
- 使用Acrobat使用策略保护文档。
这些操作会导致收件人仅能够在线查看文档,而无法复制文档。 除非从文档中删除安全性,否则文档将保持安全。
注册策略
必须先注册新策略,然后才能使用它。 注册策略后,可以使用它来保护文档。
使用Java API创建策略 create-a-policy-using-the-java-api
使用Document Security API (Java)创建策略:
-
包括项目文件。
在您的Java项目的类路径中包含客户端JAR文件,例如adobe-rightsmanagement-client.jar。
-
创建Document Security客户端API对象。
- 创建包含连接属性的
ServiceClientFactory
对象。 - 使用对象的构造函数创建
DocumentSecurityClient
对象并传递ServiceClientFactory
对象。
- 创建包含连接属性的
-
设置策略的属性。
- 通过调用
InfomodelObjectFactory
对象的静态createPolicy
方法创建Policy
对象。 此方法返回Policy
对象。 - 通过调用
Policy
对象的setName
方法并传递指定策略名称的字符串值来设置策略的name特性。 - 通过调用
Policy
对象的setDescription
方法并传递指定策略说明的字符串值来设置策略的说明。 - 通过调用
Policy
对象的setPolicySetName
方法并传递指定策略集名称的字符串值,指定新策略所属的策略集。 (您可以为此参数值指定null
,这将导致策略被添加到 我的策略 策略集。) - 通过调用
InfomodelObjectFactory
对象的静态createValidityPeriod
方法创建策略的有效期。 此方法返回ValidityPeriod
对象。 - 通过调用
ValidityPeriod
对象的setRelativeExpirationDays
方法并传递指定天数的整数值,设置受策略保护文档可访问的天数。 - 通过调用
Policy
对象的setValidityPeriod
方法并传递ValidityPeriod
对象来设置策略的有效期。
- 通过调用
-
创建策略条目。
- 通过调用
InfomodelObjectFactory
对象的静态createPolicyEntry
方法创建策略条目。 此方法返回PolicyEntry
对象。 - 通过调用
InfomodelObjectFactory
对象的静态createPermission
方法指定策略的权限。 传递属于表示权限的Permission
接口的静态数据成员。 此方法返回Permission
对象。 例如,要添加允许用户从受策略保护的PDF文档复制数据的权限,请传递Permission.COPY
。 (对要添加的每个权限重复此步骤)。 - 通过调用
PolicyEntry
对象的addPermission
方法并传递Permission
对象,向策略条目添加权限。 (对创建的每个Permission
对象重复此步骤)。 - 通过调用
InfomodelObjectFactory
对象的静态createSpecialPrincipal
方法创建策略主体。 传递属于表示主体的InfomodelObjectFactory
对象的数据成员。 此方法返回Principal
对象。 例如,若要将文档的发布者添加为主体,请传递InfomodelObjectFactory.PUBLISHER_PRINCIPAL
。 - 通过调用
PolicyEntry
对象的setPrincipal
方法并传递Principal
对象,将主体添加到策略条目。 - 通过调用
Policy
对象的addPolicyEntry
方法并传递PolicyEntry
对象,将策略条目添加到策略中。
- 通过调用
-
注册策略。
-
通过调用
DocumentSecurityClient
对象的getPolicyManager
方法创建PolicyManager
对象。 -
通过调用
PolicyManager
对象的registerPolicy
方法并传递以下值来注册策略:- 表示要注册的策略的
Policy
对象。
- 表示要注册的策略的
-
一个字符串值,表示策略所属的策略集。
如果在连接设置中使用AEM表单管理员帐户创建
DocumentSecurityClient
对象,则在调用registerPolicy
方法时指定策略集名称。 如果您为策略集传递了null
值,则会在管理员 我的策略 策略集中创建该策略。如果在连接设置中使用Document Security用户,则可以调用仅接受策略的重载
registerPolicy
方法。 也就是说,您无需指定策略集名称。 但是,该策略已添加到名为 我的策略 的策略集。 如果不想将新策略添加到此策略集,请在调用registerPolicy
方法时指定策略集名称。note note NOTE 创建策略时,引用现有策略集。 如果指定的策略集不存在,则会引发异常。 -
有关使用Document Security服务的代码示例,请参阅以下内容:
- “快速入门(SOAP模式):使用Java API创建策略”
使用Web服务API创建策略 create-a-policy-using-the-web-service-api
使用Document Security API(Web服务)创建策略:
-
包括项目文件。
创建使用MTOM的Microsoft .NET项目。 确保使用以下WSDL定义:
http://localhost:8080/soap/services/RightsManagementService?WSDL&lc_version=9.0.1
。note note NOTE 将 localhost
替换为承载AEM Forms的服务器的IP地址。 -
创建Document Security客户端API对象。
-
使用默认构造函数创建
DocumentSecurityServiceClient
对象。 -
使用
System.ServiceModel.EndpointAddress
构造函数创建DocumentSecurityServiceClient.Endpoint.Address
对象。 将指定WSDL的字符串值传递给AEM Forms服务(例如,http://localhost:8080/soap/services/RightsManagementService?WSDL
)。 您无需使用lc_version
属性。 此属性在创建服务引用时使用。) -
通过获取
RightsManagementServiceClient.Endpoint.Binding
字段的值创建一个System.ServiceModel.BasicHttpBinding
对象。 将返回值强制转换为BasicHttpBinding
。 -
将
System.ServiceModel.BasicHttpBinding
对象的MessageEncoding
字段设置为WSMessageEncoding.Mtom
。 此值可确保使用MTOM。 -
通过执行以下任务启用基本HTTP身份验证:
- 将AEM表单用户名分配给字段
RightsManagementServiceClient.ClientCredentials.UserName.UserName
。 - 将相应的密码值分配给字段
RightsManagementServiceClient.ClientCredentials.UserName.Password
。 - 将常量值
HttpClientCredentialType.Basic
分配给字段BasicHttpBindingSecurity.Transport.ClientCredentialType
。
- 将AEM表单用户名分配给字段
-
将常量值
BasicHttpSecurityMode.TransportCredentialOnly
分配给字段BasicHttpBindingSecurity.Security.Mode
。
-
-
设置策略的属性。
- 使用构造函数创建
PolicySpec
对象。 - 通过为
PolicySpec
对象的name
数据成员分配字符串值来设置策略的名称。 - 通过为
PolicySpec
对象的description
数据成员分配字符串值来设置策略的描述。 - 通过为
PolicySpec
对象的policySetName
数据成员分配字符串值,指定策略所属的策略集。 指定现有策略集名称。 (您可以为此参数值指定null
,这将导致策略被添加到 我的策略。) - 通过为
PolicySpec
对象的offlineLeasePeriod
数据成员分配整数值,设置策略的脱机租赁期。 - 使用表示PDRL XML数据的字符串值设置
PolicySpec
对象的policyXml
数据成员。 要执行此任务,请使用它的构造函数创建一个.NETStreamReader
对象。 将表示策略的PDRL XML文件的位置传递给StreamReader
构造函数。 接下来,调用StreamReader
对象的ReadLine
方法,并将返回值分配给字符串变量。 循环访问StreamReader
对象,直到ReadLine
方法返回null。 将字符串变量分配给PolicySpec
对象的policyXml
数据成员。
- 使用构造函数创建
-
创建策略条目。
使用Document Security Web服务API创建策略时,不必创建策略条目。 策略条目在PDRL文档中定义。
-
注册策略。
通过调用
DocumentSecurityServiceClient
对象的registerPolicy
方法并传递以下值来注册策略:- 表示要注册的策略的
PolicySpec
对象。 - 一个字符串值,表示策略所属的策略集。 您可以指定一个
null
值,该值会导致将策略添加到 MyPolices 策略集。
如果在连接设置中使用AEM表单管理员帐户创建
DocumentSecurityClient
对象,请在调用registerPolicy
方法时指定策略集名称。如果在连接设置中使用Document SecurityDocument Security用户,则可以调用仅接受策略的重载
registerPolicy
方法。 也就是说,您无需指定策略集名称。 但是,该策略已添加到名为 我的策略 的策略集。 如果不想将新策略添加到此策略集,请在调用registerPolicy
方法时指定策略集名称。note note NOTE 在创建策略并指定策略集时,请确保指定现有的策略集。 如果指定的策略集不存在,则会引发异常。 - 表示要注册的策略的
有关使用Document Security服务的代码示例,请参阅以下快速入门:
- “快速入门(MTOM):使用Web服务API创建策略”
- “快速入门(SwaRef):使用Web服务API创建策略”
修改策略 modifying-policies
您可以使用Document Security Java API或Web服务API修改现有策略。 要更改现有策略,您需要检索并修改现有策略,然后在服务器上更新策略。 例如,假设您检索现有策略并延长其有效期。 在更改生效之前,必须更新策略。
当业务需求发生变化且策略不再反映这些需求时,您可以修改策略。 您可以简单地更新现有策略,而不是创建策略。
要使用Web服务(例如,使用通过JAX-WS创建的Java代理类)修改策略属性,必须确保在Document Security服务中注册该策略。 然后,您可以使用PolicySpec.getPolicyXml
方法引用现有策略,并使用适用的方法修改策略属性。 例如,您可以通过调用PolicySpec.setOfflineLeasePeriod
方法来修改离线租赁期。
步骤摘要 summary_of_steps-1
要修改现有策略,请执行以下步骤:
- 包括项目文件。
- 创建Document Security客户端API对象。
- 检索现有策略。
- 更改策略属性。
- 更新策略。
包含项目文件
在开发项目中包含必要的文件。 如果要使用Java创建客户端应用程序,请包含必要的JAR文件。 如果您使用的是Web服务,请确保包含代理文件。
创建Document Security客户端API对象
您必须先创建Document Security服务客户端对象,然后才能以编程方式执行Document Security服务操作。 如果您使用的是Java API,请创建一个RightsManagementClient
对象。 如果您使用的是Document Security Web服务API,请创建RightsManagementServiceService
对象。
检索现有策略
检索现有策略以对其进行修改。 要检索策略,请指定策略名称和策略所属的策略集。 如果为策略集名称指定了null
值,则从 我的策略 策略集中检索该策略。
设置策略的属性
要修改策略,请修改策略属性的值。 唯一不能更改的策略属性是name属性。 例如,要更改策略的脱机租赁期,您可以修改策略的脱机租赁期属性的值。
使用Web服务修改策略的脱机租赁期时,PolicySpec
界面上的offlineLeasePeriod
字段被忽略。 要更新脱机租赁期,请修改PDRL XML文档中的OfflineLeasePeriod
元素。 然后使用PolicySpec
接口的policyXML
数据成员引用更新的PDRL XML文档。
Policy
接口描述。更新策略
在对策略所做的更改生效之前,您必须使用Document Security服务更新策略。 对保护文档的策略的更改在下次与Document Security服务同步时更新。
使用Java API修改现有策略 modify-existing-policies-using-the-java-api
使用Document Security API (Java)修改现有策略:
-
包括项目文件。
在您的Java项目的类路径中包含客户端JAR文件,例如adobe-rightsmanagement-client.jar。
-
创建Document Security客户端API对象。
- 创建包含连接属性的
ServiceClientFactory
对象。 - 使用对象的构造函数创建
RightsManagementClient
对象并传递ServiceClientFactory
对象。
- 创建包含连接属性的
-
检索现有策略。
-
通过调用
RightsManagementClient
对象的getPolicyManager
方法创建PolicyManager
对象。 -
通过调用
PolicyManager
对象的getPolicy
方法并传递以下值,创建表示要更新的策略的Policy
对象- 一个字符串值,表示策略所属的策略集名称。 您可以指定导致使用
MyPolicies
策略集的null
。 - 表示策略名称的字符串值。
- 一个字符串值,表示策略所属的策略集名称。 您可以指定导致使用
-
-
设置策略的属性。
更改策略的属性以满足您的业务要求。 例如,要更改策略的脱机租赁期,请调用
Policy
对象的setOfflineLeasePeriod
方法。 -
更新策略。
通过调用
PolicyManager
对象的updatePolicy
方法更新策略。 传递表示要更新的策略的Policy
对象。
代码示例
有关使用Document Security服务的代码示例,请参阅快速入门(SOAP模式):使用Java API修改策略部分。
使用Web服务API修改现有策略 modify-existing-policies-using-the-web-service-api
使用Document Security API(Web服务)修改现有策略:
-
包括项目文件。
创建使用MTOM的Microsoft .NET项目。 确保使用以下WSDL定义:
http://localhost:8080/soap/services/RightsManagementService?WSDL&lc_version=9.0.1
。note note NOTE 将 localhost
替换为承载AEM Forms的服务器的IP地址。 -
创建Document Security客户端API对象。
-
使用默认构造函数创建
RightsManagementServiceClient
对象。 -
使用
System.ServiceModel.EndpointAddress
构造函数创建RightsManagementServiceClient.Endpoint.Address
对象。 将指定WSDL的字符串值传递给AEM Forms服务(例如,http://localhost:8080/soap/services/RightsManagementService?WSDL
)。 您无需使用lc_version
属性。 此属性在创建服务引用时使用。) -
通过获取
RightsManagementServiceClient.Endpoint.Binding
字段的值创建一个System.ServiceModel.BasicHttpBinding
对象。 将返回值强制转换为BasicHttpBinding
。 -
将
System.ServiceModel.BasicHttpBinding
对象的MessageEncoding
字段设置为WSMessageEncoding.Mtom
。 此值可确保使用MTOM。 -
通过执行以下任务启用基本HTTP身份验证:
- 将AEM表单用户名分配给字段
RightsManagementServiceClient.ClientCredentials.UserName.UserName
。 - 将相应的密码值分配给字段
RightsManagementServiceClient.ClientCredentials.UserName.Password
。 - 将常量值
HttpClientCredentialType.Basic
分配给字段BasicHttpBindingSecurity.Transport.ClientCredentialType
。
- 将AEM表单用户名分配给字段
-
将常量值
BasicHttpSecurityMode.TransportCredentialOnly
分配给字段BasicHttpBindingSecurity.Security.Mode
。
-
-
检索现有策略。
通过调用
RightsManagementServiceClient
对象的getPolicy
方法并传递以下值,创建表示要修改的策略的PolicySpec
对象:- 一个字符串值,它指定策略所属的策略集名称。 您可以指定导致使用
MyPolicies
策略集的null
。 - 一个字符串值,它指定策略的名称。
- 一个字符串值,它指定策略所属的策略集名称。 您可以指定导致使用
-
设置策略的属性。
更改策略的属性以满足您的业务要求。
-
更新策略。
通过调用
RightsManagementServiceClient
对象的updatePolicyFromSDK
方法并传递表示要更新的策略的PolicySpec
对象来更新策略。
代码示例
有关使用Document Security服务的代码示例,请参阅以下快速入门:
- “快速入门(MTOM):使用Web服务API修改策略”
- “快速入门(SwaRef):使用Web服务API修改策略”
删除策略 deleting-policies
您可以使用Document Security Java API或Web服务API删除现有策略。 删除策略后,无法再用它来保护文档。 但是,使用该策略的现有受策略保护的文档仍受保护。 您可以在较新的策略可用时删除策略。
步骤摘要 summary_of_steps-2
要删除现有策略,请执行以下步骤:
- 包含项目文件
- 创建Document Security客户端API对象。
- 删除策略。
包含项目文件
在开发项目中包含必要的文件。 如果要使用Java创建客户端应用程序,请包含必要的JAR文件。 如果您使用的是Web服务,请确保包含代理文件。
创建Document Security客户端API对象
您必须先创建Document Security服务客户端对象,然后才能以编程方式执行Document Security服务操作。 如果您使用的是Java API,请创建一个RightsManagementClient
对象。 如果您使用的是Document Security Web服务API,请创建RightsManagementServiceService
对象。
删除策略
要删除策略,请指定要删除的策略以及该策略所属的策略集。 其设置用于调用AEM Forms的用户必须具有删除该策略的权限;否则会发生异常。 同样,如果尝试删除不存在的策略,则会发生异常。
使用Java API删除策略 delete-policies-using-the-java-api
使用Document Security API (Java)删除策略:
-
包括项目文件。
在您的Java项目的类路径中包含客户端JAR文件,例如adobe-rightsmanagement-client.jar。
-
创建Document Security客户端API对象。
- 创建包含连接属性的
ServiceClientFactory
对象。 - 使用对象的构造函数创建
RightsManagementClient
对象并传递ServiceClientFactory
对象。
- 创建包含连接属性的
-
删除策略。
-
通过调用
RightsManagementClient
对象的getPolicyManager
方法创建PolicyManager
对象。 -
通过调用
PolicyManager
对象的deletePolicy
方法并传递以下值来删除策略:- 一个字符串值,它指定策略所属的策略集名称。 您可以指定导致使用
MyPolicies
策略集的null
。 - 一个字符串值,它指定要删除的策略的名称。
- 一个字符串值,它指定策略所属的策略集名称。 您可以指定导致使用
-
代码示例
有关使用Document Security服务的代码示例,请参阅以下快速入门:
- “快速入门(SOAP模式):使用Java API删除策略”
使用Web服务API删除策略 delete-policies-using-the-web-service-api
使用Document Security API(Web服务)删除策略:
-
包括项目文件。
创建使用MTOM的Microsoft .NET项目。 确保使用以下WSDL定义:
http://localhost:8080/soap/services/RightsManagementService?WSDL&lc_version=9.0.1
。note note NOTE 将 localhost
替换为承载AEM Forms的服务器的IP地址。 -
创建Document Security客户端API对象。
-
使用默认构造函数创建
RightsManagementServiceClient
对象。 -
使用
System.ServiceModel.EndpointAddress
构造函数创建RightsManagementServiceClient.Endpoint.Address
对象。 将指定WSDL的字符串值传递给AEM Forms服务(例如,http://localhost:8080/soap/services/RightsManagementService?WSDL
)。 您无需使用lc_version
属性。 此属性在创建服务引用时使用。) -
通过获取
RightsManagementServiceClient.Endpoint.Binding
字段的值创建一个System.ServiceModel.BasicHttpBinding
对象。 将返回值强制转换为BasicHttpBinding
。 -
将
System.ServiceModel.BasicHttpBinding
对象的MessageEncoding
字段设置为WSMessageEncoding.Mtom
。 此值可确保使用MTOM。 -
通过执行以下任务启用基本HTTP身份验证:
- 将AEM表单用户名分配给字段
RightsManagementServiceClient.ClientCredentials.UserName.UserName
。 - 将相应的密码值分配给字段
RightsManagementServiceClient.ClientCredentials.UserName.Password
。 - 将常量值
HttpClientCredentialType.Basic
分配给字段BasicHttpBindingSecurity.Transport.ClientCredentialType
。
- 将AEM表单用户名分配给字段
-
将常量值
BasicHttpSecurityMode.TransportCredentialOnly
分配给字段BasicHttpBindingSecurity.Security.Mode
。
-
-
删除策略。
通过调用
RightsManagementServiceClient
对象的deletePolicy
方法并传递以下值来删除策略:- 一个字符串值,它指定策略所属的策略集名称。 您可以指定导致使用
MyPolicies
策略集的null
。 - 一个字符串值,它指定要删除的策略的名称。
- 一个字符串值,它指定策略所属的策略集名称。 您可以指定导致使用
代码示例
有关使用Document Security服务的代码示例,请参阅以下快速入门:
- “快速入门(MTOM):使用Web服务API删除策略”
- “快速入门(SwaRef):使用Web服务API删除策略”
将策略应用于PDF文档 applying-policies-to-pdf-documents
您可以将策略应用于PDF文档以保护文档。 通过将策略应用于PDF文档,可以限制对该文档的访问。 如果文档已受策略保护,则无法将策略应用到该文档。
在文档打开时,您还可以限制对Acrobat和Adobe Reader功能的访问,包括打印和复制文本、进行更改以及向文档添加签名和注释的功能。 此外,当您不再希望用户访问受策略保护的PDF文档时,也可以撤销该文档。
您可以在分发受策略保护的文档后监视其使用情况。 也就是说,您可以看到文档的使用方式以及谁在使用它。 例如,您可以查找何时有人打开了文档。
步骤摘要 summary_of_steps-3
要将策略应用到PDF文档,请执行以下步骤:
- 包括项目文件。
- 创建Document Security客户端API对象。
- 检索应用了策略的PDF文档。
- 将现有策略应用于PDF文档。
- 保存受策略保护的PDF文档。
包含项目文件
在开发项目中包含必要的文件。 如果要使用Java创建客户端应用程序,请包含必要的JAR文件。 如果您使用的是Web服务,请确保包含代理文件。
创建Document Security客户端API对象
在以编程方式执行Document Security服务操作之前,请先创建Document Security服务客户端对象。 如果您使用的是Java API,请创建一个DocumentSecurityClient
对象。 如果您使用的是Document Security Web服务API,请创建DocumentSecurityServiceService
对象。
检索PDF文档
您可以检索PDF文档以应用策略。 将策略应用于PDF文档后,用户使用文档时受到限制。 例如,如果策略不允许在脱机时打开文档,则用户必须联机才能打开文档。
将现有策略应用到PDF文档
要将策略应用于PDF文档,请引用现有策略并指定该策略所属的策略集。 设置连接属性的用户必须具有对指定策略的访问权限。 如果不存在,则会发生异常。
保存PDF文档
在Document Security服务将策略应用于PDF文档后,您可以将受策略保护的PDF文档另存为PDF文件。
另请参阅
使用Java API将策略应用于PDF文档 apply-a-policy-to-a-pdf-document-using-the-java-api
使用Document Security API (Java)将策略应用于PDF文档:
-
包括项目文件。
在您的Java项目的类路径中包含客户端JAR文件,例如adobe-rightsmanagement-client.jar。
-
创建Document Security客户端API对象。
- 创建包含连接属性的
ServiceClientFactory
对象。 - 使用对象的构造函数创建
RightsManagementClient
对象并传递ServiceClientFactory
对象。
- 创建包含连接属性的
-
检索PDF文档。
- 使用构造函数创建表示PDF文档的
java.io.FileInputStream
对象。 传递一个指定PDF文档位置的字符串值。 - 使用对象的构造函数创建
com.adobe.idp.Document
对象并传递java.io.FileInputStream
对象。
- 使用构造函数创建表示PDF文档的
-
将现有策略应用于PDF文档。
-
通过调用
RightsManagementClient
对象的getDocumentManager
方法创建DocumentManager
对象。 -
通过调用
DocumentManager
对象的protectDocument
方法并传递以下值,将策略应用到PDF文档:- 包含应用策略的PDF文档的
com.adobe.idp.Document
对象。 - 指定文档名称的字符串值。
- 一个字符串值,它指定策略所属的策略集的名称。 您可以指定导致使用
MyPolicies
策略集的null
值。 - 指定策略名称的字符串值。
- 一个字符串值,表示作为文档发布者的用户的用户管理器域的名称。 此参数值是可选的,并且可以为null(如果此参数为null,则下一个参数值必须为null)。
- 一个字符串值,表示作为文档发布者的用户管理员用户的规范名称的名称。 此参数值是可选的,可以为
null
(如果此参数为null,则以前的参数值必须为null
)。 - 表示用于选择MS Office模板的区域设置的
com.adobe.livecycle.rightsmanagement.Locale
。 此参数值是可选的,不用于PDF文档。 要保护PDF文档的安全,请指定null
。
protectDocument
方法返回包含受策略保护的PDF文档的RMSecureDocumentResult
对象。 - 包含应用策略的PDF文档的
-
-
保存PDF文档。
- 调用
RMSecureDocumentResult
对象的getProtectedDoc
方法以获取受策略保护的PDF文档。 此方法返回com.adobe.idp.Document
对象。 - 创建
java.io.File
对象并确保文件扩展名PDF。 - 调用
com.adobe.idp.Document
对象的copyToFile
方法以将Document
对象的内容复制到文件中(确保您使用getProtectedDoc
方法返回的Document
对象)。
- 调用
代码示例
有关使用Document Security服务的代码示例,请参阅以下快速入门:
- “快速入门(EJB模式):使用Java API将策略应用到PDF文档”
- “快速入门(SOAP模式):使用Java API将策略应用于PDF文档”
另请参阅
使用Web服务API将策略应用于PDF文档 apply-a-policy-to-a-pdf-document-using-the-web-service-api
使用Document Security API(Web服务)将策略应用于PDF文档:
-
包括项目文件。
创建使用MTOM的Microsoft .NET项目。 确保使用以下WSDL定义:
http://localhost:8080/soap/services/RightsManagementService?WSDL&lc_version=9.0.1
。note note NOTE 将 localhost
替换为承载AEM Forms的服务器的IP地址。 -
创建Document Security客户端API对象。
-
使用默认构造函数创建
RightsManagementServiceClient
对象。 -
使用
System.ServiceModel.EndpointAddress
构造函数创建RightsManagementServiceClient.Endpoint.Address
对象。 将指定WSDL的字符串值传递给Forms服务(例如,http://localhost:8080/soap/services/RightsManagementService?WSDL
)。 您无需使用lc_version
属性。 此属性在创建服务引用时使用。) -
通过获取
RightsManagementServiceClient.Endpoint.Binding
字段的值创建一个System.ServiceModel.BasicHttpBinding
对象。 将返回值强制转换为BasicHttpBinding
。 -
将
System.ServiceModel.BasicHttpBinding
对象的MessageEncoding
字段设置为WSMessageEncoding.Mtom
。 此值可确保使用MTOM。 -
通过执行以下任务启用基本HTTP身份验证:
- 将AEM表单用户名分配给字段
RightsManagementServiceClient.ClientCredentials.UserName.UserName
。 - 将相应的密码值分配给字段
RightsManagementServiceClient.ClientCredentials.UserName.Password
。 - 将常量值
HttpClientCredentialType.Basic
分配给字段BasicHttpBindingSecurity.Transport.ClientCredentialType
。
- 将AEM表单用户名分配给字段
-
将常量值
BasicHttpSecurityMode.TransportCredentialOnly
分配给字段BasicHttpBindingSecurity.Security.Mode
。
-
-
检索PDF文档。
- 使用构造函数创建
BLOB
对象。BLOB
对象用于存储应用了策略的PDF文档。 - 通过调用其构造函数并传递一个字符串值来创建一个
System.IO.FileStream
对象,该字符串值表示PDF文档的文件位置以及打开文件的模式。 - 创建用于存储
System.IO.FileStream
对象的内容的字节数组。 通过获取System.IO.FileStream
对象的Length
属性来确定字节数组大小。 - 通过调用
System.IO.FileStream
对象的Read
方法,使用流数据填充字节数组。 传递字节数组、起始位置和要读取的流长度。 - 使用字节数组的内容分配其
MTOM
字段以填充BLOB
对象。
- 使用构造函数创建
-
将现有策略应用于PDF文档。
通过调用
RightsManagementServiceClient
对象的protectDocument
方法并传递以下值,将策略应用到PDF文档:- 包含应用策略的PDF文档的
BLOB
对象。 - 指定文档名称的字符串值。
- 一个字符串值,它指定策略所属的策略集的名称。 您可以指定导致使用
MyPolicies
策略集的null
值。 - 指定策略名称的字符串值。
- 一个字符串值,表示作为文档发布者的用户的用户管理器域的名称。 此参数值是可选的,并且可以为null(如果此参数为null,则下一个参数值必须为
null
)。 - 一个字符串值,表示作为文档发布者的用户管理员用户的规范名称的名称。 此参数值是可选的,可以为null(如果此参数为null,则上一个参数值必须为
null
)。 - 指定区域设置值的
RMLocale
值(例如,RMLocale.en
)。 - 用于存储策略标识符值的字符串输出参数。
- 用于存储受策略保护的标识符值的字符串输出参数。
- 用于存储mime类型的字符串输出参数(例如,
application/pdf
)。
protectDocument
方法返回包含受策略保护的PDF文档的BLOB
对象。 - 包含应用策略的PDF文档的
-
保存PDF文档。
- 通过调用其构造函数并传递表示受策略保护的PDF文档的文件位置的字符串值来创建
System.IO.FileStream
对象。 - 创建一个字节数组,用于存储
protectDocument
方法返回的BLOB
对象的数据内容。 通过获取BLOB
对象的MTOM
数据成员的值填充字节数组。 - 通过调用其构造函数并传递
System.IO.FileStream
对象来创建System.IO.BinaryWriter
对象。 - 通过调用
System.IO.BinaryWriter
对象的Write
方法并传递字节数组,将字节数组的内容写入PDF文件。
- 通过调用其构造函数并传递表示受策略保护的PDF文档的文件位置的字符串值来创建
代码示例
有关使用Document Security服务的代码示例,请参阅以下快速入门:
- “快速入门(MTOM):使用Web服务API将策略应用到PDF文档”
- “快速入门(SwaRef):使用Web服务API将策略应用于PDF文档”
从PDF文档中删除策略 removing-policies-from-pdf-documents
您可以从受策略保护的文档中删除策略以从文档中删除安全性。 即,如果您不再希望文档受策略保护。 如果要使用较新的策略更新受策略保护的文档,则切换策略比删除策略和添加更新的策略更有效。
步骤摘要 summary_of_steps-4
要从受策略保护的PDF文档中删除策略,请执行以下步骤:
- 包含项目文件
- 创建Document Security客户端API对象。
- 检索受策略保护的PDF文档。
- 从PDF文档中删除策略。
- 保存不安全的PDF文档。
包含项目文件
在开发项目中包含必要的文件。 如果要使用Java创建客户端应用程序,请包含必要的JAR文件。 如果您使用的是Web服务,请确保包含代理文件。
创建Document Security客户端API对象
在以编程方式执行Document Security服务操作之前,请先创建Document Security服务客户端对象。
检索受策略保护的PDF文档
您可以检索受策略保护的PDF文档以删除策略。 如果尝试从不受策略保护的PDF文档中删除策略,则会导致异常。
从PDF文档中删除策略
如果连接设置中指定了管理员,则可以从受策略保护的PDF文档中删除策略。 如果没有,则用于保护文档的策略必须包含SWITCH_POLICY
权限,才能从PDF文档中删除策略。 此外,在AEM Forms连接设置中指定的用户还必须具有该权限。 否则,将引发异常。
保存不安全的PDF文档
Document Security服务从PDF文档中删除策略后,您可以将不安全的PDF文档另存为PDF文件。
另请参阅
使用Java API从PDF文档中删除策略 remove-a-policy-from-a-pdf-document-using-the-java-api
使用Document Security API (Java)从受策略保护的PDF文档中删除策略:
-
包括项目文件。
在您的Java项目的类路径中包含客户端JAR文件,例如adobe-rightsmanagement-client.jar。
-
创建Document Security客户端API对象。
- 创建包含连接属性的
ServiceClientFactory
对象。 - 使用对象的构造函数创建
DocumentSecurityClient
对象并传递ServiceClientFactory
对象。
- 创建包含连接属性的
-
检索受策略保护的PDF文档。
- 通过使用受策略保护的PDF文档的构造函数并传递指定PDF文档位置的字符串值,创建表示该文档的
java.io.FileInputStream
对象。 - 使用对象的构造函数创建
com.adobe.idp.Document
对象并传递java.io.FileInputStream
对象。
- 通过使用受策略保护的PDF文档的构造函数并传递指定PDF文档位置的字符串值,创建表示该文档的
-
从PDF文档中删除策略。
- 通过调用
DocumentSecurityClient
对象的getDocumentManager
方法创建DocumentManager
对象。 - 通过调用
DocumentManager
对象的removeSecurity
方法并传递包含受策略保护的PDF文档的com.adobe.idp.Document
对象,从PDF文档中删除策略。 此方法返回包含不安全PDF文档的com.adobe.idp.Document
对象。
- 通过调用
-
保存不安全的PDF文档。
- 创建
java.io.File
对象并确保文件扩展名PDF。 - 调用
Document
对象的copyToFile
方法以将Document
对象的内容复制到文件中(确保您使用removeSecurity
方法返回的Document
对象)。
- 创建
代码示例
有关使用Document Security服务的代码示例,请参阅以下快速入门:
- “快速入门(SOAP模式):使用Java API从PDF文档中删除策略”
使用Web服务API删除策略 remove-a-policy-using-the-web-service-api
使用Document Security API(Web服务)从受策略保护的PDF文档中删除策略:
-
包括项目文件。
创建使用MTOM的Microsoft .NET项目。 确保使用以下WSDL定义:
http://localhost:8080/soap/services/RightsManagementService?WSDL&lc_version=9.0.1
。note note NOTE 将 localhost
替换为承载AEM Forms的服务器的IP地址。 -
创建Document Security客户端API对象。
-
使用默认构造函数创建
DocumentSecurityServiceClient
对象。 -
使用
System.ServiceModel.EndpointAddress
构造函数创建DocumentSecurityServiceClient.Endpoint.Address
对象。 将指定WSDL的字符串值传递给AEM Forms服务(例如,http://localhost:8080/soap/services/RightsManagementService?WSDL
)。 您无需使用lc_version
属性。 此属性在创建服务引用时使用。) -
通过获取
DocumentSecurityServiceClient.Endpoint.Binding
字段的值创建一个System.ServiceModel.BasicHttpBinding
对象。 将返回值强制转换为BasicHttpBinding
。 -
将
System.ServiceModel.BasicHttpBinding
对象的MessageEncoding
字段设置为WSMessageEncoding.Mtom
。 此值可确保使用MTOM。 -
通过执行以下任务启用基本HTTP身份验证:
- 将AEM表单用户名分配给字段
DocumentSecurityServiceClient.ClientCredentials.UserName.UserName
。 - 将相应的密码值分配给字段
DocumentSecurityServiceClient.ClientCredentials.UserName.Password
。 - 将常量值
HttpClientCredentialType.Basic
分配给字段BasicHttpBindingSecurity.Transport.ClientCredentialType
。
- 将AEM表单用户名分配给字段
-
将常量值
BasicHttpSecurityMode.TransportCredentialOnly
分配给字段BasicHttpBindingSecurity.Security.Mode
。
-
-
检索受策略保护的PDF文档。
- 使用构造函数创建
BLOB
对象。BLOB
对象用于存储从中删除策略的受策略保护的PDF文档。 - 通过调用其构造函数并传递一个字符串值来创建一个
System.IO.FileStream
对象,该字符串值表示PDF文档的文件位置以及打开文件的模式。 - 创建用于存储
System.IO.FileStream
对象的内容的字节数组。 您可以通过获取System.IO.FileStream
对象的Length
属性来确定字节数组的大小。 - 通过调用
System.IO.FileStream
对象的Read
方法并传递要读取的字节数组、起始位置和流长度,使用流数据填充字节数组。 - 使用字节数组的内容分配其
MTOM
字段以填充BLOB
对象。
- 使用构造函数创建
-
从PDF文档中删除策略。
通过调用
DocumentSecurityServiceClient
对象的removePolicySecurity
方法并传递包含受策略保护的PDF文档的BLOB
对象,从PDF文档中删除策略。 此方法返回包含不安全PDF文档的BLOB
对象。 -
保存不安全的PDF文档。
- 通过调用其构造函数并传递表示无保护PDF文档的文件位置的字符串值来创建
System.IO.FileStream
对象。 - 创建一个字节数组,用于存储
removePolicySecurity
方法返回的BLOB
对象的数据内容。 通过获取BLOB
对象的MTOM
字段的值填充字节数组。 - 通过调用其构造函数并传递
System.IO.FileStream
对象来创建System.IO.BinaryWriter
对象。
- 通过调用其构造函数并传递表示无保护PDF文档的文件位置的字符串值来创建
代码示例
有关使用Document Security服务的代码示例,请参阅以下快速入门:
- “快速入门(MTOM):使用Web服务API从PDF文档中删除策略”
- “快速入门(SwaRef):使用Web服务API从PDF文档中删除策略”
另请参阅
撤销对文档的访问权限 revoking-access-to-documents
您可以撤销对受策略保护的PDF文档的访问权限,从而导致用户无法访问该文档的所有副本。 当用户尝试打开吊销的PDF文档时,他们被重定向到指定的URL,在那里可以查看修订的文档。 必须以编程方式指定用户重定向到的URL。 当您撤销对文档的访问权限时,更改将在用户下次通过联机打开受策略保护的文档与Document Security服务同步时生效。
撤销文档访问权限的功能提供了附加安全性。 例如,假定文档有较新版本可用,并且您不再希望任何人查看过时的版本。 在此情况下,对旧文档的访问可以撤销,除非恢复访问,否则任何人都无法查看该文档。
步骤摘要 summary_of_steps-5
要撤销受策略保护的文档,请执行以下步骤:
- 包括项目文件。
- 创建Document Security客户端API对象。
- 检索受策略保护的PDF文档。
- 撤销受策略保护的文档。
包含项目文件
在开发项目中包含必要的文件。 如果要使用Java创建客户端应用程序,请包含必要的JAR文件。 如果您使用的是Web服务,请确保包含代理文件。
创建Document Security客户端API对象
您必须先创建Document Security服务客户端对象,然后才能以编程方式执行Document Security服务操作。
检索受策略保护的PDF文档
检索受策略保护的PDF文档以撤销它。 您无法撤销已撤销或不是受策略保护文档的文档。
如果您知道受策略保护文档的license identifier值,则不必检索受策略保护的PDF文档。 但是,在大多数情况下,必须检索PDF文档以获得许可证标识符值。
撤销受策略保护的文档
要撤销受策略保护的文档,请指定受策略保护文档的许可证标识符。 此外,您可以指定用户尝试打开撤消文档时可以查看的文档URL。 也就是说,假定已过期的文档被撤销。 当用户尝试打开撤消的文档时,他们将看到更新的文档而不是撤消的文档。
另请参阅
使用Java API撤销对文档的访问 revoke-access-to-documents-using-the-java-api
使用Document Security API (Java)撤销对受策略保护的PDF文档的访问权限:
-
包含项目文件
在您的Java项目的类路径中包含客户端JAR文件,例如adobe-rightsmanagement-client.jar。
-
创建Document Security客户端API对象
- 创建包含连接属性的
ServiceClientFactory
对象。 - 使用对象的构造函数创建
DocumentSecurityClient
对象并传递ServiceClientFactory
对象。
- 创建包含连接属性的
-
检索受策略保护的PDF文档
- 通过使用受策略保护的PDF文档的构造函数并传递指定PDF文档位置的字符串值,创建表示该文档的
java.io.FileInputStream
对象。 - 使用对象的构造函数创建
com.adobe.idp.Document
对象并传递java.io.FileInputStream
对象。
- 通过使用受策略保护的PDF文档的构造函数并传递指定PDF文档位置的字符串值,创建表示该文档的
-
撤销受策略保护的文档
-
通过调用
DocumentSecurityClient
对象的getDocumentManager
方法创建DocumentManager
对象。 -
通过调用
DocumentManager
对象的getLicenseId
方法,检索受策略保护文档的许可证标识符值。 传递表示受策略保护文档的com.adobe.idp.Document
对象。 此方法返回代表许可证标识符值的字符串值。 -
通过调用
DocumentSecurityClient
对象的getLicenseManager
方法创建LicenseManager
对象。 -
通过调用
LicenseManager
对象的revokeLicense
方法并传递以下值来撤销受策略保护的文档:- 指定受策略保护文档的许可证标识符值的字符串值(指定
DocumentManager
对象的getLicenseId
方法的返回值)。 License
接口的静态数据成员,它指定撤销文档的原因。 例如,您可以指定License.DOCUMENT_REVISED
。- 一个
java.net.URL
值,它指定修订文档的位置。 如果您不想将用户重定向到其他URL,则可以传递null
。
- 指定受策略保护文档的许可证标识符值的字符串值(指定
-
代码示例
有关使用Document Security服务的代码示例,请参阅以下快速入门:
- “快速入门(SOAP模式):使用Java API撤销文档”
使用Web服务API撤销对文档的访问 revoke-access-to-documents-using-the-web-service-api
使用Document Security API(Web服务)撤销对受策略保护的PDF文档的访问权限:
-
包含项目文件
创建使用MTOM的Microsoft .NET项目。 确保使用以下WSDL定义:
http://localhost:8080/soap/services/RightsManagementService?WSDL&lc_version=9.0.1
。note note NOTE 将 localhost
替换为承载AEM Forms的服务器的IP地址。 -
创建Document Security客户端API对象
-
使用默认构造函数创建
DocumentSecurityServiceClient
对象。 -
使用
System.ServiceModel.EndpointAddress
构造函数创建DocumentSecurityServiceClient.Endpoint.Address
对象。 将指定WSDL的字符串值传递给AEM Forms服务(例如,http://localhost:8080/soap/services/RightsManagementService?WSDL
)。 您无需使用lc_version
属性。 此属性在创建服务引用时使用。) -
通过获取
DocumentSecurityServiceClient.Endpoint.Binding
字段的值创建一个System.ServiceModel.BasicHttpBinding
对象。 将返回值强制转换为BasicHttpBinding
。 -
将
System.ServiceModel.BasicHttpBinding
对象的MessageEncoding
字段设置为WSMessageEncoding.Mtom
。 此值可确保使用MTOM。 -
通过执行以下任务启用基本HTTP身份验证:
- 将AEM表单用户名分配给字段
DocumentSecurityServiceClient.ClientCredentials.UserName.UserName
。 - 将相应的密码值分配给字段
DocumentSecurityServiceClient.ClientCredentials.UserName.Password
。 - 将常量值
HttpClientCredentialType.Basic
分配给字段BasicHttpBindingSecurity.Transport.ClientCredentialType
。
- 将AEM表单用户名分配给字段
-
将常量值
BasicHttpSecurityMode.TransportCredentialOnly
分配给字段BasicHttpBindingSecurity.Security.Mode
。
-
-
检索受策略保护的PDF文档
- 使用构造函数创建
BLOB
对象。BLOB
对象用于存储已撤销的受策略PDF文档。 - 通过调用其构造函数并传递一个字符串值来创建一个
System.IO.FileStream
对象,该字符串值表示要撤销的受策略保护PDF文档的文件位置以及打开文件的模式。 - 创建用于存储
System.IO.FileStream
对象的内容的字节数组。 您可以通过获取System.IO.FileStream
对象的Length
属性来确定字节数组的大小。 - 通过调用
System.IO.FileStream
对象的Read
方法并传递要读取的字节数组、起始位置和流长度,使用流数据填充字节数组。 - 使用字节数组的内容分配其
MTOM
字段以填充BLOB
对象。
- 使用构造函数创建
-
撤销受策略保护的文档
-
通过调用
DocumentSecurityServiceClient
对象的getLicenseID
方法并传递表示受策略保护文档的BLOB
对象,检索受策略保护文档的许可证标识符值。 此方法返回代表许可证标识符的字符串值。 -
通过调用
DocumentSecurityServiceClient
对象的revokeLicense
方法并传递以下值来撤销受策略保护的文档:- 指定受策略保护文档的许可证标识符值的字符串值(指定
DocumentSecurityServiceService
对象的getLicenseId
方法的返回值)。 Reason
枚举的静态数据成员,它指定撤销文档的原因。 例如,您可以指定Reason.DOCUMENT_REVISED
。- 一个
string
值,它指定修订文档所在的URL位置。 如果您不想将用户重定向到其他URL,则可以传递null
。
- 指定受策略保护文档的许可证标识符值的字符串值(指定
-
代码示例
有关使用Document Security服务的代码示例,请参阅以下快速入门:
- “快速入门(MTOM):使用Web服务API撤销文档”
- “快速入门(SwaRef):使用Web服务API撤销文档”
另请参阅
恢复对已撤消文档的访问 reinstating-access-to-revoked-documents
您可以恢复对已撤销PDF文档的访问,从而使用户能够访问已撤销文档的所有副本。 当用户打开已撤销的恢复文档时,用户能够查看文档。
步骤摘要 summary_of_steps-6
要恢复对已撤销PDF文档的访问,请执行以下步骤:
- 包括项目文件。
- 创建Document Security客户端API对象。
- 检索吊销PDF文档的许可证标识符。
- 恢复对已撤销PDF文档的访问。
包含项目文件
在开发项目中包含必要的文件。 如果要使用Java创建客户端应用程序,请包含必要的JAR文件。 如果您使用的是Web服务,请确保包含代理文件。
创建Document Security客户端API对象
您必须先创建Document Security服务客户端对象,然后才能以编程方式执行Document Security服务操作。 如果您使用的是Java API,请创建一个DocumentSecurityClient
对象。 如果您使用的是Document Security Web服务API,请创建DocumentSecurityServiceService
对象。
检索已吊销PDF文档的许可证标识符
检索已撤销PDF文档的许可证标识符以恢复已撤销PDF文档。 获取许可证标识符值后,您可以恢复已撤消的文档。 如果尝试恢复未撤消的文档,则会导致异常。
恢复对已吊销PDF文档的访问
要恢复对已撤销PDF文档的访问,必须指定已撤销文档的许可证标识符。 如果尝试恢复对未撤消的PDF文档的访问,则会导致出现异常。
另请参阅
使用Java API恢复对已撤销文档的访问 reinstate-access-to-revoked-documents-using-the-java-api
使用Document Security API (Java)恢复对已撤销文档的访问:
-
包括项目文件。
在您的Java项目的类路径中包含客户端JAR文件,例如adobe-rightsmanagement-client.jar。
-
创建Document Security客户端API对象。
- 创建包含连接属性的
ServiceClientFactory
对象。 - 使用对象的构造函数创建
DocumentSecurityClient
对象并传递ServiceClientFactory
对象。
- 创建包含连接属性的
-
检索吊销PDF文档的许可证标识符。
- 通过使用其构造函数并传递指定PDF文档位置的字符串值,创建表示已吊销PDF文档的
java.io.FileInputStream
对象。 - 使用对象的构造函数创建
com.adobe.idp.Document
对象并传递java.io.FileInputStream
对象。 - 通过调用
DocumentSecurityClient
对象的getDocumentManager
方法创建DocumentManager
对象。 - 通过调用
DocumentManager
对象的getLicenseId
方法并传递表示已撤销文档的com.adobe.idp.Document
对象,检索已撤销文档的许可证标识符值。 此方法返回代表许可证标识符的字符串值。
- 通过使用其构造函数并传递指定PDF文档位置的字符串值,创建表示已吊销PDF文档的
-
恢复对已撤销PDF文档的访问。
- 通过调用
DocumentSecurityClient
对象的getLicenseManager
方法创建LicenseManager
对象。 - 通过调用
LicenseManager
对象的unrevokeLicense
方法并传递已吊销PDF的许可证标识符值,恢复对已吊销文档的访问。
- 通过调用
代码示例
有关使用Document Security服务的代码示例,请参阅以下快速入门:
- “快速入门(SOAP模式):使用Web服务API恢复对已吊销文档的访问”
使用Web服务API恢复对已撤消文档的访问 reinstate-access-to-revoked-documents-using-the-web-service-api
使用Document Security API(Web服务)恢复对已撤销文档的访问:
-
包括项目文件。
创建使用MTOM的Microsoft .NET项目。 确保使用以下WSDL定义:
http://localhost:8080/soap/services/RightsManagementService?WSDL&lc_version=9.0.1
。note note NOTE 将 localhost
替换为承载AEM Forms的服务器的IP地址。 -
创建Document Security客户端API对象。
-
使用默认构造函数创建
DocumentSecurityServiceClient
对象。 -
使用
System.ServiceModel.EndpointAddress
构造函数创建DocumentSecurityServiceClient.Endpoint.Address
对象。 将指定WSDL的字符串值传递给AEM Forms服务(例如,http://localhost:8080/soap/services/RightsManagementService?WSDL
)。 您无需使用lc_version
属性。 此属性在创建服务引用时使用。) -
通过获取
DocumentSecurityServiceClient.Endpoint.Binding
字段的值创建一个System.ServiceModel.BasicHttpBinding
对象。 将返回值强制转换为BasicHttpBinding
。 -
将
System.ServiceModel.BasicHttpBinding
对象的MessageEncoding
字段设置为WSMessageEncoding.Mtom
。 此值可确保使用MTOM。 -
通过执行以下任务启用基本HTTP身份验证:
- 将AEM表单用户名分配给字段
DocumentSecurityServiceClient.ClientCredentials.UserName.UserName
。 - 将相应的密码值分配给字段
DocumentSecurityServiceClient.ClientCredentials.UserName.Password
。 - 将常量值
HttpClientCredentialType.Basic
分配给字段BasicHttpBindingSecurity.Transport.ClientCredentialType
。
- 将AEM表单用户名分配给字段
-
将常量值
BasicHttpSecurityMode.TransportCredentialOnly
分配给字段BasicHttpBindingSecurity.Security.Mode
。
-
-
检索吊销PDF文档的许可证标识符。
- 使用构造函数创建
BLOB
对象。BLOB
对象用于存储已撤销的PDF文档,恢复了对该文档的访问。 - 通过调用其构造函数并传递一个字符串值来创建一个
System.IO.FileStream
对象,该字符串值表示已吊销PDF文档的文件位置以及打开文件的模式。 - 创建用于存储
System.IO.FileStream
对象的内容的字节数组。 您可以通过获取System.IO.FileStream
对象的Length
属性来确定字节数组的大小。 - 通过调用
System.IO.FileStream
对象的Read
方法并传递要读取的字节数组、起始位置和流长度,使用流数据填充字节数组。 - 使用字节数组的内容分配其
MTOM
字段以填充BLOB
对象。
- 使用构造函数创建
-
恢复对已撤销PDF文档的访问。
- 通过调用
DocumentSecurityServiceClient
对象的getLicenseID
方法并传递表示已撤销文档的BLOB
对象,检索已撤销文档的许可证标识符值。 此方法返回代表许可证标识符的字符串值。 - 通过调用
DocumentSecurityServiceClient
对象的unrevokeLicense
方法并传递指定已吊销PDF文档的许可证标识符值的字符串值(传递DocumentSecurityServiceClient
对象的getLicenseId
方法的返回值),恢复对已吊销PDF文档的访问。
- 通过调用
代码示例
有关使用Document Security服务的代码示例,请参阅以下快速入门:
- “快速入门(MTOM):使用Web服务API恢复对已吊销文档的访问”
- “快速入门(SwaRef):使用Web服务API恢复对已吊销文档的访问”
另请参阅
检查受策略保护的PDF文档 inspecting-policy-protected-pdf-documents
您可以使用Document Security Service API(Java和Web服务)检查受策略保护的PDF文档。 检查受策略保护的PDF文档会返回有关受策略保护的PDF文档的信息。 例如,您可以确定用于保护文档的策略以及保护文档的日期。
如果您的LiveCycle版本是8.x或更低版本,则无法执行此任务。 AEM Forms中添加了对检查受策略保护文档的支持。 如果尝试使用LiveCycle8.x(或更早版本)检查受策略保护的文档,则会引发异常。
步骤摘要 summary_of_steps-7
要检查受策略保护的PDF文档,请执行以下步骤:
- 包括项目文件。
- 创建Document Security客户端API对象。
- 检索要检查的受策略保护的文档。
- 获取有关受策略保护文档的信息。
包含项目文件
在开发项目中包含必要的文件。 如果要使用Java创建客户端应用程序,请包含必要的JAR文件。 如果使用Web服务,请确保包含代理文件。
创建Document Security客户端API对象
在以编程方式执行Document Security服务操作之前,请先创建Document Security服务客户端对象。 如果您使用的是Java API,请创建一个RightsManagementClient
对象。 如果您使用的是Document Security Web服务API,请创建RightsManagementServiceService
对象。
检索受策略保护的文档以检查
要检查受策略保护的文档,请检索它。 如果尝试检查未使用策略保护或撤消的文档,则会引发异常。
Inspect文档
检索受策略保护的文档后,可以检查该文档。
获取有关受策略保护文档的信息
检查受策略保护的PDF文档后,可以获得有关该文档的信息。 例如,您可以确定用于保护文档的策略。
如果您使用属于我的策略的策略保护文档,然后调用RMInspectResult.getPolicysetName
或RMInspectResult.getPolicysetId
,则返回null。
如果使用策略集(我的策略除外)中包含的策略对文档进行保护,则RMInspectResult.getPolicysetName
和RMInspectResult.getPolicysetId
将返回有效的字符串。
另请参阅
使用Java API的Inspect受策略保护的PDF文档 inspect-policy-protected-pdf-documents-using-the-java-api
使用Document Security Service API (Java)Inspect受策略保护的PDF文档:
-
包括项目文件。
在您的Java项目的类路径中包含客户端JAR文件,例如adobe-rightsmanagement-client.jar。 有关这些文件的位置的信息,请参阅包括AEM Forms Java库文件。
-
创建Document Security客户端API对象。
- 创建包含连接属性的
ServiceClientFactory
对象。 (请参阅设置连接属性。) - 使用对象的构造函数创建
RightsManagementClient
对象并传递ServiceClientFactory
对象。
- 创建包含连接属性的
-
检索要检查的受策略保护的文档。
- 使用受策略保护的PDF文档的构造函数创建一个
java.io.FileInputStream
对象。 传递一个指定PDF文档位置的字符串值。 - 使用对象的构造函数创建
com.adobe.idp.Document
对象并传递java.io.FileInputStream
对象。
- 使用受策略保护的PDF文档的构造函数创建一个
-
Inspect文档。
- 通过调用
RightsManagementClient
对象的getDocumentManager
方法创建DocumentManager
对象。 - 通过调用
LicenseManager
对象的inspectDocument
方法Inspect受策略保护的文档。 传递包含受策略保护的PDF文档的com.adobe.idp.Document
对象。 此方法返回包含有关受策略保护文档的信息的RMInspectResult
对象。
- 通过调用
-
获取有关受策略保护文档的信息。
要获取有关受策略保护文档的信息,请调用属于
RMInspectResult
对象的相应方法。 例如,要检索策略名称,请调用RMInspectResult
对象的getPolicyName
方法。
代码示例
有关使用Document Security服务的代码示例,请参阅以下快速入门:
- “快速入门(SOAP模式):使用Java API检查受策略保护的PDF文档”
使用Web服务API的Inspect受策略保护的PDF文档 inspect-policy-protected-pdf-documents-using-the-web-service-api
Inspect使用Document Security服务API(Web服务)创建受策略保护的PDF文档:
-
包括项目文件。
创建使用MTOM的Microsoft .NET项目。 确保使用以下WSDL定义:
http://localhost:8080/soap/services/RightsManagementService?WSDL&lc_version=9.0.1
。note note NOTE 将 localhost
替换为承载AEM Forms的服务器的IP地址。 -
创建Document Security客户端API对象。
-
使用默认构造函数创建
RightsManagementServiceClient
对象。 -
使用
System.ServiceModel.EndpointAddress
构造函数创建RightsManagementServiceClient.Endpoint.Address
对象。 将指定WSDL的字符串值传递给AEM Forms服务(例如,http://localhost:8080/soap/services/RightsManagementService?WSDL
)。 您无需使用lc_version
属性。 此属性在创建服务引用时使用。) -
通过获取
RightsManagementServiceClient.Endpoint.Binding
字段的值创建一个System.ServiceModel.BasicHttpBinding
对象。 将返回值强制转换为BasicHttpBinding
。 -
将
System.ServiceModel.BasicHttpBinding
对象的MessageEncoding
字段设置为WSMessageEncoding.Mtom
。 此值可确保使用MTOM。 -
通过执行以下任务启用基本HTTP身份验证:
- 将AEM表单用户名分配给字段
RightsManagementServiceClient.ClientCredentials.UserName.UserName
。 - 将相应的密码值分配给字段
RightsManagementServiceClient.ClientCredentials.UserName.Password
。 - 将常量值
HttpClientCredentialType.Basic
分配给字段BasicHttpBindingSecurity.Transport.ClientCredentialType
。
- 将AEM表单用户名分配给字段
-
将常量值
BasicHttpSecurityMode.TransportCredentialOnly
分配给字段BasicHttpBindingSecurity.Security.Mode
。
-
-
检索要检查的受策略保护的文档。
- 使用构造函数创建
BLOB
对象。BLOB
对象用于存储要检查的PDF文档。 - 通过调用其构造函数创建
System.IO.FileStream
对象。 传递一个字符串值,该值表示PDF文档的文件位置以及用于打开文件的模式。 - 创建用于存储
System.IO.FileStream
对象的内容的字节数组。 您可以通过获取System.IO.FileStream
对象的Length
属性来确定字节数组的大小。 - 通过调用
System.IO.FileStream
对象的Read
方法,使用流数据填充字节数组。 传递字节数组、起始位置和流长度以读取。 - 使用字节数组的内容分配其
MTOM
字段以填充BLOB
对象。
- 使用构造函数创建
-
Inspect文档。
通过调用
RightsManagementServiceClient
对象的inspectDocument
方法Inspect受策略保护的文档。 传递包含受策略保护的PDF文档的BLOB
对象。 此方法返回包含有关受策略保护文档的信息的RMInspectResult
对象。 -
获取有关受策略保护文档的信息。
要获取有关受策略保护文档的信息,请获取属于
RMInspectResult
对象的相应字段的值。 例如,要检索策略名称,请获取RMInspectResult
对象的policyName
字段的值。
代码示例
有关使用Document Security服务的代码示例,请参阅以下快速入门:
- “快速入门(MTOM):使用Web服务API检查受策略保护的PDF文档”
- “快速入门(SwaRef):使用Web服务API检查受策略保护的PDF文档”
另请参阅
创建水印 creating-watermarks
水印通过唯一地标识文档并控制版权侵权,帮助确保文档的安全。 例如,您可以创建并放置一个水印,在文档的所有页面上显示“机密”。 创建水印后,您可以将其包含在策略中。 即,您可以使用新建的水印设置策略的水印属性。 将包含水印的策略应用于文档后,水印将显示在受策略保护的文档中。
步骤摘要 summary_of_steps-8
要创建水印,请执行以下步骤:
- 包括项目文件。
- 创建Document Security客户端API对象。
- 设置水印属性。
- 向Document Security服务注册水印。
包含项目文件
在开发项目中包含必要的文件。 如果要使用Java创建客户端应用程序,请包含必要的JAR文件。 如果您使用的是Web服务,请确保包含代理文件。
创建Document Security客户端API对象
您必须先创建Document Security服务客户端对象,然后才能以编程方式执行Document Security服务操作。 如果您使用的是Java API,请创建一个RightsManagementClient
对象。 如果您使用的是Document Security Web服务API,请创建RightsManagementServiceService
对象。
设置水印属性
要创建水印,必须设置水印属性。 必须始终定义名称属性。 除了名称属性之外,还必须至少设置以下属性之一:
- 自定义文本
- 包含日期
- UserIdInclude
- UserNameInclude
下表列出了使用Web服务创建水印时所需的键值对。
WaterBackCmd:IS_USERNAME_ENABLED
WaterBackCmd:IS_USERID_ENABLED
WaterBackCmd:IS_CURRENTDATE_ENABLED
WaterBackCmd:IS_CUSTOMTEXT_ENABLED
WaterBackCmd:SRCTEXT
指定自定义文本的值。WaterBackCmd:OPACITY
WaterBackCmd:ROTATION
WaterBackCmd:SCALE
WaterBackCmd:IS_SIZE_ENABLED
必须存在并且值必须为true。 如果未指定此属性,则默认行为适合页面。WaterBackCmd:HORIZ_ALIGN
WaterBackCmd:VERT_ALIGN
WaterBackCmd:IS_USE_BACKGROUND
WaterBackCmd:IS_SIZE_ENABLED
WaterBackCmd:SRCTEXT
WaterBackCmd:IS_CUSTOMTEXT_ENABLED
也必须存在并设置为true。所有水印都必须定义以下属性之一:
WaterBackCmd:IS_USERNAME_ENABLED
WaterBackCmd:IS_USERID_ENABLED
WaterBackCmd:IS_CURRENTDATE_ENABLED
WaterBackCmd:IS_CUSTOMTEXT_ENABLED
所有其他属性都是可选的。
注册水印
新的水印必须先在Document Security服务中注册,然后才能使用。 注册水印后,您可以在策略中使用该水印。
另请参阅
使用Java API创建水印 create-watermarks-using-the-java-api
使用Document Security API (Java)创建水印:
-
包括项目文件。
在您的Java项目的类路径中包含客户端JAR文件,如
adobe-rightsmanagement-client.jar
。 -
创建Document Security客户端API对象。
- 创建包含连接属性的
ServiceClientFactory
对象。 - 使用对象的构造函数创建
RightsManagementClient
对象并传递ServiceClientFactory
对象。
- 创建包含连接属性的
-
设置水印属性
- 通过调用
InfomodelObjectFactory
对象的静态createWatermark
方法创建Watermark
对象。 此方法返回Watermark
对象。 - 通过调用
Watermark
对象的setName
方法并传递指定策略名称的字符串值来设置水印的名称属性。 - 通过调用
Watermark
对象的setBackground
方法并传递true
来设置水印的背景属性。 通过设置此属性,水印将显示在文档的背景中。 - 通过调用
Watermark
对象的setCustomText
方法并传递表示水印文本的字符串值来设置水印的自定义文本属性。 - 通过调用
Watermark
对象的setOpacity
方法并传递指定不透明度级别的整数值来设置水印的不透明度属性。 值100表示水印完全不透明,值0表示水印完全透明。
- 通过调用
-
注册水印。
- 通过调用
RightsManagementClient
对象的getWatermarkManager
方法创建WatermarkManager
对象。 此方法返回WatermarkManager
对象。 - 通过调用
WatermarkManager
对象的registerWatermark
方法并传递表示水印的Watermark
对象来注册水印。 此方法返回代表水印标识值的字符串值。
- 通过调用
代码示例
有关使用Document Security服务的代码示例,请参阅以下快速入门:
- “快速入门(SOAP模式):使用Java API创建水印”
使用Web服务API创建水印 create-watermarks-using-the-web-service-api
使用Document Security API(Web服务)创建水印:
-
创建Document Security客户端API对象。
创建使用MTOM的Microsoft .NET项目。 确保使用以下WSDL定义:
http://localhost:8080/soap/services/RightsManagementService?WSDL&lc_version=9.0.1
。note note NOTE 将 localhost
替换为承载AEM Forms的服务器的IP地址。 -
创建Document Security客户端API对象。
-
使用默认构造函数创建
RightsManagementServiceClient
对象。 -
使用
System.ServiceModel.EndpointAddress
构造函数创建RightsManagementServiceClient.Endpoint.Address
对象。 将指定WSDL的字符串值传递给AEM Forms服务(例如,http://localhost:8080/soap/services/RightsManagementService?WSDL
)。 您无需使用lc_version
属性。 此属性在创建服务引用时使用。) -
通过获取
RightsManagementServiceClient.Endpoint.Binding
字段的值创建一个System.ServiceModel.BasicHttpBinding
对象。 将返回值强制转换为BasicHttpBinding
。 -
将
System.ServiceModel.BasicHttpBinding
对象的MessageEncoding
字段设置为WSMessageEncoding.Mtom
。 此值可确保使用MTOM。 -
通过执行以下任务启用基本HTTP身份验证:
- 将AEM表单用户名分配给字段
RightsManagementServiceClient.ClientCredentials.UserName.UserName
。 - 将相应的密码值分配给字段
RightsManagementServiceClient.ClientCredentials.UserName.Password
。 - 将常量值
HttpClientCredentialType.Basic
分配给字段BasicHttpBindingSecurity.Transport.ClientCredentialType
。
- 将AEM表单用户名分配给字段
-
将常量值
BasicHttpSecurityMode.TransportCredentialOnly
分配给字段BasicHttpBindingSecurity.Security.Mode
。
-
-
设置水印属性。
- 通过调用
WatermarkSpec
构造函数创建WatermarkSpec
对象。 - 通过为
WatermarkSpec
对象的name
数据成员分配字符串值来设置水印的名称。 - 通过为
WatermarkSpec
对象的id
数据成员分配字符串值来设置水印的id
属性。 - 对于要设置的每个水印属性,请创建一个单独的
MyMapOf_xsd_string_To_xsd_anyType_Item
对象。 - 通过为
MyMapOf_xsd_string_To_xsd_anyType_Item
对象的key
数据成员(例如,WaterBackCmd:OPACITY)
)分配值来设置键值。 - 通过为
MyMapOf_xsd_string_To_xsd_anyType_Item
对象的value
数据成员(例如,.25
)分配值来设置值。 - 创建
MyArrayOf_xsd_anyType
对象。 对于每个MyMapOf_xsd_string_To_xsd_anyType_Item
对象,调用MyArrayOf_xsd_anyType
对象的Add
方法。 传递MyMapOf_xsd_string_To_xsd_anyType_Item
对象。 - 将
MyArrayOf_xsd_anyType
对象分配给WatermarkSpec
对象的values
数据成员。
- 通过调用
-
注册水印。
通过调用
RightsManagementServiceClient
对象的registerWatermark
方法并传递表示水印的WatermarkSpec
对象来注册水印。
代码示例
有关使用Document Security服务的代码示例,请参阅以下快速入门:
- “快速入门(MTOM):使用Web服务API创建水印”
- “快速入门(SwaRef):使用Web服务API创建水印”
另请参阅
修改水印 modifying-watermarks
您可以使用Document Security Java API或Web服务API修改现有水印。 要更改现有水印,可以检索它,修改其属性,然后在服务器上更新它。 例如,假设您检索水印并修改其不透明度属性。 在更改生效之前,必须更新水印。
当您修改水印时,此更改将影响对其应用了水印的未来文档。 也就是说,包含水印的现有PDF文档不受影响。
步骤摘要 summary_of_steps-9
要修改水印,请执行以下步骤:
- 包括项目文件。
- 创建Document Security客户端API对象。
- 检索要修改的水印。
- 设置水印属性。
- 更新水印。
包含项目文件
在开发项目中包含必要的文件。 如果要使用Java创建客户端应用程序,请包含必要的JAR文件。 如果您使用的是Web服务,请确保包含代理文件。
创建Document Security客户端API对象
您必须先创建Document Security服务客户端对象,然后才能以编程方式执行Document Security服务操作。 如果您使用的是Java API,请创建一个DocumentSecurityClient
对象。 如果您使用的是Document Security Web服务API,请创建DocumentSecurityServiceService
对象。
检索要修改的水印
要修改水印,必须检索现有水印。 可以通过指定水印名称或指定其标识符值来检索水印。
设置水印属性
要修改现有水印,请更改一个或多个水印属性的值。 使用Web服务以编程方式更新水印时,必须设置最初设置的所有属性,即使值未发生更改也是如此。 例如,假定设置了以下水印属性: WaterBackCmd:IS_USERID_ENABLED
、WaterBackCmd:IS_CUSTOMTEXT_ENABLED
、WaterBackCmd:OPACITY
和WaterBackCmd:SRCTEXT
。 尽管您要修改的唯一属性是WaterBackCmd:OPACITY
,但您必须设置其他值。
更新水印
修改水印的属性后,必须更新水印。
另请参阅
使用Java API修改水印 modify-watermarks-using-the-java-api
使用Document Security API (Java)修改水印:
-
包括项目文件。
在您的Java项目的类路径中包含客户端JAR文件,例如adobe-rightsmanagement-client.jar。
-
创建Document Security客户端API对象。
- 创建包含连接属性的
ServiceClientFactory
对象。 - 使用对象的构造函数创建
DocumentSecurityClient
对象并传递ServiceClientFactory
对象。
- 创建包含连接属性的
-
检索要修改的水印。
通过调用
DocumentSecurityClient
对象的getWatermarkManager
方法创建WatermarkManager
对象,并传递指定水印名称的字符串值。 此方法返回表示要修改的水印的Watermark
对象。 -
设置水印属性。
通过调用
Watermark
对象的setOpacity
方法并传递指定不透明度级别的整数值来设置水印的不透明度属性。 值100表示水印完全不透明,值0表示水印完全透明。note note NOTE 此示例仅修改不透明度属性。 -
更新水印。
- 通过调用
WatermarkManager
对象的updateWatermark
方法更新水印,并传递其属性被修改的Watermark
对象。
- 通过调用
代码示例
有关使用Document Security服务的代码示例,请参阅快速入门(SOAP模式):使用Java API修改水印部分。
使用Web服务API修改水印 modify-watermarks-using-the-web-service-api
使用Document Security API(Web服务)修改水印:
-
包括项目文件。
创建使用MTOM的Microsoft .NET项目。 确保使用以下WSDL定义:
http://localhost:8080/soap/services/RightsManagementService?WSDL&lc_version=9.0.1
。note note NOTE 将 localhost
替换为承载AEM Forms的服务器的IP地址。 -
创建Document Security客户端API对象。
-
使用默认构造函数创建
DocumentSecurityServiceClient
对象。 -
使用
System.ServiceModel.EndpointAddress
构造函数创建RightsManagementServiceClient.Endpoint.Address
对象。 将指定WSDL的字符串值传递给AEM Forms服务(例如,http://localhost:8080/soap/services/DocumentSecurityService?WSDL
)。 您无需使用lc_version
属性。 此属性在创建服务引用时使用。) -
通过获取
DocumentSecurityServiceClient.Endpoint.Binding
字段的值创建一个System.ServiceModel.BasicHttpBinding
对象。 将返回值强制转换为BasicHttpBinding
。 -
将
System.ServiceModel.BasicHttpBinding
对象的MessageEncoding
字段设置为WSMessageEncoding.Mtom
。 此值可确保使用MTOM。 -
通过执行以下任务启用基本HTTP身份验证:
- 将AEM表单用户名分配给字段
DocumentSecurityServiceClient.ClientCredentials.UserName.UserName
。 - 将相应的密码值分配给字段
DocumentSecurityServiceClient.ClientCredentials.UserName.Password
。 - 将常量值
HttpClientCredentialType.Basic
分配给字段BasicHttpBindingSecurity.Transport.ClientCredentialType
。
- 将AEM表单用户名分配给字段
-
将常量值
BasicHttpSecurityMode.TransportCredentialOnly
分配给字段BasicHttpBindingSecurity.Security.Mode
。
-
-
检索要修改的水印。
通过调用
DocumentSecurityServiceClient
对象的getWatermarkByName
方法检索要修改的水印。 传递一个指定水印名称的字符串值。 此方法返回表示要修改的水印的WatermarkSpec
对象。 -
设置水印属性。
- 对于要更新的每个水印属性,请创建一个单独的
MyMapOf_xsd_string_To_xsd_anyType_Item
对象。 - 通过为
MyMapOf_xsd_string_To_xsd_anyType_Item
对象的key
数据成员(例如,WaterBackCmd:OPACITY)
)分配值来设置键值。 - 通过为
MyMapOf_xsd_string_To_xsd_anyType_Item
对象的value
数据成员(例如,.50
)分配值来设置值。 - 创建
MyArrayOf_xsd_anyType
对象。 对于每个MyMapOf_xsd_string_To_xsd_anyType_Item
对象,调用MyArrayOf_xsd_anyType
对象的Add
方法。 传递MyMapOf_xsd_string_To_xsd_anyType_Item
对象。 - 将
MyArrayOf_xsd_anyType
对象分配给WatermarkSpec
对象的values
数据成员。
- 对于要更新的每个水印属性,请创建一个单独的
-
更新水印。
通过调用
DocumentSecurityServiceClient
对象的updateWatermark
方法并传递表示要修改的水印的WatermarkSpec
对象来更新水印。
代码示例
有关使用Document Security服务的代码示例,请参阅以下快速入门:
- “快速入门(MTOM):使用Web服务API修改水印”
搜索事件 searching-for-events
Rights Management服务会在发生特定操作时对其进行跟踪,例如将策略应用到文档、打开受策略保护的文档以及撤销对文档的访问。 必须为Rights Management服务启用事件审核,否则不会跟踪事件。
事件分为以下类别之一:
- 管理员事件是与管理员相关的操作,例如创建管理员帐户。
- 文档事件是与文档相关的操作,例如关闭受策略保护的文档。
- 策略事件是与策略相关的操作,例如创建策略。
- 服务事件是与Rights Management服务相关的操作,例如与用户目录同步。
您可以使用Rights ManagementJava API或Web服务API搜索指定的事件。 通过搜索事件,您可以执行任务,例如创建特定事件的日志文件。
步骤摘要 summary_of_steps-10
要搜索Rights Management事件,请执行以下步骤:
- 包括项目文件。
- 创建Rights Management客户端API对象。
- 指定要搜索的事件。
- 搜索事件。
包含项目文件
在开发项目中包含必要的文件。 如果要使用Java创建客户端应用程序,请包含必要的JAR文件。 如果您使用的是Web服务,请确保包含代理文件。
创建Rights Management客户端API对象
必须先创建Rights Management服务客户端对象,然后才能以编程方式执行Rights Management服务操作。 如果您使用的是Java API,请创建一个DocumentSecurityClient
对象。 如果您使用Rights ManagementWeb服务API,请创建一个DocumentSecurityServiceService
对象。
指定要搜索的事件
指定要搜索的事件。 例如,您可以搜索策略创建事件,该事件将在创建新策略时发生。
搜索事件
指定要搜索的事件后,可以使用Rights ManagementJava API或Rights ManagementWeb服务API来搜索该事件。
另请参阅
使用Java API搜索事件 search-for-events-using-the-java-api
使用Rights ManagementAPI (Java)搜索事件:
-
包含项目文件
在您的Java项目的类路径中包含客户端JAR文件,例如adobe-rightsmanagement-client.jar。
-
创建Rights Management客户端API对象
使用对象的构造函数创建
DocumentSecurityClient
对象,并传递包含连接属性的ServiceClientFactory
对象。 -
指定要搜索的事件
- 通过调用
DocumentSecurityClient
对象的getEventManager
方法创建EventManager
对象。 此方法返回EventManager
对象。 - 通过调用其构造函数创建
EventSearchFilter
对象。 - 通过调用
EventSearchFilter
对象的setEventCode
方法并传递属于表示要搜索的事件的EventManager
类的静态数据成员,指定要搜索的事件。 例如,要搜索策略创建事件,请传递EventManager.POLICY_CREATE_EVENT
。
note note NOTE 您可以通过调用 EventSearchFilter
对象方法来定义其他搜索条件。 例如,调用setUserName
方法以指定与事件关联的用户。 - 通过调用
-
搜索事件
通过调用
EventManager
对象的searchForEvents
方法并传递定义事件搜索条件的EventSearchFilter
对象来搜索事件。 此方法返回Event
对象的数组。
代码示例
有关使用Rights Management服务的代码示例,请参阅以下快速入门:
- “快速入门(SOAP):使用Java API搜索事件”
使用Web服务API搜索事件 search-for-events-using-the-web-service-api
使用Rights ManagementAPI(Web服务)搜索事件:
-
包含项目文件
创建使用MTOM的Microsoft .NET项目。 确保使用以下WSDL定义:
http://localhost:8080/soap/services/RightsManagementService?WSDL&lc_version=9.0.1
。note note NOTE 将 localhost
替换为承载AEM Forms的服务器的IP地址。 -
创建Rights Management客户端API对象
-
使用默认构造函数创建
DocumentSecurityServiceClient
对象。 -
使用
System.ServiceModel.EndpointAddress
构造函数创建DocumentSecurityServiceClient.Endpoint.Address
对象。 将指定WSDL的字符串值传递给AEM Forms服务(例如,http://localhost:8080/soap/services/RightsManagementService?WSDL
)。 您无需使用lc_version
属性。 此属性在创建服务引用时使用。) -
通过获取
DocumentSecurityServiceClient.Endpoint.Binding
字段的值创建一个System.ServiceModel.BasicHttpBinding
对象。 将返回值强制转换为BasicHttpBinding
。 -
将
System.ServiceModel.BasicHttpBinding
对象的MessageEncoding
字段设置为WSMessageEncoding.Mtom
。 此值可确保使用MTOM。 -
通过执行以下任务启用基本HTTP身份验证:
- 将AEM表单用户名分配给字段
DocumentSecurityServiceClient.ClientCredentials.UserName.UserName
。 - 将相应的密码值分配给字段
DocumentSecurityServiceClient.ClientCredentials.UserName.Password
。 - 将常量值
HttpClientCredentialType.Basic
分配给字段BasicHttpBindingSecurity.Transport.ClientCredentialType
。
- 将AEM表单用户名分配给字段
-
将常量值
BasicHttpSecurityMode.TransportCredentialOnly
分配给字段BasicHttpBindingSecurity.Security.Mode
。
-
-
指定要搜索的事件
- 使用构造函数创建
EventSpec
对象。 - 通过设置
EventSpec
对象的firstTime.date
数据成员的DataTime
实例(表示事件发生时日期范围的开始)来指定事件发生期间的开始。 - 将值
true
分配给EventSpec
对象的firstTime.dateSpecified
数据成员。 - 通过设置
EventSpec
对象的lastTime.date
数据成员的DataTime
实例来指定事件发生期间的结束,该实例表示事件发生时日期范围的结束。 - 将值
true
分配给EventSpec
对象的lastTime.dateSpecified
数据成员。 - 通过为
EventSpec
对象的eventCode
数据成员分配字符串值来设置要搜索的事件。 下表列出了可以分配给此属性的数值:
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 7-row-2 8-row-2 9-row-2 10-row-2 11-row-2 12-row-2 13-row-2 14-row-2 15-row-2 16-row-2 17-row-2 18-row-2 19-row-2 20-row-2 21-row-2 22-row-2 23-row-2 24-row-2 25-row-2 26-row-2 27-row-2 28-row-2 29-row-2 30-row-2 31-row-2 32-row-2 33-row-2 34-row-2 35-row-2 36-row-2 37-row-2 38-row-2 39-row-2 40-row-2 41-row-2 42-row-2 43-row-2 44-row-2 45-row-2 46-row-2 47-row-2 事件类型 价值 ALL_EVENTS
999 USER_CHANGE_PASSWORD_EVENT
1000 USER_REGISTER_EVENT
1001 USER_PREREGISTER_EVENT
1002 USER_ACTIVATE_EVENT
1003 USER_DEACTIVATE_EVENT
1004 USER_AUTHENTICATE_EVENT
1005 USER_AUTHENTICATE_DENY_EVENT
1006 USER_ACCOUNT_LOCK_EVENT
1007 USER_DELETE_EVENT
1008 USER_UPDATE_PROFILE_EVENT
1009 DOCUMENT_VIEW_EVENT
2000 DOCUMENT_PRINT_LOW_EVENT
2001 DOCUMENT_PRINT_HIGH_EVENT
2002 DOCUMENT_SIGN_EVENT
2003 DOCUMENT_ADD_ANNOTATION_EVENT
2004 DOCUMENT_FORM_FILL_EVENT
2005 DOCUMENT_CLOSE_EVENT
2006 DOCUMENT_MODIFY_EVENT
2007 DOCUMENT_CHANGE_SECURITY_HANDLER_EVENT
2008 DOCUMENT_SWITCH_POLICY_EVENT
2009 DOCUMENT_REVOKE_EVENT
2010 $1
2011 DOCUMENT_SECURE_EVENT
2012 DOCUMENT_UNKNOWN_CLIENT_EVENT
2013 DOCUMENT_CHANGE_REVOKE_URL_EVENT
2014 POLICY_CHANGE_EVENT
3000 POLICY_ENABLE_EVENT
3001 POLICY_DISABLE_EVENT
3002 POLICY_CREATE_EVENT
3003 POLICY_DELETE_EVENT
3004 POLICY_CHANGE_OWNER_EVENT
3005 SERVER_CLIENT_SYNC_EVENT
4000 SERVER_SYNC_DIR_INFO_EVENT
4001 SERVER_SYNC_DIR_COMPLETE_EVENT
4002 SERVER_VERSION_MISMATCH_EVENT
4003 SERVER_CONFIG_CHANGE_EVENT
4004 SERVER_ENABLE_OFFLINE_ACCESS_EVENT
4005 ADMIN_ADD_EVENT
5000 ADMIN_DELETE_EVENT
5001 ADMIN_EDIT_EVENT
5002 ADMIN_ACTIVATE_EVENT
5003 ADMIN_DEACTIVATE_EVENT
5004 ERROR_DIRECTORY_SERVICE_EVENT
6000 CREATED_POLICYSET_EVENT
7000 DELETED_POLICYSET_EVENT
7001 MODIFIED_POLICYSET_EVENT
7002 - 使用构造函数创建
-
搜索事件
通过调用
DocumentSecurityServiceClient
对象的searchForEvents
方法并传递表示要搜索的事件和最大结果数的EventSpec
对象来搜索该事件。 此方法返回MyArrayOf_xsd_anyType
集合,其中每个元素都是AuditSpec
实例。 使用AuditSpec
实例,您可以获取有关事件的信息,如发生时间。AuditSpec
实例包含指定此信息的timestamp
数据成员。
代码示例
有关使用Rights Management服务的代码示例,请参阅以下快速入门:
- “快速入门(MTOM):使用Web服务API搜索事件”
- “快速入门(SwaRef):使用Web服务API搜索事件”
另请参阅
将策略应用到Word文档 applying-policies-to-word-documents
除了PDF文档之外,权限管理服务还支持其他文档格式,如Microsoft Word文档(DOC文件)和其他Microsoft Office文件格式。 例如,您可以将策略应用到Word文档以对其进行保护。 通过将策略应用于Word文档,可以限制对该文档的访问。 如果文档已受策略保护,则无法将策略应用到该文档。
您可以在分发受策略保护的Word文档后监视其使用情况。 也就是说,您可以看到文档的使用方式以及谁在使用它。 例如,您可以查找何时有人打开了文档。
步骤摘要 summary_of_steps-11
要将策略应用到Word文档,请执行以下步骤:
- 包括项目文件。
- 创建Document Security客户端API对象。
- 检索应用了策略的Word文档。
- 将现有策略应用到Word文档。
- 保存受策略保护的Word文档。
包含项目文件
在开发项目中包含必要的文件。 如果要使用Java创建客户端应用程序,请包含必要的JAR文件。 如果您使用的是Web服务,请确保包含代理文件。
创建Document Security客户端API对象
您必须先创建Document Security服务客户端对象,然后才能以编程方式执行Document Security服务操作。
检索Word文档
检索Word文档以应用策略。 将策略应用到Word文档后,用户使用文档时受到限制。 例如,如果策略不允许在脱机时打开文档,则用户必须联机才能打开文档。
将现有策略应用到Word文档
要将策略应用到Word文档,必须引用现有策略并指定该策略属于哪个策略集。 设置连接属性的用户必须具有对指定策略的访问权限。 如果不存在,则会发生异常。
保存Word文档
在Document Security服务将策略应用于Word文档后,您可以将受策略保护的Word文档另存为DOC文件。
另请参阅
使用Java API将策略应用到Word文档 apply-a-policy-to-a-word-document-using-the-java-api
使用Document Security API (Java)将策略应用到Word文档:
-
包括项目文件。
在您的Java项目的类路径中包含客户端JAR文件,例如adobe-rightsmanagement-client.jar。
-
创建Document Security客户端API对象。
- 创建包含连接属性的
ServiceClientFactory
对象。 - 使用对象的构造函数创建
DocumentSecurityClient
对象并传递ServiceClientFactory
对象。
- 创建包含连接属性的
-
检索Word文档。
- 通过使用其构造函数并传递指定Word文档位置的字符串值,创建表示Word文档的
java.io.FileInputStream
对象。 - 使用对象的构造函数创建
com.adobe.idp.Document
对象并传递java.io.FileInputStream
对象。
- 通过使用其构造函数并传递指定Word文档位置的字符串值,创建表示Word文档的
-
将现有策略应用到Word文档。
-
通过调用
DocumentSecurityClient
对象的getDocumentManager
方法创建DocumentManager
对象。 -
通过调用
DocumentManager
对象的protectDocument
方法并传递以下值,将策略应用到Word文档:- 包含应用了策略的Word文档的
com.adobe.idp.Document
对象。 - 指定文档名称的字符串值。
- 一个字符串值,它指定策略所属的策略集的名称。 您可以指定导致使用
MyPolicies
策略集的null
值。 - 指定策略名称的字符串值。
- 一个字符串值,表示作为文档发布者的用户的用户管理器域的名称。 此参数值是可选的,并且可以为null(如果此参数为null,则下一个参数值必须为null)。
- 一个字符串值,表示作为文档发布者的用户管理员用户的规范名称的名称。 此参数值是可选的,可以为
null
(如果此参数为null
,则以前的参数值必须为null
)。 - 表示用于选择MS Office模板的区域设置的
com.adobe.livecycle.rightsmanagement.Locale
。 此参数值是可选的,您可以指定null
。
protectDocument
方法返回包含受策略保护的Word文档的RMSecureDocumentResult
对象。 - 包含应用了策略的Word文档的
-
-
保存Word文档。
- 调用
RMSecureDocumentResult
对象的getProtectedDoc
方法以获取受策略保护的Word文档。 此方法返回com.adobe.idp.Document
对象。 - 创建
java.io.File
对象并确保文件扩展名为DOC。 - 调用
com.adobe.idp.Document
对象的copyToFile
方法以将Document
对象的内容复制到文件中(确保您使用getProtectedDoc
方法返回的Document
对象)。
- 调用
代码示例
有关使用Document Security服务的代码示例,请参阅以下快速入门:
- “快速入门(SOAP模式):使用Java API将策略应用到Word文档”
使用Web服务API将策略应用到Word文档 apply-a-policy-to-a-word-document-using-the-web-service-api
使用Document Security API(Web服务)将策略应用到Word文档:
-
包括项目文件。
创建使用MTOM的Microsoft .NET项目。 确保使用以下WSDL定义:
http://localhost:8080/soap/services/DocumentSecurityService?WSDL&lc_version=9.0.1
。note note NOTE 将 localhost
替换为承载AEM Forms的服务器的IP地址。 -
创建Document Security客户端API对象。
-
使用默认构造函数创建
DocumentSecurityServiceClient
对象。 -
使用
System.ServiceModel.EndpointAddress
构造函数创建DocumentSecurityServiceClient.Endpoint.Address
对象。 将指定WSDL的字符串值传递给AEM Forms服务(例如,http://localhost:8080/soap/services/DocumentSecurityService?WSDL
)。 您无需使用lc_version
属性。 此属性在创建服务引用时使用。) -
通过获取
DocumentSecurityServiceClient.Endpoint.Binding
字段的值创建一个System.ServiceModel.BasicHttpBinding
对象。 将返回值强制转换为BasicHttpBinding
。 -
将
System.ServiceModel.BasicHttpBinding
对象的MessageEncoding
字段设置为WSMessageEncoding.Mtom
。 此值可确保使用MTOM。 -
通过执行以下任务启用基本HTTP身份验证:
- 将AEM表单用户名分配给字段
DocumentSecurityServiceClient.ClientCredentials.UserName.UserName
。 - 将相应的密码值分配给字段
DocumentSecurityServiceClient.ClientCredentials.UserName.Password
。 - 将常量值
HttpClientCredentialType.Basic
分配给字段BasicHttpBindingSecurity.Transport.ClientCredentialType
。
- 将AEM表单用户名分配给字段
-
将常量值
BasicHttpSecurityMode.TransportCredentialOnly
分配给字段BasicHttpBindingSecurity.Security.Mode
。
-
-
检索Word文档。
- 使用构造函数创建
BLOB
对象。BLOB
对象用于存储应用了策略的Word文档。 - 通过调用其构造函数并传递一个字符串值来创建一个
System.IO.FileStream
对象,该字符串值表示Word文档的文件位置以及打开文件的模式。 - 创建用于存储
System.IO.FileStream
对象的内容的字节数组。 通过获取System.IO.FileStream
对象的Length
属性来确定字节数组大小。 - 通过调用
System.IO.FileStream
对象的Read
方法,使用流数据填充字节数组。 传递字节数组、起始位置和要读取的流长度。 - 使用字节数组的内容分配其
MTOM
字段以填充BLOB
对象。
- 使用构造函数创建
-
将现有策略应用到Word文档。
通过调用
DocumentSecurityServiceClient
对象的protectDocument
方法并传递以下值,将策略应用到Word文档:- 包含应用了策略的Word文档的
BLOB
对象。 - 指定文档名称的字符串值。
- 一个字符串值,它指定策略所属的策略集的名称。 您可以指定导致使用
MyPolicies
策略集的null
值。 - 指定策略名称的字符串值。
- 一个字符串值,表示作为文档发布者的用户的用户管理器域的名称。 此参数值是可选的,并且可以为null(如果此参数为null,则下一个参数值必须为
null
)。 - 一个字符串值,表示作为文档发布者的用户管理员用户的规范名称的名称。 此参数值是可选的,可以为null(如果此参数为null,则上一个参数值必须为
null
)。 - 指定区域设置值的
RMLocale
值(例如,RMLocale.en
)。 - 用于存储策略标识符值的字符串输出参数。
- 用于存储受策略保护的标识符值的字符串输出参数。
- 用于存储mime类型的字符串输出参数(例如,
application/doc
)。
protectDocument
方法返回包含受策略保护的Word文档的BLOB
对象。 - 包含应用了策略的Word文档的
-
保存Word文档。
- 通过调用其构造函数并传递代表受策略保护的Word文档的文件位置的字符串值来创建
System.IO.FileStream
对象。 - 创建一个字节数组,用于存储
protectDocument
方法返回的BLOB
对象的数据内容。 通过获取BLOB
对象的MTOM
数据成员的值填充字节数组。 - 通过调用其构造函数并传递
System.IO.FileStream
对象来创建System.IO.BinaryWriter
对象。 - 通过调用
System.IO.BinaryWriter
对象的Write
方法并传递字节数组,将字节数组的内容写入Word文件。
- 通过调用其构造函数并传递代表受策略保护的Word文档的文件位置的字符串值来创建
代码示例
有关使用Document Security服务的代码示例,请参阅以下快速入门:
- “快速入门(MTOM):使用Web服务API将策略应用到Word文档”
从Word文档中删除策略 removing-policies-from-word-documents
您可以从受策略保护的Word文档中删除策略,以从文档中删除安全性。 即,如果您不再希望文档受策略保护。 如果要使用较新的策略更新受策略保护的Word文档,则切换策略比删除策略和添加更新的策略更有效。
步骤摘要 summary_of_steps-12
要从受策略保护的Word文档中删除策略,请执行以下步骤:
- 包含项目文件
- 创建Document Security客户端API对象。
- 检索受策略保护的Word文档
- 从Word文档中删除策略。
- 保存不安全的Word文档
包含项目文件
在开发项目中包含必要的文件。 如果要使用Java创建客户端应用程序,请包含必要的JAR文件。 如果您使用的是Web服务,请确保包含代理文件。
创建Document Security客户端API对象
在以编程方式执行Document Security服务操作之前,请先创建Document Security服务客户端对象。
检索受策略保护的Word文档
检索受策略保护的Word文档以删除策略。 如果尝试从不受策略保护的Word文档中删除策略,则会导致异常。
从Word文档中删除策略
如果连接设置中指定了管理员,则可以从受策略保护的Word文档中删除策略。 如果没有,则用于保护文档的策略必须包含SWITCH_POLICY
权限,才能从Word文档中删除策略。 此外,在AEM Forms连接设置中指定的用户还必须具有该权限。 否则,将引发异常。
保存不安全的Word文档
Document Security服务从Word文档中删除策略后,您可以将不安全的Word文档另存为DOC文件。
另请参阅
使用Java API从Word文档中删除策略 remove-a-policy-from-a-word-document-using-the-java-api
使用Document Security API (Java)从受策略保护的Word文档中删除策略:
-
包含项目文件
在您的Java项目的类路径中包含客户端JAR文件,例如adobe-rightsmanagement-client.jar。
-
创建Document Security客户端API对象
- 创建包含连接属性的
ServiceClientFactory
对象。 - 使用对象的构造函数创建
RightsManagementClient
对象并传递ServiceClientFactory
对象。
- 创建包含连接属性的
-
检索受策略保护的Word文档
- 使用受策略保护的Word文档的构造函数并传递指定Word文档位置的字符串值,创建一个表示该文档的
java.io.FileInputStream
对象。 - 使用对象的构造函数创建
com.adobe.idp.Document
对象并传递java.io.FileInputStream
对象。
- 使用受策略保护的Word文档的构造函数并传递指定Word文档位置的字符串值,创建一个表示该文档的
-
从Word文档中删除策略
- 通过调用
RightsManagementClient
对象的getDocumentManager
方法创建DocumentManager
对象。 - 通过调用
DocumentManager
对象的removeSecurity
方法并传递包含受策略保护的Word文档的com.adobe.idp.Document
对象,从Word文档中删除策略。 此方法返回包含不安全的Word文档的com.adobe.idp.Document
对象。
- 通过调用
-
保存不安全的Word文档
- 创建
java.io.File
对象并确保文件扩展名为DOC。 - 调用
Document
对象的copyToFile
方法以将Document
对象的内容复制到文件中(确保您使用removeSecurity
方法返回的Document
对象)。
- 创建
代码示例
有关使用Document Security服务的代码示例,请参阅以下快速入门:
- “快速入门(SOAP模式):使用Java API从Word文档中删除策略”
使用Web服务API从Word文档中删除策略 remove-a-policy-from-a-word-document-using-the-web-service-api
使用Document Security API(Web服务)从受策略保护的Word文档中删除策略:
-
包含项目文件
创建使用MTOM的Microsoft .NET项目。 确保使用以下WSDL定义:
http://localhost:8080/soap/services/RightsManagementService?WSDL&lc_version=9.0.1
。note note NOTE 将 localhost
替换为承载AEM Forms的服务器的IP地址。 -
创建Document Security客户端API对象
-
使用默认构造函数创建
RightsManagementServiceClient
对象。 -
使用
System.ServiceModel.EndpointAddress
构造函数创建RightsManagementServiceClient.Endpoint.Address
对象。 将指定WSDL的字符串值传递给AEM Forms服务(例如,http://localhost:8080/soap/services/RightsManagementService?WSDL
)。 您无需使用lc_version
属性。 此属性在创建服务引用时使用。) -
通过获取
RightsManagementServiceClient.Endpoint.Binding
字段的值创建一个System.ServiceModel.BasicHttpBinding
对象。 将返回值强制转换为BasicHttpBinding
。 -
将
System.ServiceModel.BasicHttpBinding
对象的MessageEncoding
字段设置为WSMessageEncoding.Mtom
。 此值可确保使用MTOM。 -
通过执行以下任务启用基本HTTP身份验证:
- 将AEM表单用户名分配给字段
RightsManagementServiceClient.ClientCredentials.UserName.UserName
。 - 将相应的密码值分配给字段
RightsManagementServiceClient.ClientCredentials.UserName.Password
。 - 将常量值
HttpClientCredentialType.Basic
分配给字段BasicHttpBindingSecurity.Transport.ClientCredentialType
。
- 将AEM表单用户名分配给字段
-
将常量值
BasicHttpSecurityMode.TransportCredentialOnly
分配给字段BasicHttpBindingSecurity.Security.Mode
。
-
-
检索受策略保护的Word文档
- 使用构造函数创建
BLOB
对象。BLOB
对象用于存储受策略保护的Word文档,策略将从该文档中删除。 - 通过调用其构造函数并传递一个字符串值来创建一个
System.IO.FileStream
对象,该字符串值表示Word文档的文件位置以及打开文件的模式。 - 创建用于存储
System.IO.FileStream
对象的内容的字节数组。 您可以通过获取System.IO.FileStream
对象的Length
属性来确定字节数组的大小。 - 通过调用
System.IO.FileStream
对象的Read
方法并传递要读取的字节数组、起始位置和流长度,使用流数据填充字节数组。 - 使用字节数组的内容分配其
MTOM
字段以填充BLOB
对象。
- 使用构造函数创建
-
从Word文档中删除策略
通过调用
RightsManagementServiceClient
对象的removePolicySecurity
方法并传递包含受策略保护的Word文档的BLOB
对象,从Word文档中删除策略。 此方法返回包含不安全的Word文档的BLOB
对象。 -
保存不安全的Word文档
- 通过调用其构造函数并传递表示不安全Word文档的文件位置的字符串值来创建
System.IO.FileStream
对象。 - 创建一个字节数组,用于存储
removePolicySecurity
方法返回的BLOB
对象的数据内容。 通过获取BLOB
对象的MTOM
字段的值填充字节数组。 - 通过调用其构造函数并传递
System.IO.FileStream
对象来创建System.IO.BinaryWriter
对象。
- 通过调用其构造函数并传递表示不安全Word文档的文件位置的字符串值来创建
代码示例
有关使用Document Security服务的代码示例,请参阅以下快速入门:
- “快速入门(MTOM):使用Web服务API从Word文档中删除策略”
另请参阅