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

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

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

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

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

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

メモ

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

メモ

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

手順の概要

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

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

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

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

Forms Java 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

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

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

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

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

  2. Forms Java 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オブジェクトのgetOutputContentメソッドを呼び出して、com.adobe.idp.Documentオブジェクトを作成します。
    • getContentTypeメソッドを呼び出して、com.adobe.idp.Documentオブジェクトのコンテンツタイプを取得します。
    • setContentTypeメソッドを呼び出し、com.adobe.idp.Documentオブジェクトのコンテンツタイプを渡すことで、javax.servlet.http.HttpServletResponseオブジェクトのコンテンツタイプを設定します。
    • 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ファイルを使用したHTML Formsのレンダリング

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

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

接続プロパティの設定

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

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

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

    • FormsサービスのWSDLを使用するJavaプロキシクラスを作成します。
    • クラスパスにJavaプロキシクラスを含めます。
  2. Forms Java 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オブジェクトのコンテンツタイプを取得します。
    • setContentTypeメソッドを呼び出し、BLOBオブジェクトのコンテンツタイプを渡すことで、javax.servlet.http.HttpServletResponseオブジェクトのコンテンツタイプを設定します。
    • javax.servlet.http.HttpServletResponseオブジェクトのgetOutputStreamメソッドを呼び出して、フォームデータストリームをクライアントWebブラウザーに書き込むためのjavax.servlet.ServletOutputStreamオブジェクトを作成します。
    • バイト配列を作成し、BLOBオブジェクトのgetBinaryDataメソッドを呼び出してそれを設定します。 このタスクは、FormsResultオブジェクトの内容をバイト配列に割り当てます。
    • javax.servlet.http.HttpServletResponseオブジェクトのwriteメソッドを呼び出して、フォームデータストリームをクライアントWebブラウザーに送信します。 writeメソッドにバイト配列を渡します。

関連トピック

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

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

このページ