匯入和匯出資料

關於表單資料整合服務

表單資料整合服務可將資料匯入PDF表單,並從PDF表單匯出資料。 匯入和匯出作業支援兩種PDF forms:

  • Acrobat表單(在Acrobat中建立)是包含表單欄位的PDF檔案。
  • AdobeXML表單(在設計工具中建立)是符合XMLAdobeXML 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_loanformdata

若要將資料值匯入此表單,您必須具備與表單對應的有效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服務,請確定您包含Proxy檔案。

必須將以下JAR檔案添加到項目的類路徑中:

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-formdataintegration-client.jar
  • adobe-utilities.jar(若AEM Forms部署在JBoss上則為必要)
  • jbossall-client.jar(若AEM Forms部署在JBoss上則為必要)

有關這些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匯入表單資料

使用網站服務API匯入表單資料

包含AEM Forms Java程式庫檔案

設定連接屬性

表單資料整合服務API快速入門

匯出表單資料

使用Java API匯入表單資料

使用表單資料整合API(Java)匯入表單資料:

  1. 包含專案檔案。

    在Java專案的類別路徑中包含用戶端JAR檔案,例如adobe-formdataintegration-client.jar。

  2. 建立表單資料整合服務用戶端。

    • 建立包含連接屬性的ServiceClientFactory對象。
    • 使用其建構子並傳遞ServiceClientFactory物件,以建立FormDataIntegrationClient物件。
  3. 參考PDF表單。

    • 使用其建構子建立java.io.FileInputStream物件。 傳遞指定PDF表單位置的字串值。
    • 使用com.adobe.idp.Document建構子建立com.adobe.idp.Document物件以儲存PDF表單。 將包含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程式庫檔案

設定連接屬性

使用網站服務API匯入表單資料

使用表單資料整合API(網站服務)匯入表單資料:

  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身份驗證:

      • 將AEM表單使用者名稱指派給欄位FormDataIntegrationClient.ClientCredentials.UserName.UserName
      • 將相應的密碼值分配給欄位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方法,以串流資料填入位元組陣列。 傳遞位元組陣列、起始位置和資料流長度以讀取。
    • MTOM欄位指定位元組陣列的內容,以填入BLOB物件。
  4. 參考XML資料源。

    • 使用其建構子建立BLOB物件。 此BLOB物件用於儲存匯入表單的資料。
    • 調用System.IO.FileStream對象的建構子以建立對象。 傳遞一個字串值,該字串值指定包含要導入資料的XML檔案的位置,以及開啟檔案的模式。
    • 建立儲存System.IO.FileStream對象內容的位元組陣列。 通過獲取System.IO.FileStream對象的Length屬性,可以確定位元組陣列的大小。
    • 叫用System.IO.FileStream物件的Read方法,以串流資料填入位元組陣列。 傳遞位元組陣列、起始位置和資料流長度以讀取。
    • MTOM欄位指定位元組陣列的內容,以填入BLOB物件。
  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服務,請確定您包含Proxy檔案。

必須將以下JAR檔案添加到項目的類路徑中:

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-formdataintegration-client.jar
  • adobe-utilities.jar(若AEM Forms部署在JBoss上則為必要)
  • jbossall-client.jar(若AEM Forms部署在JBoss上則為必要)

建立表單資料整合服務用戶端

您必須先建立資料整合服務用戶端,才能以程式設計方式將資料匯入PDF formClient API。 建立服務客戶端時,您定義調用服務所需的連接設定。 有關資訊,請設定連接屬性

參考PDF表單

若要從PDF表單匯出資料,您必須參考在Designer或Acrobat中建立且包含表單資料的PDF表單。 如果嘗試從空的PDF表單導出資料,將得到空的XML架構。

從PDF表單匯出資料

參考包含表單資料的PDF表單後,即可從表單中匯出資料。 資料會以表單為基礎的XML架構中匯出。

將表單資料另存為XML檔案

導出表單資料後,可以將資料另存為XML檔案。 保存為XML檔案後,您可以在XML查看器中開啟XML檔案以查看表單資料。

另請參閱

使用Java API匯出表單資料

使用網站服務API匯出表單資料

包含AEM Forms Java程式庫檔案

設定連接屬性

表單資料整合服務API快速入門

匯入表單資料

使用Java API匯出表單資料

使用表單資料整合API(Java)匯出表單資料:

  1. 包含專案檔案。

    在Java專案的類別路徑中包含用戶端JAR檔案,例如adobe-formdataintegration-client.jar。

  2. 建立表單資料整合服務用戶端。

    • 建立包含連接屬性的ServiceClientFactory對象。
    • 使用其建構子並傳遞ServiceClientFactory物件,以建立FormDataIntegrationClient物件。
  3. 參考PDF表單。

    • 使用其建構子建立java.io.FileInputStream物件,並傳遞字串值,指定要匯出的PDF表單的位置。
    • 使用com.adobe.idp.Document建構子建立com.adobe.idp.Document物件以儲存PDF表單。 將包含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程式庫檔案

設定連接屬性

使用網站服務API匯出表單資料

使用表單資料整合API(網站服務)匯出表單資料:

  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身份驗證:

      • 將AEM表單使用者名稱指派給欄位FormDataIntegrationClient.ClientCredentials.UserName.UserName
      • 將相應的密碼值分配給欄位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方法並傳遞要讀取的位元組陣列、啟動位置和流長度,以流資料填充位元組陣列。
    • MTOM欄位指定位元組陣列的內容,以填入BLOB物件。
  4. 從PDF表單匯出資料。

    叫用FormDataIntegrationClient物件的exportData方法,並傳遞儲存PDF表單的BLOB物件,將資料匯入PDF表單。 此方法會傳回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

本頁內容