Java API を使用して Forms サービスにドキュメントを渡す

Forms サービスとコンテンツサービス(非推奨)API (Java) を使用して、コンテンツサービス(非推奨)から取得したドキュメントを渡します。

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

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

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

    • 接続プロパティを含む ServiceClientFactory オブジェクトを作成します。(接続プロパティの設定を参照)
    • コンストラクターを使用して ServiceClientFactory オブジェクトを渡すことによって、FormsServiceClient オブジェクトを作成します。
    • コンストラクタを使用して DocumentManagementServiceClientImpl オブジェクトを渡すことによって、ServiceClientFactory オブジェクトを作成します。
  3. コンテンツサービス(非推奨)からフォームデザインを取得する

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

    • コンテンツの追加先となるストアを指定する文字列値です。デフォルトのストアは SpacesStore です。この値は必須パラメーターです。
    • 取得するコンテンツの完全修飾パスを指定する文字列値(例:/Company Home/Form Designs/Loan.xdp)。この値は必須パラメーターです。
    • バージョンを指定する文字列値。この値はオプションのパラメーターであり、空の文字列を渡すことができます。この場合、最新バージョンが取得されます。

    retrieveContent メソッドは、XDP ファイルを含む CRCResult オブジェクトを返します。CRCResult オブジェクトの getDocument メソッドを呼び出して、com.adobe.idp.Document インスタンスを取得します。

  4. インタラクティブ PDF フォームのレンダリング

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

    • コンテンツサービス(非推奨)から取得したフォームデザインを含む com.adobe.idp.Document オブジェクトです。
    • フォームに結合するデータを含む com.adobe.idp.Document オブジェクトです。データを結合しない場合は、空の com.adobe.idp.Document オブジェクトを渡します。
    • 実行時オプションを保存する PDFFormRenderSpec オブジェクト。この値はオプションのパラメーターであり、実行時のオプションを指定しない場合は、null を指定できます。
    • URI 値を格納する URLSpec オブジェクト。この値はオプションのパラメーターであり、null を指定できます。
    • 添付ファイルを保存する java.util.HashMap オブジェクト。この値はオプションのパラメーターであり、フォームにファイルを添付しない場合は、null を指定できます。

    この renderPDFForm メソッドは、クライアントの web ブラウザーに書き込む必要があるフォームデータストリームを含む FormsResult オブジェクトを返します。

  5. フォームデータストリームを使用してアクションを実行

    • 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 を使用してドキュメントを Forms サービスに渡す

Forms サービスおよびコンテンツサービス(非推奨) API(web サービス)を使用してコンテンツサービス(非推奨)から取得したドキュメントを渡すには、以下の手順を実行します。

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

    MTOM を使用する Microsoft .NET プロジェクトを作成します。このクライアントアプリケーションは 2 つの AEM Forms サービスを呼び出すので、2 つのサービス参照を作成します。Forms サービスに関連付けられたサービス参照には、WSDL 定義 http://localhost:8080/soap/services/FormsService?WSDL&lc_version=9.0.1 を使用します。

    Document Management サービスに関連付けられたサービス参照には、WSDL 定義 http://localhost:8080/soap/services/DocumentManagementService?WSDL&lc_version=9.0.1 を使用します。

    BLOB データタイプは両方のサービス参照に共通なので、使用する場合は BLOB データタイプを完全に修飾します。対応する web サービスのクイックスタートで、BLOB インスタンスは完全に修飾されています。

    メモ
    localhost を AEM Forms をホストしているサーバーの IP アドレスに置き換えます。
  2. Forms と Document Management Client API オブジェクトの作成

    • デフォルトのコンストラクターを使用して FormsServiceClient オブジェクトを作成します。

    • System.ServiceModel.EndpointAddress コンストラクタを使用して FormsServiceClient.Endpoint.Address オブジェクトを作成します。WSDL を 指定する文字列値を AEM Forms サービスに渡します(例: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 フィールドに AEM Forms ユーザー名を割り当てます。
      • 対応するパスワード値を FormsServiceClient.ClientCredentials.UserName.Password フィールドに割り当てます。
      • 定数値 HttpClientCredentialType.BasicBasicHttpBindingSecurity.Transport.ClientCredentialType フィールドに割り当てます。
    • フィールド BasicHttpBindingSecurity.Security.Mode に定数値 BasicHttpSecurityMode.TransportCredentialOnly を割り当てます。

    メモ
    DocumentManagementServiceClient サービスクライアント向けに、以下の手順を繰り返します。
  3. コンテンツサービス(非推奨)からフォームデザインを取得する

    DocumentManagementServiceClient オブジェクトの retrieveContent メソッドを呼び出し、以下の値を渡してコンテンツを取得します。

    • コンテンツの追加先となるストアを指定する文字列値です。デフォルトのストアは SpacesStore です。この値は必須パラメーターです。
    • 取得するコンテンツの完全修飾パスを指定する文字列値(例:/Company Home/Form Designs/Loan.xdp)。この値は必須パラメーターです。
    • バージョンを指定する文字列値。この値はオプションのパラメーターであり、空の文字列を渡すことができます。この場合、最新バージョンが取得されます。
    • 参照リンクの値を格納する文字列出力パラメーター。
    • コンテンツを格納する BLOB 出力パラメーター。この出力パラメーターを使用して、コンテンツを取得できます。
    • コンテンツ属性を格納する ServiceReference1.MyMapOf_xsd_string_To_xsd_anyType 出力パラメーター。
    • CRCResult 出力パラメーター。このオブジェクトを使用する代わりに、 BLOB 出力パラメーターを使用して、コンテンツを取得できます。
  4. インタラクティブ PDF フォームのレンダリング

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

    • コンテンツサービス(非推奨)から取得したフォームデザインを含む BLOB オブジェクトです。
    • フォームに結合するデータを含む BLOB オブジェクトです。データを結合しない場合は、空の BLOB オブジェクトを渡します。
    • 実行時オプションを保存する PDFFormRenderSpec オブジェクト。この値はオプションのパラメーターであり、実行時のオプションを指定しない場合は、null を指定できます。
    • URI 値を格納する URLSpec オブジェクト。この値はオプションのパラメーターであり、null を指定できます。
    • 添付ファイルを保存する Map オブジェクト。この値はオプションのパラメーターで、フォームにファイルを添付しない場合は、null を指定できます。
    • ページ数の保存に使用される長い出力パラメーターです。
    • ロケール値の格納に使用される文字列出力パラメーターです。
    • インタラクティブ PDF フォーム . の保存に使用する FormsResult 出力パラメーター

    renderPDFForm2 メソッドは、インタラクティブ PDF フォームを含む FormsResult オブジェクトを返します。

  5. フォームデータストリームを使用してアクションを実行

    • FormsResult オブジェクトの outputContent フィールドの値を取得して、フォームデータを含む BLOB オブジェクトを作成します。
    • コンストラクターを呼び出して System.IO.FileStream オブジェクトを作成します。インタラクティブ PDF ドキュメントのファイルの場所と、ファイルを開くモードを表す文字列値を渡します。
    • FormsResult オブジェクトから取得した BLOB オブジェクトのコンテンツを格納するバイト配列を作成します。バイト配列を入力するには、BLOB オブジェクトの MTOM データメンバーの値を取得します。
    • コンストラクターを使用して System.IO.BinaryWriter オブジェクトを渡すことによって、System.IO.FileStream オブジェクトを作成します。
    • System.IO.BinaryWriter オブジェクトの Write メソッドを呼び出して、バイト配列を渡すことによって、バイト配列の内容を PDF ファイルに書き込みます。
recommendation-more-help