使用権限を有効にしたFormsのレンダリング

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

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

メモ

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

メモ

次の使用権限を指定する場合は、XMLデータを使用してフォームを自動埋め込むことはできません。enableCommentsenableCommentsOnlineenableEmbeddedFiles、またはenableDigitalSignatures。 (「編集可能なレイアウトでFormsを自動埋め込む」を参照)。

メモ

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

手順の概要

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

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

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

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

FormsクライアントAPIオブジェクトの作成

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

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

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

使用権限を付与されたフォームのレンダリング

使用権限を付与されたフォームをレンダリングするには、使用権限のないフォームをレンダリングするのと同じアプリケーションロジックを使用します。 唯一の違いは、使用権限の実行時オプションがアプリケーションロジックに確実に含まれていることです。

メモ

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

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

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

関連トピック

Java APIを使用して権限を付与されたフォームをレンダリングする

WebサービスAPIを使用して権限を付与されたフォームをレンダリングする

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

接続プロパティの設定

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

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

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

Java APIを使用して権限を付与されたフォームをレンダリングする

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

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

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

  2. FormsクライアントAPIオブジェクトの作成

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

    • コンストラクタを使用して ReaderExtensionSpec オブジェクトを作成します。
    • ReaderExtensionSpecオブジェクトのsetReCredentialAliasメソッドを呼び出して秘密鍵証明書のエイリアスを指定し、エイリアス値を表すstring値を指定します。
    • 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オブジェクト'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を使用した使用権限付きフォームのレンダリング

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

接続プロパティの設定

WebサービスAPIを使用して、権限を付与されたフォームをレンダリングする

FormsAPI(Webサービス)を使用して、使用権限を付与されたフォームをレンダリングします。

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

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

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

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

    • コンストラクタを使用して ReaderExtensionSpec オブジェクトを作成します。
    • ReaderExtensionSpecオブジェクトのsetReCredentialAliasメソッドを呼び出して秘密鍵証明書のエイリアスを指定し、エイリアス値を表すstring値を指定します。
    • 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オブジェクトのコンテンツタイプを取得します。
    • 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メソッドに渡します。

関連トピック

使用権限を付与されたFormsのレンダリング

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