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