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

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フォームを保存する<a0/>オブジェクトを作成します。 com.adobe.idp.DocumentPDFフォームを含む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フォームを保存する<a0/>オブジェクトを作成します。 com.adobe.idp.DocumentPDFフォームを含む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の呼び出し

このページ