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