本文档中的示例和示例仅适用于JEE环境上的AEM Forms。
表单数据集成服务可以将数据导入PDF表单并从PDF表单导出数据。 导入和导出操作支持两种PDF forms:
根据PDF表单的类型,表单数据可以采用以下格式之一:
您可以使用表单任务集成服务完成以下操作:
有关表单数据集成服务的详细信息,请参阅AEM Forms的服务参考。
您可以使用表单PDF forms集成服务将表单数据导入交互式数据。 交互式PDF表单是一个PDF文档,其中包含一个或多个字段,用于从用户收集信息或显示自定义信息。 表单数据集成服务不支持表单计算、验证或脚本。
要将数据导入到在Designer中创建的表单中,必须引用有效的XDP XML数据源。 请考虑以下抵押申请表示例。
要将数据值导入此表单,您必须具有与表单对应的有效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表单,请执行以下步骤:
包括项目文件
在开发项目中包含必要的文件。 如果您使用Java创建客户端应用程序,请包含必要的JAR文件。 如果您使用Web服务,请确保包含代理文件。
必须将以下JAR文件添加到项目的类路径中:
有关这些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中打开表单,查看包含导入数据的表单。
另请参阅
使用表单数据集成API(Java)导入表单数据:
包括项目文件。
在Java项目的类路径中包含客户端JAR文件,如adobe-formdataintegration-client.jar。
创建表单数据集成服务客户端。
ServiceClientFactory
对象。FormDataIntegrationClient
对象的构造函数并传递ServiceClientFactory
对象,创建对象。引用PDF表单。
java.io.FileInputStream
对象的构造函数创建对象。 传递指定PDF表单位置的字符串值。com.adobe.idp.Document
构造函数创建存储PDF表单的com.adobe.idp.Document
对象。 将包含PDF表单的java.io.FileInputStream
对象传递给构造函数。引用XML数据源。
java.io.FileInputStream
对象的构造函数创建一个对象,并传递一个字符串值,该字符串值指定要导入表单的包含数据的XML文件的位置。com.adobe.idp.Document
构造函数创建用于存储表单数据的com.adobe.idp.Document
对象。 将包含表单数据的java.io.FileInputStream
对象传递给构造函数。将数据导入PDF表单。
通过调用FormDataIntegrationClient
对象的importData
方法并传递以下值,将数据导入PDF表单:
com.adobe.idp.Document
对象。com.adobe.idp.Document
对象。importData
方法返回一个com.adobe.idp.Document
对象,该对象存储包含位于XML数据源中的数据的PDF表单。
将PDF表单另存为PDF文件。
java.io.File
对象,并确保文件扩展名为“.PDF”。Document
对象的copyToFile
方法,将Document
对象的内容复制到文件(请确保使用由importData
方法返回的Document
对象)。另请参阅
使用表单数据集成API(Web服务)导入表单数据:
包括项目文件。
创建使用MTOM的Microsoft .NET项目。 确保使用以下WSDL定义:http://localhost:8080/soap/services/FormDataIntegration?WSDL&lc_version=9.0.1
。
将localhost
替换为承载AEM Forms的服务器的IP地址。
创建表单数据集成服务客户端。
使用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
。引用PDF表单。
BLOB
对象的构造函数创建对象。 此BLOB
对象用于存储PDF表单。System.IO.FileStream
对象。 传递一个字符串值,它指定PDF表单的位置以及打开文件的模式。System.IO.FileStream
对象的内容。 可以通过获取System.IO.FileStream
对象的Length
属性来确定字节数组的大小。System.IO.FileStream
对象的Read
方法,用流数据填充字节数组。 传递要读取的字节数组、起始位置和流长度。BLOB
对象的MTOM
字段指定为字节数组的内容,从而填充该对象。引用XML数据源。
BLOB
对象的构造函数创建对象。 此BLOB
对象用于存储导入到表单中的数据。System.IO.FileStream
对象。 传递一个字符串值,它指定包含要导入数据的XML文件的位置以及打开文件的模式。System.IO.FileStream
对象的内容。 可以通过获取System.IO.FileStream
对象的Length
属性来确定字节数组的大小。System.IO.FileStream
对象的Read
方法,用流数据填充字节数组。 传递要读取的字节数组、起始位置和流长度。BLOB
对象的MTOM
字段指定为字节数组的内容,从而填充该对象。将数据导入PDF表单。
通过调用FormDataIntegrationClient
对象的importData
方法并传递以下值,将数据导入PDF表单:
BLOB
对象。BLOB
对象。importData
方法返回一个BLOB
对象,该对象存储包含位于XML数据源中的数据的PDF表单。
将PDF表单另存为PDF文件。
System.IO.FileStream
对象的构造函数并传递一个表示PDF文件的文件位置的字符串值,创建一个对象。importData
方法返回的BLOB
对象的数据内容。 通过获取BLOB
对象的MTOM
字段的值来填充字节数组。System.IO.FileStream
对象,创建System.IO.BinaryWriter
对象。System.IO.BinaryWriter
对象的Write
方法并传递字节数组,将字节数组的内容写入PDF文件。另请参阅
您可以使用表单数据集成服务从交互式PDF表单导出表单数据。 导出的数据的格式取决于表单类型。 如果表单类型是在Acrobat中创建的Acrobat表单,则导出的数据为XFDF。 如果表单类型是在Designer中创建的XML表单,则导出的数据为XDP。
有关表单数据集成服务的详细信息,请参阅AEM Forms的服务参考。
要从PDF表单导出表单数据,请执行以下步骤:
包括项目文件
在开发项目中包含必要的文件。 如果您使用Java创建客户端应用程序,请包含必要的JAR文件。 如果您使用Web服务,请确保包含代理文件。
必须将以下JAR文件添加到项目的类路径中:
创建表单数据集成服务客户端
在以编程方式将数据导入PDF formClient API之前,必须创建数据集成服务客户端。 在创建服务客户端时,您定义调用服务所需的连接设置。 有关信息,设置连接属性。
引用PDF表单
要从PDF表单导出数据,必须引用在Designer或Acrobat中创建并包含表单数据的PDF表单。 如果尝试从空PDF表单导出数据,您将获得空XML模式。
从PDF表单导出数据
引用包含表单数据的PDF表单后,可以从表单导出数据。 数据将在基于表单的XML模式中导出。
将表单数据保存为XML文件
导出表单数据后,可以将数据另存为XML文件。 保存为XML文件后,您可以在XML查看器中打开XML文件以视图表单数据。
另请参阅
使用表单数据集成API(Java)导出表单数据:
包括项目文件。
在Java项目的类路径中包含客户端JAR文件,如adobe-formdataintegration-client.jar。
创建表单数据集成服务客户端。
ServiceClientFactory
对象。FormDataIntegrationClient
对象的构造函数并传递ServiceClientFactory
对象,创建对象。引用PDF表单。
java.io.FileInputStream
对象的构造函数创建一个对象,并传递一个字符串值,该字符串值指定要导出数据的PDF表单的位置。com.adobe.idp.Document
构造函数创建存储PDF表单的com.adobe.idp.Document
对象。 将包含PDF表单的java.io.FileInputStream
对象传递给构造函数。从PDF表单导出数据。
通过调用FormDataIntegrationClient
对象的exportData
方法导出表单数据,并传递存储PDF表单的com.adobe.idp.Document
对象。 此方法返回一个com.adobe.idp.Document
对象,该对象将表单数据存储为XML模式。
将PDF表单另存为PDF文件。
java.io.File
对象,并确保文件扩展名为XML。Document
对象的copyToFile
方法,将Document
对象的内容复制到文件(请确保使用由exportData
方法返回的Document
对象)。另请参阅
使用表单数据集成API(Web服务)导出表单数据:
包括项目文件。
创建使用MTOM的Microsoft .NET项目。 确保使用以下WSDL定义:http://localhost:8080/soap/services/FormDataIntegration?WSDL&lc_version=9.0.1
。
localhost
替换为承载AEM Forms的服务器的IP地址。创建表单数据集成服务客户端。
使用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
。引用PDF表单。
BLOB
对象的构造函数创建对象。 此BLOB
对象用于存储从中导出数据的PDF表单。System.IO.FileStream
对象。 传递一个字符串值,它指定PDF表单的位置以及打开文件的模式。System.IO.FileStream
对象的内容。 可以通过获取System.IO.FileStream
对象的Length
属性来确定字节数组的大小。System.IO.FileStream
对象的Read
方法并传递要读取的字节数组、开始位置和流长度,用流数据填充字节数组。BLOB
对象的MTOM
字段指定为字节数组的内容,从而填充该对象。从PDF表单导出数据。
通过调用FormDataIntegrationClient
对象的exportData
方法将数据导入PDF表单,并传递存储PDF表单的BLOB
对象。 此方法返回一个BLOB
对象,该对象将表单数据存储为XML模式。
将PDF表单另存为PDF文件。
System.IO.FileStream
对象的构造函数并传递一个表示XML文件位置的字符串值,创建一个对象。exportData
方法返回的BLOB
对象的数据内容。 通过获取BLOB
对象的MTOM
字段的值来填充字节数组。System.IO.FileStream
对象,创建System.IO.BinaryWriter
对象。System.IO.BinaryWriter
对象的Write
方法并传递字节数组,将字节数组的内容写入XML文件。另请参阅