カスタムCSSファイルを使用したHTMLFormsのレンダリング

Formsサービスは、WebブラウザーからのHTTP要求に応じてHTMLフォームをレンダリングします。 HTMLフォームをレンダリングする場合、FormsサービスはカスタムCSSファイルを参照できます。 Formsサービスを使用してHTMLフォームをレンダリングする場合、ビジネス要件に合ったカスタムCSSファイルを作成し、そのCSSファイルを参照することができます。

Formsサービスは、カスタムCSSファイルをサイレントに解析します。 つまり、Formsサービスは、カスタムCSSファイルがCSS標準に準拠していない場合に発生する可能性があるエラーを報告しません。 この場合、Formsサービスはスタイルを無視し、CSSファイル内の残りのスタイルを使用し続けます。

次のリストは、カスタムCSSファイルでサポートされるスタイルを指定します。

  • クラスレベルのセレクタースタイルのペア:カスタムCSSファイルに存在する場合、HTMLフォームでクラススタイルとして使用されるセレクターが使用されます。未使用のクラススタイルは無視されます。
  • 識別子レベルのセレクタースタイルのペア:HTMLフォームで使用される場合は、すべての識別子スタイルが使用されます。
  • 要素レベルのセレクタースタイルのペア:HTMLフォームで使用される場合は、すべての要素スタイルが使用されます。
  • Style Priority:スタイルの優先度(重要など)はサポートされ、カスタムCSSファイルで使用できます。
  • メディアの種類:1つ以上のセレクタースタイルのペアを@mediaスタイルでラップして、メディアの種類を定義できます。Formsサービスは、指定されたメディアの種類がサポートされているかどうかを確認しません。 カスタムCSSファイルで指定されたメディアタイプがHTMLフォームに結合されます。

FormsIVSアプリケーションを使用して、サンプルのCSSファイルを取得できます。 フォームをアップロードし、Test Form Designページでフォームを選択して、「GenerateCSS」をクリックします。 ボタンをクリックする前に、HTML変換タイプを設定する必要はありません。 次に、「保存」を選択します。 このCSSファイルは、ビジネス要件に合わせて編集できます。

メモ

カスタムCSSファイルを使用するHTMLフォームをレンダリングする前に、HTMLフォームのレンダリングについてしっかりと理解しておくことが重要です。 (HTMLとしてのFormsのレンダリングを参照)。

メモ

Formsサービスの詳細については、『AEM Formsのサービスリファレンス』を参照してください。

手順の概要

CSSファイルを使用するHTMLフォームをレンダリングするには、次のタスクを実行します。

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

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

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

FormsJava APIオブジェクトの作成

Formsサービスがサポートする操作をプログラムで実行する前に、Formsクライアントオブジェクトを作成する必要があります。

CSSファイルの参照

カスタムCSSファイルを使用するHTMLフォームをレンダリングするには、既存のCSSファイルを必ず参照してください。

HTMLフォームのレンダリング

HTMLフォームをレンダリングするには、Designerで作成し、XDPファイルとして保存するフォームデザインを指定する必要があります。 また、HTML変換タイプを選択する必要もあります。 例えば、Internet Explorer 5.0以降用の動的HTMLをレンダリングするHTML変換タイプを指定できます。

HTMLフォームのレンダリングには、他のフォームタイプのレンダリングに必要なURI値などの値も必要です。

フォームデータストリームをクライアントのWebブラウザーに書き込みます

Formsサービスは、HTMLフォームをレンダリングするときにフォームデータストリームを返します。このストリームをクライアントのWebブラウザーに書き込み、HTMLフォームをユーザーに表示させる必要があります。

関連トピック

Java APIを使用してCSSファイルを使用するHTMLフォームをレンダリングする

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

接続プロパティの設定

FormsサービスAPIクイック開始

インタラクティブPDF formsのレンダリング

FormsをHTMLとしてレンダリング

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

Java APIを使用してCSSファイルを使用するHTMLフォームをレンダリングする

FormsAPI(Java)を使用して、カスタムCSSファイルを使用するHTMLフォームをレンダリングします。

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

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

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

    • 接続プロパティを含む ServiceClientFactory オブジェクトを作成します。
    • コンストラクタを使用して FormsServiceClient オブジェクトを渡すことによって、ServiceClientFactory オブジェクトを作成します。
  3. CSSファイルの参照

    • コンストラクターを使用してHTMLRenderSpecオブジェクトを作成します。
    • カスタムCSSファイルを使用するHTMLフォームをレンダリングするには、HTMLRenderSpecオブジェクトのsetCustomCSSURIメソッドを呼び出し、CSSファイルの場所と名前を指定する文字列値を渡します。
  4. HTMLフォームのレンダリング

    FormsServiceClientオブジェクトの(Deprecated) (Deprecated) renderHTMLFormメソッドを呼び出し、次の値を渡します。

    • ファイル名拡張子を含むフォームデザイン名を指定するstring値。 Formsアプリケーションの一部であるフォームデザインを参照する場合は、Applications/FormsApplication/1.0/FormsFolder/Loan.xdpなど、完全なパスを必ず指定してください。
    • HTML環境設定の種類を指定するTransformTo列挙値。 例えば、Internet Explorer 5.0以降用の動的HTMLと互換性のあるHTMLフォームをレンダリングするには、TransformTo.MSDHTMLを指定します。
    • フォームとマージするデータを含むcom.adobe.idp.Documentオブジェクト。 データをマージしない場合は、空のcom.adobe.idp.Documentオブジェクトを渡します。
    • HTML実行時オプションを格納するHTMLRenderSpecオブジェクト。
    • HTTP_USER_AGENTヘッダー値を指定するstring値(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オブジェクトを返します。

  5. フォームデータストリームをクライアントのWebブラウザーに書き込みます

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

関連トピック

カスタムCSSファイルを使用したHTMLFormsのレンダリング

クイック開始(SOAPモード):Java APIを使用したCSSファイルを使用したHTMLフォームのレンダリング

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

接続プロパティの設定

WebサービスAPIを使用してCSSファイルを使用するHTMLフォームをレンダリングする

FormsAPI(Webサービス)を使用して、カスタムCSSファイルを使用するHTMLフォームをレンダリングします。

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

    • FormsサービスのWSDLを使用するJavaプロキシクラスを作成します。
    • クラスパスにJavaプロキシクラスを含めます。
  2. FormsJava APIオブジェクトの作成

    FormsServiceオブジェクトを作成し、認証値を設定します。

  3. CSSファイルの参照

    • コンストラクターを使用してHTMLRenderSpecオブジェクトを作成します。
    • カスタムCSSファイルを使用するHTMLフォームをレンダリングするには、HTMLRenderSpecオブジェクトのsetCustomCSSURIメソッドを呼び出し、CSSファイルの場所と名前を指定する文字列値を渡します。
  4. HTMLフォームのレンダリング

    FormsServiceオブジェクトの(Deprecated) renderHTMLFormメソッドを呼び出し、次の値を渡します。

    • ファイル名拡張子を含むフォームデザイン名を指定するstring値。 Formsアプリケーションの一部であるフォームデザインを参照する場合は、Applications/FormsApplication/1.0/FormsFolder/Loan.xdpなど、完全なパスを必ず指定してください。
    • HTML環境設定の種類を指定するTransformTo列挙値。 例えば、Internet Explorer 5.0以降用の動的HTMLと互換性のあるHTMLフォームをレンダリングするには、TransformTo.MSDHTMLを指定します。
    • フォームとマージするデータを含むBLOBオブジェクト。 データを結合したくない場合は、nullを渡します。 (「編集可能なレイアウトでFormsを自動埋め込む」を参照)。
    • HTML実行時オプションを格納するHTMLRenderSpecオブジェクト。
    • HTTP_USER_AGENTヘッダー値を指定するstring値(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メソッドによって入力される空のcom.adobe.idp.services.holders.BLOBHolderオブジェクト。 このパラメーター値は、レンダリングされたフォームを保存します。
    • (Deprecated) renderHTMLFormメソッドによって入力される空のcom.adobe.idp.services.holders.BLOBHolderオブジェクト。 このパラメーターは、出力XMLデータを格納します。
    • (Deprecated) renderHTMLFormメソッドによって入力される空のjavax.xml.rpc.holders.LongHolderオブジェクト。 この引数は、フォームのページ数を格納します。
    • (Deprecated) renderHTMLFormメソッドによって入力される空のjavax.xml.rpc.holders.StringHolderオブジェクト。 この引数はロケールの値を格納します。
    • (Deprecated) renderHTMLFormメソッドによって入力される空のjavax.xml.rpc.holders.StringHolderオブジェクト。 この引数は、使用されるHTMLレンダリング値を格納します。
    • この操作の結果を含む空のcom.adobe.idp.services.holders.FormsResultHolderオブジェクトです。

    (Deprecated) renderHTMLFormメソッドは、最後の引数値として渡されるcom.adobe.idp.services.holders.FormsResultHolderオブジェクトに、クライアントWebブラウザーに書き込む必要のあるフォームデータストリームを入力します。

  5. フォームデータストリームをクライアントの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メソッドに渡します。

関連トピック

カスタムCSSファイルを使用したHTMLFormsのレンダリング

Base64エンコーディングを使用したAEM Formsの呼び出し

このページ

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now