手順の概要

値でフォームをレンダリングするには、次の手順を実行します。

  1. プロジェクトファイルを含めます。
  2. Forms Client API オブジェクトを作成します。
  3. フォームデザインを保存します。
  4. 値でフォームをレンダリングします。
  5. フォームデータストリームをクライアントの Web ブラウザーに書き込みます。

プロジェクトファイルの組み込み

必要なファイルを開発プロジェクトに含めます。Java を使用してクライアントアプリケーションを作成する場合は、必要な JAR ファイルを含めます。Web サービスを使用している場合は、プロキシファイルを必ず含めるようにします。

Forms Client API オブジェクトの作成

プログラムによってデータを PDF form クライアント API に読み込む前に、Data Integration Service クライアントを作成する必要があります。サービスクライアントを作成する場合、サービスを呼び出すために必要な接続設定を定義します。

フォームデザインの参照

値でフォームをレンダリングする場合は、レンダリングするフォームデザインを含む com.adobe.idp.Document オブジェクトを作成する必要があります。既存の XDP ファイルを参照することも、実行時にフォームデザインを動的に作成してそのデータを com.adobe.idp.Document に入力することもできます。

メモ
このセクションと対応するクイックスタートでは、既存の XDP ファイルを参照します。

値でフォームをレンダリング

値でフォームをレンダリングするには、フォームデザインを含む com.adobe.idp.Document インスタンスをレンダリングメソッドの inDataDoc パラメーターに渡します(renderPDFForm(Deprecated) renderHTMLForm など、FormsServiceClient オブジェクトのレンダリングメソッドのいずれでもかまいません)。このパラメーター値は、通常、フォームと結合されるデータ用に予約されます。同様に、空の文字列値を formQuery パラメーターに渡します。通常、このパラメーターにはフォームデザインの名前を指定する文字列値が必要です。

メモ
フォーム内にデータを表示する場合は、データは xfa:datasets 要素内で指定する必要があります。XFA アーキテクチャについて詳しくは、https://www.pdfa.org/norm-refs/XFA-3_3.pdfを参照してください。

フォームデータストリームをクライアントの web ブラウザーに書き込む

Forms サービスがフォームを値でレンダリングすると、クライアントの web ブラウザーに書き込む必要のあるフォームデータストリームが返されます。クライアント Web ブラウザーに書き込まれると、フォームはユーザーに対して表示されます。

関連トピック

Java API を使用して値でフォームをレンダリング

Web サービス API を使用して値でフォームをレンダリング

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

接続プロパティの設定

Forms サービス API のクイックスタート

Forms サービスにドキュメントを渡す

Forms をレンダリングする web アプリケーションの作成

Java API を使用して値でフォームをレンダリング

Forms API(Java)を使用して値でフォームをレンダリング:

  1. プロジェクトファイルを含める

    クライアント JAR ファイル(adobe-forms-client.jar など)を Java プロジェクトのクラスパスに含めます。

  2. Forms Client API オブジェクトの作成

    • 接続プロパティを含む ServiceClientFactory オブジェクトを作成します。
    • コンストラクターを使用して ServiceClientFactory オブジェクトを渡し、FormsServiceClient オブジェクトを作成します。
  3. フォームデザインの参照

    • コンストラクターを使用して、XDP ファイルの場所を指定する文字列の値を渡すことにより、レンダリングするフォームデザインを表す java.io.FileInputStream オブジェクトを作成します。
    • コンストラクターを使用して java.io.FileInputStream オブジェクトを渡すことにり、com.adobe.idp.Document オブジェクトを作成します。
  4. 値でフォームをレンダリング

    FormsServiceClient オブジェクトの renderPDFForm メソッドを呼び出して、以下の値を渡します。

    • 空の文字列の値(通常、このパラメーターにはフォームデザインの名前を指定する文字列の値が必要です)。
    • フォームデザインを含む com.adobe.idp.Document オブジェクト。通常、このパラメーター値はフォームにマージするデータ用に予約されています。
    • 実行時オプションを保存する PDFFormRenderSpec オブジェクト。これはオプションのパラメーターで、実行時オプションを指定しない場合は、null を指定できます。
    • Forms サービスで必要となる URI 値が含まれる URLSpec オブジェクト。
    • 添付ファイルを保存する java.util.HashMap オブジェクト。これはオプションのパラメーターで、フォームにファイルを添付しない場合に null を指定できます。

    renderPDFForm メソッドは、クライアント web ブラウザーに書き込むことができるフォームデータストリームを含む FormsResult オブジェクトを返します。

  5. フォームデータストリームをクライアント web ブラウザーに書き込む

    • FormsResult オブジェクトの getOutputContent メソッドを呼び出して、com.adobe.idp.Document オブジェクトを作成します。
    • getContentType メソッドを呼び出して、com.adobe.idp.Document オブジェクトのコンテンツタイプを取得します。
    • javax.servlet.http.HttpServletResponse オブジェクトの setContentType メソッドを呼び出してコンテンツタイプを設定し、com.adobe.idp.Document オブジェクトのコンテンツタイプを渡します。
    • javax.servlet.http.HttpServletResponse オブジェクトの getOutputStream メソッドを呼び出して、javax.servlet.ServletOutputStream オブジェクトを作成します。このオブジェクトは、フォームデータストリームをクライアント web ブラウザーに書き込むために使用されます。
    • com.adobe.idp.Document オブジェクトの getInputStream メソッドを呼び出すことによって、java.io.InputStream オブジェクトを作成します。
    • バイト配列を作成し、InputStream オブジェクトのサイズを割り当てます。InputStream オブジェクトの available メソッドを呼び出して、InputStream オブジェクトのサイズを取得します。
    • InputStream オブジェクトの read メソッドを呼び出して、バイト配列を引数として渡すことにより、バイト配列にフォームデータストリームを格納します。
    • javax.servlet.ServletOutputStream オブジェクトの write メソッドを呼び出して、フォームデータストリームをクライアント web ブラウザーに送信します。バイト配列を write メソッドに渡します。