导入和导出数据

本文档中的示例和示例仅适用于JEE环境上的AEM Forms。

关于表单数据集成服务

表单数据集成服务可以将数据导入PDF表单并从PDF表单导出数据。 导入和导出操作支持两种PDF forms:

  • Acrobat表单(在Acrobat中创建)是包含表单域的PDF文档。
  • Adobe XML表单(在设计器中创建)是符合XML Adobe XML Forms架构(XFA)的PDF文档。

根据PDF表单的类型,表单数据可以采用以下格式之一:

  • XFDF文件,是Acrobat表单数据格式的XML版本。
  • XDP文件,它是包含表单字段定义的XML文件。 它还可能包含表单域数据和嵌入的PDF文件。 由Designer生成的XDP文件只能在包含嵌入的基64编码PDF文档时使用。

您可以使用表单任务集成服务完成以下操作:

注意

有关表单数据集成服务的详细信息,请参阅AEM Forms的服务参考

导入表单数据

您可以使用表单PDF forms集成服务将表单数据导入交互式数据。 交互式PDF表单是一个PDF文档,其中包含一个或多个字段,用于从用户收集信息或显示自定义信息。 表单数据集成服务不支持表单计算、验证或脚本。

要将数据导入到在Designer中创建的表单中,必须引用有效的XDP XML数据源。 请考虑以下抵押申请表示例。

ie_ie_lonformdata

要将数据值导入此表单,您必须具有与表单对应的有效XDP XML数据源。 不能使用任意XML数据源使用表单数据集成服务将数据导入表单。 任意XML数据源与XDP XML数据源的区别在于,XDP数据源符合XML Forms体系结构(XFA)。 以下XML表示一个XDP XML数据源,它对应于按揭贷款应用程序表单示例。

 <?xml version="1.0" encoding="UTF-8" ?>
 - <xfa:datasets xmlns:xfa="https://www.xfa.org/schema/xfa-data/1.0/">
 - <xfa:data>
 - <data>
     - <Layer>
         <closeDate>1/26/2007</closeDate>
         <lastName>Johnson</lastName>
         <firstName>Jerry</firstName>
         <mailingAddress>JJohnson@NoMailServer.com</mailingAddress>
         <city>New York</city>
         <zipCode>00501</zipCode>
         <state>NY</state>
         <dateBirth>26/08/1973</dateBirth>
         <middleInitials>D</middleInitials>
         <socialSecurityNumber>(555) 555-5555</socialSecurityNumber>
         <phoneNumber>5555550000</phoneNumber>
     </Layer>
     - <Mortgage>
         <mortgageAmount>295000.00</mortgageAmount>
         <monthlyMortgagePayment>1724.54</monthlyMortgagePayment>
         <purchasePrice>300000</purchasePrice>
         <downPayment>5000</downPayment>
         <term>25</term>
         <interestRate>5.00</interestRate>
     </Mortgage>
 </data>
 </xfa:data>
 </xfa:datasets>
注意

有关表单数据集成服务的详细信息,请参阅AEM Forms的服务参考

步骤的摘要

要将表单数据导入PDF表单,请执行以下步骤:

  1. 包括项目文件。
  2. 创建表单数据集成服务客户端。
  3. 引用PDF表单。
  4. 引用XML数据源。
  5. 将数据导入PDF表单。
  6. 将PDF表单另存为PDF文件。

包括项目文件

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

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

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-formdataintegration-client.jar
  • adobe-utilities.jar(在JBoss上部署AEM Forms时为必需)
  • jbossall-client.jar(在JBoss上部署AEM Forms时为必需)

有关这些JAR文件位置的信息,请参阅包括AEM Forms Java库文件

创建表单数据集成服务客户端

在以编程方式将数据导入PDF表单客户端API之前,必须创建数据集成服务客户端。 在创建服务客户端时,您定义调用服务所需的连接设置。 有关信息,请参阅设置连接属性

引用PDF表单

要将数据导入PDF表单,您必须引用在Designer中创建的XML表单或在Acrobat中创建的Acrobat表单。

引用XML数据源

要导入表单数据,必须引用有效的数据源。 要将数据导入在Designer中创建的XFA XML表单,必须使用XDP XML数据源。 如果引用了Acrobat表单,则必须使用XFDF数据源。 对于要将数据导入的每个字段,必须指定一个值。 如果位于XML数据源中的元素与表单中的字段不对应,则忽略该元素。

将数据导入PDF表单

在引用PDF表单和有效的XML数据源后,可以将数据导入PDF表单。

将PDF表单另存为PDF文件

将数据导入表单后,可以将表单另存为PDF文件。 保存为PDF文件后,用户可以在Adobe Reader或Acrobat中打开表单,查看包含导入数据的表单。

另请参阅

使用Java API导入表单数据

使用Web服务API导入表单数据

包括AEM Forms Java库文件

设置连接属性

表单数据集成服务API快速开始

导出表单数据

使用Java API导入表单数据

使用表单数据集成API(Java)导入表单数据:

  1. 包括项目文件。

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

  2. 创建表单数据集成服务客户端。

    • 创建包含连接属性的ServiceClientFactory对象。
    • 使用FormDataIntegrationClient对象的构造函数并传递ServiceClientFactory对象,创建对象。
  3. 引用PDF表单。

    • 使用java.io.FileInputStream对象的构造函数创建对象。 传递指定PDF表单位置的字符串值。
    • 使用com.adobe.idp.Document构造函数创建存储PDF表单的com.adobe.idp.Document对象。 将包含PDF表单的java.io.FileInputStream对象传递给构造函数。
  4. 引用XML数据源。

    • 使用java.io.FileInputStream对象的构造函数创建一个对象,并传递一个字符串值,该字符串值指定要导入表单的包含数据的XML文件的位置。
    • 使用com.adobe.idp.Document构造函数创建用于存储表单数据的com.adobe.idp.Document对象。 将包含表单数据的java.io.FileInputStream对象传递给构造函数。
  5. 将数据导入PDF表单。

    通过调用FormDataIntegrationClient对象的importData方法并传递以下值,将数据导入PDF表单:

    • 存储PDF表单的com.adobe.idp.Document对象。
    • 存储表单数据的com.adobe.idp.Document对象。

    importData方法返回一个com.adobe.idp.Document对象,该对象存储包含位于XML数据源中的数据的PDF表单。

  6. 将PDF表单另存为PDF文件。

    • 创建一个java.io.File对象,并确保文件扩展名为“.PDF”。
    • 调用Document对象的copyToFile方法,将Document对象的内容复制到文件(请确保使用由importData方法返回的Document对象)。

另请参阅

步骤摘要

快速开始(SOAP模式):使用Java API导入表单数据

包括AEM Forms Java库文件

设置连接属性

使用Web服务API导入表单数据

使用表单数据集成API(Web服务)导入表单数据:

  1. 包括项目文件。

    创建使用MTOM的Microsoft .NET项目。 确保使用以下WSDL定义:http://localhost:8080/soap/services/FormDataIntegration?WSDL&lc_version=9.0.1

    注意

    localhost替换为承载AEM Forms的服务器的IP地址。

  2. 创建表单数据集成服务客户端。

    • 使用FormDataIntegrationClient对象的默认构造函数创建对象。

    • 使用System.ServiceModel.EndpointAddress构造函数创建FormDataIntegrationClient.Endpoint.Address对象。 将指定WSDL的字符串值传递给AEM Forms服务(例如http://localhost:8080/soap/services/FormDataIntegration?blob=mtom)。 您无需使用lc_version属性。 在创建服务引用时使用此属性。 但是,请指定?blob=mtom以使用MTOM。

    • 通过获取FormDataIntegrationClient.Endpoint.Binding字段的值,创建System.ServiceModel.BasicHttpBinding对象。 将返回值转换为BasicHttpBinding

    • System.ServiceModel.BasicHttpBinding对象的MessageEncoding字段设置为WSMessageEncoding.Mtom。 此值确保使用MTOM。

    • 通过执行以下任务,启用基本HTTP身份验证:

      • 为字段FormDataIntegrationClient.ClientCredentials.UserName.UserName指定AEM表单用户名。
      • 为字段FormDataIntegrationClient.ClientCredentials.UserName.Password分配相应的密码值。
      • 将常量值HttpClientCredentialType.Basic赋给字段BasicHttpBindingSecurity.Transport.ClientCredentialType
      • 将常量值BasicHttpSecurityMode.TransportCredentialOnly赋给字段BasicHttpBindingSecurity.Security.Mode
  3. 引用PDF表单。

    • 使用BLOB对象的构造函数创建对象。 此BLOB对象用于存储PDF表单。
    • 通过调用其构造函数创建System.IO.FileStream对象。 传递一个字符串值,它指定PDF表单的位置以及打开文件的模式。
    • 创建一个字节数组,用于存储System.IO.FileStream对象的内容。 可以通过获取System.IO.FileStream对象的Length属性来确定字节数组的大小。
    • 通过调用System.IO.FileStream对象的Read方法,用流数据填充字节数组。 传递要读取的字节数组、起始位置和流长度。
    • BLOB对象的MTOM字段指定为字节数组的内容,从而填充该对象。
  4. 引用XML数据源。

    • 使用BLOB对象的构造函数创建对象。 此BLOB对象用于存储导入到表单中的数据。
    • 通过调用其构造函数创建System.IO.FileStream对象。 传递一个字符串值,它指定包含要导入数据的XML文件的位置以及打开文件的模式。
    • 创建一个字节数组,用于存储System.IO.FileStream对象的内容。 可以通过获取System.IO.FileStream对象的Length属性来确定字节数组的大小。
    • 通过调用System.IO.FileStream对象的Read方法,用流数据填充字节数组。 传递要读取的字节数组、起始位置和流长度。
    • BLOB对象的MTOM字段指定为字节数组的内容,从而填充该对象。
  5. 将数据导入PDF表单。

    通过调用FormDataIntegrationClient对象的importData方法并传递以下值,将数据导入PDF表单:

    • 存储PDF表单的BLOB对象。
    • 存储表单数据的BLOB对象。

    importData方法返回一个BLOB对象,该对象存储包含位于XML数据源中的数据的PDF表单。

  6. 将PDF表单另存为PDF文件。

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

另请参阅

步骤摘要

使用MTOM调用AEM Forms

导出表单数据

您可以使用表单数据集成服务从交互式PDF表单导出表单数据。 导出的数据的格式取决于表单类型。 如果表单类型是在Acrobat中创建的Acrobat表单,则导出的数据为XFDF。 如果表单类型是在Designer中创建的XML表单,则导出的数据为XDP。

注意

有关表单数据集成服务的详细信息,请参阅AEM Forms的服务参考

步骤的摘要

要从PDF表单导出表单数据,请执行以下步骤:

  1. 包括项目文件
  2. 创建表单数据集成服务客户端。
  3. 引用PDF表单。
  4. 从PDF表单导出数据。
  5. 将导出的数据另存为XML文件。

包括项目文件

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

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

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-formdataintegration-client.jar
  • adobe-utilities.jar(在JBoss上部署AEM Forms时为必需)
  • jbossall-client.jar(在JBoss上部署AEM Forms时为必需)

创建表单数据集成服务客户端

在以编程方式将数据导入PDF formClient API之前,必须创建数据集成服务客户端。 在创建服务客户端时,您定义调用服务所需的连接设置。 有关信息,设置连接属性

引用PDF表单

要从PDF表单导出数据,必须引用在Designer或Acrobat中创建并包含表单数据的PDF表单。 如果尝试从空PDF表单导出数据,您将获得空XML模式。

从PDF表单导出数据

引用包含表单数据的PDF表单后,可以从表单导出数据。 数据将在基于表单的XML模式中导出。

将表单数据保存为XML文件

导出表单数据后,可以将数据另存为XML文件。 保存为XML文件后,您可以在XML查看器中打开XML文件以视图表单数据。

另请参阅

使用Java API导出表单数据

使用Web服务API导出表单数据

包括AEM Forms Java库文件

设置连接属性

表单数据集成服务API快速开始

导入表单数据

使用Java API导出表单数据

使用表单数据集成API(Java)导出表单数据:

  1. 包括项目文件。

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

  2. 创建表单数据集成服务客户端。

    • 创建包含连接属性的ServiceClientFactory对象。
    • 使用FormDataIntegrationClient对象的构造函数并传递ServiceClientFactory对象,创建对象。
  3. 引用PDF表单。

    • 使用java.io.FileInputStream对象的构造函数创建一个对象,并传递一个字符串值,该字符串值指定要导出数据的PDF表单的位置。
    • 使用com.adobe.idp.Document构造函数创建存储PDF表单的com.adobe.idp.Document对象。 将包含PDF表单的java.io.FileInputStream对象传递给构造函数。
  4. 从PDF表单导出数据。

    通过调用FormDataIntegrationClient对象的exportData方法导出表单数据,并传递存储PDF表单的com.adobe.idp.Document对象。 此方法返回一个com.adobe.idp.Document对象,该对象将表单数据存储为XML模式。

  5. 将PDF表单另存为PDF文件。

    • 创建一个java.io.File对象,并确保文件扩展名为XML。
    • 调用Document对象的copyToFile方法,将Document对象的内容复制到文件(请确保使用由exportData方法返回的Document对象)。

另请参阅

步骤摘要

快速开始(SOAP模式):使用Java API导出表单数据

包括AEM Forms Java库文件

设置连接属性

使用Web服务API导出表单数据

使用表单数据集成API(Web服务)导出表单数据:

  1. 包括项目文件。

    创建使用MTOM的Microsoft .NET项目。 确保使用以下WSDL定义:http://localhost:8080/soap/services/FormDataIntegration?WSDL&lc_version=9.0.1

    • localhost替换为承载AEM Forms的服务器的IP地址。
  2. 创建表单数据集成服务客户端。

    • 使用FormDataIntegrationClient对象的默认构造函数创建对象。

    • 使用System.ServiceModel.EndpointAddress构造函数创建FormDataIntegrationClient.Endpoint.Address对象。 将指定WSDL的字符串值传递给AEM Forms服务(例如http://localhost:8080/soap/services/FormDataIntegration?blob=mtom)。 您无需使用lc_version属性。 在创建服务引用时使用此属性。 但是,请指定?blob=mtom以使用MTOM。

    • 通过获取FormDataIntegrationClient.Endpoint.Binding字段的值,创建System.ServiceModel.BasicHttpBinding对象。 将返回值转换为BasicHttpBinding

    • System.ServiceModel.BasicHttpBinding对象的MessageEncoding字段设置为WSMessageEncoding.Mtom。 此值确保使用MTOM。

    • 通过执行以下任务,启用基本HTTP身份验证:

      • 为字段FormDataIntegrationClient.ClientCredentials.UserName.UserName指定AEM表单用户名。
      • 为字段FormDataIntegrationClient.ClientCredentials.UserName.Password分配相应的密码值。
      • 将常量值HttpClientCredentialType.Basic赋给字段BasicHttpBindingSecurity.Transport.ClientCredentialType
      • 将常量值BasicHttpSecurityMode.TransportCredentialOnly赋给字段BasicHttpBindingSecurity.Security.Mode
  3. 引用PDF表单。

    • 使用BLOB对象的构造函数创建对象。 此BLOB对象用于存储从中导出数据的PDF表单。
    • 通过调用其构造函数创建System.IO.FileStream对象。 传递一个字符串值,它指定PDF表单的位置以及打开文件的模式。
    • 创建一个字节数组,用于存储System.IO.FileStream对象的内容。 可以通过获取System.IO.FileStream对象的Length属性来确定字节数组的大小。
    • 通过调用System.IO.FileStream对象的Read方法并传递要读取的字节数组、开始位置和流长度,用流数据填充字节数组。
    • BLOB对象的MTOM字段指定为字节数组的内容,从而填充该对象。
  4. 从PDF表单导出数据。

    通过调用FormDataIntegrationClient对象的exportData方法将数据导入PDF表单,并传递存储PDF表单的BLOB对象。 此方法返回一个BLOB对象,该对象将表单数据存储为XML模式。

  5. 将PDF表单另存为PDF文件。

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

另请参阅

步骤摘要

使用MTOM调用AEM Forms

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