編集可能なレイアウトを使用した Forms の事前入力 prepopulating-forms-with-flowable-layouts1
編集可能なレイアウトを使用した Forms の事前入力 prepopulating-forms-with-flowable-layouts2
フォームに事前入力すると、レンダリングされたフォーム内でユーザーにデータが表示されます。例えば、あるユーザーが、ユーザー名とパスワードを使用して web サイトにログインしたとします。認証に成功した場合、クライアントアプリケーションはデータベースに対してユーザー情報を問い合わせます。データがフォームに結合され、フォームがユーザーにレンダリングされます。その結果、ユーザーはフォーム内でパーソナライズされたデータを表示できます。
フォームの事前入力には次の利点があります。
- ユーザーがフォーム内にカスタムデータを表示できる。
- ユーザーがフォームに入力する作業を削減できる。
- データを配置する場所を制御できるため、データの整合性を確保できる。
次の 2 つの XML データソースから、 フォームの自動埋め込み行うことができます。
- XDP データソース。XFA 構文に準拠する XML です ( または、Acrobat を使用して作成されたフォームに事前入力する XFDF データ )。
- フォームのフィールド名に一致する名前と値のペアを含む任意の XML データソース(このセクションの例では、任意の XML データソースを使用します)。
事前入力するフォームフィールドごとに、XML 要素が存在する必要があります。XML 要素名は、フィールド名と一致する必要があります。XML 要素がフォームフィールドに対応していない場合や、XML 要素名がフィールド名と一致しない場合、XML 要素は無視されます。すべての XML 要素が指定されている場合、XML 要素の表示順序を一致させる必要はありません。
既にデータを含むフォームに事前入力する場合は、XML データソース内に既に表示されているデータを指定する必要があります。10 個のフィールドを含むフォームの 4 個のフィールドにデータが含まれているとします。次に、残り 6 個のフィールドに事前入力するとします。この場合、フォームの事前入力に使用する 10 個の XML 要素を XML データソースに指定する必要があります。6 個の要素のみを指定した場合、元の 4 個のフィールドは空になります。
例えば、サンプルの確認フォームなどのフォームを事前入力することができます。(インタラクティブ PDF Forms のレンダリングの「確認フォーム」参照してください。)
サンプルの確認フォームを事前入力するには、フォーム内の 3 個のフィールドに一致する 3 個の XML 要素を含む XML データソースを作成する必要があります。このフォームには、 FirstName
、LastName
、Amount
の 3 個のフィールドが含まれています。最初のステップでは、フォームデザイン内のフィールドと一致する XML 要素を含む XML データソースを作成します。次のステップでは、次の XML コードに示すように、XML 要素にデータ値を割り当てます。
<Untitled>
<FirstName>Jerry</FirstName>
<LastName>Johnson</LastName>
<Amount>250000</Amount>
</Untitled>
次の図に示すように、この XML データソースを確認フォームに事前入力し、フォームをレンダリングすると、XML 要素に割り当てたデータ値が表示されます。
編集可能なレイアウトを使用したフォームの事前入力 prepopulating_forms_with_flowable_layouts-1
レイアウトが編集可能な Forms は、未定量のデータをユーザーに表示する場合に役立ちます。フォームのレイアウトは結合されるデータ量に合わせて自動的に調整されるので、固定レイアウトのフォームの場合とは異なり、フォームの固定レイアウトやページ数を事前に決定する必要はありません。
通常、フォームには、実行時に取得されるデータが入力されます。その結果、メモリ内 XML データソースを作成し、そのデータをメモリ内 XML データソースに直接配置することで、フォームに事前入力することができます。
Web ベースのアプリケーション(オンラインストアなど)を考えてみましょう。オンライン買い物客が品目の購入を完了すると、購入したすべての品目は、フォームの事前入力に使用されるメモリ内 XML データソースに配置されます。次の図に、このプロセスを示します。このプロセスについて、図の後の表で説明します。
次の表に、この図の手順を示します。
次の図に、発注書フォームの例を示します。テーブル内の情報は、XML データ内のレコード数に合わせて調整できます。
フォームデザインの考慮事項 form-design-considerations
編集可能なレイアウトの Forms は、Designer で作成されたフォームデザインに基づいています。フォームデザインでは、ユーザー入力に基づく値の計算を含む、レイアウト、プレゼンテーション、データ取得のルールのセットを指定してください。ルールは、データがフォームに入力される際に適用されます。フォームに追加されるフィールドは、フォームデザイン内のサブフォームです。例えば、前の図で示した発注書フォームでは、各行がサブフォームになっています。サブフォームを含むフォームデザインの作成について詳しくは、 編集可能なレイアウトを含む発注書フォームの作成を参照してください。
データのサブグループについて understanding-data-subgroups
固定レイアウトと編集可能なレイアウトを使用したフォームの事前入力には、XML データソースが使用されます。ただし、編集可能なレイアウトのフォームの事前入力に使用される XML データソースには、フォーム内で繰り返されるサブフォームの事前入力に使用される「繰り返し XML 要素」が含まれているという相違点があります。これらの繰り返し XML 要素は、データサブグループと呼ばれます。
前の図に示す発注書フォームの事前入力に使用する XML データソースには、4 つの繰り返しデータのサブグループが含まれています。各データサブグループは、購入した品目に対応します。購入した品目は、モニター、デスクランプ、電話、アドレス帳です。
発注書フォームの事前入力には、次の XML データソースが使用されます。
<header>
<!-- XML elements used to prepopulate non-repeating fields such as address
<!and city
<txtPONum>8745236985</txtPONum>
<dtmDate>2004-02-08</dtmDate>
<txtOrderedByCompanyName>Any Company Name</txtOrderedByCompanyName>
<txtOrderedByAddress>555, Any Blvd.</txtOrderedByAddress>
<txtOrderedByCity>Any City</txtOrderedByCity>
<txtOrderedByStateProv>ST</txtOrderedByStateProv>
<txtOrderedByZipCode>12345</txtOrderedByZipCode>
<txtOrderedByCountry>Any Country</txtOrderedByCountry>
<txtOrderedByPhone>(123) 456-7890</txtOrderedByPhone>
<txtOrderedByFax>(123) 456-7899</txtOrderedByFax>
<txtOrderedByContactName>Contact Name</txtOrderedByContactName>
<txtDeliverToCompanyName>Any Company Name</txtDeliverToCompanyName>
<txtDeliverToAddress>7895, Any Street</txtDeliverToAddress>
<txtDeliverToCity>Any City</txtDeliverToCity>
<txtDeliverToStateProv>ST</txtDeliverToStateProv>
<txtDeliverToZipCode>12346</txtDeliverToZipCode>
<txtDeliverToCountry>Any Country</txtDeliverToCountry>
<txtDeliverToPhone>(123) 456-7891</txtDeliverToPhone>
<txtDeliverToFax>(123) 456-7899</txtDeliverToFax>
<txtDeliverToContactName>Contact Name</txtDeliverToContactName>
</header>
<detail>
<!-- A data subgroup that contains information about the monitor>
<txtPartNum>00010-100</txtPartNum>
<txtDescription>Monitor</txtDescription>
<numQty>1</numQty>
<numUnitPrice>350.00</numUnitPrice>
</detail>
<detail>
<!-- A data subgroup that contains information about the desk lamp>
<txtPartNum>00010-200</txtPartNum>
<txtDescription>Desk lamps</txtDescription>
<numQty>3</numQty>
<numUnitPrice>55.00</numUnitPrice>
</detail>
<detail>
<!-- A data subgroup that contains information about the Phone>
<txtPartNum>00025-275</txtPartNum>
<txtDescription>Phone</txtDescription>
<numQty>5</numQty>
<numUnitPrice>85.00</numUnitPrice>
</detail>
<detail>
<!-- A data subgroup that contains information about the address book>
<txtPartNum>00300-896</txtPartNum>
<txtDescription>Address book</txtDescription>
<numQty>2</numQty>
<numUnitPrice>15.00</numUnitPrice>
</detail>
各データサブグループには、この情報に対応する 4 つの XML 要素が含まれています。
- 品目のパーツ番号
- 品目の説明
- 品目の数量
- 単価
データサブグループの親 XML 要素の名前は、フォームデザイン内のサブフォームの名前と一致する必要があります。例えば、前の図では、データサブグループの親 XML 要素の名前が detail
になっています。これは、発注書フォームの基になるフォームデザインにあるサブフォームの名前に対応します。データサブグループの親 XML 要素の名前とサブフォームが一致しない場合、サーバー側のフォームは事前入力されません。
各データサブグループには、サブフォーム内のフィールド名に一致する XML 要素が含まれている必要があります。フォームデザインにある detail
サブフォームには、次のフィールドが含まれます。
- txtPartNum
- txtDescription
- numQty
- numUnitPrice
RenderAtClient
選択肢を No
に設定すると、最初のデータレコードのみがフォームに結合されます。すべてのデータレコードが確実にフォームに結合されるようにするには、RenderAtClient
を Yes
に設定してください。RenderAtClient
オプションについて詳しくは、クライアントでの Forms のレンダリングを参照してください。手順の概要 summary-of-steps
フォームに編集可能なレイアウトを事前入力するには、次のタスクを実行します。
- プロジェクトファイルを含めます。
- メモリ内 XML データソースを作成します。
- XML データソースを変換します。
- 事前入力されたフォームをレンダリングします。
プロジェクトファイルを含める
必要なファイルを開発プロジェクトに含めます。Java を使用してクライアントアプリケーションを作成する場合は、必要な JAR ファイルを含めます。Web サービスを使用している場合は、プロキシファイルを必ず含めてください。
プロジェクトファイルを含める
必要なファイルを開発プロジェクトに含めます。Java を使用してクライアントアプリケーションを作成する場合は、必要な JAR ファイルを含めます。Web サービスを使用している場合は、プロキシファイルを必ず含めてください。
メモリ内 XML データソースの作成
org.w3c.dom
クラスを使用して、メモリ内の XML データソースを作成し、編集可能なレイアウトでフォームを事前入力できます。フォームに準拠する XML データソースにデータを配置します。編集可能なレイアウトを含むフォームと XML データソースとの関係について詳しくは、データのサブグループについてを参照してください。
XML データソースを変換
org.w3c.dom
クラスを使用して作成されたメモリ内 XML データソースは、フォームの事前入力に使用する前に、com.adobe.idp.Document
オブジェクトに変換できます。メモリ内 XML データソースは、Java XML 変換クラスを使用して変換できます。
org.w3c.dom.Document
オブジェクトを BLOB
オブジェクトに変換する必要があります。事前入力されたフォームをレンダリング
事前入力されたフォームは、他のフォームと同様にレンダリングされます。唯一の違いは、XML データソースを含む com.adobe.idp.Document
オブジェクトを使用してフォームに事前入力するということです。
関連トピック
Forms をレンダリングする web アプリケーションの作成
Java API を使用したフォームの事前入力 prepopulating-forms-using-the-java-api
Forms API(Java)を使用して、編集可能なレイアウトでフォームに事前入力するには、次の手順を実行します。
-
プロジェクトファイルを含める
クライアント JAR ファイル(adobe-forms-client.jar など)を Java プロジェクトのクラスパスに含めます。これらのファイルの場所については、AEM Forms Java ライブラリファイルを含めるを参照してください。
-
メモリ内 XML データソースの作成
-
DocumentBuilderFactory
クラスのnewInstance
メソッドを呼び出して、Java のDocumentBuilderFactory
オブジェクトを作成します。 -
DocumentBuilderFactory
オブジェクトのnewDocumentBuilder
メソッドを呼び出して、Java のDocumentBuilder
オブジェクトを作成します。 -
DocumentBuilder
オブジェクトのnewDocument
メソッドを呼び出し、org.w3c.dom.Document
オブジェクトをインスタンス化します。 -
org.w3c.dom.Document
オブジェクトのcreateElement
メソッドを呼び出して、XML データソースのルート要素を作成します。これにより、ルート要素を表すElement
オブジェクトが作成されます。要素名を表す文字列値をcreateElement
メソッドに渡します。戻り値をElement
にキャストします。次に、Document
オブジェクトのappendChild
メソッドを呼び出してルート要素オブジェクトを引数として渡し、ルート要素をドキュメントに追加します。次のコード行に、このアプリケーションロジックを示します。Element root = (Element)document.createElement("transaction"); document.appendChild(root);
-
Document
オブジェクトのcreateElement
メソッドを呼び出して、XML データソースのヘッダー要素を作成します。要素名を表す文字列値をcreateElement
メソッドに渡します。戻り値をElement
にキャストします。次に、root
オブジェクトのappendChild
メソッドを呼び出してヘッダー要素オブジェクトを引数として渡し、ヘッダー要素をルート要素に追加します。ヘッダー要素に追加される XML 要素は、フォームの静的な部分に対応します。次のコード行は、このアプリケーションロジックを示しています。Element header = (Element)document.createElement("header"); root.appendChild(header);
-
Document
オブジェクトのcreateElement
メソッドを呼び出して要素名を表す文字列値を渡し、ヘッダー要素に属する子要素を作成します。戻り値をElement
にキャストします。次に、appendChild
メソッドを呼び出してDocument
オブジェクトのcreateTextNode
メソッドを引数として渡し、子要素の値を設定します。子要素の値として表示される文字列値を指定します。最後に、ヘッダー要素のappendChild
メソッドを呼び出して子要素をヘッダー要素に追加し、子要素オブジェクトを引数として渡します。次のコード行は、このアプリケーションロジックを示しています。Element poNum= (Element)document.createElement("txtPONum"); poNum.appendChild(document.createTextNode("8745236985")); header.appendChild(LastName);
-
フォームの静的部分に表示される各フィールドに対して最後のサブ手順を繰り返して、残りのすべての要素をヘッダー要素に追加します(XML データソース図では、これらのフィールドがセクション A に表示されます(データのサブグループについてを参照)。
-
Document
オブジェクトのcreateElement
メソッドを呼び出して、XML データソースの詳細要素を作成します。要素名を表す文字列値をcreateElement
メソッドに渡します。戻り値をElement
にキャストします。次に、root
オブジェクトのappendChild
メソッドを呼び出して詳細要素をルート要素に追加し、詳細要素オブジェクトを引数として渡します。詳細要素に追加される XML 要素は、フォームの動的な部分に対応します。次のコード行は、このアプリケーションロジックを示しています。Element detail = (Element)document.createElement("detail"); root.appendChild(detail);
-
Document
オブジェクトのcreateElement
メソッドを使用して詳細要素に属する子要素を作成し、要素の名前を表す文字列値を渡します。戻り値をElement
にキャストします。次に、appendChild
メソッドを呼び出してDocument
オブジェクトのcreateTextNode
メソッドを引数として渡し、子要素の値を設定します。子要素の値として表示される文字列値を指定します。最後に、詳細要素のappendChild
メソッドを呼び出して子要素を詳細要素に追加し、子要素オブジェクトを引数として渡します。次のコード行は、このアプリケーションロジックを示しています。Element txtPartNum = (Element)document.createElement("txtPartNum"); txtPartNum.appendChild(document.createTextNode("00010-100")); detail.appendChild(txtPartNum);
-
詳細要素に追加するすべての XML 要素に対して、最後のサブ手順を繰り返します。発注書フォームの入力に使用される XML データソースを適切に作成するには、詳細要素に XML 要素
txtDescription
、numQty
、numUnitPrice
を追加する必要があります。 -
フォームの事前入力に使用されるすべてのデータ項目に対して、最後の 2 つのサブ手順を繰り返します。
-
-
XML データソースの変換
javax.xml.transform.Transformer
オブジェクトの静的newInstance
メソッドを呼び出すことによって、javax.xml.transform.Transformer
オブジェクトを作成します。TransformerFactory
オブジェクトのnewTransformer
メソッドを呼び出すことによって、Transformer
オブジェクトを作成します。- コンストラクターを使用して、
ByteArrayOutputStream
オブジェクトを作成します。 - コンストラクターを使用して手順 1 で作成した
org.w3c.dom.Document
オブジェクトを渡すことによって、javax.xml.transform.dom.DOMSource
オブジェクトを作成します。 - コンストラクターを使用して
ByteArrayOutputStream
オブジェクトを渡すことによって、javax.xml.transform.dom.DOMSource
オブジェクトを作成します。 - Java
ByteArrayOutputStream
オブジェクトを設定するには、javax.xml.transform.Transformer
オブジェクトのtransform
メソッドを呼び出して、javax.xml.transform.dom.DOMSource
オブジェクト及びjavax.xml.transform.stream.StreamResult
オブジェクトを渡します。 - バイト配列を作成して、
ByteArrayOutputStream
オブジェクトのサイズをバイト配列に割り当てます。 ByteArrayOutputStream
オブジェクトのtoByteArray
メソッドを呼び出して、バイト配列に入力します。- コンストラクターを使用してバイト配列を渡すことによって、
com.adobe.idp.Document
オブジェクトを作成します。
-
事前入力されたフォームをレンダリング
FormsServiceClient
オブジェクトのrenderPDFForm
メソッドを呼び出して、以下の値を渡します。- ファイル名拡張子を含んだフォームデザイン名を指定する文字列値。
- フォームに結合するデータを含む
com.adobe.idp.Document
オブジェクト。手順 1 と 2 で作成したcom.adobe.idp.Document
オブジェクトを使用するようにしてください。 - 実行時オプションを保存する
PDFFormRenderSpec
オブジェクト。 - Forms サービスで必要な URI 値を格納する
URLSpec
オブジェクト。 - 添付ファイルを保存する
java.util.HashMap
オブジェクト。オプションのパラメーターです。フォームにファイルを添付しない場合はnull
を指定できます。
renderPDFForm
メソッドは、FormsResult
クライアントの web ブラウザーに書き込む必要があるフォームデータストリームを含むオブジェクトを返します。- フォームデータストリームをクライアントの web ブラウザーに送信するために使用する
javax.servlet.ServletOutputStream
オブジェクトを作成します。 FormsResult
オブジェクトのgetOutputContent
メソッドを呼び出すことにより、com.adobe.idp.Document
オブジェクトを作成します。com.adobe.idp.Document
オブジェクトのgetInputStream
メソッドを呼び出すことによって、java.io.InputStream
オブジェクトを作成します。InputStream
オブジェクトのread
メソッドを呼び出して、引数としてバイト配列を渡すことで、バイト配列を作成し、フォームデータストリームを入力します。javax.servlet.ServletOutputStream
オブジェクトのwrite
メソッドを呼び出して、フォームデータストリームをクライアント web ブラウザーに送信します。バイト配列をwrite
メソッドに渡します。
関連トピック
Web サービス API を使用したフォームの事前入力 prepopulating-forms-using-the-web-service-api
Forms API(web サービス)を使用してフォームに編集可能なレイアウトを事前入力するには、次の手順を実行します。
-
プロジェクトファイルを含める
- Forms サービス WSDL を使用する Java プロキシクラスを作成します。(Apache Axis を使用した Java プロキシクラスの作成を参照。)
- Java プロキシクラスをクラスパスに含めます。
-
メモリ内 XML データソースの作成
-
DocumentBuilderFactory
クラスのnewInstance
メソッドを呼び出して、Java のDocumentBuilderFactory
オブジェクトを作成します。 -
DocumentBuilderFactory
オブジェクトのnewDocumentBuilder
メソッドを呼び出して、Java のDocumentBuilder
オブジェクトを作成します。 -
DocumentBuilder
オブジェクトのnewDocument
メソッドを呼び出し、org.w3c.dom.Document
オブジェクトをインスタンス化します。 -
org.w3c.dom.Document
オブジェクトのcreateElement
メソッドを呼び出して、XML データソースのルート要素を作成します。これにより、ルート要素を表すElement
オブジェクトが作成されます。要素名を表す文字列値をcreateElement
メソッドに渡します。戻り値をElement
にキャストします。次に、Document
オブジェクトのappendChild
メソッドを呼び出してルート要素をドキュメントに追加し、ルート要素オブジェクトを引数として渡します。次のコード行は、このアプリケーションロジックを示しています。Element root = (Element)document.createElement("transaction"); document.appendChild(root);
-
Document
オブジェクトのcreateElement
メソッドを呼び出して、XML データソースのヘッダー要素を作成します。要素名を表す文字列値をcreateElement
メソッドに渡します。戻り値をElement
にキャストします。次に、root
オブジェクトのappendChild
メソッドを呼び出してヘッダー要素オブジェクトを引数として渡し、ヘッダー要素をルート要素に追加します。ヘッダー要素に追加される XML 要素は、フォームの静的な部分に対応します。次のコード行は、このアプリケーションロジックを示しています。Element header = (Element)document.createElement("header"); root.appendChild(header);
-
Document
オブジェクトのcreateElement
メソッドを呼び出して要素名を表す文字列値を渡し、ヘッダー要素に属する子要素を作成します。戻り値をElement
にキャストします。次に、appendChild
メソッドを呼び出してDocument
オブジェクトのcreateTextNode
メソッドを引数として渡し、子要素の値を設定します。子要素の値として表示される文字列値を指定します。最後に、ヘッダー要素のappendChild
メソッドを呼び出して子要素をヘッダー要素に追加し、子要素オブジェクトを引数として渡します。次のコード行に、このアプリケーションロジックを示します。Element poNum= (Element)document.createElement("txtPONum"); poNum.appendChild(document.createTextNode("8745236985")); header.appendChild(LastName);
-
フォームの静的部分に表示される各フィールドに対して最後のサブステップを繰り返し、残りのすべての要素をヘッダー要素に追加します。(XML データソース図では、これらのフィールドが A のセクションに表示されます。詳しくは、データのサブグループについてを参照してください。)
-
Document
オブジェクトのcreateElement
メソッドを呼び出して、XML データソースの詳細要素を作成します。要素名を表す文字列値をcreateElement
メソッドに渡します。戻り値をElement
にキャストします。次に、root
オブジェクトのappendChild
メソッドを呼び出して詳細要素をルート要素に追加し、詳細要素オブジェクトを引数として渡します。詳細要素に追加される XML 要素は、フォームの動的な部分に対応します。次のコード行に、このアプリケーションロジックを示します。Element detail = (Element)document.createElement("detail"); root.appendChild(detail);
-
Document
オブジェクトのcreateElement
メソッドを使用して詳細要素に属する子要素を作成し、要素の名前を表す文字列値を渡します。戻り値をElement
にキャストします。次に、appendChild
メソッドを呼び出してDocument
オブジェクトのcreateTextNode
メソッドを引数として渡し、子要素の値を設定します。子要素の値として表示される文字列値を指定します。最後に、詳細要素のappendChild
メソッドを呼び出して子要素を詳細要素に追加し、子要素オブジェクトを引数として渡します。次のコード行に、このアプリケーションロジックを示します。Element txtPartNum = (Element)document.createElement("txtPartNum"); txtPartNum.appendChild(document.createTextNode("00010-100")); detail.appendChild(txtPartNum);
-
詳細要素に追加するすべての XML 要素に対して、最後のサブ手順を繰り返します。発注書フォームの入力に使用される XML データソースを適切に作成するには、詳細要素に XML 要素
txtDescription
、numQty
、numUnitPrice
を追加する必要があります。 -
フォームの事前入力に使用されるすべてのデータ項目に対して、最後の 2 つのサブ手順を繰り返します。
-
-
XML データソースの変換
javax.xml.transform.Transformer
オブジェクトの静的newInstance
メソッドを呼び出すことによって、javax.xml.transform.Transformer
オブジェクトを作成します。TransformerFactory
オブジェクトのnewTransformer
メソッドを呼び出すことによって、Transformer
オブジェクトを作成します。- コンストラクターを使用して、
ByteArrayOutputStream
オブジェクトを作成します。 - コンストラクターを使用して手順 1 で作成した
org.w3c.dom.Document
オブジェクトを渡すことによって、javax.xml.transform.dom.DOMSource
オブジェクトを作成します。 - コンストラクターを使用して
ByteArrayOutputStream
オブジェクトを渡すことによって、javax.xml.transform.dom.DOMSource
オブジェクトを作成します。 - Java
ByteArrayOutputStream
オブジェクトを設定するには、javax.xml.transform.Transformer
オブジェクトのtransform
メソッドを呼び出して、javax.xml.transform.dom.DOMSource
オブジェクト及びjavax.xml.transform.stream.StreamResult
オブジェクトを渡します。 - バイト配列を作成して、
ByteArrayOutputStream
オブジェクトのサイズをバイト配列に割り当てます。 ByteArrayOutputStream
オブジェクトのtoByteArray
メソッドを呼び出して、バイト配列に入力します。- コンストラクターを使用して
BLOB
オブジェクトを作成し、setBinaryData
メソッドを呼び出して、バイト配列を渡します。
-
事前入力されたフォームをレンダリング
FormsService
オブジェクトのrenderPDFForm
メソッドを呼び出して、以下の値を渡します。- ファイル名拡張子を含んだフォームデザイン名を指定する文字列値。
- フォームに結合するデータを含む
BLOB
オブジェクト。手順 1 と 2 で作成したBLOB
オブジェクトを使用していることを必ず確認してください。 - 実行時オプションを保存する
PDFFormRenderSpecc
オブジェクト。詳しくは、「AEM Forms のデータ統合」を参照してください。 - Forms サービスで必要な URI 値を格納する
URLSpec
オブジェクト。 - 添付ファイルを保存する
java.util.HashMap
オブジェクト。これはオプションのパラメーターで、 フォームにファイルを添付しない場合に、null
を指定します。 - メソッドによって設定される空の
com.adobe.idp.services.holders.BLOBHolder
オブジェクト。これは、レンダリングされた PDF フォームを保存するために使用されます。 - メソッドによって設定される空の
javax.xml.rpc.holders.LongHolder
オブジェクト。(この引数は、フォームのページ数を保存します)。 - メソッドによって設定される空の
javax.xml.rpc.holders.StringHolder
オブジェクト。(この引数はロケール値を格納します)。 - この操作の結果を格納する空の
com.adobe.idp.services.holders.FormsResultHolder
オブジェクト。
renderPDFForm
メソッドは、最後の引数値として渡されるcom.adobe.idp.services.holders.FormsResultHolder
オブジェクトに、クライアント web ブラウザーに書き込む必要のあるフォームデータストリームを入力します。com.adobe.idp.services.holders.FormsResultHolder
オブジェクトのvalue
データメンバーの値を取得してFormResult
オブジェクトを作成します。FormsResult
オブジェクトのgetOutputContent
メソッドを呼び出して、フォームデータを含むBLOB
オブジェクトを作成します。getContentType
メソッドを呼び出して、BLOB
オブジェクトのコンテンツタイプを取得します。javax.servlet.http.HttpServletResponse
オブジェクトのsetContentType
メソッドを呼び出してコンテンツタイプを設定し、BLOB
オブジェクトのコンテンツタイプを渡します。javax.servlet.http.HttpServletResponse
オブジェクトのgetOutputStream
メソッドを呼び出して、クライアントの web ブラウザーにフォームデータストリームを書き込むために使用するjavax.servlet.ServletOutputStream
オブジェクトを作成します。BLOB
オブジェクトのgetBinaryData
メソッドを呼び出し、バイト配列を作成して入力します。このタスクは、FormsResult
オブジェクトのコンテンツをバイト配列に割り当てます。javax.servlet.http.HttpServletResponse
オブジェクトのwrite
メソッドを呼び出して、フォームデータストリームをクライアント web ブラウザーに送信します。バイト配列をwrite
メソッドに渡します。
note note NOTE renderPDFForm
メソッドによって、最後の引数値として渡されるcom.adobe.idp.services.holders.FormsResultHolder
オブジェクトに、クライアント web ブラウザーに書き込む必要があるフォームデータストリームが入力されます。
関連トピック
Base64 エンコーディングを使用した AEM Forms の呼び出し