本檔案中的範例和範例僅適用於JEE環境上的AEM Forms。
表單資料整合服務可將資料匯入PDF表單,並從PDF表單匯出資料。 匯入和匯出作業支援兩種PDF表單:
表單資料可依PDF表單類型以下列其中一種格式存在:
您可以使用表單資料整合服務完成下列工作:
如需表單資料整合服務的詳細資訊,請參閱AEM Forms的服務參考。
您可以使用表單資料整合服務,將表單資料匯入互動式PDF表單。 互動式PDF表單是PDF檔案,其中包含一或多個欄位,用於收集使用者的資訊或顯示自訂資訊。 表單資料整合服務不支援表單計算、驗證或指令碼。
若要將資料匯入在Designer中建立的表單,您必須參考有效的XDP XML資料來源。 請考慮以下抵押貸款申請表示例。
若要將資料值匯入此表單,您必須有與表單對應的有效XDP XML資料來源。 您不能使用任意XML資料來源,使用「表單資料整合」服務將資料匯入表單。 任意XML資料來源與XDP XML資料來源的區別在於,XDP資料來源符合XML表單架構(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 services,請確定您包含proxy檔案。
必須將以下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
對象。ServiceClientFactory
對象,建立FormDataIntegrationClient
對象。參考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 service)匯入表單資料:
包含專案檔案。
建立使用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
。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
方法,以串流資料填入位元組陣列。 傳遞要讀取的位元組陣列、起始位置和串流長度。MTOM
對象的欄位分配位元組陣列的內容來填充BLOB
對象。參考XML資料來源。
BLOB
對象。 此BLOB
物件用來儲存匯入表單的資料。System.IO.FileStream
對象的建構子建立對象。 傳遞一個字串值,指定包含要匯入資料的XML檔案位置,以及開啟檔案的模式。System.IO.FileStream
對象內容的位元組陣列。 您可以取得System.IO.FileStream
物件的Length
屬性,以判斷位元組陣列的大小。System.IO.FileStream
物件的Read
方法,以串流資料填入位元組陣列。 傳遞要讀取的位元組陣列、起始位置和串流長度。MTOM
對象的欄位分配位元組陣列的內容來填充BLOB
對象。將資料匯入PDF表單。
調用FormDataIntegrationClient
物件的importData
方法並傳遞下列值,將資料匯入PDF表單:
BLOB
對象。BLOB
對象。importData
方法返回一個BLOB
對象,該對象儲存一個包含位於XML資料源中的資料的PDF表單。
將PDF表格儲存為PDF檔案。
System.IO.FileStream
對象的建構子並傳遞一個字串值,該字串值表示PDF檔案的檔案位置。importData
方法返回的BLOB
對象的資料內容。 取得BLOB
物件的MTOM
欄位值,以填入位元組陣列。System.IO.BinaryWriter
對象的建構子並傳遞System.IO.FileStream
對象,以建立對象。System.IO.BinaryWriter
物件的Write
方法並傳遞位元組陣列,將位元組陣列的內容寫入PDF檔案。另請參閱
您可以使用表單資料整合服務,從互動式PDF表單匯出表單資料。 匯出的資料格式取決於表單類型。 如果表單類型是在Acrobat中建立的Acrobat表單,則匯出的資料是XFDF。 如果表單類型是在Designer中建立的XML表單,則導出的資料是XDP。
如需表單資料整合服務的詳細資訊,請參閱AEM Forms的服務參考。
若要從PDF表單匯出表單資料,請執行下列步驟:
包含專案檔案
將必要的檔案加入您的開發專案中。 如果使用Java建立客戶端應用程式,則包括必要的JAR檔案。 如果您使用web services,請確定您包含proxy檔案。
必須將以下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
對象。ServiceClientFactory
對象,建立FormDataIntegrationClient
對象。參考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
物件,以匯出表單資料。 此方法返回將表單資料儲存為XML架構的com.adobe.idp.Document
對象。
將PDF表格儲存為PDF檔案。
java.io.File
物件,並確定副檔名為XML。Document
物件的copyToFile
方法,將Document
物件的內容複製至檔案(請確定您使用exportData
方法傳回的Document
物件)。另請參閱
使用表單資料整合API(web service)匯出表單資料:
包含專案檔案。
建立使用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
。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
方法,並傳遞要讀取的位元組陣列、開始位置和串流長度,以串流資料填入位元組陣列。MTOM
對象的欄位分配位元組陣列的內容來填充BLOB
對象。從PDF表單匯出資料。
調用FormDataIntegrationClient
物件的exportData
方法,並傳遞儲存PDF表單的BLOB
物件,將資料匯入PDF表單。 此方法返回將表單資料儲存為XML架構的BLOB
對象。
將PDF表格儲存為PDF檔案。
System.IO.FileStream
對象的建構子並傳遞表示XML檔案位置的字串值來建立對象。exportData
方法返回的BLOB
對象的資料內容。 取得BLOB
物件的MTOM
欄位值,以填入位元組陣列。System.IO.BinaryWriter
對象的建構子並傳遞System.IO.FileStream
對象,以建立對象。System.IO.BinaryWriter
物件的Write
方法並傳遞位元組陣列,將位元組陣列的內容寫入XML檔案。另請參閱