権限が有効なFormsのレンダリング

Formsサービスは、使用権限が適用されたフォームをレンダリングできます。 使用権限は、Acrobat ではデフォルトで利用できるが Adobe Reader では利用できない機能(フォームにコメントを追加する機能や、フォームフィールドにデータを入力してフォームを保存する機能など)に関連しています。使用権限が適用されているFormsは、使用権限を付与されたフォームと呼ばれます。 権限を付与されたフォームをAdobe Readerで開いたユーザーは、そのフォームに対して有効になっている操作を実行できます。

フォームに使用権限を適用するには、 Acrobat Reader DC ExtensionsサービスがAEM formsインストールに含まれている必要があります。 また、PDFドキュメントに使用権限を適用できる有効な秘密鍵証明書が必要です。 つまり、権限を付与されたフォームをレンダリングする前に、Acrobat Reader DC Extensionsサービスを適切に設定する必要があります。 (Acrobat Reader DC Extensions Serviceについてを参照)。

メモ

使用権限を含むフォームをレンダリングするには、PDFファイルではなくXDPファイルを入力として使用する必要があります。 PDFファイルを入力として使用する場合、フォームは引き続きレンダリングされます。ただし、権限が有効なフォームにはなりません。

メモ

次の使用権限を指定する場合、XMLデータを使用してフォームに事前入力することはできません。enableCommentsenableCommentsOnlineenableEmbeddedFiles、またはenableDigitalSignatures。 (編集可能なレイアウトを使用したFormsの事前入力を参照)。

メモ

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

手順の概要

権限を付与されたフォームをレンダリングするには、次のタスクを実行します。

  1. プロジェクトファイルを含めます。
  2. Forms Client APIオブジェクトを作成します。
  3. 使用権限の実行時オプションを設定します。
  4. 権限が有効なフォームをレンダリングします。
  5. 権限を付与されたフォームをクライアントWebブラウザーに書き込みます。

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

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

Forms Client APIオブジェクトの作成

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

使用権限の実行時オプションの設定

使用権限を付与されたフォームをレンダリングするには、使用権限の実行時オプションを設定する必要があります。 また、使用権限をフォームに適用するために使用される秘密鍵証明書のエイリアスも指定する必要があります。 エイリアス値を指定した後、フォームに適用する各使用権限を指定します。

権限が有効なフォームのレンダリング

権限を付与されたフォームをレンダリングするには、使用権限を付与せずにフォームをレンダリングする場合と同じアプリケーションロジックを使用します。 唯一の違いは、使用権限のランタイムオプションがアプリケーションロジックに含まれていることを確認する必要があることです。

メモ

Forms WebサービスAPIを使用して権限を付与されたフォームをレンダリングする場合、フォームにファイルを添付することはできません。

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

Formsサービスは、権限を付与されたフォームをレンダリングする際に、クライアントのWebブラウザーに書き込む必要があるフォームデータストリームを返します。 クライアントのWebブラウザーに書き込まれると、フォームはユーザーに表示されます。 Adobe Readerで権限が付与されたフォームを表示しているユーザーは、そのフォームに対して有効な操作を実行できます。

関連トピック

Java APIを使用した権限が有効なフォームのレンダリング

WebサービスAPIを使用した、権限が有効なフォームのレンダリング

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

接続プロパティの設定

FormsサービスAPIのクイックスタート

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

Forms

Java APIを使用して権限が有効なフォームをレンダリングする

Forms API(Java)を使用して、権限を付与されたフォームをレンダリングします。

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

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

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

    • 接続プロパティを含む ServiceClientFactory オブジェクトを作成します。
    • コンストラクターを使用してFormsServiceClientオブジェクトを渡し、ServiceClientFactoryオブジェクトを作成します。
  3. 使用権限の実行時オプションの設定

    • コンストラクタを使用して ReaderExtensionSpec オブジェクトを作成します。
    • ReaderExtensionSpecオブジェクトのsetReCredentialAliasメソッドを呼び出して秘密鍵証明書のエイリアスを指定し、エイリアス値を表す文字列値を指定します。
    • ReaderExtensionSpecオブジェクトに属する対応するメソッドを呼び出して、各使用権を設定します。 ただし、使用権限を設定できるのは、参照する秘密鍵証明書で許可されている場合のみです。 つまり、秘密鍵証明書で設定が許可されていない場合は、使用権限を設定できません。 例: ユーザーがフォームフィールドに入力してフォームを保存できる使用権限を設定するには、ReaderExtensionSpecオブジェクトのsetReFillInメソッドを呼び出し、trueを渡します。
    メモ

    ReaderExtensionSpecオブジェクトのsetReCredentialPasswordメソッドを呼び出す必要はありません。 このメソッドは、Formsサービスでは使用されません。

  4. 権限が有効なフォームのレンダリング

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

    • ファイル名拡張子を含むフォームデザイン名を指定するstring値。 Formsアプリケーションの一部であるフォームデザインを参照する場合は、必ずApplications/FormsApplication/1.0/FormsFolder/Loan.xdpのように完全なパスを指定してください。
    • フォームとマージするデータを含むcom.adobe.idp.Documentオブジェクト。 データを結合しない場合は、空のcom.adobe.idp.Documentオブジェクトを渡します。
    • 実行時オプションを格納するPDFFormRenderSpecオブジェクト。
    • 使用権限のランタイムオプションを格納するReaderExtensionSpecオブジェクト。
    • Formsサービスに必要なURI値を含むURLSpecオブジェクト。

    renderPDFFormWithUsageRightsメソッドは、クライアントの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.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を使用した権限を付与されたフォームのレンダリング

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

接続プロパティの設定

WebサービスAPIを使用して、権限が有効なフォームをレンダリングする

Forms API(Webサービス)を使用して、権限が有効なフォームをレンダリングします。

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

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

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

  3. 使用権限の実行時オプションの設定

    • コンストラクタを使用して ReaderExtensionSpec オブジェクトを作成します。
    • ReaderExtensionSpecオブジェクトのsetReCredentialAliasメソッドを呼び出して秘密鍵証明書のエイリアスを指定し、エイリアス値を表す文字列値を指定します。
    • ReaderExtensionSpecオブジェクトに属する対応するメソッドを呼び出して、各使用権を設定します。 ただし、使用権限を設定できるのは、参照する秘密鍵証明書で許可されている場合のみです。 つまり、秘密鍵証明書で設定が許可されていない場合は、使用権限を設定できません。 ユーザーがフォームフィールドに入力してフォームを保存できる使用権限を設定するには、ReaderExtensionSpecオブジェクトのsetReFillInメソッドを呼び出してtrueを渡します。
  4. 権限が有効なフォームのレンダリング

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

    • ファイル名拡張子を含むフォームデザイン名を指定するstring値。 Formsアプリケーションの一部であるフォームデザインを参照する場合は、必ずApplications/FormsApplication/1.0/FormsFolder/Loan.xdpのように完全なパスを指定してください。
    • フォームとマージするデータを含むBLOBオブジェクト。 データをフォームとマージしない場合は、空のXMLデータソースに基づくBLOBオブジェクトを渡す必要があります。 nullのBLOBオブジェクトを渡すことはできません。それ以外の場合は、例外がスローされます。
    • 実行時オプションを格納するPDFFormRenderSpecオブジェクト。
    • 使用権限のランタイムオプションを格納するReaderExtensionSpecオブジェクト。
    • Formsサービスに必要なURI値を含むURLSpecオブジェクト。

    renderPDFFormWithUsageRightsメソッドは、クライアントのWebブラウザーに書き込む必要があるフォームデータストリームを含むFormsResultオブジェクトを返します。

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

    • 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メソッドにバイト配列を渡します。

関連トピック

レンダリング権限が有効なForms

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

このページ