導入和導出資料

關於表單資料整合服務

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

  • Acrobat表單(在Acrobat建立)是包含表單欄位的PDF檔案。
  • AdobeXML表單(在設計人員中建立)是符合XMLAdobeXMLForms架構(XFA)的PDF檔案。

表單資料可依PDF表單類型以下列其中一種格式存在:

  • XFDF檔案,是Acrobat表單資料格式的XML版本。
  • XDP檔案,此為包含表單欄位定義的XML檔案。 它也可能包含表單欄位資料和內嵌的PDF檔案。 只有當設計人員產生的XDP檔案包含內嵌的64位元編碼PDF檔案時,才能使用它。

您可以使用表單資料整合服務完成下列工作:

注意

有關表單資料整合服務的詳細資訊,請參閱AEM Forms的服務參考

導入表單資料

您可以使用表單資料整合服務,將表單資料匯入互動式PDF forms。 互動式PDF表單是PDF檔案,其中包含一或多個欄位,用於收集使用者的資訊或顯示自訂資訊。 表單資料整合服務不支援表單計算、驗證或指令碼。

若要將資料匯入在Designer中建立的表單,您必須參考有效的XDP XML資料來源。 請考慮以下抵押貸款申請表示例。

ie_ie_loanformdata

若要將資料值匯入此表單,您必須有與表單對應的有效XDP XML資料來源。 您不能使用任意XML資料來源,使用「表單資料整合」服務將資料匯入表單。 任意XML資料來源與XDP XML資料來源的區別在於,XDP資料來源符合XMLForms架構(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 services,請確定您包含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 FormsJava庫檔案

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

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

參考PDF表格

若要將資料匯入PDF表單,您必須參考在設計人員中建立的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 service API匯入表單資料

包含AEM FormsJava庫檔案

設定連接屬性

表單資料整合服務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建構函式建立儲存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 FormsJava庫檔案

設定連接屬性

使用web service API匯入表單資料

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

  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.BinaryWriter對象的建構子並傳遞System.IO.FileStream對象,以建立對象。
    • 調用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 services,請確定您包含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表單匯出資料,您必須參考在設計人員或Acrobat中建立且包含表單資料的PDF表單。 如果您嘗試從空的PDF表單匯出資料,將會看到空的XML架構。

從PDF表單匯出資料

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

將表單資料儲存為XML檔案

匯出表單資料後,您可將資料儲存為XML檔案。 儲存為XML檔案後,您就可以在XML檢視器中開啟XML檔案,以檢視表單資料。

另請參閱

使用Java API匯出表單資料

使用web service API匯出表單資料

包含AEM FormsJava庫檔案

設定連接屬性

表單資料整合服務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建構函式建立儲存PDF表單的com.adobe.idp.Document物件。 將包含PDF表單的java.io.FileInputStream物件傳遞至建構函式。
  4. 從PDF表單匯出資料。

    叫用FormDataIntegrationClient物件的exportData方法,並傳遞儲存PDF表單的com.adobe.idp.Document物件,以匯出表單資料。 此方法返回將表單資料儲存為XML架構的com.adobe.idp.Document對象。

  5. 將PDF表格儲存為PDF檔案。

    • 建立java.io.File物件,並確定副檔名為XML。
    • 叫用Document物件的copyToFile方法,將Document物件的內容複製至檔案(請確定您使用exportData方法傳回的Document物件)。

另請參閱

步驟摘要

快速入門(SOAP模式):使用Java API匯出表單資料

包含AEM FormsJava庫檔案

設定連接屬性

使用web service API匯出表單資料

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

  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表單。 此方法返回將表單資料儲存為XML架構的BLOB對象。

  5. 將PDF表格儲存為PDF檔案。

    • 通過調用System.IO.FileStream對象的建構子並傳遞表示XML檔案位置的字串值來建立對象。
    • 建立一個位元組陣列,用於儲存exportData方法返回的BLOB對象的資料內容。 取得BLOB物件的MTOM欄位值,以填入位元組陣列。
    • 調用System.IO.BinaryWriter對象的建構子並傳遞System.IO.FileStream對象,以建立對象。
    • 調用System.IO.BinaryWriter物件的Write方法並傳遞位元組陣列,將位元組陣列的內容寫入XML檔案。

另請參閱

步驟摘要

使用MTOM叫用AEM Forms

使用SwaRef叫用AEM Forms

本頁內容

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