AcrobatまたはAdobe Readerのクライアント側レンダリング機能を使用すると、PDFコンテンツの配信を最適化し、Formsサービスがネットワーク読み込みを処理する機能を向上できます。 このプロセスは、クライアントでのフォームのレンダリングと呼ばれます。 クライアントでフォームをレンダリングするには、クライアントデバイス(通常は Web ブラウザー)でAcrobat 7.0 またはAdobe Reader 7.0 以降を使用する必要があります。
サーバーサイドスクリプトの実行によって生成されたフォームへの変更は、ルートサブフォームに restoreState
属性 auto
. この属性について詳しくは、 Forms Designer
Formsサービスについて詳しくは、 AEM Formsのサービスリファレンス.
クライアントでフォームをレンダリングするには、次のタスクを実行します。
プロジェクトファイルを含める
必要なファイルを開発プロジェクトに含めます。 Java を使用してクライアントアプリケーションを作成する場合は、必要な JAR ファイルを含めます。 Web サービスを使用している場合は、プロキシファイルを必ず含めてください。
Forms Client API オブジェクトの作成
Forms Service Client API 操作をプログラムで実行する前に、Formsサービスクライアントを作成する必要があります。 Java API を使用している場合は、 FormsServiceClient
オブジェクト。 Forms Web サービス API を使用している場合は、 FormsService
オブジェクト。
クライアントレンダリングの実行時オプションを設定する
クライアントでフォームをレンダリングする場合は、クライアントでフォームをレンダリングするために、クライアントレンダリングの実行時オプションを設定する必要があります。その際には、 RenderAtClient
実行時のオプション true
. その結果、フォームはレンダリング先のクライアントデバイスに配信されます。 If RenderAtClient
が auto
(デフォルト値)を指定した場合、フォームデザインは、フォームをクライアントでレンダリングするかどうかを決定します。 フォームデザインは、編集可能なレイアウトを含むフォームデザインにする必要があります。
オプションで設定できるランタイムオプションは、 SeedPDF
オプション。 この SeedPDF
「 」オプションは、PDFコンテナ ( シードPDFドキュメント ) とフォームデザインと XML データを組み合わせたものです。 フォームデザインと XML データの両方がAcrobatまたはAdobe Readerに配信され、フォームがレンダリングされます。 この SeedPDF
オプションは、クライアントコンピューターにフォーム内で使用されるフォントがない場合に使用できます。例えば、エンドユーザーがフォーム所有者が使用するライセンスを持つフォントを使用するライセンスを持っていない場合などです。
Designer を使用して、シードPDFファイルとして使用するシンプルなダイナミックPDFファイルを作成できます。 このタスクを実行するには、次の手順が必要です。
クライアント上でフォームをレンダリングする場合、シードPDFの実行時オプションを定義する必要はありません。 シードPDFを指定しない場合、Formsサービスはシェル pdf を作成します。この pdf は、COS オブジェクトは含まれず、実際の XDP コンテンツが埋め込まれたPDFラッパーを含みます。 この節の手順では、シードPDFの実行時オプションは設定しません。 COS オブジェクトの詳細については、『 Adobe PDF Reference 』ガイドを参照してください。
クライアントでフォームをレンダリング
クライアントでフォームをレンダリングするには、フォームをレンダリングするクライアントレンダリングの実行時オプションがアプリケーションロジックに含まれていることを確認する必要があります。
フォームデータストリームをクライアント Web ブラウザーに書き込む
Formsサービスはフォームデータストリームを作成します。このデータストリームは、クライアントの Web ブラウザーに書き込む必要があります。 クライアント Web ブラウザーに書き込まれると、フォームはAcrobat 7.0 またはAdobe Reader 7.0 以降でレンダリングされ、ユーザーに対して表示されます。
関連トピック
Java API を使用してクライアントでフォームをレンダリングする
Web サービス API を使用してクライアントでフォームをレンダリングする
Formsをレンダリングする Web アプリケーションの作成
Forms API(Java) を使用して、クライアントでフォームをレンダリングします。
プロジェクトファイルを含める
Java プロジェクトのクラスパスに、adobe-forms-client.jar などのクライアント JAR ファイルを含めます。
Forms Client API オブジェクトの作成
ServiceClientFactory
オブジェクトを作成します。FormsServiceClient
オブジェクトのコンストラクタを使用し、 ServiceClientFactory
オブジェクト。クライアントレンダリングの実行時オプションを設定する
PDFFormRenderSpec
オブジェクトを作成します。RenderAtClient
を呼び出すことによる実行時オプション PDFFormRenderSpec
オブジェクトの setRenderAtClient
メソッドを使用して enum 値を渡す RenderAtClient.Yes
.クライアントでフォームをレンダリング
を呼び出す FormsServiceClient
オブジェクトの renderPDFForm
メソッドを使用して、次の値を渡します。
Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
.com.adobe.idp.Document
フォームに結合するデータを含むオブジェクト。 データを結合しない場合は、空の com.adobe.idp.Document
オブジェクト。PDFFormRenderSpec
クライアントでフォームをレンダリングするために必要な実行時のオプションを格納するオブジェクト。URLSpec
フォームをレンダリングするためにFormsサービスで必要な URI 値を含むオブジェクト。java.util.HashMap
添付ファイルを保存するオブジェクト。 これはオプションのパラメーターで、 null
フォームにファイルを添付しない場合。この renderPDFForm
メソッドは、 FormsResult
クライアントの Web ブラウザーに書き込む必要があるフォームデータストリームを含むオブジェクト。
フォームデータストリームをクライアント Web ブラウザーに書き込む
com.adobe.idp.Document
を呼び出すことによってオブジェクトを取得 FormsResult
オブジェクト getOutputContent
メソッド。com.adobe.idp.Document
オブジェクトを呼び出す getContentType
メソッド。javax.servlet.http.HttpServletResponse
を呼び出すことによるオブジェクトのコンテンツタイプ setContentType
メソッドを使用して、 com.adobe.idp.Document
オブジェクト。javax.servlet.ServletOutputStream
オブジェクトを使用します。オブジェクトは、 javax.servlet.http.HttpServletResponse
オブジェクトの getOutputStream
メソッド。java.io.InputStream
を呼び出すことによってオブジェクトを取得 com.adobe.idp.Document
オブジェクトの getInputStream
メソッド。InputStream
オブジェクトの read
メソッドを使用し、バイト配列を引数として渡す。javax.servlet.ServletOutputStream
オブジェクトの write
メソッドを使用して、フォームデータストリームをクライアント Web ブラウザーに送信します。 バイト配列を write
メソッド。関連トピック
クイックスタート(SOAP モード):Java API を使用してクライアントでフォームをレンダリングする
Forms API(Web サービス)を使用して、クライアントでフォームをレンダリングします。
プロジェクトファイルを含める
Forms Client API オブジェクトの作成
の作成 FormsService
オブジェクトを選択し、認証値を設定します。
クライアントレンダリングの実行時オプションを設定する
PDFFormRenderSpec
オブジェクトを作成します。RenderAtClient
を呼び出すことによる実行時オプション PDFFormRenderSpec
オブジェクトの setRenderAtClient
メソッドと文字列値を渡す RenderAtClient.Yes
.クライアントでフォームをレンダリング
を呼び出す FormsService
オブジェクトの renderPDFForm
メソッドを使用して、次の値を渡します。
Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
.BLOB
フォームに結合するデータを含むオブジェクト。 データを結合しない場合は、 null
. ( 編集可能なレイアウトを使用したFormsの事前入力.)PDFFormRenderSpec
クライアントでフォームをレンダリングするために必要な実行時のオプションを格納するオブジェクト。URLSpec
Formsサービスで必要な URI 値を格納するオブジェクト。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 ブラウザーに書き込む必要があるフォームデータストリームを含む最後の引数値として渡されます。
フォームデータストリームをクライアント Web ブラウザーに書き込む
FormResult
オブジェクトを作成するには、 com.adobe.idp.services.holders.FormsResultHolder
オブジェクトの value
データメンバー。BLOB
を呼び出してフォームデータを含むオブジェクト FormsResult
オブジェクトの getOutputContent
メソッド。BLOB
オブジェクトを呼び出す getContentType
メソッド。javax.servlet.http.HttpServletResponse
を呼び出すことによるオブジェクトのコンテンツタイプ setContentType
メソッドを使用して、 BLOB
オブジェクト。javax.servlet.ServletOutputStream
オブジェクトを使用します。オブジェクトは、 javax.servlet.http.HttpServletResponse
オブジェクトの getOutputStream
メソッド。BLOB
オブジェクトの getBinaryData
メソッド。 このタスクは、 FormsResult
オブジェクトをバイト配列に変換します。javax.servlet.http.HttpServletResponse
オブジェクトの write
メソッドを使用して、フォームデータストリームをクライアント Web ブラウザーに送信します。 バイト配列を write
メソッド。関連トピック
Base64 エンコーディングを使用したAEM Formsの呼び出し