使用自定义CSS文件渲染HTML Forms

Forms服务响应来自Web浏览器的HTTP请求呈现HTML表单。 呈现HTML表单时,Forms服务可引用自定义CSS文件。 您可以创建自定义CSS文件以满足您的业务需求,并在使用Forms服务渲染HTML表单时引用该CSS文件。

Forms服务将静默分析自定义CSS文件。 即,如果自定义CSS文件不符合CSS标准,Forms服务不会报告可能遇到的错误。 在这种情况下,Forms服务将忽略该样式,并继续处理位于CSS文件中的其余样式。

以下列表指定自定义CSS文件中支持的样式:

  • 类级别选择器 — 样式对:如果自定义CSS文件中存在,则使用HTML表单中用作类样式的选择器。将忽略未使用的类样式。
  • 标识符级别选择器 — 样式对:如果在HTML表单中使用所有标识符样式,则会使用这些样式。
  • 元素级别选择器 — 样式对:如果在HTML表单中使用所有元素样式,则会使用它们。
  • 样式优先级:支持样式优先级(与重要内容一样),并可在自定义CSS文件中使用。
  • 媒体类型:一个或多个选择器样式对可以包装在@media样式中以定义媒体类型。Forms服务不检查是否支持指定的媒体类型。 在自定义CSS文件中指定的媒体类型将合并到HTML表单中。

您可以使用FormsIVS应用程序检索示例CSS文件。 上传表单,在“测试表单设计”页面中选择它,然后单击“生成CSS”。 单击按钮之前,无需设置HTML转换类型。 下一步,选择“保存”。 您可以编辑此CSS文件以满足您的业务需求。

注意

在渲染使用自定义CSS文件的HTML表单之前,请务必对渲染HTML表单有深入的了解。 (请参阅将Forms渲染为HTML。)

注意

有关Forms服务的详细信息,请参阅AEM Forms的服务参考。

步骤的摘要

要渲染使用CSS文件的HTML表单,请执行以下任务:

  1. 包括项目文件。
  2. 创建Forms Java API对象。
  3. 引用CSS文件。
  4. 渲染HTML表单。
  5. 将表单数据流写入客户端Web浏览器。

包括项目文件

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

创建Forms Java API对象

在以编程方式执行Forms服务支持的操作之前,必须创建Forms客户端对象。

引用CSS文件

要渲染使用自定义CSS文件的HTML表单,请确保引用现有CSS文件。

渲染HTML表单

要渲染HTML表单,必须指定在Designer中创建并另存为XDP文件的表单设计。 还必须选择HTML转换类型。 例如,可指定用于为Internet Explorer 5.0或更高版本渲染动态HTML的HTML转换类型。

渲染HTML表单还需要值,如渲染其他表单类型所需的URI值。

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

当Forms服务呈现HTML表单时,它返回一个表单数据流,您必须将该数据流写入客户端Web浏览器,以使用户可见HTML表单。

另请参阅

使用Java API渲染使用CSS文件的HTML表单

包括AEM Forms Java库文件

设置连接属性

Forms Service API快速开始

渲染交互式PDF forms

将Forms渲染为HTML

创建渲染Forms的Web 应用程序

使用Java API渲染使用CSS文件的HTML表单

使用Forms API(Java)渲染使用自定义CSS文件的HTML表单:

  1. 包括项目文件

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

  2. 创建Forms Java API对象

    • 创建包含连接属性的ServiceClientFactory对象。
    • 使用FormsServiceClient对象的构造函数并传递ServiceClientFactory对象,创建对象。
  3. 引用CSS文件

    • 使用HTMLRenderSpec对象的构造函数创建对象。
    • 要渲染使用自定义CSS文件的HTML表单,请调用HTMLRenderSpec对象的setCustomCSSURI方法并传递一个字符串值,该字符串值指定CSS文件的位置和名称。
  4. 渲染HTML表单

    调用FormsServiceClient对象的(Deprecated) (Deprecated) renderHTMLForm方法并传递以下值:

    • 一个字符串值,它指定表单设计名称,包括文件扩展名。 如果引用的表单设计是Forms应用程序的一部分,请确保指定完整路径,如Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
    • 一个TransformTo枚举值,它指定HTML首选项类型。 例如,要渲染与Internet Explorer 5.0或更高版本的动态HTML兼容的HTML表单,请指定TransformTo.MSDHTML
    • com.adobe.idp.Document对象,其中包含要与表单合并的数据。 如果不想合并数据,请传递空com.adobe.idp.Document对象。
    • 存储HTML运行时选项的HTMLRenderSpec对象。
    • 一个字符串值,它指定HTTP_USER_AGENT标头值,如Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
    • 一个URLSpec对象,用于存储呈现HTML表单所需的URI值。
    • 存储文件附件的java.util.HashMap对象。 这是可选参数,如果不想将文件附加到表单,可以指定null

    (Deprecated) renderHTMLForm方法返回一个FormsResult对象,该对象包含必须写入客户端Web浏览器的表单数据流。

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

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

另请参阅

使用自定义CSS文件渲染HTML Forms

快速开始(SOAP模式):使用Java API渲染使用CSS文件的HTML表单

包括AEM Forms Java库文件

设置连接属性

使用Web服务API渲染使用CSS文件的HTML表单

使用Forms API(Web服务)渲染使用自定义CSS文件的HTML表单:

  1. 包括项目文件

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

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

  3. 引用CSS文件

    • 使用HTMLRenderSpec对象的构造函数创建对象。
    • 要渲染使用自定义CSS文件的HTML表单,请调用HTMLRenderSpec对象的setCustomCSSURI方法并传递一个字符串值,该字符串值指定CSS文件的位置和名称。
  4. 渲染HTML表单

    调用FormsService对象的(Deprecated) renderHTMLForm方法并传递以下值:

    • 一个字符串值,它指定表单设计名称,包括文件扩展名。 如果引用的表单设计是Forms应用程序的一部分,请确保指定完整路径,如Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
    • 一个TransformTo枚举值,它指定HTML首选项类型。 例如,要渲染与Internet Explorer 5.0或更高版本的动态HTML兼容的HTML表单,请指定TransformTo.MSDHTML
    • BLOB对象,其中包含要与表单合并的数据。 如果不想合并数据,请传递null。 (请参阅使用可流式布局预填充Forms。)
    • 存储HTML运行时选项的HTMLRenderSpec对象。
    • 一个字符串值,它指定HTTP_USER_AGENT标头值,如Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)。 如果不想设置此值,可以传递空字符串。
    • 一个URLSpec对象,用于存储呈现HTML表单所需的URI值。
    • 存储文件附件的java.util.HashMap对象。 这是可选参数,如果不想将文件附加到表单,可以指定null
    • (Deprecated) renderHTMLForm方法填充的空com.adobe.idp.services.holders.BLOBHolder对象。 此参数值存储呈现的表单。
    • (Deprecated) renderHTMLForm方法填充的空com.adobe.idp.services.holders.BLOBHolder对象。 此参数存储输出XML数据。
    • (Deprecated) renderHTMLForm方法填充的空javax.xml.rpc.holders.LongHolder对象。 此参数存储表单中的页数。
    • (Deprecated) renderHTMLForm方法填充的空javax.xml.rpc.holders.StringHolder对象。 此参数存储区域设置值。
    • (Deprecated) renderHTMLForm方法填充的空javax.xml.rpc.holders.StringHolder对象。 此参数存储所使用的HTML呈现值。
    • 将包含此操作结果的空com.adobe.idp.services.holders.FormsResultHolder对象。

    (Deprecated) renderHTMLForm方法使用必须写入客户端Web浏览器的表单数据流填充作为最后一个参数值传递的com.adobe.idp.services.holders.FormsResultHolder对象。

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

    • 通过获取com.adobe.idp.services.holders.FormsResultHolder对象的value数据成员的值,创建FormResult对象。
    • 通过调用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方法。

另请参阅

使用自定义CSS文件渲染HTML Forms

使用Base64编码调用AEM Forms

On this page

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now