送信された 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
メソッドを呼び出します。 - コンテンツの追加先となるストアを指定する文字列値です。デフォルトのストアは
関連トピック