启用渲染权限的Forms rendering-rights-enabled-forms

CAUTION
AEM 6.4已结束扩展支持,本文档将不再更新。 有关更多详细信息,请参阅 技术支助期. 查找支持的版本 此处.

Forms服务可渲染对其应用了使用权限的表单。 使用权限与Acrobat中默认提供但Adobe Reader中不提供的功能有关,例如向表单添加注释或填写表单字段并保存表单的功能。 对其应用了使用权限的Forms称为启用权限的表单。 在Adobe Reader中打开启用了权限的表单的用户可以执行为该表单启用的操作。

要将使用权限应用于表单,Acrobat Reader DC扩展服务必须包含在AEM表单安装中。 此外,您还必须具有有效的凭据,以便能够将使用权限应用于PDF文档。 也就是说,必须正确配置Acrobat Reader DC扩展服务,然后才能渲染启用权限的表单。 (请参阅 关于Acrobat Reader DC扩展服务.)

NOTE
要渲染包含使用权限的表单,必须使用XDP文件作为输入,而不是PDF文件。 如果输入PDF文件,表单仍会呈现;但是,它将不是启用权限的表单。
NOTE
指定以下使用权限时,无法使用XML数据预填充表单: enableComments, enableCommentsOnline, enableEmbeddedFilesenableDigitalSignatures. (请参阅 使用可流动布局预填充Forms.)
NOTE
有关Forms服务的更多信息,请参阅 AEM Forms服务参考.

步骤摘要 summary-of-steps

要渲染启用了权限的表单,请执行以下任务:

  1. 包括项目文件。
  2. 创建Forms客户端API对象。
  3. 设置使用权限运行时选项。
  4. 呈现启用权限的表单。
  5. 将启用权限的表单写入客户端Web浏览器。

包含项目文件

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

创建Forms客户端API对象

您必须先创建Forms服务客户端,然后才能以编程方式执行Forms服务客户端API操作。

设置使用权限运行时选项

必须设置使用权限运行时选项才能渲染启用了权限的表单。 您还必须指定用于将使用权限应用到表单的凭据的别名。 指定别名值后,您可以指定每个用于表单的使用权限。

渲染启用权限的表单

要渲染启用了权限的表单,请使用与渲染没有使用权限的表单相同的应用程序逻辑。 唯一的区别在于,您必须确保应用程序逻辑中包含使用权限运行时选项。

NOTE
使用Forms Web服务API渲染启用权限的表单时,无法将文件附加到表单。

将表单数据流写入客户端Web浏览器

当Forms服务呈现启用了权限的表单时,它会返回一个必须写入客户端Web浏览器的表单数据流。 一旦写入客户端Web浏览器,用户便可看到该表单。 在Adobe Reader中查看启用了权限的表单的用户能够执行为该表单启用的操作。

另请参阅

使用Java API渲染启用了权限的表单

使用Web服务API渲染启用了权限的表单

包括AEM Forms Java库文件

设置连接属性

Forms Service API快速入门

呈现交互式PDF forms

创建可渲染Forms的Web应用程序

使用Java API渲染启用了权限的表单 render-rights-enabled-forms-using-the-java-api

使用Forms API(Java)呈现启用权限的表单:

  1. 包含项目文件

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

  2. 创建Forms客户端API对象

    • 创建 ServiceClientFactory 包含连接属性的对象。
    • 创建 FormsServiceClient 对象,并使用其构造函数进行传递 ServiceClientFactory 对象。
  3. 设置使用权限运行时选项

    • 创建 ReaderExtensionSpec 对象。
    • 通过调用 ReaderExtensionSpec 对象 setReCredentialAlias 方法,并指定表示别名值的字符串值。
    • 通过调用属于的相应方法来设置每个使用权限 ReaderExtensionSpec 对象。 但是,仅当您引用的凭据允许您这样做时,才能设置使用权限。 也就是说,如果凭据不允许您设置使用权限,则无法设置此权限。 例如。 要设置使用户能够填写表单字段并保存表单的使用权限,请调用 ReaderExtensionSpec 对象 setReFillIn 方法和传递 true.
    note note
    NOTE
    无需调用 ReaderExtensionSpec 对象 setReCredentialPassword方法。 Forms服务不使用此方法。
  4. 渲染启用权限的表单

    调用 FormsServiceClient 对象 renderPDFFormWithUsageRights 方法并传递以下值:

    • 指定表单设计名称(包括文件扩展名)的字符串值。 如果您引用的表单设计是Forms应用程序的一部分,请确保指定完整路径,例如 Applications/FormsApplication/1.0/FormsFolder/Loan.xdp.
    • A com.adobe.idp.Document 包含要与表单合并的数据的对象。 如果不想合并数据,请传递一个空 com.adobe.idp.Document 对象。
    • A PDFFormRenderSpec 用于存储运行时选项的对象。
    • A ReaderExtensionSpec 用于存储使用权限运行时选项的对象。
    • A URLSpec 包含Forms服务所需URI值的对象。

    renderPDFFormWithUsageRights 方法返回 FormsResult 包含必须写入客户端web浏览器的表单数据流的对象。

  5. 将表单数据流写入客户端Web浏览器

    • 创建 com.adobe.idp.Document 对象 FormsResult 对象s getOutputContent 方法。
    • 获取的内容类型 com.adobe.idp.Document 通过调用对象 getContentType 方法。
    • 设置 javax.servlet.http.HttpServletResponse 对象的内容类型(通过调用 setContentType 方法和传递 com.adobe.idp.Document 对象。
    • 创建 javax.servlet.ServletOutputStream 用于通过调用将表单数据流写入客户端web浏览器的对象 javax.servlet.http.HttpServletResponse 对象 getOutputStream 方法。
    • 创建 java.io.InputStream 对象 com.adobe.idp.Document 对象 getInputStream 方法。
    • 通过调用 InputStream 对象 read 方法并将字节数组作为参数进行传递。
    • 调用 javax.servlet.ServletOutputStream 对象 write 将表单数据流发送到客户端web浏览器的方法。 将字节数组传递到 write 方法。

另请参阅

快速入门(SOAP模式):使用Java API渲染启用权限的表单

包括AEM Forms Java库文件

设置连接属性

使用Web服务API渲染启用了权限的表单 render-rights-enabled-forms-using-the-web-service-api

使用Forms API(Web服务)呈现启用权限的表单:

  1. 包含项目文件

    • 创建使用Forms服务WSDL的Java代理类。
    • 将Java代理类包含到类路径中。
  2. 创建Forms客户端API对象

    创建 FormsService 对象,并设置身份验证值。

  3. 设置使用权限运行时选项

    • 创建 ReaderExtensionSpec 对象。
    • 通过调用 ReaderExtensionSpec 对象 setReCredentialAlias 方法,并指定表示别名值的字符串值。
    • 通过调用属于的相应方法来设置每个使用权限 ReaderExtensionSpec 对象。 但是,仅当您引用的凭据允许您这样做时,才能设置使用权限。 也就是说,如果凭据不允许您设置使用权限,则无法设置此权限。 要设置允许用户填写表单字段并保存表单的使用权限,请调用 ReaderExtensionSpec 对象 setReFillIn 方法和传递 true.
  4. 渲染启用权限的表单

    调用 FormsService 对象 renderPDFFormWithUsageRights 方法并传递以下值:

    • 指定表单设计名称(包括文件扩展名)的字符串值。 如果您引用的表单设计是Forms应用程序的一部分,请确保指定完整路径,例如 Applications/FormsApplication/1.0/FormsFolder/Loan.xdp.
    • A BLOB 包含要与表单合并的数据的对象。 如果您不想将数据与表单合并,则必须传递 BLOB 基于空XML数据源的对象。 您无法传递 BLOB 对象为null;否则,会引发异常。
    • A PDFFormRenderSpec 用于存储运行时选项的对象。
    • A ReaderExtensionSpec 用于存储使用权限运行时选项的对象。
    • A URLSpec 包含Forms服务所需URI值的对象。

    renderPDFFormWithUsageRights 方法返回 FormsResult 包含必须写入客户端web浏览器的表单数据流的对象。

  5. 将表单数据流写入客户端Web浏览器

    • 创建 BLOB 通过调用包含表单数据的对象 FormsResult 对象 getOutputContent 方法。
    • 获取的内容类型 BLOB 通过调用对象 getContentType 方法。
    • 设置 javax.servlet.http.HttpServletResponse 对象的内容类型(通过调用 setContentType 方法和传递 BLOB 对象。
    • 创建 javax.servlet.ServletOutputStream 用于通过调用将表单数据流写入客户端web浏览器的对象 javax.servlet.http.HttpServletResponse 对象 getOutputStream 方法。
    • 创建一个字节数组,并通过调用 BLOB 对象 getBinaryData 方法。 此任务分配 FormsResult 对象。
    • 调用 javax.servlet.http.HttpServletResponse 对象 write 将表单数据流发送到客户端web浏览器的方法。 将字节数组传递到 write 方法。

另请参阅

启用渲染权限的Forms

使用Base64编码调用AEM Forms

recommendation-more-help
a6ebf046-2b8b-4543-bd46-42a0d77792da