データの読み込みと書き出し importing-and-exporting-data
このドキュメントのサンプルと例は、JEE 環境の AEM Forms のみを対象としています。
Form Data Integration サービスについて about-the-form-data-integration-service
Form Data Integration サービスを使用すると、データを PDF フォームに読み込んだり、PDF フォームからデータを書き出したりできます。読み込みおよび書き出し操作では、次の 2 種類の PDF forms がサポートされます。
- Acrobat フォーム(Acrobat で作成)は、フォームフィールドを含む PDF ドキュメントです。
- Adobe XML フォーム(Designer で作成)は、XML Adobe XML フォームアーキテクチャ(XFA)に準拠する PDF ドキュメントです。
フォームデータは、PDF フォームのタイプに応じて、次のいずれかの形式で存在します。
- XFDF ファイル。Acrobat フォームデータ形式の XML バージョンです。
- XDP ファイル。フォームフィールド定義を含む XML ファイルです。フォームフィールドデータと埋め込まれた PDF ファイルが含まれる場合もあります。Designer で生成された XDP ファイルは、埋め込み base-64 エンコード PDF ドキュメントを使用する場合にのみ利用できます。
次のタスクは、Form Data Integration サービスを使用して実行できます。
- PDF forms にデータを読み込みます。詳しくは、フォームデータの読み込みを参照してください。
- PDF forms からデータを書き出します。詳しくは、フォームデータの書き出しを参照してください。
フォームデータの読み込み importing-form-data
Form Data Integration サービスを使用して、フォームデータをインタラクティブ PDF forms に読み込むことができます。インタラクティブ PDF フォームは、ユーザーから情報を収集したり、カスタム情報を表示したりするための 1 つ以上のフィールドを含む PDF ドキュメントです。Form Data Integration サービスは、フォームの演算、検証、スクリプティングをサポートしていません。
Designer で作成したフォームにデータを読み込むには、有効な XDP XML データソースを参照する必要があります。次の住宅ローン申し込みフォームサンプルについて見てみましょう。
データ値をこのフォームに読み込むには、フォームに対応する有効な XDP XML データソースが必要です。任意の XML データソースを使用して、Form Data Integration サービスを使用してデータをフォームに読み込むことはできません。任意の XML データソースと XDP XML データソースの違いは、XDP データソースが XML フォームアーキテクチャ(XFA)に準拠している点です。次の XML は、住宅ローン申し込みフォームのサンプルに対応する 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>
手順の概要 summary-of-steps
フォームデータを PDF フォームに読み込むには、次の手順を実行します。
- プロジェクトファイルを含めます。
- フォームデータ統合サービスクライアントを作成します。
- PDF フォームを参照します。
- XML データソースを参照します。
- データを PDF フォームにインポートします。
- 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 form クライアント API に読み込む前に、Data Integration Service クライアントを作成する必要があります。サービスクライアントを作成する際は、サービスを呼び出すために必要な接続設定を定義します。詳しくは、接続プロパティの設定を参照してください。
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 を使用したフォームデータの読み込み import-form-data-using-the-java-api
フォームデータ統合 API(Java)を使用してフォームデータをインポートします。
-
プロジェクトファイルを含めます。
adobe-formdataintegration-client.jar などのクライアント JAR ファイルを Java プロジェクトのクラスパスに含めます。
-
フォームデータ統合サービスクライアントを作成します。
- 接続プロパティを含む
ServiceClientFactory
オブジェクトを作成します。 - コンストラクタを使用して
FormDataIntegrationClient
オブジェクトを渡すことによって、ServiceClientFactory
オブジェクトを作成します。
- 接続プロパティを含む
-
PDF フォームを参照します。
- コンストラクタを使用して
java.io.FileInputStream
オブジェクトを作成します。PDF フォームの場所を指定する文字列の値を渡します。 com.adobe.idp.Document
コンストラクタを使用して、PDF フォームを格納するcom.adobe.idp.Document
オブジェクトを作成します。PDF フォームが格納されたjava.io.FileInputStream
オブジェクトをコンストラクタに渡します。
- コンストラクタを使用して
-
XML データソースを参照します。
- コンストラクタを使用して
java.io.FileInputStream
オブジェクトを作成し、フォームにインポートするデータが格納されている XML ファイルの場所を示す文字列値を渡します。 com.adobe.idp.Document
コンストラクタを使用して、フォームデータが格納されるcom.adobe.idp.Document
オブジェクトを作成します。フォームデータを含むjava.io.FileInputStream
オブジェクトをコンストラクターに渡します。
- コンストラクタを使用して
-
データを PDF フォームにインポートします。
FormDataIntegrationClient
オブジェクトのimportData
メソッドを呼び出して次の値を渡すことにより、データを PDF フォームにインポートします。- PDF フォームが格納された
com.adobe.idp.Document
オブジェクト。 - フォームデータが格納された
com.adobe.idp.Document
オブジェクト。
importData
メソッドは、XML データソースにあるデータを含む PDF フォームを格納するcom.adobe.idp.Document
オブジェクトを返します。 - PDF フォームが格納された
-
PDF フォームを PDF ファイルとして保存します。
java.io.File
オブジェクトを作成し、ファイル拡張子が「 .pdf」であることを確認します。Document
オブジェクトのcopyToFile
メソッドを呼び出して、Document
オブジェクトのコンテンツをファイルにコピーします(importData
メソッドが返したDocument
オブジェクトを使用してください)。
関連情報
Web サービス API を使用したフォームデータの読み込み import-form-data-using-the-web-service-api
フォームデータ統合 API(web サービス)を使用してフォームデータをインポートします。
-
プロジェクトファイルを含めます。
MTOM を使用する Microsoft .NET プロジェクトを作成します。WSDL 定義
http://localhost:8080/soap/services/FormDataIntegration?WSDL&lc_version=9.0.1
を使用するようにします。note note NOTE localhost
を、AEM Forms をホストするサーバーの IP アドレスに置き換えます。 -
フォームデータ統合サービスクライアントを作成します。
-
デフォルトのコンストラクターを使用して
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 基本認証を有効にします。
FormDataIntegrationClient.ClientCredentials.UserName.UserName
フィールドに AEM Forms ユーザー名を割り当てます。- 対応するパスワード値を
FormDataIntegrationClient.ClientCredentials.UserName.Password
フィールドに割り当てます。 - 定数値
HttpClientCredentialType.Basic
をBasicHttpBindingSecurity.Transport.ClientCredentialType
フィールドに割り当てます。 - 定数値
BasicHttpSecurityMode.TransportCredentialOnly
をフィールドBasicHttpBindingSecurity.Security.Mode
に割り当てます。
-
-
PDF フォームを参照します。
- コンストラクタを使用して
BLOB
オブジェクトを作成します。このBLOB
オブジェクトは、PDF フォームを格納するために使用します。 - コンストラクターを呼び出して
System.IO.FileStream
オブジェクトを作成します。PDF フォームの場所とファイルを開くモードを指定する文字列値を渡します。 System.IO.FileStream
オブジェクトの内容を格納するバイト配列を作成します。System.IO.FileStream
オブジェクトのLength
プロパティを取得することでバイト配列のサイズを決定することができます。System.IO.FileStream
オブジェクトのRead
メソッドを呼び出して、バイト配列にストリームデータを入力します。読み取り対象のバイト配列、開始位置、ストリーム長を渡します。MTOM
フィールドにバイト配列の内容を割り当てて、BLOB
オブジェクトに入力します。
- コンストラクタを使用して
-
XML データソースを参照します。
- コンストラクタを使用して
BLOB
オブジェクトを作成します。このBLOB
オブジェクトは、フォームにインポートされたデータを格納するために使用されます。 - コンストラクターを呼び出して
System.IO.FileStream
オブジェクトを作成します。インポートするデータを含む XML ファイルの場所と、ファイルを開くモードを指定する文字列値を渡します。 System.IO.FileStream
オブジェクトのコンテンツを格納するバイト配列を作成します。System.IO.FileStream
オブジェクトのLength
プロパティを取得することでバイト配列のサイズを決定することができます。System.IO.FileStream
オブジェクトのRead
メソッドを呼び出して、バイト配列にストリームデータを入力します。読み取り対象のバイト配列、開始位置、ストリーム長を渡します。MTOM
フィールドにバイト配列の内容を割り当てて、BLOB
オブジェクトにデータを入力します。
- コンストラクタを使用して
-
データを PDF フォームにインポートします。
FormDataIntegrationClient
オブジェクトのimportData
メソッドを呼び出し、次の値を渡すことによって、PDF フォームにデータをインポートします。- PDF フォームを格納する
BLOB
オブジェクト。 - フォームデータが格納された
BLOB
オブジェクト。
importData
メソッドは、XML データソースにあるデータを含む PDF フォームを格納するBLOB
オブジェクトを返します。 - PDF フォームを格納する
-
PDF フォームを PDF ファイルとして保存します。
- コンストラクターを呼び出し、PDF ファイルの場所を表す文字列値を渡すことによって、
System.IO.FileStream
オブジェクトを作成します。 importData
メソッドによって返されたBLOB
オブジェクトのデータコンテンツを格納するバイト配列を作成します。BLOB
オブジェクトのMTOM
フィールドの値を取得して、バイト配列に入力します。- コンストラクターを呼び出し、
System.IO.FileStream
オブジェクトを渡すことによって、System.IO.BinaryWriter
オブジェクトを作成します。 System.IO.BinaryWriter
オブジェクトのWrite
メソッドを呼び出して、バイト配列を渡すことによって、バイト配列の内容を PDF ファイルに書き込みます。
- コンストラクターを呼び出し、PDF ファイルの場所を表す文字列値を渡すことによって、
関連トピック:
フォームデータのエクスポート exporting-form-data
Form Data Integration サービスを使用して、インタラクティブ PDF フォームからフォームデータをエクスポートできます。エクスポートされるデータの形式は、フォームタイプによって異なります。フォームタイプが、Acrobat で作成された Acrobat フォームであれば、エクスポートされるデータは XFDF になります。フォームタイプが、Designer で作成された XML フォームであれば、エクスポートされるデータは XDP になります。
手順の概要 summary_of_steps-1
PDF フォームからフォームデータをエクスポートするには、次の手順を実行します。
- プロジェクトファイルを含める
- フォームデータ統合サービスクライアントを作成します。
- PDF フォームを参照します。
- PDF フォームからデータを書き出します。
- エクスポートしたデータを 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 フォーム Client API にプログラムによってデータをインポートする前に、Data Integration サービスクライアントを作成する必要があります。サービスクライアントを作成する際は、サービスを呼び出すために必要な接続設定を定義します。詳しくは、接続プロパティの設定を参照してください。
PDF フォームの参照
PDF フォームからデータを書き出すには、Designer または Acrobat で作成され、フォームデータを含む PDF フォームを参照する必要があります。空の PDF フォームからデータを書き出そうとすると、空の XML スキーマを取得することになります。
PDF フォームからのデータの書き出し
フォームデータを含む PDF フォームを参照した後で、フォームからデータを書き出すことができます。データは、フォームに基づく XML スキーマ内で書き出されます。
フォームデータを XML ファイルとして保存する
フォームデータを書き出した後は、データを XML ファイルとして保存できます。XML ファイルとして保存した XML ファイルを XML ビューアで開くと、フォームデータを表示できます。
関連トピック
Java API を使用したフォームデータの書き出し export-form-data-using-the-java-api
フォームデータ統合 API(Java)を使用してフォームデータを書き出すには、次の手順を実行します。
-
プロジェクトファイルを含めます。
adobe-formdataintegration-client.jar などのクライアント JAR ファイルを Java プロジェクトのクラスパスに含めます。
-
フォームデータ統合サービスクライアントを作成します。
- 接続プロパティを含む
ServiceClientFactory
オブジェクトを作成します。 - コンストラクタを使用して
FormDataIntegrationClient
オブジェクトを渡すことによって、ServiceClientFactory
オブジェクトを作成します。
- 接続プロパティを含む
-
PDF フォームを参照します。
- コンストラクターを使用して
java.io.FileInputStream
オブジェクトを作成し、書き出すデータを含む PDF フォームの場所を指定する文字列値を渡します。 com.adobe.idp.Document
コンストラクターを使用して、PDF フォームを格納するcom.adobe.idp.Document
オブジェクトを作成します。PDF フォームを含むjava.io.FileInputStream
オブジェクトをコンストラクターに渡します。
- コンストラクターを使用して
-
PDF フォームからデータを書き出します。
FormDataIntegrationClient
オブジェクトのexportData
メソッドを呼び出してデータを書き出し、PDF フォームを格納するcom.adobe.idp.Document
オブジェクトを渡します。このメソッドは、フォームデータを XML スキーマとして格納するcom.adobe.idp.Document
オブジェクトを返します。 -
PDF フォームを PDF ファイルとして保存します。
java.io.File
オブジェクトを作成し、ファイル拡張子が XML であることを確認します。Document
オブジェクトのcopyToFile
メソッドを呼び出して、Document
オブジェクトの内容をファイルにコピーします(exportData
メソッドで返されたDocument
オブジェクトを使用していることを確認します)。
関連情報
Web サービス API を使用したフォームデータの書き出し export-form-data-using-the-web-service-api
フォームデータ統合 API(web サービス)を使用してフォームデータを書き出すには、次の手順を実行します。
-
プロジェクトファイルを含めます。
MTOM を使用する Microsoft .NET プロジェクトを作成します。WSDL 定義
http://localhost:8080/soap/services/FormDataIntegration?WSDL&lc_version=9.0.1
を使用するようにします。localhost
を、AEM Forms をホストするサーバーの IP アドレスに置き換えます。
-
フォームデータ統合サービスクライアントを作成します。
-
デフォルトのコンストラクターを使用して
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 基本認証を有効にします。
FormDataIntegrationClient.ClientCredentials.UserName.UserName
フィールドに AEM Forms ユーザー名を割り当てます。- 対応するパスワード値を
FormDataIntegrationClient.ClientCredentials.UserName.Password
フィールドに割り当てます。 - 定数値
HttpClientCredentialType.Basic
をBasicHttpBindingSecurity.Transport.ClientCredentialType
フィールドに割り当てます。 - 定数値
BasicHttpSecurityMode.TransportCredentialOnly
をフィールドBasicHttpBindingSecurity.Security.Mode
に割り当てます。
-
-
PDF フォームを参照します。
- コンストラクタを使用して
BLOB
オブジェクトを作成します。このBLOB
オブジェクトは、データの書き出し元の PDF フォームを格納するために使用されます。 - コンストラクターを呼び出して
System.IO.FileStream
オブジェクトを作成します。PDF フォームの場所とファイルを開くモードを指定する文字列値を渡します。 System.IO.FileStream
オブジェクトの内容を格納するバイト配列を作成します。System.IO.FileStream
オブジェクトのLength
プロパティを取得することで、バイト配列のサイズを決定できます。System.IO.FileStream
オブジェクトのRead
メソッドを呼び出し、バイト配列、開始位置、読み取るストリーム長を渡すことにより、バイト配列にストリームデータを入力します。MTOM
フィールドにバイト配列の内容を割り当てて、BLOB
オブジェクトにデータを入力します。
- コンストラクタを使用して
-
PDF フォームからデータを書き出します。
FormDataIntegrationClient
オブジェクトのexportData
メソッドを呼び出して PDF フォームにデータをインポートし、PDF フォームを格納するBLOB
オブジェクトを渡します。このメソッドは、フォームデータを XML スキーマとして格納するBLOB
オブジェクトを返します。 -
PDF フォームを PDF ファイルとして保存します。
- コンストラクターを呼び出し、XML ファイルの場所を表す文字列値を渡すことで
System.IO.FileStream
オブジェクトを作成します。 exportData
メソッドによって返されたBLOB
オブジェクトのデータコンテンツを格納するバイト配列を作成します。BLOB
オブジェクトのMTOM
フィールドの値を取得して、バイト配列に入力します。- コンストラクターを呼び出して
System.IO.FileStream
オブジェクトを渡すことにより、System.IO.BinaryWriter
オブジェクトを作成します。 System.IO.BinaryWriter
オブジェクトのWrite
メソッドを呼び出してバイト配列を渡すことにより、バイト配列の内容を XML ファイルに書き込みます。
- コンストラクターを呼び出し、XML ファイルの場所を表す文字列値を渡すことで
関連情報