権限付きフォームのレンダリング 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 サービス 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
メソッドを呼び出して、javax.servlet.ServletOutputStream
オブジェクトを作成します。このオブジェクトは、フォームデータストリームをクライアント web ブラウザーに書き込むために使用されます。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 の呼び出し