Forms を HTML としてレンダリング rendering-forms-as-html
このドキュメントのサンプルと例は、JEE 環境の AEM Forms のみを対象としています。
Forms サービスは、web ブラウザーからの HTTP リクエストに応じて、フォームを HTML としてレンダリングします。フォームを HTML としてレンダリングする利点の 1 つは、クライアント web ブラウザーが格納されているコンピューターに Adobe Reader、Acrobat、Flash Player(フォームガイド(非推奨)用)が必要ないことです。
フォームを HTML としてレンダリングするには、フォームデザインを XDP ファイルとして保存する必要があります。PDF ファイルとして保存されたフォームデザインは、HTML としてレンダリングできません。Designer でフォームデザインを開発し、HTML としてレンダリングする場合は、以下の条件を考慮してください。
- フォームに線、ボックス、グリッドを描画するときに、オブジェクトの境界線プロパティを使用しないでください。ブラウザーによっては、 のプレビューで表示されるとおりに境界線が表示されないことがあります。また、オブジェクトが重なって表示されたり、他のオブジェクトを本来の位置から押しのけたりする場合があります。
- 線、長方形、円を使用して、背景を定義できます。
- テキストが収まるよう、必要と思われるサイズより少し大きめにテキストを描画します。一部の web ブラウザーでは、テキストが読みやすく表示されません。
FormServiceClient
オブジェクトの (Deprecated) renderHTMLForm
および renderHTMLForm2
メソッドを使用して TIFF 画像を含むフォームをレンダリングする場合、Internet Explorer または Mozilla Firefox ブラウザーで表示されるレンダリングされたHTML フォームには TIFF 画像が表示されません。これらのブラウザーでは、TIFF 画像のネイティブサポートは提供されていません。HTML ページ html-pages
フォームデザインが HTML フォームとしてレンダリングされる場合、各第 2 レベルサブフォームはHTML ページ(パネル)としてレンダリングされます。サブフォームの階層は Designer で表示できます。ルートサブフォームに属する子サブフォーム(ルートサブフォームのデフォルト名は form1 です)は、パネルのサブフォームです。次に、フォームデザインのサブフォームの例を示します。
form1
Master Pages
PanelSubform1
NestedDynamicSubform
TextEdit1
PanelSubform2
TextEdit1
PanelSubform3
TextEdit1
PanelSubform4
TextEdit1
フォームデザインが HTML フォームとしてレンダリングされる場合、パネルは特定のページサイズに制限されません。ダイナミックサブフォームがある場合は、パネルサブフォーム内にネストする必要があります。ダイナミックサブフォームは、無限数の HTML ページに拡張できます。
フォームを HTML フォームとしてレンダリングする場合、ページサイズ (PDF としてレンダリングされるフォームのページ番号付けで必須)は意味を持ちません。編集可能なレイアウトを含むフォームは HTML ページを無限数まで拡張できるので、マスターページではフッターの使用を避けることが重要です。マスターページのコンテンツ領域の下にフッターを配置すると、ページ境界を越えてフローする HTML コンテンツが上書きされる場合があります。
xfa.host.pageUp
および xfa.host.pageDown
メソッドを使用して、パネル間を明示的に移動する必要があります。ページを変更するには、フォームを Forms サービスに送信し、Forms サービスでフォームをレンダリングしてクライアントデバイス(通常は web ブラウザー)に戻す必要があります。
.fsc-ds-ssb
:このスタイルシートは、空白の記号フィールドがある場合に適用されます。
.fsc-ds-ssv
:このスタイルシートは、有効な記号フィールドがある場合に適用されます。
.fsc-ds-ssc
:このスタイルシートは、有効な記号フィールドでデータが変更された場合に適用されます。
.fsc-ds-ssi
:このスタイルシートは、無効な記号フィールドがある場合に適用されます。
.fsc-ds-popup-bg
:このスタイルシートプロパティは使用されていません。
.fsc-ds-popup-btn
:このスタイルシートプロパティは使用されていません。
スクリプトの実行 running-scripts
フォームの作成者は、スクリプトをサーバー上で実行するかクライアント上で実行するかを指定します。Forms サービスは、runAt
属性を使用してクライアントとサーバー間で分散できるフォームインテリジェンスを実行するための分散イベント処理環境を作成します。この属性やフォームデザイン内でのスクリプトの作成について詳しくは、Forms Designer を参照してください。
Forms サービスは、フォームのレンダリング中にスクリプトを実行できます。その結果、データベースに接続するか、クライアント上で使用できない web サービスに接続することで、フォームにデータを事前入力できます。また、ボタンの Click
イベントをサーバーで実行するように設定して、クライアントがデータをサーバーにラウンドトリップするようにすることもできます。これにより、ユーザーがフォームを操作している間に、エンタープライズデータベースなどのサーバーリソースを必要とする可能性のあるスクリプトをクライアントが実行できます。HTML フォームの場合、formcalc スクリプトはサーバー上でのみ実行できます。その結果、これらのスクリプトを server
または both
で実行するように指定する必要があります。
ページ(パネル)間を移動するフォームは、xfa.host.pageUp
および xfa.host.pageDown
メソッドを呼び出すことによって設計できます。このスクリプトはボタンの Click
イベントに配置され、runAt
属性は Both
に設定されます。Both
を選択する理由は、(PDF としてレンダリングされるフォームの場合)Adobe Reader や Acrobat がサーバーに移動せずにページを変更でき、HTML フォームがサーバーにデータをラウンドトリップさせずにページを変更できるようにするためです。つまり、あるフォームは Forms サービスに送信され、あるフォームは新しいページを表示する HTML としてレンダリングされます。
スクリプト変数やフォームフィールドには、同じ名前(item など)を付けないことをお勧めします。Internet Explorer などの一部の web ブラウザーでは、フォームフィールドと同じ名前の変数が初期化されず、スクリプトエラーが発生する場合があります。フォームフィールドとスクリプト変数に異なる名前を付けることをお勧めします。
ページナビゲーション機能とフォームスクリプトの両方を含む HTML フォームをレンダリングする場合(例えば、フォームがレンダリングされるたびにスクリプトがデータベースからフィールドデータを取得するような場合)、フォームスクリプトが form:ready イベントではなく form:calculate イベント内に配置する必要があります。
form:ready イベントにあるフォームスクリプトは、フォームの最初のレンダリング時に 1 回だけ実行され、以降のページ取得時には実行されません。これに対し、 form:calculate イベントは、フォームがレンダリングされるページナビゲーションごとに実行されます。
フォームを送信する前にカスタムスクリプトを呼び出すことができます。この機能は、使用可能なすべてのブラウザーで機能します。ただし、Output Type
プロパティが Form Body
に設定されている HTML フォームをレンダリングする場合にのみ使用できます。Output Type
が Full HTML
の場合には機能しません。この機能を設定する手順については、管理ヘルプの「フォームの設定」を参照してください。
フォームを送信する前に、呼び出すコールバック関数を定義します。ここで、関数の名前は _user_onsubmit
です。この関数は例外をスローしないと想定されます。例外がスローされても無視されます。JavaScript 関数は HTML の HEAD セクションに配置することをお勧めしますが、xfasubset.js
を含むスクリプトタグが終わる前であれば任意の場所で宣言できます。
フォームサーバーがドロップダウンリストを含む XDP をレンダリングすると、ドロップダウンリストの作成に加えて、2 つの非表示のテキストフィールドも作成されます。これらのテキストフィールドには、ドロップダウンリストのデータが格納されます(一方にはオプションの表示名が格納され、もう一方にはオプションの値が格納されます)。そのため、ユーザーがフォームを送信するたびに、ドロップダウンリストのデータ全体が送信されます。毎回それほど多くのデータを送信しない場合は、それを無効にするカスタムスクリプトを作成できます。例:ドロップダウンリストの名前は drpOrderedByStateProv
で、サブフォームヘッダーの下にラップされます。HTML 入力要素の名前は header[0].drpOrderedByStateProv[0]
になります。ドロップダウンのデータを格納して送信する非表示フィールドの名前には、header[0].drpOrderedByStateProv_DISPLAYITEMS_[0] header[0].drpOrderedByStateProv_VALUEITEMS_[0]
という名前が付けられます。
データをポストしない場合は、次の方法でこれらの入力要素を無効にできます。var __CUSTOM_SCRIPTS_VERSION = 1; //enabling the feature function _user_onsubmit() { var elems = document.getElementsByName("header[0].drpOrderedByStateProv_DISPLAYITEMS_[0]"); elems[0].disabled = true; elems = document.getElementsByName("header[0].drpOrderedByStateProv_VALUEITEMS_[0]"); elems[0].disabled = true; }
header[0].drpOrderedByStateProv_DISPLAYITEMS_[0] header[0].drpOrderedByStateProv_VALUEITEMS_[0]
var __CUSTOM_SCRIPTS_VERSION = 1; //enabling the feature
function _user_onsubmit() {
var elems = document.getElementsByName("header[0].drpOrderedByStateProv_DISPLAYITEMS_[0]");
elems[0].disabled = true;
elems = document.getElementsByName("header[0].drpOrderedByStateProv_VALUEITEMS_[0]");
elems[0].disabled = true;
}
XFA サブセット xfa-subsets
HTML としてレンダリングするフォームデザインを作成する場合は、JavaScript 言語のスクリプトの XFA サブセットにスクリプティングを制限する必要があります。
クライアント上で実行される、またはクライアントとサーバーの両方で実行されるスクリプトは、XFA サブセット内で記述する必要があります。サーバー上で実行されるスクリプトは、完全な XFA スクリプティングモデルを使用でき、FormCalc も使用できます。JavaScript の使用について詳しくは、 Forms Designerを参照してください。
クライアントでスクリプトを実行する場合、表示されている現在のパネルだけがスクリプトを使用できます。例えば、パネル B が表示されているときに、パネル A にあるフィールドに対するスクリプトを記述することはできません。サーバーでスクリプトを実行すると、すべてのパネルにアクセスできます。
また、クライアントで実行するスクリプト内で Scripting Object Model(SOM)式を使用する場合は注意が必要です。クライアントで実行するスクリプトでは、簡単化された SOM 式のサブセットのみをサポートしています。
イベントのタイミング event-timing
XFA サブセットは、HTML イベントにマップされる XFA イベントを定義します。イベントの計算と検証のタイミングには、動作にわずかな違いがあります。Web ブラウザーでは、フィールドを終了すると、完全な calculate イベントが実行されます。フィールド値を変更した場合、calculate イベントは自動的には実行されません。calculate イベントを強制的に実行するには、xfa.form.execCalculate
メソッドを呼び出します。
Web ブラウザーでは、validate イベントは、フィールドを終了するかフォームを送信する場合にのみ実行されます。validate イベントを強制的に実行するには xfa.form.execValidate
メソッドを呼び出します。
Web ブラウザー(Adobe Reader や Acrobat とは異なり)に表示されるフォームは、必須フィールドの XFA null テスト(エラーまたは警告)に準拠しています。
- null テストでエラーが発生し、値を指定せずにフィールドを終了した場合は、メッセージボックスが表示され、「OK」をクリックした後にそのフィールドに再配置されます。
- null テストで警告が生成され、値を指定せずにフィールドを終了した場合、「OK」または「キャンセル」をクリックするように促されます。「OK」は値を指定せずに続行し、「キャンセル」は値を入力するフィールドに戻ります。
null テストについて詳しくは、Forms Designer を参照してください。
フォームボタン form-buttons
「送信」ボタンをクリックすると、フォームデータが Forms サービスに送信され、フォームの処理を終了します。preSubmit
イベントは、クライアントまたはサーバーで実行するように設定できます。preSubmit
イベントは、フォーム送信の前に実行されます(クライアント上で実行するように設定されている場合)。それ以外の場合は、preSubmit
イベントは、フォームの送信中にサーバーで実行されます。preSubmit
イベントについて詳しくは、Forms Designer を参照してください。
ボタンにクライアントサイドのスクリプトが関連付けられていない場合、データがサーバーに送信され、サーバー上で計算が実行されて HTML フォームが再生成されます。ボタンにクライアントサイドのスクリプトが含まれている場合、データはサーバーに送信されず、クライアント側のスクリプトが web ブラウザーで実行されます。
HTML 4.0 web ブラウザー html-4-0-web-browser
HTML 4.0 のみをサポートする web ブラウザーは、XFA サブセットのクライアントサイドスクリプティングモデルをサポートできません。HTML 4.0 と MSDHTML または CSS2 HTML の両方で動作するフォームデザインを作成する場合、クライアントで実行するようにマークされたスクリプトは、サーバー上で実際に実行されます。例えば、HTML 4.0 web ブラウザーで表示されているフォーム上のボタンをユーザーがクリックしたとします。この場合、フォームデータはクライアントサイドスクリプトが実行されるサーバーに送信されます。
HTML 4.0 のサーバーと、MSDHTML または CSS2HTML 用のクライアントで実行する calculate イベントに、フォームロジックを配置することをお勧めします。
プレゼンテーションの変更の維持 maintaining-presentation-changes
HTML ページ(パネル)間を移動すると、データの状態のみが保持されます。背景色や必須フィールド設定などの設定は維持されません(初期設定と異なる場合)。プレゼンテーションの状態を維持するには、フィールドのプレゼンテーションの状態を表すフィールド(通常は非表示)を作成する必要があります。非表示のフィールド値に基づいて、プレゼンテーションを変更するフィールドの Calculate
イベントにスクリプトを追加すると、HTML ページ(パネル)間を移動するときにプレゼンテーションの状態を維持できます。
次のスクリプトは、hiddenField
の値に基づいてフィールドの fillColor
を保持します。このスクリプトがフィールドの Calculate
イベントにあるとします。
If (hiddenField.rawValue == 1)
this.fillColor = "255,0,0"
else
this.fillColor = "0,255,0"
デジタル署名用 HTML フォーム digitally-signing-html-forms
フォームが以下の HTML 変換のいずれかとしてレンダリングされている場合、デジタル署名フィールドを含む HTML 署名フォームには署名できません。
- AHTML
- HTML4
- StaticHTML
- NoScriptXHTML
ドキュメントのデジタル署名については、 ドキュメントのデジタル署名と認証を参照してください。
アクセシビリティガイドラインに準拠した XHTML フォームのレンダリング rendering-an-accessibility-guidelines-compliant-xhtml-form
アクセシビリティガイドラインに準拠する完全な HTML フォームをレンダリングできます。つまり、本文タグ内でレンダリングされる HTML フォームとは異なり、フォームは完全な HTML タグ内でレンダリングされます(完全な HTML ページではありません)。
フォームデータの検証 validating-form-data
フォームを HTML フォームとしてレンダリングする場合、フォームフィールドに対する検証ルールの使用を制限することをお勧めします。一部の検証ルールは、HTML フォームでサポートされていない可能性があります。例えば、MM-DD-YYYY という検証パターンを HTMLフォームとしてレンダリングされているフォームデザインの Date/Time
フィールドに適用する場合、日付が正しく入力されていても、適切に機能しません。ただし、この検証パターンは、PDF としてレンダリングされているフォームに対しては適切に機能します。
手順の概要 summary-of-steps
HTMLフォームをレンダリングするには、次の手順を実行します。
- プロジェクトファイルを含めます。
- Forms Client API オブジェクトを作成します。
- HTML の実行時オプションを設定します。
- HTML フォームをレンダリングします。
- フォームデータストリームをクライアントの Web ブラウザーに書き込みます。
プロジェクトファイルの組み込み
必要なファイルを開発プロジェクトに含めます。Java を使用してクライアントアプリケーションを作成する場合は、必要な JAR ファイルを含めます。Web サービスを使用している場合は、プロキシファイルを必ず含めてください。
Forms Client API オブジェクトを作成
データをプログラムによって PDF formClient API に読み込む前に、Form Data Integration サービスクライアントを作成する必要があります。サービスクライアントを作成する場合、サービスを呼び出すために必要な接続設定を定義します。
HTML 実行時オプションを設定
HTML フォームのレンダリング時に、HTML 実行時オプションを設定します。例えば、HTML フォームにツールバーを追加すると、クライアントコンピューター上の添付ファイルを選択したり、HTML フォームでレンダリングされた添付ファイルを取得したりできます。デフォルトでは、HTML ツールバーは無効になっています。ツールバーを HTML フォームに追加するには、実行時オプションをプログラムによって設定する必要があります。デフォルトでは、HTML ツールバーは次のボタンで構成されています。
Home
:アプリケーションの web ルートへのリンクを提供します。Upload
:現在のフォームに添付するファイルを選択するためのユーザーインターフェイスを提供します。Download
:添付ファイルを表示するユーザインタフェースを提供します。
HTML フォーム上に HTML ツールバーが表示されている場合、ユーザーは最大 10 個のファイルを選択して、フォームデータと共に送信することができます。ファイルが送信されると、Forms サービスはファイルを取得することができます。
フォームを HTML としてレンダリングする際に、ユーザーエージェント値を指定することができます。ユーザーエージェント値は、ブラウザーとシステムの情報を提供します。これはオプションの値で、空の文字列値を渡すことができます。Java API クイックスタートを使用した HTML フォームのレンダリングでは、ユーザーエージェント値を取得する方法、それを使用してフォームを HTML としてレンダリングする方法を示しています。
フォームデータの投稿先となる HTTP URL は、Forms サービスクライアント API を使用してターゲット URL を設定することで指定するか、XDP フォームデザインに含まれる「送信」ボタンで指定することもできます。ターゲット URL がフォームデザインで指定されている場合は、Forms サービスクライアント API を使用して値を設定しないでください。
HTML フォームをレンダリング
HTML フォームをレンダリングするには、Designer で作成され XDP ファイルとして保存されたフォームデザインを指定します。HTML 変換タイプを選択します。たとえば、Internet Explorer 5.0 以降のダイナミック HTML をレンダリングする HTML 変換タイプを指定できます。
HTML フォームのレンダリングには、他のフォームタイプのレンダリングに必要な URI 値などの値も必要です。
フォームデータストリームをクライアント web ブラウザーに書き込む
Forms サービスが HTML フォームをレンダリングすると、クライアント web ブラウザーに書き込む必要があるフォームデータストリームが返されます。クライアント web ブラウザーに書き込まれると、HTML フォームがユーザーに対して表示されます。
関連トピック
Java API を使用してフォームを HTML としてレンダリングする
Web サービス API を使用してフォームを HTML としてレンダリングする
Java API を使用してフォームを HTML としてレンダリングする render-a-form-as-html-using-the-java-api
Forms API (Java) を使用して HTML フォームをレンダリングします。
-
プロジェクトファイルを含める
クライアント JAR ファイル(adobe-forms-client.jar など)を Java プロジェクトのクラスパスに含めます。
-
Forms Client API オブジェクトの作成
- 接続プロパティを含む
ServiceClientFactory
オブジェクトを作成します。 - コンストラクターを使用して
ServiceClientFactory
オブジェクトを渡すことによって、FormsServiceClient
オブジェクトを作成します。
- 接続プロパティを含む
-
HTML 実行時オプションを設定
- コンストラクターを使用して
HTMLRenderSpec
オブジェクトを作成します。 - ツールバーを使用して HTML フォームをレンダリングするには、
HTMLRenderSpec
オブジェクトのsetHTMLToolbar
メソッドを呼び出して、HTMLToolbar
enum 値を渡します。例えば、HTML ツールバーを垂直位置に表示するには、HTMLToolbar.Vertical
を渡します。 - HTML フォームのロケール値を設定するには、
HTMLRenderSpec
オブジェクトのsetLocale
メソッドを呼び出して、ロケール値を指定する文字列値を渡します(これはオプション設定です)。 - 完全な HTML タグ内で HTML フォームをレンダリングするには、
HTMLRenderSpec
オブジェクトのsetOutputType
メソッドを呼び出して、OutputType.FullHTMLTags
を渡します(これはオプション設定です)。
note note NOTE StandAlone
オプションがtrue
で、ApplicationWebRoot
が AEM Forms をホストする J2EE アプリケーションサーバー以外を参照している場合、Forms は正常にレンダリングされません(ApplicationWebRoot
の値は、FormsServiceClient
オブジェクトの(Deprecated) renderHTMLForm
メソッドに渡されるURLSpec
オブジェクトを使用して指定します)。ApplicationWebRoot
が AEM Forms をホストするサーバーとは別のサーバーである場合、管理コンソールの web ルート URI の値を Forms の web アプリケーション URI 値として設定する必要があります。これを行うには、管理コンソールにログインして、サービス/Formsをクリックし、「 Web ルート URI 」を https://server-name:port/FormServer に設定します。次に、設定を保存します。 - コンストラクターを使用して
-
HTML フォームのレンダリング
FormsServiceClient
オブジェクトの(Deprecated) renderHTMLForm
メソッドを呼び出して、以下の値を渡します。- フォームデザイン名を指定する文字列値で、ファイル名の拡張子も含まれます。Forms アプリケーションの一部であるフォームデザインを参照する場合は、必ず次のような完全なパスを指定します。
Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
- HTML の環境設定タイプを指定する
TransformTo
enum 値。例えば、Internet Explorer 5.0 以降の動的 HTML と互換性のある HTML フォームをレンダリングするには、TransformTo.MSDHTML
を指定します。 - フォームに結合するデータを含む
com.adobe.idp.Document
オブジェクト。データを結合しない場合は、空のcom.adobe.idp.Document
オブジェクトを渡します。 - HTML の実行時オプションが保存する
HTMLRenderSpec
オブジェクト。 HTTP_USER_AGENT
ヘッダー値を指定する文字列値。例:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
- HTML フォームのレンダリングに必要な URI 値を保存する
URLSpec
オブジェクト。 - 添付ファイルを保存する
java.util.HashMap
オブジェクト。これはオプションのパラメーターで、フォームにファイルを添付しない場合にnull
を指定できます。
(Deprecated) renderHTMLForm
メソッドは、クライアント web ブラウザーに書き込むことができるフォームデータストリームを含むFormsResult
オブジェクトを返します。 - フォームデザイン名を指定する文字列値で、ファイル名の拡張子も含まれます。Forms アプリケーションの一部であるフォームデザインを参照する場合は、必ず次のような完全なパスを指定します。
-
フォームデータストリームをクライアント 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
オブジェクトのread
メソッドを呼び出してバイト配列を引数として渡すことによって、バイト配列を作成してフォームデータストリームを入力します。javax.servlet.ServletOutputStream
オブジェクトのwrite
メソッドを呼び出して、フォームデータストリームをクライアント web ブラウザーに送信します。バイト配列をwrite
メソッドに渡します。
関連トピック
Web サービス API を使用してフォームを HTML としてレンダリングする render-a-form-as-html-using-the-web-service-api
Forms API(web サービス)を使用して HTML フォームをレンダリングします。
-
プロジェクトファイルを含める
- Forms Service WSDL を使用する Java プロキシクラスを作成します。
- Java プロキシクラスをクラスパスに含めます。
-
Forms Client API オブジェクトの作成
FormsService
オブジェクトを作成し、認証値を設定します。 -
HTML 実行時オプションを設定
- コンストラクターを使用して
HTMLRenderSpec
オブジェクトを作成します。 - ツールバーを使用して HTML フォームをレンダリングするには、
HTMLRenderSpec
オブジェクトのsetHTMLToolbar
メソッドを呼び出して、HTMLToolbar
enum 値を渡します。例えば、HTML ツールバーを垂直位置に表示するには、HTMLToolbar.Vertical
を渡します。 - HTML フォームのロケール値を設定するには、
HTMLRenderSpec
オブジェクトのsetLocale
メソッドを呼び出し、ロケール値を指定する文字列値を渡します。詳しくは、AEM Forms API リファレンスを参照してください。 - 完全な HTML タグ内で HTML フォームをレンダリングするには、
HTMLRenderSpec
オブジェクトのsetOutputType
メソッドを呼び出してOutputType.FullHTMLTags
を渡します。
note note NOTE StandAlone
オプションがtrue
で、ApplicationWebRoot
が AEM Forms をホストする J2EE アプリケーションサーバー以外のサーバーを参照している場合、フォームは HTML で正常にレンダリングされません(ApplicationWebRoot
値はFormsServiceClient
オブジェクトの(Deprecated) renderHTMLForm
メソッドに渡されるURLSpec
オブジェクトを使用して指定されます)。ApplicationWebRoot
が AEM Forms をホストするサーバーとは別のサーバーである場合、管理コンソールの web ルート URI の値を Forms の web アプリケーション URI 値として設定する必要があります。これを行うには、管理コンソールにログインして、サービス/Formsをクリックし、「 Web ルート URI 」を https://server-name:port/FormServer に設定します。次に、設定を保存します。 - コンストラクターを使用して
-
HTML フォームのレンダリング
FormsService
オブジェクトの(Deprecated) renderHTMLForm
メソッドを呼び出して、以下の値を渡します。- フォームデザイン名を指定する文字列値で、ファイル名の拡張子も含まれます。Forms アプリケーションの一部であるフォームデザインを参照する場合は、必ず次のような完全なパスを指定します。
Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
- HTML の環境設定タイプを指定する
TransformTo
enum 値。例えば、Internet Explorer 5.0 以降の動的 HTML と互換性のある HTML フォームをレンダリングするには、TransformTo.MSDHTML
を指定します。 - フォームに結合するデータを含む
BLOB
オブジェクト。データを結合しない場合は、null
を渡します。(編集可能なレイアウトを使用した Forms の事前入力を参照してください)。 - HTML の実行時オプションを格納する
HTMLRenderSpec
オブジェクト。 HTTP_USER_AGENT
ヘッダー値を指定する文字列値(例:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
)。この値を設定しない場合は、空の文字列を渡します。- HTML フォームのレンダリングに必要な URI 値を格納する
URLSpec
オブジェクト。(URI 値の指定を参照してください)。 - 添付ファイルを格納する
java.util.HashMap
オブジェクト。これはオプションのパラメーターで、フォームにファイルを添付しない場合はnull
を指定できます。(フォームにファイルを添付するを参照してください)。 - メソッドによって設定される空の
com.adobe.idp.services.holders.BLOBHolder
オブジェクト。このパラメーター値には、レンダリングされたフォームが格納されます。 - メソッドによって設定される空の
com.adobe.idp.services.holders.BLOBHolder
オブジェクト。このパラメーターは出力 XML データを格納します。 - メソッドによって設定される空の
javax.xml.rpc.holders.LongHolder
オブジェクト。この引数は、フォームのページ数を保存します。 - メソッドによって設定される空の
javax.xml.rpc.holders.StringHolder
オブジェクト。この引数はロケール値を格納します。 - メソッドによって設定される空の
javax.xml.rpc.holders.StringHolder
オブジェクト。この引数は、使用される HTML レンダリング値を格納します。 - この操作の結果を格納する空の
com.adobe.idp.services.holders.FormsResultHolder
オブジェクト。
(Deprecated) renderHTMLForm
メソッドは、最後の引数値として渡されるcom.adobe.idp.services.holders.FormsResultHolder
オブジェクトに、クライアント web ブラウザーに書き込む必要のあるフォームデータストリームを入力します。 - フォームデザイン名を指定する文字列値で、ファイル名の拡張子も含まれます。Forms アプリケーションの一部であるフォームデザインを参照する場合は、必ず次のような完全なパスを指定します。
-
フォームデータストリームをクライアント 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
メソッドに渡します。
関連トピック
Base64 エンコーディングを使用した AEM Forms の呼び出し