使用条形码表单

关于条码表单服务

barcoded forms服务可自动从填写和打印表单捕获数据,并将捕获的信息集成到组织机构的核心IT系统中。

使用条码表单服务,您可以向交互式PDF forms添加一维和二维条码。 然后,您可以将条形码表单发布到网站或通过电子邮件或CD分发。 当用户使用Adobe Reader、Acrobat Professional或Acrobat Standard填充条形码表单时,条形码会自动更新以对用户提供的表单数据进行编码。 用户可以以电子方式提交表单,或将表单打印成纸张,然后通过邮件、传真或手工提交。 您以后可以提取用户提供的数据作为自动工作流程的一部分,在审批流程和业务系统之间路由数据。

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

解码条形码表单数据

您可以使用条形码表单服务API对PDF表单或包含条形码的图像中的数据进行解码。 解码表单数据是指提取位于条形码中的数据。 在从PDF表单(或图像)解码数据之前,用户必须用数据填充表单。

注意

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

步骤的摘要

要对PDF表单中的数据进行解码,请执行以下步骤:

  1. 包括项目文件。
  2. 创建barcoded formsClient API对象。
  3. 获取包含条形码数据的PDF表单。
  4. 对PDF表单中的数据进行解码。
  5. 将数据转换为XML数据源。
  6. 处理解码的数据。

包括项目文件

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

必须将以下JAR文件添加到项目的类路径中:

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-barcodedforms-client.jar
  • adobe-utilities.jar(在JBoss上部署AEM Forms时为必需)
  • jbossall-client.jar(在JBoss上部署AEM Forms时为必需)
  • xercesImpl.jar(位于<install directory>/Adobe/Adobe_Experience_Manager_forms/sdk/client-libs\thirdparty)

如果AEM Forms部署在非JBOSS的受支持J2EE应用程序服务器上,则您需要将adobe-utilities.jar和jbossall-client.jar替换为特定于部署AEM Forms的J2EE应用程序服务器的JAR文件。 有关所有AEM Forms JAR文件位置的信息,请参阅包括AEM Forms Java库文件

创建条形码表单客户端API对象

在以编程方式执行barcoded forms服务操作之前,必须创建Barcoded Forms服务客户端。 如果您使用Java API,请创建BarcodedFormsServiceClient对象。 如果您使用barcoded forms Web服务API,请创建BarcodedFormsServiceService对象。

获取包含条形码数据的PDF表单

您必须获取包含已填充用户数据的条形码的PDF表单。

从PDF表单解码数据

获得包含条形码的PDF表单(或图像)后,可以对数据进行解码。 Barcoded Forms服务支持以下类型的条码:

  • PDF417条码。
  • 数据矩阵条码。
  • QR码条码。
  • 科达巴条形码。
  • 128条码。
  • 39条码。
  • EAN-13条形码。
  • EAN-8条码。

在解码API中,字符集输入为十六进制意味着条形码的内容将作为十六进制字符串进行编码。 例如,如果将UTF-8指定为格式的字符编码,而在解码操作中指定了Hex,则在解码输出的<xb:content>元素中,条形码的内容将编码为Hex字符串。 您可以转换此十六进制值,在客户端应用程序中创建应用程序逻辑,以获得原始内容。

将数据转换为XML数据源

在对表单数据进行解码后,可以将其转换为XDP或XFDF数据。 例如,假设您要将数据导入其他表单。 要将数据导入XFA表单,您必须将数据转换为XDP数据。 有关信息,请参阅导入表单数据

处理解码的数据

您可以处理转换后的数据以满足您的业务需求。 例如,在对数据进行解码和转换后,可以将其保存到文件中,将其存储在企业数据库中,填充其他表单,等等。 本节讨论如何将转换后的数据另存为XML文件。

注意

当行分隔符和字段分隔符参数具有相同的值时,条形码表单服务无法解码条形码数据

另请参阅

使用Java API对条形码表单数据进行解码

使用Web服务API对条形码表单数据进行解码

包括AEM Forms Java库文件

设置连接属性

使用Java API对表单数据进行条形码解码

使用barcoded forms API(Java)对表单数据进行解码:

  1. 包括项目文件

    将客户端JAR文件包含在Java项目的类路径中。

  2. 创建条形码表单客户端API对象

    使用BarcodedFormsServiceClient对象的构造函数并传递包含连接属性的ServiceClientFactory对象,创建对象。

  3. 获取包含条形码数据的PDF表单

    • 创建一个java.io.FileInputStream对象,该对象使用其构造函数并传递一个指定PDF文档位置的字符串值来表示包含条形码数据的PDF表单。
    • 使用com.adobe.idp.Document对象的构造函数并传递java.io.FileInputStream对象,创建对象。
  4. 从PDF表单解码数据

    通过调用BarcodedFormsServiceClient对象的decode方法并传递以下值,对表单数据进行解码:

    • 包含PDF表单的com.adobe.idp.Document对象。
    • 一个java.lang.Boolean对象,它指定是否对PDF417条形码进行解码。
    • 一个java.lang.Boolean对象,它指定是否解码数据矩阵条形码。
    • 一个java.lang.Boolean对象,它指定是否解码QR码条形码。
    • 一个java.lang.Boolean对象,它指定是否解码codabar条形码。
    • 一个java.lang.Boolean对象,它指定是否解码代码128条形码。
    • 一个java.lang.Boolean对象,它指定是否解码代码39条形码。
    • 一个java.lang.Boolean对象,它指定是否解码EAN-13条形码。
    • 一个java.lang.Boolean对象,它指定是否解码EAN-8条形码。
    • 一个com.adobe.livecycle.barcodedforms.CharSet明细列表值,它指定条形码中使用的字符集编码值。

    decode方法返回包含已解码表单数据的org.w3c.dom.Document对象。

  5. 将数据转换为XML数据源

    通过调用BarcodedFormsServiceClient对象的extractToXML方法并传递以下值,将解码的数据转换为XDP或XFDF数据:

    • 包含解码数据的org.w3c.dom.Document对象(请确保使用decode方法的返回值)。
    • 指定行分隔符的com.adobe.livecycle.barcodedforms.Delimiter明细列表值。 建议您指定Delimiter.Carriage_Return
    • 指定字段分隔符的com.adobe.livecycle.barcodedforms.Delimiter明细列表值。 例如,指定Delimiter.Tab
    • 一个com.adobe.livecycle.barcodedforms.XMLFormat明细列表值,它指定将条形码数据转换为XDP还是XFDF XML数据。 例如,指定XMLFormat.XDP将数据转换为XDP数据。
    注意

    请勿为行分隔符和字段分隔符参数指定相同的值。

    extractToXML方法返回一个java.util.List对象,其中每个元素都是一个org.w3c.dom.Document对象。 表单上的每个条形码都有一个单独的元素。 也就是说,如果表单上有四个条码,则返回的java.util.List对象中有四个元素。

  6. 处理解码的数据

    • java.util.List对象进行迭代,以获取位于该列表中的每个org.w3c.dom.Document对象。
    • 对于列表中的每个元素,将org.w3c.dom.Document对象转换为com.adobe.idp.Document对象。 (使用Java API示例将org.w3c.dom.Document对象转换为com.adobe.idp.Document对象的应用程序逻辑显示在解码条形码表单数据中)。
    • 通过调用com.adobe.idp.Document对象的copyToFile并传递表示XML文件的File对象,将XML数据另存为XML文件。

另请参阅

快速开始(SOAP模式):使用Java API解码条形码表单数据

包括AEM Forms Java库文件

设置连接属性

使用Web服务API解码条形码表单数据

使用barcoded forms API(web服务)对表单数据进行解码:

  1. 包括项目文件

    • 创建一个Microsoft .NET客户端程序集,它使用barcoded forms服务WSDL。 有关信息,请参阅使用Base64编码调用AEM Forms。
    • 引用Microsoft .NET客户端程序集。 有关信息,请参阅使用Base64编码调用AEM Forms中的“引用.NET客户端程序集”。
  2. 创建条形码表单客户端API对象

    使用使用barcoded forms服务WSDL的Microsoft .NET客户端程序集,通过调用其默认构造函数创建BarcodedFormsServiceService对象。

  3. 获取包含条形码数据的PDF表单

    • 使用BLOB对象的构造函数创建对象。 BLOB对象用于存储包含条形码的PDF文档。
    • 通过调用System.IO.FileStream对象的构造函数并传递一个字符串值,该字符串值表示PDF文档的文件位置以及打开文件的模式。
    • 创建一个字节数组,用于存储System.IO.FileStream对象的内容。 可以通过获取System.IO.FileStream对象的Length属性来确定字节数组的大小。
    • 通过调用System.IO.FileStream对象的Read方法并传递要读取的字节数组、开始位置和流长度,用流数据填充字节数组。
    • 通过将binaryData属性赋予字节数组的内容,填充BLOB对象。
  4. 从PDF表单解码数据

    通过调用BarcodedFormsServiceService对象的decode方法并传递以下值,对表单数据进行解码:

    • 包含PDF表单的BLOB对象。
    • 一个Boolean对象,它指定是否对PDF417条形码进行解码。
    • 一个Boolean对象,它指定是否解码数据矩阵条形码。
    • 一个Boolean对象,它指定是否解码QR码条形码。
    • 一个Boolean对象,它指定是否解码codabar条形码。
    • 一个Boolean对象,它指定是否解码代码128条形码。
    • 一个Bolean对象,它指定是否解码代码39条形码。
    • 一个Boolean对象,它指定是否解码EAN-13条形码。
    • 一个Boolean对象,它指定是否解码EAN-8条形码。
    • 一个CharSet明细列表值,它指定条形码中使用的字符集编码值。

    decode方法返回包含已解码表单数据的字符串值。

  5. 将数据转换为XML数据源

    通过调用BarcodedFormsServiceService对象的extractToXML方法并传递以下值,将解码的数据转换为XDP或XFDF数据:

    • 包含解码数据的字符串值(请确保使用decode方法的返回值)。
    • 指定行分隔符的Delimiter明细列表值。 建议您指定Delimiter.Carriage_Return
    • 指定字段分隔符的Delimiter明细列表值。 例如,指定Delimiter.Tab
    • 一个XMLFormat明细列表值,它指定将条形码数据转换为XDP还是XFDF XML数据。 例如,指定XMLFormat.XDP将数据转换为XDP数据。
    注意

    请勿为行分隔符和字段分隔符参数指定相同的值。

    extractToXML方法返回一个Object数组,其中每个元素都是一个BLOB实例。 表单上的每个条形码都有一个单独的元素。 也就是说,如果表单上有四个条码,则返回的Object数组中有四个元素。

  6. 处理解码的数据

    • 通过调用System.IO.FileStream对象的构造函数并传递一个字符串值来创建对象,该字符串值表示受保护PDF文档的文件位置。
    • 创建一个字节数组,用于存储encryptPDFUsingPassword方法返回的BLOB对象的数据内容。 通过获取BLOB对象的binaryData数据成员的值来填充字节数组。
    • 通过调用其构造函数并传递System.IO.FileStream对象,创建System.IO.BinaryWriter对象。
    • 通过调用System.IO.BinaryWriter对象的Write方法并传递字节数组,将字节数组的内容写入PDF文件。

另请参阅

使用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