権限付きフォームのレンダリング

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

使用権限をフォームに適用するには、Acrobat Reader DC Extensions サービスが AEM forms のインストール環境に含まれている必要があります。また、使用権限を PDF ドキュメントに適用できる有効な資格情報が必要です。つまり、権限付きフォームをレンダリングするには、Acrobat Reader DC Extensions サービスを適切に設定する必要があります。(Acrobat Reader DC Extensions サービスについてを参照してください)。

メモ

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

メモ

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

メモ

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

手順の概要

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

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

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

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

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

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

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

権限付きフォームをレンダリングするには、使用権限の実行時オプションを設定する必要があります。また、使用権限をフォームに適用するために使用する資格情報のエイリアスも指定する必要があります。エイリアス値を指定したら、フォームに適用する各使用権限を指定します。

権限付きフォームのレンダリング

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

メモ

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

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

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

関連トピック

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

Web サービス API を利用したライツ対応フォームのレンダリング

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

接続プロパティの設定

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

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

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

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

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

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

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

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

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

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

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

  4. 権限設定されたフォームをレンダリングする

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

    • フォームデザイン名を指定する文字列値で、ファイル名の拡張子も含まれます。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 オブジェクトを作成します。
    • com.adobe.idp.Documentオブジェクトの getContentType メソッドを呼び出して、そのコンテンツタイプを取得します。
    • 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 を利用したライツ対応フォームのレンダリング

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

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

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

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

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

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

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

    • フォームデザイン名を指定する文字列値で、ファイル名の拡張子も含まれます。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 オブジェクトを作成します。
    • BLOB オ ブジェクトの getContentType メソッドを呼び出して、そのコンテンツタイプを取得します。
    • 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 の呼び出し

このページ