権限付きフォームのレンダリング rendering-rights-enabled-forms
Forms サービスでは、使用権限が適用されているフォームをレンダリングできます。 使用権限は、Acrobat ではデフォルトで利用できるが Adobe Reader では利用できない機能(フォームにコメントを追加する機能や、フォームフィールドにデータを入力してフォームを保存する機能など)に関連しています。 使用権限が適用されたフォームは、権限付きフォームと呼ばれます。 ユーザーは、権限付きフォームを Adobe Reader で開くことで、そのフォームで有効になっている操作を実行できます。
使用権限をフォームに適用するには、Acrobat Reader DC Extensions サービスが AEM Forms のインストール環境に含まれている必要があります。 また、使用権限を PDF ドキュメントに適用できる有効な資格情報が必要です。 つまり、権限付きフォームをレンダリングするには、Acrobat Reader DC Extensions サービスを適切に設定する必要があります。 (Acrobat Reader DC Extensions サービスについてを参照してください)。
enableComments、enableCommentsOnline、enableEmbeddedFiles または enableDigitalSignatures の使用権限を指定する場合、フォームに XML データを事前入力することはできません。 (編集可能なレイアウトを使用した Forms の事前入力を参照してください)。手順の概要 summary-of-steps
権限付きフォームをレンダリングするには、次のタスクを実行します。
- プロジェクトファイルを含めます。
- Forms Client API オブジェクトを作成します。
- 使用権限の実行時オプションを設定します。
- 権限付きフォームをレンダリングします。
- 権限付きフォームをクライアント web ブラウザーに書き込みます。
プロジェクトファイルを含める
必要なファイルを開発プロジェクトに含めます。 Java を使用してクライアントアプリケーションを作成する場合は、必要な JAR ファイルを含めます。 Web サービスを使用している場合は、プロキシファイルを必ず含めてください。
Forms Client API オブジェクトを作成
Forms Service Client API 操作をプログラムで実行する前に、Forms サービスクライアントを作成する必要があります。
使用権限の実行時オプションの設定
権限付きフォームをレンダリングするには、使用権限の実行時オプションを設定します。 使用権限をフォームに適用するために使用する資格情報のエイリアスも指定します。 エイリアス値を指定したら、フォームに適用する各使用権限を指定します。
権限付きフォームのレンダリング
権限付きフォームをレンダリングするには、使用権限のないフォームをレンダリングする場合と同じアプリケーションロジックを使用します。 唯一の違いは、使用権限の実行時オプションがアプリケーションロジックに含まれていることを確認する必要がある点です。
フォームデータストリームをクライアント web ブラウザーに書き込む
Forms サービスが権限付きフォームをレンダリングすると、クライアント web ブラウザーに書き込む必要があるフォームデータストリームが返されます。 クライアント web ブラウザーに書き込まれると、ユーザーはフォームを表示できます。 Adobe Reader で権限付きフォームを表示しているユーザーは、そのフォームで有効になっている操作を実行できます。
関連トピック
Java API を使用して権限付きフォームをレンダリングする
Java API を使用して権限付きフォームをレンダリングする render-rights-enabled-forms-using-the-java-api
Forms API(Java)を使用して、権限付きフォームをレンダリングします。
-
プロジェクトファイルを含める
クライアント JAR ファイル(adobe-forms-client.jar など)を Java プロジェクトのクラスパスに含めます。
-
Forms Client API オブジェクトの作成
- 接続プロパティを含む
ServiceClientFactoryオブジェクトを作成します。 - コンストラクターを使用して
ServiceClientFactoryオブジェクトを渡すことにより、FormsServiceClientオブジェクトを作成します。
- 接続プロパティを含む
-
使用権限の実行時オプションを設定する
- コンストラクタを使用して
ReaderExtensionSpecオブジェクトを作成します。 ReaderExtensionSpecオブジェクトのsetReCredentialAliasメソッドを呼び出して、資格情報のエイリアスを指定し、そのエイリアスの値を表す文字列値を指定します。ReaderExtensionSpecオブジェクトに属する対応するメソッドを呼び出して、各使用権限を設定します。 ただし、使用権限を設定できるのは、参照する秘密鍵証明書でその権限が与えられている場合のみです。 つまり、秘密鍵証明書で設定が許可されていない場合は、使用権限を設定できません。 以下に例を示します。 ユーザーがフォームのフィールドに入力して保存できる使用権を設定するには、ReaderExtensionSpecオブジェクトのsetReFillInメソッドを呼び出し、trueを渡します。
note note NOTE ReaderExtensionSpecオブジェクトのsetReCredentialPasswordメソッドを呼び出す必要はありません。 このメソッドは、Forms サービスでは使用されません。 - コンストラクタを使用して
-
権限設定されたフォームをレンダリングする
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オブジェクトを返します。 - フォームデザイン名を指定する文字列値で、ファイル名の拡張子も含まれます。 Forms アプリケーションの一部であるフォームデザインを参照する場合は、必ず次のような完全なパスを指定します。
-
フォームデータストリームをクライアント web ブラウザーに書き込む
FormsResultオブジェクトの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メソッドに渡します。
関連トピック
Web サービス API を利用したライツ対応フォームのレンダリング render-rights-enabled-forms-using-the-web-service-api
Forms API(web サービス)を使用して、権限が有効なフォームをレンダリングします。
-
プロジェクトファイルを含める
- Forms Service WSDL を使用する Java プロキシクラスを作成します。
- Java プロキシクラスをクラスパスに含めます。
-
Forms Client API オブジェクトの作成
FormsServiceオブジェクトを作成し、認証値を設定します。 -
使用権限の実行時オプションを設定する
- コンストラクタを使用して
ReaderExtensionSpecオブジェクトを作成します。 ReaderExtensionSpecオブジェクトのsetReCredentialAliasメソッドを呼び出して、資格情報のエイリアスを指定し、そのエイリアスの値を表す文字列値を指定します。ReaderExtensionSpecオブジェクトに属する対応するメソッドを呼び出して、各使用権限を設定します。 ただし、使用権限を設定できるのは、参照する秘密鍵証明書でその権限が与えられている場合のみです。 つまり、秘密鍵証明書で設定が許可されていない場合は、使用権限を設定できません。 ユーザーがフォームフィールドに入力し、フォームを保存できる使用権限を設定するには、ReaderExtensionSpecオブジェクトのsetReFillInメソッドを呼び出し、trueを渡します。
- コンストラクタを使用して
-
権限設定されたフォームをレンダリングする
FormsServiceオブジェクトのrenderPDFFormWithUsageRightsメソッドを呼び出して、以下の値を渡します。- フォームデザイン名を指定する文字列値で、ファイル名の拡張子も含まれます。 Forms アプリケーションの一部であるフォームデザインを参照する場合は、必ず次のような完全なパスを指定します。
Applications/FormsApplication/1.0/FormsFolder/Loan.xdp - フォームと結合するデータを含む
BLOBオブジェクトです。 フォームでデータを結合しない場合は、空の XML データソースを基にしたBLOBオブジェクトを渡す必要があります。 null のBLOBオブジェクトを渡すことはできません。このようなオブジェクトを渡すと例外が発生します。 - ランタイムオプションを格納する
PDFFormRenderSpecオブジェクト。 - 使用権限の実行時オプションを格納する
ReaderExtensionSpecオブジェクトです。 - Forms サービスで必要な URI 値を格納する
URLSpecオブジェクトです。
renderPDFFormWithUsageRightsメソッドは、 クライアント web ブラウザーに書き込む必要があるフォームデータストリームを含んだFormsResultオブジェクトを返します。 - フォームデザイン名を指定する文字列値で、ファイル名の拡張子も含まれます。 Forms アプリケーションの一部であるフォームデザインを参照する場合は、必ず次のような完全なパスを指定します。
-
フォームデータストリームをクライアント 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メソッドに渡します。
関連トピック
Base64 エンコーディングを使用した AEM Forms の呼び出し