データのインポートおよびエクスポート

このドキュメントのサンプルと例は、JEE上のAEM Forms環境に限られています。

フォームデータ統合サービスについて

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

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

フォームデータは、PDFフォームの種類に応じて、次のいずれかの形式で使用できます。

  • XFDF ファイル。Acrobat フォームデータ形式の XML バージョンです。
  • XDP ファイル。フォームフィールド定義を含む XML ファイルです。フォームフィールドデータと埋め込まれた PDF ファイルが含まれる場合もあります。Designerで生成されたXDPファイルは、埋め込まれたbase-64-encoded 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データソースがXML Forms Architecture(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 Forms Javaライブラリファイルを含める」を参照してください。

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

プログラムによってデータを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を使用したフォームデータの読み込み

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

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

接続プロパティの設定

フォームデータ統合サービスAPIクイックスタート

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

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

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

フォームデータ統合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サービスに渡す文字列値(例: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認証を有効にします。

      • フィールドFormDataIntegrationClient.ClientCredentials.UserName.UserNameにAEM formsユーザー名を割り当てます。
      • 対応するパスワード値をフィールドFormDataIntegrationClient.ClientCredentials.UserName.Passwordに割り当てます。
      • フィールドBasicHttpBindingSecurity.Transport.ClientCredentialTypeに定数値HttpClientCredentialType.Basicを割り当てます。
      • フィールドBasicHttpBindingSecurity.Security.Modeに定数値BasicHttpSecurityMode.TransportCredentialOnlyを割り当てます。
  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 ライブラリファイルを含める

接続プロパティの設定

フォームデータ統合サービスAPIクイックスタート

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

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

フォームデータ統合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を使用したフォームデータの書き出し

フォームデータ統合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サービスに渡す文字列値(例: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認証を有効にします。

      • フィールドFormDataIntegrationClient.ClientCredentials.UserName.UserNameにAEM formsユーザー名を割り当てます。
      • 対応するパスワード値をフィールドFormDataIntegrationClient.ClientCredentials.UserName.Passwordに割り当てます。
      • フィールドBasicHttpBindingSecurity.Transport.ClientCredentialTypeに定数値HttpClientCredentialType.Basicを割り当てます。
      • フィールドBasicHttpBindingSecurity.Security.Modeに定数値BasicHttpSecurityMode.TransportCredentialOnlyを割り当てます。
  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の呼び出し

このページ