AEM Formsサービスは、ユーザーから情報を収集するために、クライアントデバイス(通常はWebブラウザー)に対してインタラクティブなPDF formsをレンダリングします。 インタラクティブPDFフォームは、通常、XDPファイルとして保存され、Designerで作成されるフォームデザインに基づいています。 AEM Forms時点では、フォームデザインを含むcom.adobe.idp.Document
オブジェクトをFormsサービスに渡すことができます。 次に、Formsサービスは、com.adobe.idp.Document
オブジェクト内のフォームデザインをレンダリングします。
com.adobe.idp.Document
オブジェクトをFormsサービスに渡す利点は、他のサービス操作がcom.adobe.idp.Document
インスタンスを返すことです。 つまり、別のサービス操作からcom.adobe.idp.Document
インスタンスを取得し、それをレンダリングできます。 例えば、次の図に示すように、XDPファイルが/Company Home/Form Designs
という名前のContent Services(非推奨)ノードに保存されているとします。
プログラムによってContent Services(非推奨)(非推奨)からLoan.xdpを取得し、com.adobe.idp.Document
オブジェクト内のFormsサービスにXDPファイルを渡すことができます。
Formsサービスの詳細については、『AEM Formsのサービスリファレンス』を参照してください。
Content Services(非推奨)から取得したドキュメントをFormsサービスに渡すには、次のタスクを実行します。
プロジェクトファイルを含める
必要なファイルを開発プロジェクトに含めます。 Javaを使用してクライアントアプリケーションを作成する場合は、必要なJARファイルを含めます。 Webサービスを使用している場合は、プロキシファイルを含めます。
Formsとドキュメント管理クライアントAPIオブジェクトの作成
プログラムでFormsサービスAPI操作を実行する前に、FormsクライアントAPIオブジェクトを作成します。 また、このワークフローはContent Services(非推奨)からXDPファイルを取得するので、ドキュメント管理APIオブジェクトを作成します。
Content Services(非推奨)からフォームデザインを取得する
JavaまたはWebサービスAPIを使用して、Content Services(非推奨)からXDPファイルを取得します。 XDPファイルは、com.adobe.idp.Document
インスタンス(Webサービスを使用している場合はBLOB
インスタンス)内で返されます。 その後、com.adobe.idp.Document
インスタンスをFormsサービスに渡すことができます。
インタラクティブPDFフォームのレンダリング
インタラクティブフォームをレンダリングするには、Content Services(非推奨)から返されたcom.adobe.idp.Document
インスタンスをFormsサービスに渡します。
フォームデザインを含むcom.adobe.idp.Document
をFormsサービスに渡すことができます。 renderPDFForm2
とrenderHTMLForm2
という2つの新しいメソッドは、フォームデザインを含むcom.adobe.idp.Document
オブジェクトを受け入れます。
フォームデータストリームを使用したアクションの実行
クライアントアプリケーションの種類に応じて、フォームをクライアントのWebブラウザーに書き込んだり、フォームをPDFファイルとして保存したりできます。 Webベースのアプリケーションは、通常、フォームをWebブラウザーに書き込みます。 ただし、通常、デスクトップアプリケーションはフォームをPDFファイルとして保存します。
関連トピック
FormsサービスおよびContent Services(非推奨)API(Java)を使用して、Content Services(非推奨)から取得したドキュメントを渡します。
プロジェクトファイルを含める
Javaプロジェクトのクラスパスに、adobe-forms-client.jarやadobe-contentservices-client.jarなどのクライアントJARファイルを含めます。
Formsとドキュメント管理クライアントAPIオブジェクトの作成
ServiceClientFactory
オブジェクトを作成します。(接続プロパティの設定を参照。)FormsServiceClient
オブジェクトを渡して、ServiceClientFactory
オブジェクトを作成します。DocumentManagementServiceClientImpl
オブジェクトを渡すことによって、ServiceClientFactory
オブジェクトを作成します。Content Services(非推奨)からフォームデザインを取得する
DocumentManagementServiceClientImpl
オブジェクトのretrieveContent
メソッドを呼び出し、次の値を渡します。
SpacesStore
です。 この値は必須のパラメータです。/Company Home/Form Designs/Loan.xdp
)。 この値は必須のパラメータです。retrieveContent
メソッドは、XDPファイルを含むCRCResult
オブジェクトを返します。 CRCResult
オブジェクトのgetDocument
メソッドを呼び出して、com.adobe.idp.Document
インスタンスを取得します。
インタラクティブPDFフォームのレンダリング
FormsServiceClient
オブジェクトのrenderPDFForm2
メソッドを呼び出し、次の値を渡します。
com.adobe.idp.Document
オブジェクト。com.adobe.idp.Document
オブジェクト。 データをマージしない場合は、空のcom.adobe.idp.Document
オブジェクトを渡します。PDFFormRenderSpec
オブジェクト。 この値はオプションのパラメーターです。実行時のオプションを指定しない場合は、null
を指定できます。URLSpec
オブジェクト。 この値はオプションのパラメータで、null
を指定できます。java.util.HashMap
オブジェクト。 この値はオプションのパラメーターです。フォームにファイルを添付しない場合は、null
を指定できます。renderPDFForm
メソッドは、クライアントのWebブラウザーに書き込む必要があるフォームデータストリームを含むFormsResult
オブジェクトを返します。
フォームデータストリームを使用したアクションの実行
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を使用してFormsサービスにドキュメントを渡す
FormsサービスとContent Services(非推奨)API(Webサービス)を使用して、Content Services(非推奨)から取得したドキュメントを渡します。
プロジェクトファイルを含める
MTOMを使用するMicrosoft .NETプロジェクトを作成します。 このクライアントアプリケーションは2つのAEM Formsサービスを呼び出すので、2つのサービス参照を作成します。 Formsサービスに関連付けられたサービス参照には、次のWSDL定義を使用します。http://localhost:8080/soap/services/FormsService?WSDL&lc_version=9.0.1
.
ドキュメント管理サービスに関連付けられたサービス参照に対して、次のWSDL定義を使用します。http://localhost:8080/soap/services/DocumentManagementService?WSDL&lc_version=9.0.1
.
BLOB
データ型は両方のサービス参照に共通なので、BLOB
データ型を使用する場合は完全に修飾します。 対応するWebサービスクイック開始では、すべてのBLOB
インスタンスが完全修飾されます。
localhost
を、AEM FormsをホストするサーバーのIPアドレスに置き換えます。
Formsとドキュメント管理クライアントAPIオブジェクトの作成
FormsServiceClient
オブジェクトを作成するには、そのデフォルトのコンストラクタを使用します。
System.ServiceModel.EndpointAddress
コンストラクターを使用してFormsServiceClient.Endpoint.Address
オブジェクトを作成します。 WSDLをAEM Formsサービスに指定するstring値を渡します(例:http://localhost:8080/soap/services/FormsService?WSDL
)。 lc_version
属性を使用する必要はありません。 この属性は、サービス参照を作成する場合に使用されます)。
FormsServiceClient.Endpoint.Binding
フィールドの値を取得してSystem.ServiceModel.BasicHttpBinding
オブジェクトを作成します。 戻り値を BasicHttpBinding
にキャストします。
System.ServiceModel.BasicHttpBinding
オブジェクトのMessageEncoding
フィールドをWSMessageEncoding.Mtom
に設定します。 この値により、MTOMが使用されます。
次のタスクを実行して、基本的なHTTP認証を有効にします。
FormsServiceClient.ClientCredentials.UserName.UserName
に割り当てます。FormsServiceClient.ClientCredentials.UserName.Password
に割り当てます。HttpClientCredentialType.Basic
をフィールドBasicHttpBindingSecurity.Transport.ClientCredentialType
に割り当てます。定数値BasicHttpSecurityMode.TransportCredentialOnly
をフィールドBasicHttpBindingSecurity.Security.Mode
に割り当てます。
DocumentManagementServiceClient
サービスクライアントに対してこの手順を繰り返します。
Content Services(非推奨)からフォームデザインを取得する
DocumentManagementServiceClient
オブジェクトのretrieveContent
メソッドを呼び出し、次の値を渡して、コンテンツを取得します。
SpacesStore
です。 この値は必須のパラメータです。/Company Home/Form Designs/Loan.xdp
)。 この値は必須のパラメータです。BLOB
出力パラメーター。 この出力パラメーターを使用して、コンテンツを取得できます。ServiceReference1.MyMapOf_xsd_string_To_xsd_anyType
出力パラメーター。CRCResult
出力パラメーター。 このオブジェクトを使用する代わりに、BLOB
出力パラメーターを使用してコンテンツを取得できます。インタラクティブPDFフォームのレンダリング
FormsServiceClient
オブジェクトのrenderPDFForm2
メソッドを呼び出し、次の値を渡します。
BLOB
オブジェクト。BLOB
オブジェクト。 データをマージしない場合は、空のBLOB
オブジェクトを渡します。PDFFormRenderSpec
オブジェクト。 この値はオプションのパラメーターです。実行時のオプションを指定しない場合は、null
を指定できます。URLSpec
オブジェクト。 この値はオプションのパラメータで、null
を指定できます。Map
オブジェクト。 この値はオプションのパラメーターです。フォームにファイルを添付しない場合は、null
を指定できます。.
の保存に使用されるFormsResult
出力パラメーターrenderPDFForm2
メソッドは、インタラクティブPDFフォームを含むFormsResult
オブジェクトを返します。
フォームデータストリームを使用したアクションの実行
FormsResult
オブジェクトのoutputContent
フィールドの値を取得して、フォームデータを含むBLOB
オブジェクトを作成します。System.IO.FileStream
オブジェクトを作成します。 インタラクティブPDFドキュメントーのファイルの場所とファイルを開くモードを表すstring値を渡します。FormsResult
オブジェクトから取得したBLOB
オブジェクトの内容を格納するバイト配列を作成します。 BLOB
オブジェクトのMTOM
データメンバの値を取得して、バイト配列を入力します。System.IO.FileStream
オブジェクトを渡し、System.IO.BinaryWriter
オブジェクトを作成します。System.IO.BinaryWriter
オブジェクトのWrite
メソッドを呼び出し、バイト配列を渡すことで、バイト配列の内容をPDFファイルに書き込みます。関連トピック