データのインポートとエクスポート

Form Data Integration Serviceについて

Form Data Integrationサービスでは、データをPDFフォームに読み込んだり、PDFフォームからデータを書き出したりできます。 インポート操作とエクスポート操作では、次の2種類のPDF formsがサポートされています。

  • Acrobatフォーム(Acrobatで作成)は、フォームフィールドを含むPDFドキュメントです。
  • AdobeXMLフォーム(Designerで作成)は、XMLAdobeXMLFormsアーキテクチャ(XFA)に準拠するPDFドキュメントです。

フォームデータは、PDFフォームの種類に応じて、次のいずれかの形式で存在する場合があります。

  • XFDF ファイル。Acrobat フォームデータ形式の XML バージョンです。
  • XDP ファイル。フォームフィールド定義を含む XML ファイルです。フォームフィールドデータと埋め込まれた PDF ファイルが含まれる場合もあります。Designerで生成されたXDPファイルは、埋め込みのbase-64エンコードPDFドキュメントを使用する場合にのみ使用できます。

Form Data Integrationサービスを使用して、次のタスクを実行できます。

メモ

Form Data Integrationサービスの詳細については、『AEM Forms向けサービスリファレンス』を参照してください。

フォームデータの読み込み

Form Data Integrationサービスを使用して、フォームデータをインタラクティブPDF formsに読み込むことができます。 インタラクティブPDFフォームは、ユーザーから情報を収集したり、カスタムドキュメントを表示したりするための1つ以上のフィールドを含むPDF情報です。 Form Data Integrationサービスは、フォームの演算、検証、スクリプティングをサポートしていません。

Designerで作成されたフォームにデータを読み込むには、有効なXDP XMLデータソースを参照する必要があります。 次の住宅ローン申し込みフォームの例を考えてみましょう。

ie_ie_loanformdata

このフォームにデータ値を読み込むには、フォームに対応する有効なXDP XMLデータソースが必要です。 任意のXMLデータソースを使用して、Form Data Integrationサービスを使用してデータをフォームに読み込むことはできません。 任意の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>
メモ

Form Data Integrationサービスの詳細については、『AEM Forms向けサービスリファレンス』を参照してください。

手順の概要

フォームデータをPDFフォームに読み込むには、次の手順を実行します。

  1. プロジェクトファイルを含めます。
  2. Form Data Integrationサービスクライアントを作成します。
  3. PDFフォームの参照
  4. XMLデータソースを参照します。
  5. PDFフォームにデータを読み込みます。
  6. PDFフォームをPDFファイルとして保存します。

プロジェクトファイルを含める

必要なファイルを開発プロジェクトに含めます。 Javaを使用してクライアントアプリケーションを作成する場合は、必要なJARファイルを含めます。 Webサービスを使用している場合は、プロキシファイルを必ず含めます。

次の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ライブラリファイルを含める」を参照してください。

Form Data Integrationサービスクライアントの作成

プログラムでデータをPDFフォームのクライアントAPIに読み込む前に、Data Integrationサービスクライアントを作成する必要があります。 サービスクライアントを作成する場合、サービスの呼び出しに必要な接続設定を定義します。 詳しくは、接続プロパティの設定を参照してください。

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を使用したフォームデータの読み込み

WebサービスAPIを使用したフォームデータの読み込み

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定

Form Data Integration Service APIクイック開始

フォームデータの書き出し

Java APIを使用したフォームデータの読み込み

Form Data Integration API(Java)を使用してフォームデータを読み込みます。

  1. プロジェクトファイルを含めます。

    Javaプロジェクトのクラスパスに、adobe-formdataintegration-client.jarなどのクライアントJARファイルを含めます。

  2. Form Data Integrationサービスクライアントを作成します。

    • 接続プロパティを含む ServiceClientFactory オブジェクトを作成します。
    • コンストラクタを使用して FormDataIntegrationClient オブジェクトを渡すことによって、ServiceClientFactory オブジェクトを作成します。
  3. PDFフォームの参照

    • コンストラクタを使用して java.io.FileInputStream オブジェクトを作成します。PDFフォームの場所を指定するstring値を渡します。
    • 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メソッドは、XMLデータソース内のデータを含むPDFフォームを格納するcom.adobe.idp.Documentオブジェクトを返します。

  6. PDFフォームをPDFファイルとして保存します。

    • java.io.Fileオブジェクトを作成し、ファイル拡張子が「.PDF」であることを確認します。
    • DocumentオブジェクトのcopyToFileメソッドを呼び出して、Documentオブジェクトの内容をファイルにコピーします(importDataメソッドから返されたDocumentオブジェクトを必ず使用してください)。

関連トピック

手順の概要

クイック開始(SOAPモード):Java APIを使用したフォームデータの読み込み

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定

WebサービスAPIを使用してフォームデータを読み込む

Form Data Integration API(Webサービス)を使用してフォームデータを読み込みます。

  1. プロジェクトファイルを含めます。

    MTOMを使用するMicrosoft .NETプロジェクトを作成します。 次のWSDL定義を使用していることを確認します。http://localhost:8080/soap/services/FormDataIntegration?WSDL&lc_version=9.0.1.

    メモ

    localhostを、AEM FormsをホストするサーバーのIPアドレスに置き換えます。

  2. Form Data Integrationサービスクライアントを作成します。

    • FormDataIntegrationClientオブジェクトを作成するには、そのデフォルトのコンストラクタを使用します。

    • System.ServiceModel.EndpointAddressコンストラクターを使用してFormDataIntegrationClient.Endpoint.Addressオブジェクトを作成します。 WSDLをAEM Formsサービスに指定するstring値を渡します(例:http://localhost:8080/soap/services/FormDataIntegration?blob=mtom)。 lc_version属性を使用する必要はありません。 この属性は、サービス参照を作成する際に使用されます。 ただし、MTOMを使用するには?blob=mtomを指定します。

    • FormDataIntegrationClient.Endpoint.Bindingフィールドの値を取得してSystem.ServiceModel.BasicHttpBindingオブジェクトを作成します。 戻り値を BasicHttpBinding にキャストします。

    • System.ServiceModel.BasicHttpBindingオブジェクトのMessageEncodingフィールドをWSMessageEncoding.Mtomに設定します。 この値により、MTOMが使用されます。

    • 次のタスクを実行して、基本的なHTTP認証を有効にします。

      • AEM formsユーザー名をフィールド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フォームの場所とファイルを開くモードを指定するstring値を渡します。
    • System.IO.FileStreamオブジェクトの内容を格納するバイト配列を作成します。 System.IO.FileStreamオブジェクトのLengthプロパティを取得して、バイト配列のサイズを決定できます。
    • System.IO.FileStreamオブジェクトのReadメソッドを呼び出して、バイト配列にストリームデータを入力します。 読み取るバイト配列、開始位置、ストリーム長を渡します。
    • BLOBオブジェクトに、MTOMフィールドにバイト配列の内容を割り当てて入力します。
  4. XMLデータソースを参照します。

    • コンストラクタを使用して BLOB オブジェクトを作成します。このBLOBオブジェクトは、フォームに読み込まれるデータを保存するために使用します。
    • コンストラクターを呼び出して、System.IO.FileStreamオブジェクトを作成します。 読み込むデータが含まれるXMLファイルの場所と、ファイルを開くモードを指定するstring値を渡します。
    • System.IO.FileStreamオブジェクトの内容を格納するバイト配列を作成します。 System.IO.FileStreamオブジェクトのLengthプロパティを取得して、バイト配列のサイズを決定できます。
    • System.IO.FileStreamオブジェクトのReadメソッドを呼び出して、バイト配列にストリームデータを入力します。 読み取るバイト配列、開始位置、ストリーム長を渡します。
    • BLOBオブジェクトに、MTOMフィールドにバイト配列の内容を割り当てて入力します。
  5. PDFフォームにデータを読み込みます。

    FormDataIntegrationClientオブジェクトのimportDataメソッドを呼び出し、次の値を渡して、PDFフォームにデータを読み込みます。

    • PDFフォームを保存するBLOBオブジェクトです。
    • フォームデータを格納するBLOBオブジェクト。

    importDataメソッドは、XMLデータソース内のデータを含むPDFフォームを格納するBLOBオブジェクトを返します。

  6. PDFフォームをPDFファイルとして保存します。

    • コンストラクターを呼び出し、PDFファイルのファイルの場所を表す文字列値を渡して、System.IO.FileStreamオブジェクトを作成します。
    • importDataメソッドから返されたBLOBオブジェクトのデータ内容を格納するバイト配列を作成します。 BLOBオブジェクトのMTOMフィールドの値を取得して、バイト配列を入力します。
    • コンストラクターを呼び出してSystem.IO.FileStreamオブジェクトを渡し、System.IO.BinaryWriterオブジェクトを作成します。
    • System.IO.BinaryWriterオブジェクトのWriteメソッドを呼び出し、バイト配列を渡すことで、バイト配列の内容をPDFファイルに書き込みます。

関連トピック

手順の概要

MTOMを使用したAEM Formsの呼び出し

フォームデータの書き出し

Form Data Integrationサービスを使用して、インタラクティブPDFフォームからフォームデータを書き出すことができます。 書き出されるデータの形式は、フォームの種類によって異なります。 フォームの種類がAcrobatで作成されたAcrobatフォームの場合、書き出されるデータはXFDFです。 フォームの種類がDesignerで作成されたXMLフォームの場合、書き出されたデータはXDPになります。

メモ

Form Data Integrationサービスの詳細については、『AEM Forms向けサービスリファレンス』を参照してください。

手順の概要

PDFフォームからフォームデータを書き出すには、次の手順を実行します。

  1. プロジェクトファイルを含める
  2. Form Data Integrationサービスクライアントを作成します。
  3. PDFフォームの参照
  4. PDFフォームからデータを書き出します。
  5. 書き出したデータをXMLファイルとして保存します。

プロジェクトファイルを含める

必要なファイルを開発プロジェクトに含めます。 Javaを使用してクライアントアプリケーションを作成する場合は、必要なJARファイルを含めます。 Webサービスを使用している場合は、プロキシファイルを必ず含めます。

次の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にデプロイされている場合に必須)

Form Data Integrationサービスクライアントの作成

プログラムでデータをPDF formClient APIに読み込む前に、Data Integrationサービスクライアントを作成する必要があります。 サービスクライアントを作成する場合、サービスの呼び出しに必要な接続設定を定義します。 詳しくは、接続プロパティの設定を参照してください。

PDFフォームの参照

PDFフォームからデータを書き出すには、DesignerまたはAcrobatで作成され、フォームデータを含むPDFフォームを参照する必要があります。 空のPDFフォームからデータを書き出そうとすると、空のXMLスキーマが返されます。

PDFフォームからのデータの書き出し

フォームデータを含むPDFフォームを参照した後、フォームからデータを書き出すことができます。 データは、フォームに基づくXMLスキーマ内で書き出されます。

フォームデータをXMLファイルとして保存する

フォームデータを書き出した後、データをXMLファイルとして保存できます。 XMLファイルとして保存したXMLファイルは、XMLビューア内で開いてフォームデータを表示できます。

関連トピック

Java APIを使用したフォームデータの書き出し

WebサービスAPIを使用したフォームデータの書き出し

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定

Form Data Integration Service APIクイック開始

フォームデータの読み込み

Java APIを使用したフォームデータの書き出し

Form Data Integration API(Java)を使用してフォームデータを書き出す:

  1. プロジェクトファイルを含めます。

    Javaプロジェクトのクラスパスに、adobe-formdataintegration-client.jarなどのクライアントJARファイルを含めます。

  2. Form Data Integrationサービスクライアントを作成します。

    • 接続プロパティを含む ServiceClientFactory オブジェクトを作成します。
    • コンストラクタを使用して FormDataIntegrationClient オブジェクトを渡すことによって、ServiceClientFactory オブジェクトを作成します。
  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 Forms Java ライブラリファイルを含める

接続プロパティの設定

WebサービスAPIを使用したフォームデータのエクスポート

Form Data Integration API(Webサービス)を使用してフォームデータを書き出すには:

  1. プロジェクトファイルを含めます。

    MTOMを使用するMicrosoft .NETプロジェクトを作成します。 次のWSDL定義を使用していることを確認します。http://localhost:8080/soap/services/FormDataIntegration?WSDL&lc_version=9.0.1.

    • localhostを、AEM FormsをホストするサーバーのIPアドレスに置き換えます。
  2. Form Data Integrationサービスクライアントを作成します。

    • FormDataIntegrationClientオブジェクトを作成するには、そのデフォルトのコンストラクタを使用します。

    • System.ServiceModel.EndpointAddressコンストラクターを使用してFormDataIntegrationClient.Endpoint.Addressオブジェクトを作成します。 WSDLをAEM Formsサービスに指定するstring値を渡します(例:http://localhost:8080/soap/services/FormDataIntegration?blob=mtom)。 lc_version属性を使用する必要はありません。 この属性は、サービス参照を作成する際に使用されます。 ただし、MTOMを使用するには?blob=mtomを指定します。

    • FormDataIntegrationClient.Endpoint.Bindingフィールドの値を取得してSystem.ServiceModel.BasicHttpBindingオブジェクトを作成します。 戻り値を BasicHttpBinding にキャストします。

    • System.ServiceModel.BasicHttpBindingオブジェクトのMessageEncodingフィールドをWSMessageEncoding.Mtomに設定します。 この値により、MTOMが使用されます。

    • 次のタスクを実行して、基本的なHTTP認証を有効にします。

      • AEM formsユーザー名をフィールド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フォームの場所とファイルを開くモードを指定するstring値を渡します。
    • System.IO.FileStreamオブジェクトの内容を格納するバイト配列を作成します。 System.IO.FileStreamオブジェクトのLengthプロパティを取得して、バイト配列のサイズを決定できます。
    • System.IO.FileStreamオブジェクトのReadメソッドを呼び出し、読み取るバイト配列、開始位置、ストリーム長を渡すことで、バイト配列にストリームデータを入力します。
    • BLOBオブジェクトに、MTOMフィールドにバイト配列の内容を割り当てて入力します。
  4. PDFフォームからデータを書き出します。

    FormDataIntegrationClientオブジェクトのexportDataメソッドを呼び出し、PDFフォームを保存するBLOBオブジェクトを渡して、PDFフォームにデータを読み込みます。 このメソッドは、フォームデータをXMLスキーマとして格納するBLOBオブジェクトを返します。

  5. PDFフォームをPDFファイルとして保存します。

    • コンストラクターを呼び出し、XMLファイルの場所を表す文字列値を渡して、System.IO.FileStreamオブジェクトを作成します。
    • exportDataメソッドから返されたBLOBオブジェクトのデータ内容を格納するバイト配列を作成します。 BLOBオブジェクトのMTOMフィールドの値を取得して、バイト配列を入力します。
    • コンストラクターを呼び出してSystem.IO.FileStreamオブジェクトを渡し、System.IO.BinaryWriterオブジェクトを作成します。
    • 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