本文档中的示例和示例仅适用于AEM Forms on JEE环境。
表单数据集成服务可以将数据导入PDF表单并从PDF表单导出数据。 导入和导出操作支持两种类型的PDF forms:
根据PDF表单的类型,表单数据可以以下列格式之一存在:
您可以使用表单数据集成服务完成这些任务:
有关“表单数据集成”服务的更多信息,请参阅 AEM Forms的服务参考.
您可以使用表单数据集成服务将表单数据导入交互式PDF forms。 交互式PDF表单是一种PDF文档,其中包含一个或多个用于从User收集信息或用于显示自定义信息的字段。 表单数据集成服务不支持表单计算、验证或脚本。
要将数据导入到在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库文件.
创建表单数据集成服务客户端
您必须先创建数据集成服务客户端,然后才能以编程方式将数据从客户端API导入PDF。 创建服务客户端时,您可以定义调用服务所需的连接设置。 有关信息,请参阅 设置连接属性.
引用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
构造函数。 传递 java.io.FileInputStream
包含构造函数的PDF表单的对象。引用XML数据源。
java.io.FileInputStream
对象,并传递一个字符串值,该值指定包含要导入到表单中的数据的XML文件的位置。com.adobe.idp.Document
使用存储表单数据的对象 com.adobe.idp.Document
构造函数。 传递 java.io.FileInputStream
包含表单数据到构造函数的对象。将数据导入PDF表单。
PDF通过调用 FormDataIntegrationClient
对象的 importData
方法,并传递以下值:
com.adobe.idp.Document
存储PDF表单的对象。com.adobe.idp.Document
存储表单数据的对象。此 importData
方法返回 com.adobe.idp.Document
存储包含位于XML数据源中的数据的PDF表单的对象。
将PDF表单另存为PDF文件。
java.io.File
对象并确保文件扩展名为“。PDF”。Document
对象的 copyToFile
用于复制目录内容的方法 Document
对象(确保您使用 Document
返回的对象 importData
方法)。另请参阅
使用表单数据集成API(Web服务)导入表单数据:
包括项目文件。
创建使用MTOM的Microsoft .NET项目。 确保使用以下WSDL定义: http://localhost:8080/soap/services/FormDataIntegration?WSDL&lc_version=9.0.1
.
Replace localhost
包含托管AEM Forms的服务器的IP地址。
创建表单数据集成服务客户端。
创建 FormDataIntegrationClient
对象。
创建 FormDataIntegrationClient.Endpoint.Address
对象 System.ServiceModel.EndpointAddress
构造函数。 将指定WSDL的字符串值传递给AEM Forms服务(例如, http://localhost:8080/soap/services/FormDataIntegration?blob=mtom
.) 您无需使用 lc_version
属性。 创建服务引用时使用此属性。 但是,请指定 ?blob=mtom
使用MTOM。
创建 System.ServiceModel.BasicHttpBinding
对象,方法是获取 FormDataIntegrationClient.Endpoint.Binding
字段。 将返回值强制转换为 BasicHttpBinding
.
设置 System.ServiceModel.BasicHttpBinding
对象的 MessageEncoding
字段至 WSMessageEncoding.Mtom
. 此值可确保使用MTOM。
通过执行以下任务启用基本HTTP身份验证:
FormDataIntegrationClient.ClientCredentials.UserName.UserName
.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表单。
PDF通过调用 FormDataIntegrationClient
对象的 importData
方法,并传递以下值:
BLOB
存储PDF表单的对象。BLOB
存储表单数据的对象。此 importData
方法返回 BLOB
存储包含位于XML数据源中的数据的PDF表单的对象。
将PDF表单另存为PDF文件。
System.IO.FileStream
对象,方法是调用其构造函数并传递一个表示PDF文件的文件位置的字符串值。BLOB
返回的对象 importData
方法。 通过获取的值填充字节数组 BLOB
对象的 MTOM
字段。System.IO.BinaryWriter
对象,方法是调用其构造函数 System.IO.FileStream
对象。System.IO.BinaryWriter
对象的 Write
方法和传递字节数组。另请参阅
您可以使用表单数据集成服务从交互式PDF表单中导出表单数据。 导出数据的格式取决于表单类型。 如果表单类型是在Acrobat中创建的Acrobat表单,则导出的数据为XFDF。 如果表单类型是在Designer中创建的XML表单,则导出的数据是XDP。
有关“表单数据集成”服务的更多信息,请参阅 AEM Forms的服务参考.
要从PDF表单导出表单数据,请执行以下步骤:
包括项目文件
在开发项目中包含必要的文件。 如果要使用Java创建客户端应用程序,则包含必要的JAR文件。 如果您使用的是Web服务,请确保包含代理文件。
必须将以下JAR文件添加到项目的类路径中:
创建表单数据集成服务客户端
您必须先创建数据集成服务客户端,然后才能以编程方式将数据导入PDF表单客户端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
构造函数。 传递 java.io.FileInputStream
包含构造函数的PDF表单的对象。从PDF表单中导出数据。
通过调用 FormDataIntegrationClient
对象的 exportData
方法并传递 com.adobe.idp.Document
存储PDF表单的对象。 此方法会返回 com.adobe.idp.Document
将表单数据存储为XML架构的对象。
将PDF表单另存为PDF文件。
java.io.File
对象并确保文件扩展名为XML。Document
对象的 copyToFile
用于复制目录内容的方法 Document
对象(确保您使用 Document
返回的对象 exportData
方法)。另请参阅
使用表单数据集成API(Web服务)导出表单数据:
包括项目文件。
创建使用MTOM的Microsoft .NET项目。 确保使用以下WSDL定义: http://localhost:8080/soap/services/FormDataIntegration?WSDL&lc_version=9.0.1
.
localhost
包含托管AEM Forms的服务器的IP地址。创建表单数据集成服务客户端。
创建 FormDataIntegrationClient
对象。
创建 FormDataIntegrationClient.Endpoint.Address
对象 System.ServiceModel.EndpointAddress
构造函数。 将指定WSDL的字符串值传递给AEM Forms服务(例如, http://localhost:8080/soap/services/FormDataIntegration?blob=mtom
.) 您无需使用 lc_version
属性。 创建服务引用时使用此属性。 但是,请指定 ?blob=mtom
使用MTOM。
创建 System.ServiceModel.BasicHttpBinding
对象,方法是获取 FormDataIntegrationClient.Endpoint.Binding
字段。 将返回值强制转换为 BasicHttpBinding
.
设置 System.ServiceModel.BasicHttpBinding
对象的 MessageEncoding
字段至 WSMessageEncoding.Mtom
. 此值可确保使用MTOM。
通过执行以下任务启用基本HTTP身份验证:
FormDataIntegrationClient.ClientCredentials.UserName.UserName
.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表单中导出数据。
PDF通过调用 FormDataIntegrationClient
对象的 exportData
方法并传递 BLOB
存储PDF表单的对象。 此方法会返回 BLOB
将表单数据存储为XML架构的对象。
将PDF表单另存为PDF文件。
System.IO.FileStream
对象,方法是调用其构造函数并传递表示XML文件位置的字符串值。BLOB
返回的对象 exportData
方法。 通过获取的值填充字节数组 BLOB
对象的 MTOM
字段。System.IO.BinaryWriter
对象,方法是调用其构造函数 System.IO.FileStream
对象。System.IO.BinaryWriter
对象的 Write
方法和传递字节数组。另请参阅