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

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

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

NOTE
要呈现包含使用权限的表单,必须使用XDP文件作为输入,而非PDF文件。 如果您使用PDF文件作为输入,则表单仍会呈现;但是,它不会是启用权限的表单。
NOTE
指定以下使用权限时,不能使用XML数据预填充表单: enableCommentsenableCommentsOnlineenableEmbeddedFilesenableDigitalSignatures。 (请参阅使用可流动布局预填充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服务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
    • 包含要与表单合并的数据的com.adobe.idp.Document对象。 如果不想合并数据,请传递一个空的com.adobe.idp.Document对象。
    • 存储运行时选项的PDFFormRenderSpec对象。
    • 存储使用权限运行时选项的ReaderExtensionSpec对象。
    • 包含Forms服务所需URI值的URLSpec对象。

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

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

    • 通过调用FormsResult对象的getOutputContent方法创建com.adobe.idp.Document对象。
    • 通过调用其getContentType方法获取com.adobe.idp.Document对象的内容类型。
    • 通过调用其setContentType方法并传递com.adobe.idp.Document对象的内容类型来设置javax.servlet.http.HttpServletResponse对象的内容类型。
    • 通过调用javax.servlet.http.HttpServletResponse对象的getOutputStream方法,创建用于将表单数据流写入客户端Web浏览器的javax.servlet.ServletOutputStream对象。
    • 通过调用com.adobe.idp.Document对象的getInputStream方法创建java.io.InputStream对象。
    • 通过调用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
    • 包含要与表单合并的数据的BLOB对象。 如果不想将数据与表单合并,则必须传递基于空XML数据源的BLOB对象。 无法传递空的BLOB对象;否则,将引发异常。
    • 存储运行时选项的PDFFormRenderSpec对象。
    • 存储使用权限运行时选项的ReaderExtensionSpec对象。
    • 包含Forms服务所需URI值的URLSpec对象。

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

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

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

另请参阅

渲染启用权限的Forms

使用Base64编码调用AEM Forms

recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2