送信された XML データを使用した PDF ドキュメントの作成 creating-pdf-documents-with-submittedxml-data
このドキュメントのサンプルと例は、JEE 環境の AEM Forms のみを対象としています。
送信された XML データを使用した PDF ドキュメントの作成 creating-pdf-documents-with-submitted-xml-data
ユーザーがインタラクティブなフォームに入力できる web ベ ースのアプリケーションでは、データをサーバーに送信する必要があります。Forms サービスを使用すると、ユーザーがインタラクティブフォームに入力したフォームデータを取得できます。フォームデータを別の AEM Forms サービス操作に渡し、そのデータを使用して PDF ドキュメントを作成できます。
3 つの AEM Forms サービスを含む次のワークフローについて考えてみます。
- ユーザーが、web ベースのアプリケーションから Forms サービスに XML データを送信します。
- Forms サービスは、送信されたフォームを処理し、フォームフィールドを抽出するために使用します。フォームデータは処理できます。たとえば、データをエンタープライズデータベースに送信できます。
- フォームデータは Output サービスに送信され、非インタラクティブ型の PDF ドキュメントが作成されます。
- 非インタラクティブ型の PDF ドキュメントが Content サービス(非推奨) に保存されます。
次の図は、このワークフローを視覚的に表したものです。
ユーザーがクライアントの web ブラウザーからフォームを送信すると、非インタラクティブ型の PDF ドキュメントが Content サービス(非推奨)に保存されます。次の図は、Content サービス(非推奨)に保存されている PDF ドキュメントを示しています。
手順の概要 summary-of-steps
送信された XML データを使用して非インタラクティブ型の PDF ドキュメントを作成し、Content サービス(非推奨)で PDF ドキュメントに保存するには、次のタスクを実行します。
- プロジェクトファイルを含めます。
- Forms、Output、Document Management のオブジェクトを作成します。
- Forms サービスを使用してフォームデータを取得します。
- Output サービスを使用して、非インタラクティブ型の PDF ドキュメントを作成します。
- ドキュメント管理サービスを使用して、PDF フォームを Content サービス(非推奨)に保存します。
プロジェクトファイルを含める
必要なファイルを開発プロジェクトに含めます。Java を使用してクライアントアプリケーションを作成する場合は、必要な JAR ファイルを含めます。Web サービスを使用している場合は、プロキシファイルを必ず含めてください。
Forms、Output、Document Management のオブジェクトを作成する
プログラムで Forms Service API 操作を実行する前に、Forms Client API オブジェクトを作成します。同様に、このワークフローは Output サービスと Document Management サービスを呼び出すため、Output クライアント API オブジェクトと Document Management クライアント API オブジェクトの両方を作成します。
Forms サービスを使用してフォームデータを取得する
Forms サービスに送信されたフォームデータを取得します。ビジネス要件を満たすように、送信されたデータを処理できます。例えば、フォームデータをエンタープライズデータベースに格納できます。ただし、非インタラクティブ型の PDF ドキュメントを作成するために、フォームデータを Output サービスに渡します。
Output サービスを使用して、非インタラクティブ型の PDF ドキュメントを作成します。
Output サービスを使用して、フォームデザインと XML フォームデータに基づく非インタラクティブ型 PDF ドキュメントを作成します。ワークフローでは、フォームデータは Forms サービスから取得されます。
Document Management サービスを使用して、PDF フォームを Content サービス(非推奨)に格納する
Document Management サービス API を使用して、PDF ドキュメントを Content サービス(非推奨)に格納します。
関連項目
Java API を使用して、送信された XML データを使用した PDF ドキュメントを作成する create-a-pdf-document-with-submitted-xml-data-using-the-java-api
Forms、Output、Document Management API(Java)を使用して、送信された XML データを使用した PDF ドキュメントを作成します。
-
プロジェクトファイルを含める
Java プロジェクトのクラスパスに、adobe-forms-client.jar、adobe-output-client.jar、adobe-contentservices-client.jar などのクライアント JAR ファイルを含めます。
-
Forms、Output、Document Management オブジェクトを作成する
- 接続プロパティを含む
ServiceClientFactoryオブジェクトを作成します。 - コンストラクターを使用して
ServiceClientFactoryオブジェクトを渡すことにより、FormsServiceClientオブジェクトを作成します。 - コンストラクターを使用して
ServiceClientFactoryオブジェクトを渡すことにより、OutputClientオブジェクトを作成します。 DocumentManagementServiceClientImplオブジェクトを作成するには、コンストラクターを使用して、ServiceClientFactoryオブジェクトを渡します。
- 接続プロパティを含む
-
Forms サービスを使用したフォームデータの取得
-
FormsServiceClientオブジェクトのprocessFormSubmissionメソッドを呼び出して、次の値を渡します。- フォームデータを含む
com.adobe.idp.Documentオブジェクト。 - 関連するすべての HTTP ヘッダーを含む、環境変数を指定する文字列値。
CONTENT_TYPE環境変数に 1 つ以上の値を指定して、処理するコンテンツタイプを指定します。例えば、XML データを処理するには、このパラメーターCONTENT_TYPE=text/xmlに次の文字列値を指定します。 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)などのHTTP_USER_AGENTヘッダー値を指定する文字列値。- 実行時オプションを格納する
RenderOptionsSpecオブジェクト。
processFormSubmissionメソッドは、フォーム送信の結果を含むFormsResultオブジェクトを返します。 - フォームデータを含む
-
FormsResultオブジェクトのgetActionメソッドを呼び出して、Forms サービスがフォームデータの処理を完了したかどうかを判断します。このメソッドが値0を返した場合、処理するデータの準備が整っています。 -
フォームデータを取得するには、
FormsResultオブジェクトのgetOutputContentメソッドを呼び出して、com.adobe.idp.Documentオブジェクトを作成します。(このオブジェクトには、Output サービスに送信できるフォームデータが含まれています。) -
java.io.InputStreamオブジェクトを作成するには、java.io.DataInputStreamコントラクターを呼び出して、com.adobe.idp.Documentオブジェクトを渡します。 -
静的な
org.w3c.dom.DocumentBuilderFactoryオブジェクトのnewInstanceメソッドを呼び出して、org.w3c.dom.DocumentBuilderFactoryオブジェクトを作成します。 -
org.w3c.dom.DocumentBuilderFactoryオブジェクトのnewDocumentBuilderメソッドを呼び出すことによってorg.w3c.dom.DocumentBuilderオブジェクトを作成します。 -
org.w3c.dom.DocumentBuilderオブジェクトのparseメソッドを呼び出してjava.io.InputStreamオブジェクトを渡すことによってorg.w3c.dom.Documentオブジェクトを作成します。 -
XML ドキュメント内の各ノードの値を取得します。このタスクを実行する 1 つの方法は、
org.w3c.dom.Documentオブジェクトおよび値を取得するノードの名前の 2 つのパラメーターを受け入れるカスタムメソッドを作成することです。このメソッドは、ノードの値を表す文字列値を返します。このプロセスに続くコード例では、このカスタムメソッドはgetNodeTextと呼ばれています。このメソッドの本文を示します。
-
-
Output サービスを使用して、非インタラクティブ PDF ドキュメントを作成します。
PDF ドキュメントを作成するには、
OutputClientオブジェクトのgeneratePDFOutputメソッドを呼び出して、次の値を渡します。TransformationFormat列挙値。PDF ドキュメントを生成するには、TransformationFormat.PDFを指定します。- フォームデザイン名を指定する文字列値。フォームデザインが Forms サービスから取得したフォームデータと互換性があることを確認してください。
- フォームデザインが配置されているコンテンツルートを指定する文字列の値です。
- PDF 実行時オプションを含む
PDFOutputOptionsSpecオブジェクト。 - レンダリング実行時オプションを含む
RenderOptionsSpecオブジェクト。 - フォームデザインと結合するデータを含む XML データソースを含む
com.adobe.idp.Documentオブジェクト。FormsResultオブジェクトのgetOutputContentメソッドによって、このオブジェクトが返されたことを確認してください。 generatePDFOutputメソッドは、操作の結果を含むOutputResultオブジェクトを返します。OutputResultオブジェクトのgetGeneratedDocメソッドを呼び出して、非インタラクティブ PDF ドキュメントを取得します。このメソッドは、非インタラクティブ PDF ドキュメントを表すcom.adobe.idp.Documentインスタンスを返します。
-
Document Management サービスを使用した、PDF フォームのコンテンツサービスへの保存(非推奨)
コンテンツを追加するには、
DocumentManagementServiceClientImplオブジェクトのstoreContentメソッドを呼び出して、次の値を渡します。- コンテンツの追加先となるストアを指定する文字列値です。デフォルトのストアは
SpacesStoreです。この値は必須パラメーターです。 - コンテンツが追加されるスペースの完全修飾パスを指定する文字列値(例えば、
/Company Home/Test Directory)。この値は必須パラメーターです。 - 新しいコンテンツを表すノード名(例えば、
MortgageForm.pdf)。この値は必須パラメーターです。 - ノードタイプを指定する文字列値です。PDF ファイルなどの新しいコンテンツを追加するには、
{https://www.alfresco.org/model/content/1.0}contentを指定します。この値は必須パラメーターです。 - コンテンツを表す
com.adobe.idp.Documentオブジェクト。この値は必須パラメーターです。 - エンコーディング値を指定する文字列値(例えば、
UTF-8)。この値は必須パラメーターです。 - バージョン情報の処理方法を指定する
UpdateVersionType列挙値(例えば、コンテンツバージョンを増分するためのUpdateVersionType.INCREMENT_MAJOR_VERSION。)この値は必須パラメーターです。 - コンテンツに関連する側面を指定する
java.util.Listインスタンス。この値はオプションのパラメーターで、nullを指定できます。 - コンテンツ属性を格納する
java.util.Mapオブジェクト。
storeContentメソッドは、コンテンツを説明するCRCResultオブジェクトを返します。CRCResultオブジェクトを使用すると、例えば、コンテンツの一意の識別子の値を取得できます。このタスクを実行するには、CRCResultオブジェクトのgetNodeUuidメソッドを呼び出します。 - コンテンツの追加先となるストアを指定する文字列値です。デフォルトのストアは
関連トピック