ドキュメント出力ストリームの作成

Outputサービスについて

Outputサービスを使用すると、ドキュメントをPDF(PDF/Aドキュメントを含む)、PostScript、Printer Control Language(PCL)および次のラベル形式で出力できます。

  • ゼブラ — ZPL
  • Intermec - IPL
  • Datamax - DPL
  • TecToshiba - TPCL

Outputサービスを使用すると、XMLフォームデータをフォームデザインとマージし、ドキュメントをネットワークプリンターまたはファイルに出力できます。

フォームデザイン(XDPファイル)をOutputサービスに渡す方法は2つあります。 フォームデザインを含むcom.adobe.idp.DocumentインスタンスをOutputサービスに渡すこともできます。 または、フォームデザインの場所を指定するURI値を渡すこともできます。 これらの方法は、AEM formsによるプログラミング​で説明します。

メモ

Outputサービスは、アプリケーションオブジェクト固有のスクリプトを含むAcroform PDFドキュメントをサポートしていません。 アプリケーションオブジェクト固有のスクリプトを含むAcroform PDFドキュメントは、レンダリングされません。

次の節では、URI値を使用してフォームデザインをOutputサービスに渡す方法について説明します。

以下の節では、com.adobe.idp.Documentインスタンス内でフォームデザインを渡す方法を示します。

使用する方法を決定する際の考慮事項の1つは、別のAEM Formsサービスからフォームデザインを取得し、com.adobe.idp.Documentインスタンス内で渡す場合です。 「Apsing Documents to the Output Service」および「Creating PDF Documents using Fragments」の両方の節で、別のAEM Formsサービスからフォームデザインを取得する方法を示します。 最初の節では、Content Services(非推奨)からフォームデザインを取得します。 2つ目の節では、フォームデザインをAssemblerサービスから取得します。

ファイルシステムなどの固定の場所からフォームデザインを取得する場合は、どちらの方法でも使用できます。 つまり、URI値をXDPファイルに指定するか、com.adobe.idp.Documentインスタンスを使用できます。

PDFドキュメントの作成時にフォームデザインの場所を指定するURI値を渡すには、generatePDFOutputメソッドを使用します。 同様に、PDFドキュメントの作成時にcom.adobe.idp.DocumentインスタンスをOutputサービスに渡すには、generatePDFOutput2メソッドを使用します。

出力ストリームをネットワークプリンターに送信する場合は、どちらの方法も使用できます。 フォームデザインを含むcom.adobe.idp.Documentインスタンスを渡して出力ストリームをプリンターに送信するには、sendToPrinter2メソッドを使用します。 URI値を渡して出力ストリームをプリンターに送信するには、sendToPrinterメソッドを使用します。 プリンターへの印刷ストリームの送信​セクションでは、sendToPrinterメソッドを使用します。

Outputサービスを使用して、次のタスクを実行できます。

メモ

Outputサービスについて詳しくは、『AEM Formsのサービスリファレンス』を参照してください。

PDFドキュメントの作成

Outputサービスを使用して、指定したフォームデザインとXMLフォームデータに基づくPDFドキュメントを作成できます。 Outputサービスで作成されるPDFドキュメントは、インタラクティブPDFドキュメントではありません。ユーザーはフォームデータを入力または変更できません。

長期保存を目的としたPDFドキュメントを作成する場合は、PDF/Aドキュメントを作成することをお勧めします。 (PDF/Aドキュメントの作成を参照)。

ユーザーがデータを入力できるインタラクティブPDFフォームを作成するには、Formsサービスを使用します。 (インタラクティブPDF formsのレンダリングを参照)。

メモ

Outputサービスについて詳しくは、『AEM Formsのサービスリファレンス』を参照してください。

手順の概要

PDFドキュメントを作成するには、次の手順を実行します。

  1. プロジェクトファイルを含めます。
  2. Outputクライアントオブジェクトを作成します。
  3. XMLデータソースを参照します。
  4. PDF実行時オプションを設定します。
  5. レンダリングの実行時オプションを設定します。
  6. PDFドキュメントを生成します。
  7. 操作の結果を取得します。

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

必要なファイルを開発プロジェクトに含めます。 Javaを使用してクライアントアプリケーションを作成する場合は、必要なJARファイルを含めます。 Webサービスを使用する場合は、必ずプロキシファイルを含めてください。

次のJARファイルをプロジェクトのクラスパスに追加する必要があります。

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-output-client.jar
  • adobe-utilities.jar(AEM FormsがJBossにデプロイされている場合に必須)
  • jbossall-client.jar(AEM FormsがJBossにデプロイされている場合に必須)

AEM FormsがJBoss以外のサポート対象のJ2EEアプリケーションサーバーにデプロイされている場合は、adobe-utilities.jarファイルとjbossall-client.jarファイルを、AEM FormsがデプロイされているJ2EEアプリケーションサーバーに固有のJARファイルに置き換える必要があります。

Outputクライアントオブジェクトの作成

プログラムによってOutputサービス操作を実行する前に、Outputサービスクライアントオブジェクトを作成する必要があります。 Java APIを使用している場合は、OutputClientオブジェクトを作成します。 Output WebサービスAPIを使用している場合は、OutputServiceServiceオブジェクトを作成します。

XMLデータソースの参照

データとフォームデザインを結合するには、データを含むXMLデータソースを参照する必要があります。 データを入力するフォームフィールドごとに、XML要素が存在する必要があります。 XML 要素名は、フィールド名と一致する必要があります。XML 要素がフォームフィールドに対応していない場合や、XML 要素名がフィールド名と一致しない場合、XML 要素は無視されます。すべてのXML要素を指定した場合、XML要素の表示順序を一致させる必要はありません。

次のサンプルのローン申し込みフォームを考えてみましょう。

cp_cp_loanformdata

このフォームデザインにデータをマージするには、フォームに対応するXMLデータソースを作成する必要があります。 次のXMLは、サンプルの住宅ローン申し込みフォームに対応するXDP XMLデータソースを表しています。

 <?xml version="1.0" encoding="UTF-8" ?>  
 - <xfa:datasets xmlns:xfa="https://www.xfa.org/schema/xfa-data/1.0/"> 
 - <xfa:data> 
 - <data> 
     - <Layer> 
         <closeDate>1/26/2007</closeDate>  
         <lastName>Johnson</lastName>  
         <firstName>Jerry</firstName>  
         <mailingAddress>JJohnson@NoMailServer.com</mailingAddress>  
         <city>New York</city>  
         <zipCode>00501</zipCode>  
         <state>NY</state>  
         <dateBirth>26/08/1973</dateBirth>  
         <middleInitials>D</middleInitials>  
         <socialSecurityNumber>(555) 555-5555</socialSecurityNumber>  
         <phoneNumber>5555550000</phoneNumber>  
     </Layer> 
     - <Mortgage> 
         <mortgageAmount>295000.00</mortgageAmount>  
         <monthlyMortgagePayment>1724.54</monthlyMortgagePayment>  
         <purchasePrice>300000</purchasePrice>  
         <downPayment>5000</downPayment>  
         <term>25</term>  
         <interestRate>5.00</interestRate>  
     </Mortgage> 
 </data> 
 </xfa:data> 
 </xfa:datasets>

PDF実行時オプションの設定

PDFドキュメントを作成する際に「file URI」オプションを設定します。 このオプションは、Outputサービスが生成するPDFファイルの名前と場所を指定します。

メモ

ファイルURIランタイムオプションを設定する代わりに、Outputサービスから返される複雑なデータ型からPDFドキュメントをプログラムで取得できます。 ただし、ファイルURIランタイムオプションを設定することで、PDFドキュメントをプログラムで取得するアプリケーションロジックを作成する必要はありません。

レンダリング実行時オプションの設定

PDFドキュメントの作成時にレンダリングの実行時オプションを設定できます。 これらのオプションは必須ではありませんが(必要なPDFランタイムオプションとは異なり)、Outputサービスのパフォーマンス向上などのタスクを実行できます。 例えば、Outputサービスが使用するフォームデザインをキャッシュして、パフォーマンスを向上させることができます。

タグ付きAcrobatフォームを入力として使用する場合、OutputサービスJavaまたはWebサービスAPIを使用してタグ付き設定をオフにすることはできません。 プログラムでこのオプションをfalseに設定しようとすると、結果のPDFドキュメントは引き続きタグ付けされます。

メモ

レンダリング実行時オプションを指定しない場合は、デフォルト値が使用されます。 実行時オプションのレンダリングについて詳しくは、RenderOptionsSpecクラス参照を参照してください。 (『AEM Forms APIリファレンス』を参照)。

PDFドキュメントの生成

フォームデータを含む有効なXMLデータソースを参照し、実行時オプションを設定したら、Outputサービスを呼び出すと、PDFドキュメントが生成されます。

PDFドキュメントを生成する場合、PDFドキュメントを作成するためにOutputサービスで必要なURI値を指定します。 フォームデザインは、サーバーファイルシステムなどの場所や、AEM Formsアプリケーションの一部として保存できます。 Formsアプリケーションの一部として存在するフォームデザイン(または画像ファイルなどの他のリソース)は、コンテンツルートURI値repository:///を使用して参照できます。 例えば、Applications/FormsApplication​という名前のFormsアプリケーション内にある​Loan.xdp​という名前のフォームデザインを考えてみましょう。

cp_cp_formrepository

前の図に示すLoan.xdpファイルにアクセスするには、OutputClientオブジェクトのgeneratePDFOutputメソッドに渡す3番目のパラメーターとしてrepository:///Applications/FormsApplication/1.0/FormsFolder/を指定します。 フォーム名(Loan.xdp)を、OutputClientオブジェクトのgeneratePDFOutputメソッドに渡す2番目のパラメーターとして指定します。

XDPファイルに画像(またはフラグメントなどの他のリソース)が含まれている場合は、XDPファイルと同じアプリケーションフォルダーにリソースを配置します。 AEM Formsは、コンテンツルートURIをベースパスとして使用して、画像への参照を解決します。 例えば、Loan.xdpファイルに画像が含まれている場合、必ずApplications/FormsApplication/1.0/FormsFolder/に画像を配置してください。

メモ

OutputClientオブジェクトのgeneratePDFOutputまたはgeneratePrintedOutputメソッドを呼び出すときに、FormsアプリケーションURIを参照できます。

メモ

Formsアプリケーション内のXDPを参照してPDFドキュメントを作成する完全なクイックスタートを確認するには、「クイックスタート(EJBモード)」を参照してください。Java APIを使用したアプリケーションXDPファイルに基づくPDFドキュメントの作成

操作の結果の取得

Outputサービスが操作を実行すると、その操作が成功したかどうかを示すステータスXMLデータなど、様々なデータ項目が返されます。

関連トピック

Java APIを使用したPDFドキュメントの作成

WebサービスAPIを使用したPDFドキュメントの作成

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定

OutputサービスAPIのクイックスタート

Java APIを使用したPDFドキュメントの作成

Output API(Java)を使用してPDFドキュメントを作成します。

  1. プロジェクトファイルを含めます。

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

  2. Outputクライアントオブジェクトを作成します。

    • 接続プロパティを含む ServiceClientFactory オブジェクトを作成します。
    • コンストラクターを使用してOutputClientオブジェクトを渡し、ServiceClientFactoryオブジェクトを作成します。
  3. XMLデータソースを参照します。

    • PDFドキュメントのコンストラクターを使用し、XMLファイルの場所を指定する文字列値を渡すことで、PDFドキュメントの入力に使用されるXMLデータソースを表すjava.io.FileInputStreamオブジェクトを作成します。
    • コンストラクタを使用して com.adobe.idp.Document オブジェクトを作成します。java.io.FileInputStreamオブジェクトを渡します。
  4. PDF実行時オプションを設定します。

    • コンストラクタを使用して PDFOutputOptionsSpec オブジェクトを作成します。
    • PDFOutputOptionsSpecオブジェクトのsetFileURIメソッドを呼び出して、「 File URI 」オプションを設定します。 Outputサービスが生成するPDFファイルの場所を指定するstring値を渡します。 「ファイルURI 」オプションは、AEM FormsをホストするJ2EEアプリケーションサーバーに対して相対的なもので、クライアントコンピューターに対しては相対的なものではありません。
  5. レンダリングの実行時オプションを設定します。

    • コンストラクタを使用して RenderOptionsSpec オブジェクトを作成します。
    • RenderOptionsSpecオブジェクトのsetCacheEnabledを呼び出してtrueを渡すことで、フォームデザインをキャッシュし、Outputサービスのパフォーマンスを向上させます。
    メモ

    入力ドキュメントがAcrobatフォーム(Acrobatで作成されたフォーム)または署名または認証されたXFAドキュメントの場合は、 RenderOptionsSpecオブジェクトのsetPdfVersionメソッドを使用してPDFドキュメントのバージョンを設定することはできません。 出力PDFドキュメントは、元のPDFバージョンを保持します。 同様に、入力ドキュメントがAcrobatフォームまたは署名済みまたは認証済みのXFAドキュメントの場合、 RenderOptionsSpecオブジェクトのsetTaggedPDFメソッドを呼び出して、タグ付きAdobe PDFオプションを設定することはできません。

    メモ

    入力PDFドキュメントが認証またはデジタル署名されている場合、RenderOptionsSpecオブジェクトのsetLinearizedPDFメソッドを使用して線形化されたPDFオプションを設定することはできません。 (PDFドキュメントのデジタル署名​​を参照)

  6. PDFドキュメントを生成します。

    OutputClientオブジェクトのgeneratePDFOutputメソッドを呼び出し、次の値を渡してPDFドキュメントを作成します。

    • TransformationFormat列挙値。 PDFドキュメントを生成するには、TransformationFormat.PDFを指定します。
    • フォームデザイン名を指定する string 値。
    • フォームデザインが存在するコンテンツルートを指定するstring値。
    • PDFランタイムオプションを含むPDFOutputOptionsSpecオブジェクト。
    • レンダリングの実行時オプションを含むRenderOptionsSpecオブジェクト。
    • フォームデザインとマージするデータを含むXMLデータソースを含むcom.adobe.idp.Documentオブジェクト。

    generatePDFOutputメソッドは、操作の結果を含むOutputResultオブジェクトを返します。

    メモ

    generatePDFOutputメソッドを呼び出してPDFドキュメントを生成する場合、署名または認証されたXFA PDFフォームとデータを結合することはできません。 (Digital Signing and Certifying Documents ​を参照)。

    メモ

    OutputResultオブジェクトのgetRecordLevelMetaDataListメソッドは、null.​を返します。

    メモ

    OutputClientオブジェクトのgeneratePDFOutput2メソッドを呼び出して、PDFドキュメントを作成することもできます。 (Content Services(非推奨)にあるドキュメントをOutputサービスに渡す​​を参照)

  7. 操作の結果を取得します。

    • OutputResultオブジェクトのgetStatusDocメソッドを呼び出して、generatePDFOutput操作のステータスを表すcom.adobe.idp.Documentオブジェクトを取得します。 このメソッドは、操作が成功したかどうかを示すステータスXMLデータを返します。
    • 操作の結果を格納するjava.io.Fileオブジェクトを作成します。 ファイル名の拡張子が.xmlであることを確認します。
    • com.adobe.idp.DocumentオブジェクトのcopyToFileメソッドを呼び出して、com.adobe.idp.Documentオブジェクトの内容をファイルにコピーします(getStatusDocメソッドで返されたcom.adobe.idp.Documentオブジェクトを使用するようにしてください)。

    Outputサービスは、 PDFOutputOptionsSpecオブジェクトのsetFileURIメソッドに渡される引数で指定された場所にPDFドキュメントを書き込みますが、 OutputResultオブジェクトのgetGeneratedDocメソッドを呼び出すことで、プログラムでPDF/Aドキュメントを取得できます。

関連トピック

手順の概要

クイックスタート(EJBモード):Java APIを使用したPDFドキュメントの作成

クイックスタート(SOAPモード):Java APIを使用したPDFドキュメントの作成

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定

WebサービスAPIを使用したPDFドキュメントの作成

Output API(Webサービス)を使用してPDFドキュメントを作成します。

  1. プロジェクトファイルを含めます。

    MTOMを使用するMicrosoft .NETプロジェクトを作成します。 次のWSDL定義を使用していることを確認します。http://localhost:8080/soap/services/OutputService?WSDL&lc_version=9.0.1.

    メモ

    localhostを、AEM FormsをホストするサーバーのIPアドレスに置き換えます。

  2. Outputクライアントオブジェクトを作成します。

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

    • System.ServiceModel.EndpointAddressコンストラクターを使用してOutputServiceClient.Endpoint.Addressオブジェクトを作成します。 WSDLをAEM Formsサービスに渡す文字列値(例:http://localhost:8080/soap/services/OutputService?blob=mtom)を渡します。 lc_version属性を使用する必要はありません。 この属性は、サービス参照を作成する際に使用されます。 ただし、MTOMを使用する場合は?blob=mtomを指定します。

    • OutputServiceClient.Endpoint.Bindingフィールドの値を取得してSystem.ServiceModel.BasicHttpBindingオブジェクトを作成します。 戻り値を BasicHttpBinding にキャストします。

    • System.ServiceModel.BasicHttpBindingオブジェクトのMessageEncodingフィールドをWSMessageEncoding.Mtomに設定します。 この値は、MTOMが使用されるようにします。

    • 次のタスクを実行して、基本的なHTTP認証を有効にします。

      • フィールドOutputServiceClient.ClientCredentials.UserName.UserNameにAEM formsユーザー名を割り当てます。
      • 対応するパスワード値をフィールドOutputServiceClient.ClientCredentials.UserName.Passwordに割り当てます。
      • フィールドBasicHttpBindingSecurity.Transport.ClientCredentialTypeに定数値HttpClientCredentialType.Basicを割り当てます。
      • フィールドBasicHttpBindingSecurity.Security.Modeに定数値BasicHttpSecurityMode.TransportCredentialOnlyを割り当てます。
  3. XMLデータソースを参照します。

    • コンストラクタを使用して BLOB オブジェクトを作成します。BLOBオブジェクトは、PDFドキュメントとマージされるXMLデータを保存するために使用されます。
    • コンストラクターを呼び出し、フォームデータを含むXMLファイルのファイル位置を表す文字列値を渡して、System.IO.FileStreamオブジェクトを作成します。
    • System.IO.FileStreamオブジェクトの内容を格納するバイト配列を作成します。 System.IO.FileStreamオブジェクトのLengthプロパティを取得することで、バイト配列のサイズを判断できます。
    • System.IO.FileStreamオブジェクトのReadメソッドを呼び出し、読み取るバイト配列、開始位置、ストリーム長を渡すことによって、バイト配列にストリームデータを入力します。
    • BLOBオブジェクトのMTOMフィールドにバイト配列の内容を割り当てて、オブジェクトを設定します。
  4. PDF実行時オプションの設定

    • コンストラクタを使用して PDFOutputOptionsSpec オブジェクトを作成します。
    • Outputサービスが生成するPDFファイルの場所を指定する文字列値をPDFOutputOptionsSpecオブジェクトのfileURIデータメンバーに割り当てて、「File URI」オプションを設定します。 「ファイルURI 」オプションは、AEM FormsをホストするJ2EEアプリケーションサーバーに対して相対的なもので、クライアントコンピューターに対しては相対的なものではありません。
  5. レンダリングの実行時オプションを設定します。

    • コンストラクタを使用して RenderOptionsSpec オブジェクトを作成します。
    • trueRenderOptionsSpecオブジェクトのcacheEnabledデータメンバーに割り当てることで、フォームデザインをキャッシュして、Outputサービスのパフォーマンスを向上させます。
    メモ

    入力ドキュメントがAcrobatフォーム(Acrobatで作成されたフォーム)または署名または認証されたXFAドキュメントの場合は、 RenderOptionsSpecオブジェクトのsetPdfVersionメソッドを使用してPDFドキュメントのバージョンを設定することはできません。 出力PDFドキュメントは、元のPDFバージョンを保持します。 同様に、入力ドキュメントがAcrobatフォームまたは署名済みまたは認証済みのXFAドキュメントの場合、 RenderOptionsSpecオブジェクトのsetTaggedPDFメソッドを呼び出して、タグ付きAdobe PDFオプションを設定することはできません。

    メモ

    入力PDFドキュメントが認証またはデジタル署名されている場合、RenderOptionsSpecオブジェクトのlinearizedPDFメンバを使用して線形化されたPDFオプションを設定することはできません。 (PDFドキュメントのデジタル署名​​を参照)

  6. PDFドキュメントを生成します。

    OutputServiceServiceオブジェクトのgeneratePDFOutputメソッドを呼び出し、次の値を渡してPDFドキュメントを作成します。

    • TransformationFormat列挙値。 PDFドキュメントを生成するには、TransformationFormat.PDFを指定します。
    • フォームデザイン名を指定する string 値。
    • フォームデザインが存在するコンテンツルートを指定するstring値。
    • PDFランタイムオプションを含むPDFOutputOptionsSpecオブジェクト。
    • レンダリングの実行時オプションを含むRenderOptionsSpecオブジェクト。
    • フォームデザインとマージするデータを含むXMLデータソースを含むBLOBオブジェクト。
    • generatePDFOutputメソッドによって設定されるBLOBオブジェクト。 generatePDFOutputメソッドは、このオブジェクトに、ドキュメントを表す生成済みのメタデータを入力します。 (このパラメーター値は、Webサービスの呼び出しにのみ必要です)。
    • generatePDFOutputメソッドによって設定されるBLOBオブジェクト。 generatePDFOutputメソッドは、このオブジェクトに結果データを入力します。 (このパラメーター値は、Webサービスの呼び出しにのみ必要です)。
    • 操作の結果を格納するOutputResultオブジェクト。 (このパラメーター値は、Webサービスの呼び出しにのみ必要です)。
    メモ

    generatePDFOutputメソッドを呼び出してPDFドキュメントを生成する場合、署名または認証されたXFA PDFフォームとデータを結合することはできません。 (Digital Signing and Certifying Documents ​を参照)。

    メモ

    OutputClientオブジェクトのgeneratePDFOutput2メソッドを呼び出して、PDFドキュメントを作成することもできます。 (Content Services(非推奨)にあるドキュメントをOutputサービスに渡す​​を参照)

  7. 操作の結果を取得します。

    • コンストラクターを呼び出し、結果データを含むXMLファイルの場所を表す文字列値を渡すことで、System.IO.FileStreamオブジェクトを作成します。 ファイル名の拡張子が.xmlであることを確認します。
    • OutputServiceServiceオブジェクトのgeneratePDFOutputメソッド(8番目のパラメーター)によって結果データが入力されたBLOBオブジェクトのデータコンテンツを格納するバイト配列を作成します。 BLOBオブジェクトのMTOM fieldの値を取得して、バイト配列を設定します。
    • コンストラクターを呼び出し、System.IO.FileStreamオブジェクトを渡して、System.IO.BinaryWriterオブジェクトを作成します。
    • System.IO.BinaryWriterオブジェクトのWriteメソッドを呼び出し、バイト配列を渡すことにより、バイト配列の内容をXMLファイルに書き込みます。

    関連トピック

手順の概要

MTOMを使用したAEM Formsの呼び出し

SwaRefを使用したAEM Formsの呼び出し

メモ

OutputServiceServiceオブジェクトのgenerateOutputメソッドは非推奨です。

PDF/Aドキュメントの作成

Outputサービスを使用してPDF/Aドキュメントを作成できます。 PDF/Aはドキュメントのコンテンツを長期保存するためのアーカイブ形式なので、すべてのフォントが埋め込まれ、ファイルが非圧縮になります。 その結果、通常、PDF/A ドキュメントは標準の PDF ドキュメントよりも大きくなります。また、PDF/Aドキュメントにはオーディオおよびビデオコンテンツは含まれません。 他のOutputサービスタスクと同様に、フォームデザインとフォームデザインとのマージ用のデータの両方を提供して、PDF/Aドキュメントを作成します。

PDF/A-1仕様は、aとbの2つの準拠レベルで構成されています。この2つの主な違いは、論理構造(アクセシビリティ)のサポートに関するもので、適合レベルbには必要ありません。適合レベルに関係なく、PDF/A-1では、生成されるPDF/Aドキュメントにすべてのフォントが埋め込まれます。

PDF/AはPDFドキュメントのアーカイブの標準ですが、会社のニーズを満たす標準PDFドキュメントの場合は、PDF/Aをアーカイブに使用する必要はありません。 PDF/A標準の目的は、ドキュメントの保存要件を満たすと共に、長期間保存できるPDFファイルを確立することです。 例えば、URLが無効になる可能性があるので、PDF/AにURLを埋め込むことはできません。

組織は、独自のニーズ、ドキュメントの保持期間、ファイルサイズに関する考慮事項を評価し、独自のアーカイブ戦略を決定する必要があります。 DocConverterサービスを使用すると、PDFドキュメントがPDF/Aに準拠しているかどうかをプログラムで判断できます。 (プログラムによるPDF/Aの準拠の判別を参照)。

PDF/Aドキュメントでは、フォームデザインで指定されたフォントを使用する必要があり、フォントを置き換えることはできません。 その結果、PDFドキュメント内のフォントがホストオペレーティングシステム(OS)で使用できない場合、例外が発生します。

AcrobatでPDF/Aドキュメントを開くと、次の図に示すように、ドキュメントがPDF/Aドキュメントであることを確認するメッセージが表示されます。

cp_cp_pdfamessage

メモ

AIIMのWebサイトには、https://www.loc.gov/preservation/digital/formats/fdd/fdd000125.shtmlでアクセスできるPDF/AのFAQセクションがあります。

メモ

Outputサービスについて詳しくは、『AEM Formsのサービスリファレンス』を参照してください。

手順の概要

PDF/Aドキュメントを作成するには、次の手順を実行します。

  1. プロジェクトファイルを含めます。
  2. Outputクライアントオブジェクトを作成します。
  3. XMLデータソースを参照します。
  4. PDF/Aランタイムオプションを設定します。
  5. レンダリングの実行時オプションを設定します。
  6. PDF/Aドキュメントを生成します。
  7. 操作の結果を取得します。

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

必要なファイルを開発プロジェクトに含めます。 Javaを使用してカスタムアプリケーションを作成する場合は、必要なJARファイルを含めます。 Webサービスを使用する場合は、必ずプロキシファイルを含めてください。

次のJARファイルをプロジェクトのクラスパスに追加する必要があります。

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-output-client.jar
  • adobe-utilities.jar(AEM FormsがJBossにデプロイされている場合に必須)
  • jbossall-client.jar(AEM FormsがJBossにデプロイされている場合に必須)

AEM FormsがJBoss以外のサポート対象のJ2EEアプリケーションサーバーにデプロイされている場合は、adobe-utilities.jarファイルとjbossall-client.jarファイルを、AEM FormsがデプロイされているJ2EEアプリケーションサーバーに固有のJARファイルに置き換える必要があります。

Outputクライアントオブジェクトの作成

プログラムによってOutputサービス操作を実行する前に、Outputサービスクライアントオブジェクトを作成する必要があります。 Java APIを使用している場合は、OutputClientオブジェクトを作成します。 Output WebサービスAPIを使用している場合は、OutputServiceServiceオブジェクトを作成します。

XMLデータソースの参照

データとフォームデザインを結合するには、データを含むXMLデータソースを参照する必要があります。 データを入力するフォームフィールドごとに、XML要素が存在する必要があります。 XML 要素名は、フィールド名と一致する必要があります。XML 要素がフォームフィールドに対応していない場合や、XML 要素名がフィールド名と一致しない場合、XML 要素は無視されます。すべてのXML要素を指定した場合、XML要素の表示順序を一致させる必要はありません。

PDF/Aランタイムオプションの設定

PDF/Aドキュメントを作成する際に、「ファイルURI 」オプションを設定できます。 このURIは、AEM FormsをホストするJ2EEアプリケーションサーバーに対する相対パスです。 つまり、C:\Adobeを設定した場合、ファイルはクライアントコンピューターではなく、サーバー上のフォルダーに書き込まれます。 このURIは、Outputサービスが生成するPDF/Aファイルの名前と場所を指定します。

レンダリング実行時オプションの設定

PDF/Aドキュメントの作成時にレンダリングの実行時オプションを設定できます。 PDF/Aに関連して設定できるオプションは、PDFAConformancePDFARevisionNumberの2つです。 PDFAConformanceの値は、電子ドキュメントの長期保存方法を指定する要件にPDFドキュメントがどのように従うかを示します。 このオプションの有効な値はABです。 レベルaおよびbの準拠について詳しくは、「ISO 19005-1 Document management」というタイトルのPDF/A-1 ISO仕様を参照してください。

PDFARevisionNumber値は、PDF/Aドキュメントのリビジョン番号を参照します。 PDF/Aドキュメントのリビジョン番号について詳しくは、「ISO 19005-1 Document management」というタイトルのPDF/A-1 ISO仕様を参照してください。

メモ

PDF/A 1Aドキュメントを作成する際に、タグ付きAdobe PDFオプションをfalseに設定することはできません。 PDF/A 1Aは、常にタグ付きPDFドキュメントになります。 また、PDF/A 1Bドキュメントを作成する際に、タグ付きAdobe PDFオプションをtrueに設定することはできません。 PDF/A 1Bは、常にタグなしのPDFドキュメントになります。

PDF/Aドキュメントの生成

フォームデータを含む有効なXMLデータソースを参照し、ランタイムオプションを設定した後、Outputサービスを呼び出して、PDF/Aドキュメントを生成することができます。

操作の結果の取得

Outputサービスが操作を実行すると、その操作が成功したかどうかを示すXMLデータなど、様々なデータ項目が返されます。

関連トピック

Java APIを使用したPDF/Aドキュメントの作成

WebサービスAPIを使用したPDF/Aドキュメントの作成

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定

OutputサービスAPIのクイックスタート

Java APIを使用したPDF/Aドキュメントの作成

Output API(Java)を使用してPDF/Aドキュメントを作成します。

  1. プロジェクトファイルを含めます。

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

  2. Outputクライアントオブジェクトを作成します。

    • 接続プロパティを含む ServiceClientFactory オブジェクトを作成します。
    • コンストラクターを使用してOutputClientオブジェクトを渡し、ServiceClientFactoryオブジェクトを作成します。
  3. XMLデータソースを参照します。

    • PDF/Aドキュメントのコンストラクターを使用し、XMLファイルの場所を指定する文字列値を渡すことで、PDF/Aドキュメントの入力に使用されるXMLデータソースを表すjava.io.FileInputStreamオブジェクトを作成します。
    • コンストラクタを使用して com.adobe.idp.Document オブジェクトを渡すことによって、java.io.FileInputStream オブジェクトを作成します。
  4. PDF/Aランタイムオプションを設定します。

    • コンストラクタを使用して PDFOutputOptionsSpec オブジェクトを作成します。
    • PDFOutputOptionsSpecオブジェクトのsetFileURIメソッドを呼び出して、「 File URI 」オプションを設定します。 Outputサービスが生成するPDFファイルの場所を指定するstring値を渡します。 「ファイルURI 」オプションは、AEM FormsをホストするJ2EEアプリケーションサーバーに対して相対的なもので、クライアントコンピューターに対しては相対的なものではありません。
  5. レンダリングの実行時オプションを設定します。

    • コンストラクタを使用して RenderOptionsSpec オブジェクトを作成します。
    • RenderOptionsSpecオブジェクトのsetPDFAConformanceメソッドを呼び出し、適合レベルを指定するPDFAConformance列挙値を渡すことで、PDFAConformance値を設定します。 例えば、適合レベルAを指定するには、PDFAConformance.Aを渡します。
    • RenderOptionsSpecオブジェクトのsetPDFARevisionNumberメソッドを呼び出してPDFARevisionNumber.Revision_1を渡すことで、PDFARevisionNumber値を設定します。
    メモ

    PDF/AドキュメントのPDFバージョンは、RenderOptionsSpecオブジェクトの​setPdfVersionメソッドに対してどの値を指定したかに関係なく、1.4です。

  6. PDF/Aドキュメントを生成します。

    OutputClientオブジェクトのgeneratePDFOutputメソッドを呼び出し、次の値を渡してPDF/Aドキュメントを作成します。

    • TransformationFormat列挙値。 PDF/Aドキュメントを生成するには、TransformationFormat.PDFAを指定します。
    • フォームデザイン名を指定する string 値。
    • フォームデザインが存在するコンテンツルートを指定するstring値。
    • PDFランタイムオプションを含むPDFOutputOptionsSpecオブジェクト。
    • レンダリングの実行時オプションを含むRenderOptionsSpecオブジェクト。
    • フォームデザインとマージするデータを含むXMLデータソースを含むcom.adobe.idp.Documentオブジェクト。

    generatePDFOutputメソッドは、操作の結果を含むOutputResultオブジェクトを返します。

    メモ

    OutputResultオブジェクトのgetRecordLevelMetaDataListメソッドはnull*を返します。 *

    メモ

    OutputClientオブジェクトのgeneratePDFOutput2メソッドを呼び出して、PDF /Aドキュメントを作成することもできます。 (Content Services(非推奨)にあるドキュメントをOutputサービスに渡すを参照)。

  7. 操作の結果を取得します。

    • OutputResultオブジェクトのgetStatusDocメソッドを呼び出して、generatePDFOutputメソッドのステータスを表すcom.adobe.idp.Documentオブジェクトを作成します。
    • 操作の結果を格納するjava.io.Fileオブジェクトを作成します。 ファイル名の拡張子が.xmlであることを確認します。
    • com.adobe.idp.DocumentオブジェクトのcopyToFileメソッドを呼び出して、com.adobe.idp.Documentオブジェクトの内容をファイルにコピーします(getStatusDocメソッドで返されたcom.adobe.idp.Documentオブジェクトを使用するようにしてください)。
    メモ

    Outputサービスは、 PDFOutputOptionsSpecオブジェクトのsetFileURIメソッドに渡される引数で指定された場所にPDF/Aドキュメントを書き込みますが、 OutputResultオブジェクトのgetGeneratedDocメソッドを呼び出すことで、プログラムでPDF/Aドキュメントを取得できます。

関連トピック

手順の概要

クイックスタート(SOAPモード):Java APIを使用したPDF/Aドキュメントの作成

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定.

WebサービスAPIを使用したPDF/Aドキュメントの作成

Output API(Webサービス)を使用してPDF/Aドキュメントを作成します。

  1. プロジェクトファイルを含めます。

    MTOMを使用するMicrosoft .NETプロジェクトを作成します。 次のWSDL定義を使用していることを確認します。http://localhost:8080/soap/services/OutputService?WSDL&lc_version=9.0.1.

    メモ

    localhostを、AEM FormsをホストするサーバーのIPアドレスに置き換えます。

  2. Outputクライアントオブジェクトを作成します。

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

    • System.ServiceModel.EndpointAddressコンストラクターを使用してOutputServiceClient.Endpoint.Addressオブジェクトを作成します。 WSDLをAEM Formsサービスに渡す文字列値(例:http://localhost:8080/soap/services/OutputService?blob=mtom)を渡します。 lc_version属性を使用する必要はありません。 この属性は、サービス参照を作成する際に使用されます。 ただし、MTOMを使用する場合は?blob=mtomを指定します。

    • OutputServiceClient.Endpoint.Bindingフィールドの値を取得してSystem.ServiceModel.BasicHttpBindingオブジェクトを作成します。 戻り値を BasicHttpBinding にキャストします。

    • System.ServiceModel.BasicHttpBindingオブジェクトのMessageEncodingフィールドをWSMessageEncoding.Mtomに設定します。 この値は、MTOMが使用されるようにします。

    • 次のタスクを実行して、基本的なHTTP認証を有効にします。

      • フィールドOutputServiceClient.ClientCredentials.UserName.UserNameにAEM formsユーザー名を割り当てます。
      • 対応するパスワード値をフィールドOutputServiceClient.ClientCredentials.UserName.Passwordに割り当てます。
      • フィールドBasicHttpBindingSecurity.Transport.ClientCredentialTypeに定数値HttpClientCredentialType.Basicを割り当てます。
      • フィールドBasicHttpBindingSecurity.Security.Modeに定数値BasicHttpSecurityMode.TransportCredentialOnlyを割り当てます。
  3. XMLデータソースを参照します。

    • コンストラクタを使用して BLOB オブジェクトを作成します。BLOBオブジェクトは、PDF/Aドキュメントとマージされるデータを保存するために使用します。
    • コンストラクターを呼び出し、暗号化するPDFドキュメントのファイルの場所とファイルを開くモードを表すstring値を渡して、System.IO.FileStreamオブジェクトを作成します。
    • System.IO.FileStreamオブジェクトの内容を格納するバイト配列を作成します。 System.IO.FileStreamオブジェクトのLengthプロパティを取得することで、バイト配列のサイズを判断できます。
    • System.IO.FileStreamオブジェクトのReadメソッドを呼び出し、読み取るバイト配列、開始位置、ストリーム長を渡すことによって、バイト配列にストリームデータを入力します。
    • BLOBオブジェクトのMTOMフィールドにバイト配列の内容を割り当てて、オブジェクトを設定します。
  4. PDF/Aランタイムオプションを設定します。

    • コンストラクタを使用して PDFOutputOptionsSpec オブジェクトを作成します。
    • Outputサービスが生成するPDFファイルの場所を指定する文字列値をPDFOutputOptionsSpecオブジェクトのfileURIデータメンバーに割り当てて、「File URI」オプションを設定します。 「ファイルURI 」オプションは、AEM FormsをホストするJ2EEアプリケーションサーバーに対して相対的なもので、クライアントコンピューターに対しては相対的なものではありません
  5. レンダリングの実行時オプションを設定します。

    • コンストラクタを使用して RenderOptionsSpec オブジェクトを作成します。
    • PDFAConformance値を設定するには、RenderOptionsSpecオブジェクトのPDFAConformanceデータメンバーにPDFAConformance列挙値を割り当てます。 例えば、適合レベルAを指定するには、このデータメンバーにPDFAConformance.Aを割り当てます。
    • PDFARevisionNumber値を設定するには、RenderOptionsSpecオブジェクトのPDFARevisionNumberデータメンバーにPDFARevisionNumber列挙値を割り当てます。 PDFARevisionNumber.Revision_1をこのデータメンバーに割り当てます。
    メモ

    PDF/AドキュメントのPDFバージョンは、指定した値に関係なく1.4です。

  6. PDF/Aドキュメントを生成します。

    OutputServiceServiceオブジェクトのgeneratePDFOutputメソッドを呼び出し、次の値を渡してPDFドキュメントを作成します。

    • TransformationFormat列挙値。 PDFドキュメントを生成するには、TransformationFormat.PDFAを指定します。
    • フォームデザイン名を指定する string 値。
    • フォームデザインが存在するコンテンツルートを指定するstring値。
    • PDFランタイムオプションを含むPDFOutputOptionsSpecオブジェクト。
    • レンダリングの実行時オプションを含むRenderOptionsSpecオブジェクト。
    • フォームデザインとマージするデータを含むXMLデータソースを含むBLOBオブジェクト。
    • generatePDFOutputメソッドによって設定されるBLOBオブジェクト。 generatePDFOutputメソッドは、このオブジェクトに、ドキュメントを表す生成済みのメタデータを入力します。 (このパラメーター値は、Webサービスの呼び出しのみに必要です)。
    • generatePDFOutputメソッドによって設定されるBLOBオブジェクト。 generatePDFOutputメソッドは、このオブジェクトに結果データを入力します。 (このパラメーター値は、Webサービスの呼び出しのみに必要です)。
    • 操作の結果を格納するOutputResultオブジェクト。 (このパラメーター値は、Webサービスの呼び出しのみに必要です)。
    メモ

    OutputClientオブジェクトのgeneratePDFOutput2メソッドを呼び出して、PDF /Aドキュメントを作成することもできます。 (Content Services(非推奨)にあるドキュメントをOutputサービスに渡すを参照)。

  7. 操作の結果を取得します。

    • コンストラクターを呼び出し、結果データを含むXMLファイルの場所を表す文字列値を渡すことで、System.IO.FileStreamオブジェクトを作成します。 ファイル名の拡張子が.xmlであることを確認します。
    • OutputServiceServiceオブジェクトのgeneratePDFOutputメソッド(8番目のパラメーター)によって結果データが入力されたBLOBオブジェクトのデータコンテンツを格納するバイト配列を作成します。 BLOBオブジェクトのMTOMフィールドの値を取得して、バイト配列を設定します。
    • コンストラクターを呼び出し、System.IO.FileStreamオブジェクトを渡して、System.IO.BinaryWriterオブジェクトを作成します。
    • System.IO.BinaryWriterオブジェクトのWriteメソッドを呼び出し、バイト配列を渡すことにより、バイト配列の内容をXMLファイルに書き込みます。

関連トピック

手順の概要

MTOMを使用したAEM Formsの呼び出し

SwaRefを使用したAEM Formsの呼び出し

Content Services(非推奨)にあるドキュメントをOutputサービスに渡す

Outputサービスは、通常はXDPファイルとして保存され、Designerで作成されたフォームデザインに基づく非インタラクティブPDFフォームをレンダリングします。 フォームデザインを含むcom.adobe.idp.DocumentオブジェクトをOutputサービスに渡すことができます。 次に、Outputサービスは、com.adobe.idp.Documentオブジェクト内のフォームデザインをレンダリングします。

com.adobe.idp.DocumentオブジェクトをOutputサービスに渡す利点の1つは、他のAEM Formsサービス操作がcom.adobe.idp.Documentインスタンスを返すことです。 つまり、別のサービス操作からcom.adobe.idp.Documentインスタンスを取得してレンダリングできます。 例えば、次の図に示すように、XDPファイルが/Company Home/Form Designsという名前のContent Services(非推奨)ノードに格納されているとします。

プログラムによってContent Services(非推奨)からLoan.xdpを取得し、com.adobe.idp.Documentオブジェクト内でXDPファイルをOutputサービスに渡すことができます。

メモ

Formsサービスについて詳しくは、『 AEM Formsのサービスリファレンス 』を参照してください。

手順の概要

Content Services(非推奨)から取得したドキュメントをOutputサービスに渡すには、次のタスクを実行します。

  1. プロジェクトファイルを含めます。
  2. OutputとDocument Management Client APIオブジェクトを作成します。
  3. Content Services(非推奨)からフォームデザインを取得します。
  4. 非インタラクティブPDFフォームをレンダリングします。
  5. データストリームを使用してアクションを実行します。

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

必要なファイルを開発プロジェクトに含めます。 Javaを使用してクライアントアプリケーションを作成する場合は、必要なJARファイルを含めます。 Webサービスを使用している場合は、プロキシファイルを含めます。

出力とドキュメント管理クライアントAPIオブジェクトの作成

プログラムでOutputサービスAPI操作を実行する前に、OutputクライアントAPIオブジェクトを作成します。 また、このワークフローはContent Services(非推奨)からXDPファイルを取得するので、Document Management APIオブジェクトを作成します。

Content Services(非推奨)からフォームデザインを取得する

JavaまたはWebサービスAPIを使用して、Content Services(非推奨)からXDPファイルを取得します。 XDPファイルは、com.adobe.idp.Documentインスタンス(Webサービスを使用している場合はBLOBインスタンス)内で返されます。 その後、com.adobe.idp.DocumentインスタンスをOutputサービスに渡すことができます。

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

非インタラクティブフォームをレンダリングするには、Content Services(非推奨)から返されたcom.adobe.idp.DocumentインスタンスをOutputサービスに渡します。

メモ

generatePDFOutput2およびg eneratePrintedOutput2という2つの新しいメソッドは、フォームデザインを含むcom.adobe.idp.Documentオブジェクトを受け取ります。 また、印刷ストリームをネットワークプリンターに送信する際に、フォームデザインを含むcom.adobe.idp.DocumentをOutputサービスに渡すこともできます。

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

非インタラクティブフォームをPDFファイルとして保存できます。 フォームは、Adobe ReaderまたはAcrobatで表示できます。

関連トピック

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

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

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定

OutputサービスAPIのクイックスタート

フラグメントを使用したPDFドキュメントの作成

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

OutputサービスおよびContent Services(非推奨)API(Java)を使用してContent Services(非推奨)から取得したドキュメントを渡します。

  1. プロジェクトファイルを含めます。

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

  2. OutputとDocument Management Client APIオブジェクトを作成します。

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

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

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

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

  4. 非インタラクティブPDFフォームをレンダリングします。

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

    • TransformationFormat列挙値。 PDFドキュメントを生成するには、TransformationFormat.PDFを指定します。
    • 画像などの追加リソースが配置されるコンテンツルートを指定するstring値。
    • フォームデザインを表すcom.adobe.idp.Documentオブジェクト(CRCResultオブジェクトのgetDocumentメソッドから返されるインスタンスを使用)。
    • PDFランタイムオプションを含むPDFOutputOptionsSpecオブジェクト。
    • レンダリングの実行時オプションを含むRenderOptionsSpecオブジェクト。
    • フォームデザインとマージするデータを含むXMLデータソースを含むcom.adobe.idp.Documentオブジェクト。

    generatePDFOutput2メソッドは、操作の結果を含むOutputResultオブジェクトを返します。

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

    • OutputResultオブジェクトのgetGeneratedDocメソッドを呼び出して、非インタラクティブフォームを表すcom.adobe.idp.Documentオブジェクトを取得します。
    • 操作の結果を格納するjava.io.Fileオブジェクトを作成します。 ファイル名の拡張子が.pdfであることを確認します。
    • com.adobe.idp.DocumentオブジェクトのcopyToFileメソッドを呼び出して、com.adobe.idp.Documentオブジェクトの内容をファイルにコピーします(getGeneratedDocメソッドで返されたcom.adobe.idp.Documentオブジェクトを使用するようにしてください)。

関連トピック

手順の概要

クイックスタート(EJBモード):Java APIを使用してOutputサービスにドキュメントを渡す

クイックスタート(SOAPモード):Java APIを使用してOutputサービスにドキュメントを渡す

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定

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

OutputサービスおよびContent Services(非推奨)API(Webサービス)を使用してContent Services(非推奨)から取得したドキュメントを渡します。

  1. プロジェクトファイルを含めます。

    MTOMを使用するMicrosoft .NETプロジェクトを作成します。 このクライアントアプリケーションは2つのAEM Formsサービスを呼び出すので、2つのサービス参照を作成します。 Outputサービスに関連付けられたサービス参照に、次のWSDL定義を使用します。http://localhost:8080/soap/services/OutputService?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. OutputとDocument Management Client APIオブジェクトを作成します。

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

    • System.ServiceModel.EndpointAddressコンストラクターを使用してOutputServiceClient.Endpoint.Addressオブジェクトを作成します。 FormsサービスにWSDLを指定するstring値を渡します(例:http://localhost:8080/soap/services/OutputService?blob=mtom)。 lc_version属性を使用する必要はありません。 この属性は、サービス参照を作成する際に使用されます)。

    • OutputServiceClient.Endpoint.Bindingフィールドの値を取得してSystem.ServiceModel.BasicHttpBindingオブジェクトを作成します。 戻り値を BasicHttpBinding にキャストします。

    • System.ServiceModel.BasicHttpBindingオブジェクトのMessageEncodingフィールドをWSMessageEncoding.Mtomに設定します。 この値は、MTOMが使用されるようにします。

    • 次のタスクを実行して、基本的なHTTP認証を有効にします。

      • フィールドOutputServiceClient.ClientCredentials.UserName.UserNameにAEM formsユーザー名を割り当てます。
      • 対応するパスワード値をフィールドOutputServiceClient.ClientCredentials.UserName.Passwordに割り当てます。
      • フィールドBasicHttpBindingSecurity.Transport.ClientCredentialTypeに定数値HttpClientCredentialType.Basicを割り当てます。
    • フィールドBasicHttpBindingSecurity.Security.Modeに定数値BasicHttpSecurityMode.TransportCredentialOnlyを割り当てます。

    メモ

    DocumentManagementServiceClientサービスクライアントに対して、この手順を繰り返します。

  3. Content Services(非推奨)からフォームデザインを取得します。

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

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

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

    • TransformationFormat列挙値。 PDFドキュメントを生成するには、TransformationFormat.PDFを指定します。
    • 画像などの追加リソースが配置されるコンテンツルートを指定するstring値。
    • フォームデザインを表すBLOBオブジェクト(Content Services(非推奨)から返されるBLOBインスタンスを使用)。
    • PDFランタイムオプションを含むPDFOutputOptionsSpecオブジェクト。
    • レンダリングの実行時オプションを含むRenderOptionsSpecオブジェクト。
    • フォームデザインとマージするデータを含むXMLデータソースを含むBLOBオブジェクト。
    • generatePDFOutput2メソッドによって設定される出力BLOBオブジェクト。 generatePDFOutput2メソッドは、このオブジェクトに、ドキュメントを表す生成済みのメタデータを入力します。 (このパラメーター値は、Webサービスの呼び出しにのみ必要です)。
    • 操作の結果を含む出力OutputResultオブジェクト。 (このパラメーター値は、Webサービスの呼び出しにのみ必要です)。

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

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

    • コンストラクターを呼び出して、System.IO.FileStreamオブジェクトを作成します。 インタラクティブPDFドキュメントのファイルの場所と、ファイルを開くモードを表すstring値を渡します。
    • generatePDFOutput2メソッドから取得したBLOBオブジェクトの内容を格納するバイト配列を作成します。 BLOBオブジェクトのMTOMデータメンバーの値を取得して、バイト配列を設定します。
    • コンストラクターを呼び出し、System.IO.FileStreamオブジェクトを渡して、System.IO.BinaryWriterオブジェクトを作成します。
    • System.IO.BinaryWriterオブジェクトのWriteメソッドを呼び出し、バイト配列を渡すことにより、バイト配列の内容をPDFファイルに書き込みます。

関連トピック

手順の概要

MTOMを使用したAEM Formsの呼び出し

リポジトリ内のドキュメントをOutputサービスに渡す

Outputサービスは、通常はXDPファイルとして保存され、Designerで作成されたフォームデザインに基づく非インタラクティブPDFフォームをレンダリングします。 フォームデザインを含むcom.adobe.idp.DocumentオブジェクトをOutputサービスに渡すことができます。 次に、Outputサービスは、com.adobe.idp.Documentオブジェクト内のフォームデザインをレンダリングします。

com.adobe.idp.DocumentオブジェクトをOutputサービスに渡す利点の1つは、他のAEM Formsサービス操作がcom.adobe.idp.Documentインスタンスを返すことです。 つまり、別のサービス操作からcom.adobe.idp.Documentインスタンスを取得してレンダリングできます。 例えば、次の図に示すように、XDPファイルがAEM Formsリポジトリに格納されているとします。

pd_pd_formrepository

FormsFolder​フォルダーは、AEM Formsリポジトリ内のユーザー定義の場所です(この場所は例で、デフォルトでは存在しません)。 この例では、Loan.xdpという名前のフォームデザインがこのフォルダーに配置されています。 この場所には、フォームデザインに加えて、画像などの他のフォームの販促物を格納できます。 AEM Formsリポジトリ内のリソースへのパスは次のとおりです。

Applications/Application-name/Application-version/Folder.../Filename

プログラムによってAEM FormsリポジトリからLoan.xdpを取得し、com.adobe.idp.Documentオブジェクト内でOutputサービスに渡すことができます。

リポジトリ内のXDPファイルをベースにしたPDFを作成するには、次の2つの方法のいずれかを使用します。 XDPの場所は、参照によって渡すことも、XDPをプログラムでリポジトリから取得し、XDPファイル内でOutputサービスに渡すこともできます。

クイックスタート(EJBモード):Java APIを使用したアプリケーションXDPファイルに基づくPDFドキュメントの作成 (参照でXDPファイルの場所を渡す方法を示します)。

クイックスタート(EJBモード):Java APIを使用してAEM Formsリポジトリ内のドキュメントをOutputサービスに渡す方法 (プログラムによってAEM FormsリポジトリからXDPファイルを取得し、インスタンス内でOutputサービスに渡す方法を示し com.adobe.idp.Document ます)。(この節では、このタスクの実行方法について説明します)。

メモ

Formsサービスについて詳しくは、『 AEM Formsのサービスリファレンス 』を参照してください。

手順の概要

AEM Formsリポジトリから取得したドキュメントをOutputサービスに渡すには、次のタスクを実行します。

  1. プロジェクトファイルを含めます。
  2. OutputとDocument Management Client APIオブジェクトを作成します。
  3. AEM Formsリポジトリからフォームデザインを取得します。
  4. 非インタラクティブPDFフォームをレンダリングします。
  5. データストリームを使用してアクションを実行します。

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

必要なファイルを開発プロジェクトに含めます。 Javaを使用してクライアントアプリケーションを作成する場合は、必要なJARファイルを含めます。 Webサービスを使用している場合は、プロキシファイルを含めます。

出力とドキュメント管理クライアントAPIオブジェクトの作成

プログラムでOutputサービスAPI操作を実行する前に、OutputクライアントAPIオブジェクトを作成します。 また、このワークフローはContent Services(非推奨)からXDPファイルを取得するので、Document Management APIオブジェクトを作成します。

AEM Formsリポジトリからフォームデザインを取得する

Repository APIを使用して、AEM FormsリポジトリからXDPファイルを取得します。 (リソースの読み取りを参照)。

XDPファイルは、com.adobe.idp.Documentインスタンス(Webサービスを使用している場合はBLOBインスタンス)内で返されます。 その後、com.adobe.idp.DocumentインスタンスをOutputサービスに渡すことができます。

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

非インタラクティブフォームをレンダリングするには、AEM FormsリポジトリAPIを使用して返されたcom.adobe.idp.Documentインスタンスを渡します。

メモ

generatePDFOutput2およびgeneratePrintedOutput2という2つの新しいメソッドは、フォームデザインを含むcom.adobe.idp.Documentオブジェクトを受け取ります。 また、印刷ストリームをネットワークプリンターに送信する際に、フォームデザインを含むcom.adobe.idp.DocumentをOutputサービスに渡すこともできます。

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

非インタラクティブフォームをPDFファイルとして保存できます。 フォームは、Adobe ReaderまたはAcrobatで表示できます。

関連トピック

Java APIを使用して、リポジトリ内のドキュメントをOutputサービスに渡す

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定

OutputサービスAPIのクイックスタート

ResourceRepositoryClient

Java APIを使用して、リポジトリ内のドキュメントをOutputサービスに渡す

OutputサービスとリポジトリAPI(Java)を使用してリポジトリから取得したドキュメントを渡します。

  1. プロジェクトファイルを含めます。

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

  2. OutputとDocument Management Client APIオブジェクトを作成します。

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

    ResourceRepositoryClientオブジェクトのreadResourceContentメソッドを呼び出し、URIの場所を指定する文字列値をXDPファイルに渡します。 例えば、/Applications/FormsApplication/1.0/FormsFolder/Loan.xdp のようになります。この値は必須です。 このメソッドは、XDPファイルを表すcom.adobe.idp.Documentインスタンスを返します。

  4. 非インタラクティブPDFフォームをレンダリングします。

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

    • TransformationFormat列挙値。 PDFドキュメントを生成するには、TransformationFormat.PDFを指定します。
    • 画像などの追加リソースが配置されるコンテンツルートを指定するstring値。 (例:repository:///Applications/FormsApplication/1.0/FormsFolder/)。
    • フォームデザインを表すcom.adobe.idp.Documentオブジェクト(ResourceRepositoryClientオブジェクトのreadResourceContentメソッドから返されるインスタンスを使用)。
    • PDFランタイムオプションを含むPDFOutputOptionsSpecオブジェクト。
    • レンダリングの実行時オプションを含むRenderOptionsSpecオブジェクト。
    • フォームデザインとマージするデータを含むXMLデータソースを含むcom.adobe.idp.Documentオブジェクト。

    generatePDFOutput2メソッドは、操作の結果を含むOutputResultオブジェクトを返します。

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

    • OutputResultオブジェクトのgetGeneratedDocメソッドを呼び出して、非インタラクティブフォームを表すcom.adobe.idp.Documentオブジェクトを取得します。
    • 操作の結果を格納するjava.io.Fileオブジェクトを作成します。 ファイル名の拡張子が.pdfであることを確認します。
    • com.adobe.idp.DocumentオブジェクトのcopyToFileメソッドを呼び出して、com.adobe.idp.Documentオブジェクトの内容をファイルにコピーします(getGeneratedDocメソッドで返されたcom.adobe.idp.Documentオブジェクトを使用するようにしてください)。

関連トピック

手順の概要

クイックスタート(EJBモード):Java APIを使用してAEM Formsリポジトリ内のドキュメントをOutputサービスに渡す

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定

フラグメントを使用したPDFドキュメントの作成

OutputサービスとAssemblerサービスを使用して、フラグメントに基づく出力ストリーム(PDFドキュメントなど)を作成できます。 Assemblerサービスは、複数のXDPファイル内のフラグメントに基づくXDPドキュメントをアセンブリします。 アセンブリされたXDPドキュメントがOutputサービスに渡され、PDFドキュメントが作成されます。 このワークフローでは、生成中のPDFドキュメントが表示されますが、Outputサービスでは、このワークフローに対してZPLなどの他の出力タイプを生成できます。 PDFドキュメントは、ディスカッションの目的でのみ使用します。

次の図に、このワークフローを示します。

cp_cp_outputassemblefragments

Fragments​を使用したPDFドキュメントの作成を読む前に、Assemblerサービスを使用して複数のXDPドキュメントをアセンブリする方法を理解しておくことをお勧めします。 (複数のXDPフラグメントのアセンブリを参照)。

メモ

また、Assemblerサービスによってアセンブルされたフォームデザインを、Outputサービスの代わりにFormsサービスに渡すこともできます。 OutputサービスとFormsサービスの主な違いは、FormsサービスでインタラクティブPDFドキュメントが生成され、Outputサービスで非インタラクティブPDFドキュメントが生成される点です。 また、Formsサービスは、ZPLなどのプリンターベースの出力ストリームを生成できません。

メモ

Outputサービスについて詳しくは、『AEM Formsのサービスリファレンス』を参照してください。

手順の概要

フラグメントに基づいてPDFドキュメントを作成するには、次の手順を実行します。

  1. プロジェクトファイルを含めます。
  2. OutputおよびAssembler Clientオブジェクトを作成します。
  3. フォームデザインを生成するには、Assemblerサービスを使用します。
  4. Outputサービスを使用してPDFドキュメントを生成します。
  5. PDFドキュメントをPDFファイルとして保存します。

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

必要なファイルを開発プロジェクトに含めます。 Javaを使用してクライアントアプリケーションを作成する場合は、必要なJARファイルを含めます。 Webサービスを使用する場合は、必ずプロキシファイルを含めてください。

出力およびアセンブラクライアントオブジェクトの作成

プログラムでOutputサービスAPI操作を実行する前に、OutputクライアントAPIオブジェクトを作成します。 また、このワークフローはAssemblerサービスを呼び出してフォームデザインを作成するので、AssemblerクライアントAPIオブジェクトを作成します。

フォームデザインの生成にAssemblerサービスを使用する

Assemblerサービスを使用して、フラグメントを使用してフォームデザインを生成します。 Assemblerサービスは、フォームデザインを含むcom.adobe.idp.Documentインスタンスを返します。

Outputサービスを使用してPDFドキュメントを生成する

Outputサービスを使用して、Assemblerサービスが作成したフォームデザインを使用してPDFドキュメントを生成できます。 Assemblerサービスが返したcom.adobe.idp.DocumentインスタンスをOutputサービスに渡します。

PDFドキュメントをPDFファイルとして保存

OutputサービスでPDFドキュメントが生成されたら、PDFファイルとして保存できます。

関連トピック

Java APIを使用して、フラグメントに基づくPDFドキュメントを作成する

WebサービスAPIを使用して、フラグメントに基づくPDFドキュメントを作成する

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定

OutputサービスAPIのクイックスタート

複数のXDPフラグメントのアセンブリ

PDFドキュメントの作成

Java APIを使用して、フラグメントに基づくPDFドキュメントを作成する

OutputサービスAPIとAssemblerサービスAPI(Java)を使用して、フラグメントに基づいたPDFドキュメントを作成します。

  1. プロジェクトファイルを含めます。

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

  2. OutputおよびAssembler Clientオブジェクトを作成します。

    • 接続プロパティを含む ServiceClientFactory オブジェクトを作成します。
    • コンストラクターを使用してOutputClientオブジェクトを渡し、ServiceClientFactoryオブジェクトを作成します。
    • コンストラクターを使用してAssemblerServiceClientオブジェクトを渡し、ServiceClientFactoryオブジェクトを作成します。
  3. フォームデザインを生成するには、Assemblerサービスを使用します。

    AssemblerServiceClientオブジェクトのinvokeDDXメソッドを呼び出し、次の必須値を渡します。

    • 使用するDDXドキュメントを表すcom.adobe.idp.Documentオブジェクト。
    • 入力XDPファイルを格納するjava.util.Mapオブジェクト。
    • デフォルトのフォントやジョブのログレベルなど、実行時のオプションを指定するcom.adobe.livecycle.assembler.client.AssemblerOptionSpecオブジェクト。

    invokeDDXメソッドは、アセンブリされたXDPドキュメントを含むcom.adobe.livecycle.assembler.client.AssemblerResultオブジェクトを返します。 アセンブリ済みのXDPドキュメントを取得するには、次の操作を実行します。

    • AssemblerResultオブジェクトのgetDocumentsメソッドを呼び出します。 このメソッドはjava.util.Mapオブジェクトを返します。
    • java.util.Mapオブジェクトを繰り返し処理して、結果のcom.adobe.idp.Documentオブジェクトを見つけます。
    • com.adobe.idp.DocumentオブジェクトのcopyToFileメソッドを呼び出して、アセンブリされたXDPドキュメントを抽出します。
  4. Outputサービスを使用してPDFドキュメントを生成します。

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

    • TransformationFormat列挙値。 PDFドキュメントを生成するには、TransformationFormat.PDFを指定します。
    • 画像などの追加リソースが存在するコンテンツルートを指定するstring値
    • フォームデザインを表すcom.adobe.idp.Documentオブジェクト(Assemblerサービスから返されたインスタンスを使用)
    • PDFランタイムオプションを含むPDFOutputOptionsSpecオブジェクト
    • レンダリング実行時オプションを含むRenderOptionsSpecオブジェクト
    • フォームデザインとマージするデータが含まれるXMLデータソースを含むcom.adobe.idp.Documentオブジェクト

    generatePDFOutput2メソッドは、操作の結果を含むOutputResultオブジェクトを返します

  5. PDFドキュメントをPDFファイルとして保存します。

    • OutputResultオブジェクトのgetGeneratedDocメソッドを呼び出して、PDFドキュメントを表すcom.adobe.idp.Documentオブジェクトを取得します。
    • 操作の結果を格納するjava.io.Fileオブジェクトを作成します。 ファイル名の拡張子が.pdfであることを確認します。
    • com.adobe.idp.DocumentオブジェクトのcopyToFileメソッドを呼び出して、com.adobe.idp.Documentオブジェクトの内容をファイルにコピーします。 (getGeneratedDocメソッドが返すcom.adobe.idp.Documentオブジェクトを使用してください)。

関連トピック

手順の概要

クイックスタート(EJBモード):Java APIを使用したフラグメントに基づくPDFドキュメントの作成

クイックスタート(SOAPモード):Java APIを使用したフラグメントに基づくPDFドキュメントの作成

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定.

WebサービスAPIを使用して、フラグメントに基づくPDFドキュメントを作成する

OutputサービスAPIとAssemblerサービスAPI(Webサービス)を使用して、フラグメントに基づいたPDFドキュメントを作成します。

  1. プロジェクトファイルを含めます。

    MTOMを使用するMicrosoft .NETプロジェクトを作成します。 Outputサービスに関連付けられたサービス参照に、次のWSDL定義を使用します。

     http://localhost:8080/soap/services/OutputService?WSDL&lc_version=9.0.1.
    

    Assemblerサービスに関連付けられたサービス参照には、次のWSDL定義を使用します。

     http://localhost:8080/soap/services/AssemblerService?WSDL&lc_version=9.0.1.
    

    BLOBデータ型は両方のサービス参照に共通なので、BLOBデータ型を使用する際には完全に修飾します。 対応するWebサービスのクイックスタートでは、すべてのBLOBインスタンスが完全に認定されます。

    メモ

    localhostを、AEM FormsをホストするサーバーのIPアドレスに置き換えます。

  2. OutputおよびAssembler Clientオブジェクトを作成します。

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

    • System.ServiceModel.EndpointAddressコンストラクターを使用してOutputServiceClient.Endpoint.Addressオブジェクトを作成します。 WSDLをAEM Formsサービスに渡す文字列値(例:http://localhost:8080/soap/services/OutputService?blob=mtom)を渡します。 lc_version属性を使用する必要はありません。 この属性は、サービス参照を作成する際に使用されます。 ただし、MTOMを使用する場合は?blob=mtomを指定します。

    • OutputServiceClient.Endpoint.Bindingフィールドの値を取得してSystem.ServiceModel.BasicHttpBindingオブジェクトを作成します。 戻り値を BasicHttpBinding にキャストします。

    • System.ServiceModel.BasicHttpBindingオブジェクトのMessageEncodingフィールドをWSMessageEncoding.Mtomに設定します。 この値は、MTOMが使用されるようにします。

    • 次のタスクを実行して、基本的なHTTP認証を有効にします。

      • OutputServiceClient.ClientCredentials.UserName.UserNameフィールドにAEM formsユーザー名を割り当てます。
      • 対応するパスワード値をOutputServiceClient.ClientCredentials.UserName.Passwordフィールドに割り当てます。
      • 定数値HttpClientCredentialType.BasicBasicHttpBindingSecurity.Transport.ClientCredentialTypeフィールドに割り当てます。
    • BasicHttpSecurityMode.TransportCredentialOnly定数値をBasicHttpBindingSecurity.Security.Modeフィールドに割り当てます。

    メモ

    AssemblerServiceClientオブジェクトに対して、次の手順を繰り返します。

  3. フォームデザインを生成するには、Assemblerサービスを使用します。

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

    • DDXドキュメントを表すBLOBオブジェクト
    • 必要なファイルを含むMyMapOf_xsd_string_To_xsd_anyTypeオブジェクト
    • 実行時オプションを指定するAssemblerOptionSpecオブジェクト

    invokeDDXメソッドは、ジョブの結果と発生した例外を含むAssemblerResultオブジェクトを返します。 新しく作成したXDPドキュメントを取得するには、次の操作を実行します。

    • AssemblerResultオブジェクトのdocumentsフィールド(結果のPDFドキュメントを含むMapオブジェクト)にアクセスします。
    • Mapオブジェクトを繰り返し処理して、アセンブリされたフォームデザインを取得します。 配列メンバのvalueBLOBにキャストします。 このBLOBインスタンスをOutputサービスに渡します。
  4. Outputサービスを使用してPDFドキュメントを生成します。

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

    • TransformationFormat列挙値。 PDFドキュメントを生成するには、TransformationFormat.PDFを指定します。
    • 画像などの追加リソースが存在するコンテンツルートを指定するstring値。
    • フォームデザインを表すBLOBオブジェクト(Assemblerサービスから返されるBLOBインスタンスを使用)。
    • PDFランタイムオプションを含むPDFOutputOptionsSpecオブジェクト。
    • レンダリングの実行時オプションを含むRenderOptionsSpecオブジェクト。
    • フォームデザインとマージするデータを含むXMLデータソースを含むBLOBオブジェクト。
    • generatePDFOutput2メソッドが設定する出力BLOBオブジェクト。 generatePDFOutput2メソッドは、このオブジェクトに、ドキュメントを表す生成済みのメタデータを入力します。 (このパラメーター値は、Webサービスの呼び出しにのみ必要です)。
    • 操作の結果を含む出力OutputResultオブジェクト。 (このパラメーター値は、Webサービスの呼び出しにのみ必要です)。

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

  5. PDFドキュメントをPDFファイルとして保存します。

    • コンストラクターを呼び出して、System.IO.FileStreamオブジェクトを作成します。 インタラクティブPDFドキュメントのファイルの場所と、ファイルを開くモードを表すstring値を渡します。
    • generatePDFOutput2メソッドから取得したBLOBオブジェクトの内容を格納するバイト配列を作成します。 BLOBオブジェクトのMTOMデータメンバーの値を取得して、バイト配列を設定します。
    • コンストラクターを呼び出し、System.IO.FileStreamオブジェクトを渡して、System.IO.BinaryWriterオブジェクトを作成します。
    • System.IO.BinaryWriterオブジェクトのWriteメソッドを呼び出し、バイト配列を渡すことにより、バイト配列の内容をPDFファイルに書き込みます。

関連トピック

手順の概要

MTOMを使用したAEM Formsの呼び出し

ファイルへの印刷

Outputサービスを使用して、PostScript、Printer Control Language(PCL)、または次のラベル形式などのストリームをファイルに印刷できます。

  • ゼブラ — ZPL
  • Intermec - IPL
  • Datamax - DPL
  • TecToshiba - TPCL

Outputサービスを使用すると、XMLデータをフォームデザインとマージし、フォームをファイルに印刷できます。 次の図に、Outputサービスでのレーザーファイルとラベルファイルの作成を示します。

メモ

プリントストリームをプリンターに送信する方法については、Sending Print Streams to Printersを参照してください。

メモ

Outputサービスについて詳しくは、『AEM Formsのサービスリファレンス』を参照してください。

手順の概要

ファイルに印刷するには、次の手順を実行します。

  1. プロジェクトファイルを含めます。
  2. Outputクライアントオブジェクトを作成します。
  3. XMLデータソースを参照します。
  4. ファイルに印刷するために必要な印刷実行時オプションを設定します。
  5. 印刷ストリームをファイルに印刷します。
  6. 操作の結果を取得します。

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

必要なファイルを開発プロジェクトに含めます。 Javaを使用してクライアントアプリケーションを作成する場合は、必要なJARファイルを含めます。 Webサービスを使用する場合は、必ずプロキシファイルを含めてください。

次のJARファイルをプロジェクトのクラスパスに追加する必要があります。

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-output-client.jar
  • adobe-utilities.jar(AEM FormsをJBossにデプロイする場合に必要)
  • jbossall-client.jar(AEM FormsをJBossにデプロイする場合に必要)

AEM FormsがJBoss以外のサポート対象のJ2EEアプリケーションサーバーにデプロイされている場合は、adobe-utilities.jarファイルとjbossall-client.jarファイルを、AEM FormsがデプロイされているJ2EEアプリケーションサーバーに固有のJARファイルに置き換える必要があります。 (AEM Forms Java ライブラリファイルを含めるを参照。)

Outputクライアントオブジェクトの作成

プログラムによってOutputサービス操作を実行する前に、Outputサービスクライアントオブジェクトを作成する必要があります。 Java APIを使用している場合は、OutputClientオブジェクトを作成します。 Output WebサービスAPIを使用している場合は、OutputServiceServiceオブジェクトを作成します。

XMLデータソースの参照

データを含むドキュメントを印刷するには、データを入力するすべてのフォームフィールドに対して、XML要素を含むXMLデータソースを参照する必要があります。 XML 要素名は、フィールド名と一致する必要があります。XML 要素がフォームフィールドに対応していない場合や、XML 要素名がフィールド名と一致しない場合、XML 要素は無視されます。すべてのXML要素を指定した場合、XML要素の表示順序を一致させる必要はありません。

ファイルへの印刷に必要な印刷実行時オプションの設定

ファイルに印刷するには、Outputサービスが印刷するファイルの場所と名前を指定して、「ファイルURIランタイム」オプションを設定する必要があります。 例えば、Outputサービスに​MortgageForm.ps​という名前のPostScriptファイルをC:\Adobeに印刷するように指示するには、C:\Adobe\MortgageForm.psと指定します。

メモ

オプションで定義できる実行時オプションがあります。 設定できるすべてのオプションについて詳しくは、「 AEM Forms APIリファレンス 」のPrintedOutputOptionsSpecクラス参照を参照してください。

印刷ストリームをファイルに印刷する

フォームデータを含む有効なXMLデータソースを参照し、印刷実行時オプションを設定した後、Outputサービスを呼び出すと、ファイルが印刷されます。

操作の結果の取得

Outputサービスが操作を実行すると、XMLデータなど、操作が成功したかどうかを示す様々なデータ項目が返されます。

関連トピック

Java APIを使用してファイルに出力

WebサービスAPIを使用してファイルに出力

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定

OutputサービスAPIのクイックスタート

出力API(Java)を使用してファイルに出力:

  1. プロジェクトファイルを含めます。

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

  2. Outputクライアントオブジェクトを作成します。

    • 接続プロパティを含む ServiceClientFactory オブジェクトを作成します。
    • コンストラクターを使用してOutputClientオブジェクトを渡し、ServiceClientFactoryオブジェクトを作成します。
  3. XMLデータソースを参照します。

    • コンストラクタを使用し、XMLファイルの場所を指定する文字列値を渡すことで、ドキュメントの入力に使用されるXMLデータソースを表すjava.io.FileInputStreamオブジェクトを作成します。
    • コンストラクタを使用して com.adobe.idp.Document オブジェクトを渡すことによって、java.io.FileInputStream オブジェクトを作成します。
  4. ファイルに印刷するために必要な印刷実行時オプションを設定します。

    • コンストラクタを使用して PrintedOutputOptionsSpec オブジェクトを作成します。
    • PrintedOutputOptionsSpecオブジェクトのsetFileURIメソッドを呼び出し、ファイルの名前と場所を表す文字列値を渡すことによって、ファイルを指定します。 例えば、C:\Adobeにある* MortgageForm.ps*という名前のPostScriptファイルにOutputサービスを印刷する場合は、C:\Adobe\MortgageForm.psと指定します。
    • PrintedOutputOptionsSpecオブジェクトのsetCopiesメソッドを呼び出し、印刷部数を表す整数値を渡して、印刷部数を指定します。
  5. 印刷ストリームをファイルに印刷します。

    OutputClientオブジェクトのgeneratePrintedOutputメソッドを呼び出し、次の値を渡して、ファイルに出力します。

    • 作成する印刷ストリーム形式を指定するPrintFormat列挙値。 例えば、PostScript印刷ストリームを作成するには、PrintFormat.PostScriptを渡します。
    • フォームデザイン名を指定する string 値。
    • 画像ファイルなど、関連する販促物ファイルの場所を指定するstring値。
    • 使用するXDCファイルの場所を指定するstring値(PrintedOutputOptionsSpecオブジェクトを使用して使用するXDCファイルを指定した場合、nullを渡すことができます)。
    • ファイルに印刷するために必要な実行時オプションを含むPrintedOutputOptionsSpecオブジェクト。
    • フォームデータを含むXMLデータソースを含むcom.adobe.idp.Documentオブジェクト。

    generatePrintedOutputメソッドは、操作の結果を含むOutputResultオブジェクトを返します。

    メモ

    OutputResultオブジェクトのgetRecordLevelMetaDataListメソッドはnull*を返します。 *

  6. 操作の結果を取得します。

    • OutputResultオブジェクトのgetStatusDocメソッド(generatePrintedOutputメソッドで返されたOutputResultオブジェクト)を呼び出して、generatePrintedOutputメソッドの状態を表すcom.adobe.idp.Documentオブジェクトを作成します。
    • 操作の結果を格納するjava.io.Fileオブジェクトを作成します。 ファイル拡張子がXMLであることを確認します。
    • com.adobe.idp.DocumentオブジェクトのcopyToFileメソッドを呼び出して、com.adobe.idp.Documentオブジェクトの内容をファイルにコピーします(getStatusDocメソッドで返されたcom.adobe.idp.Documentオブジェクトを使用するようにしてください)。

関連トピック

手順の概要

クイックスタート(SOAPモード):Java APIを使用したファイルへの印刷

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定.

Output API(Webサービス)を使用してファイルに出力します。

  1. プロジェクトファイルを含めます。

    MTOMを使用するMicrosoft .NETプロジェクトを作成します。 次のWSDL定義を使用していることを確認します。http://localhost:8080/soap/services/OutputService?WSDL&lc_version=9.0.1.

    メモ

    localhostを、AEM FormsをホストするサーバーのIPアドレスに置き換えます。

  2. Outputクライアントオブジェクトを作成します。

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

    • System.ServiceModel.EndpointAddressコンストラクターを使用してOutputServiceClient.Endpoint.Addressオブジェクトを作成します。 WSDLをAEM Formsサービスに渡す文字列値(例:http://localhost:8080/soap/services/OutputService?blob=mtom)を渡します。 lc_version属性を使用する必要はありません。 この属性は、サービス参照を作成する際に使用されます。 ただし、MTOMを使用する場合は?blob=mtomを指定します。

    • OutputServiceClient.Endpoint.Bindingフィールドの値を取得してSystem.ServiceModel.BasicHttpBindingオブジェクトを作成します。 戻り値を BasicHttpBinding にキャストします。

    • System.ServiceModel.BasicHttpBindingオブジェクトのMessageEncodingフィールドをWSMessageEncoding.Mtomに設定します。 この値は、MTOMが使用されるようにします。

    • 次のタスクを実行して、基本的なHTTP認証を有効にします。

      • フィールドOutputServiceClient.ClientCredentials.UserName.UserNameにAEM formsユーザー名を割り当てます。
      • 対応するパスワード値をフィールドOutputServiceClient.ClientCredentials.UserName.Passwordに割り当てます。
      • フィールドBasicHttpBindingSecurity.Transport.ClientCredentialTypeに定数値HttpClientCredentialType.Basicを割り当てます。
      • フィールドBasicHttpBindingSecurity.Security.Modeに定数値BasicHttpSecurityMode.TransportCredentialOnlyを割り当てます。
  3. XMLデータソースを参照します。

    • コンストラクタを使用して BLOB オブジェクトを作成します。BLOBオブジェクトは、フォームデータの格納に使用されます。
    • コンストラクターを呼び出し、フォームデータを含むXMLファイルの場所を指定する文字列値を渡すことで、System.IO.FileStreamオブジェクトを作成します。
    • System.IO.FileStreamオブジェクトの内容を格納するバイト配列を作成します。 System.IO.FileStreamオブジェクトのLengthプロパティを取得することで、バイト配列のサイズを判断できます。
    • System.IO.FileStreamオブジェクトのReadメソッドを呼び出し、読み取るバイト配列、開始位置、ストリーム長を渡すことによって、バイト配列にストリームデータを入力します。
    • BLOBオブジェクトのbinaryDataプロパティにバイト配列の内容を割り当てて、オブジェクトを設定します。
  4. ファイルに印刷するために必要な印刷実行時オプションを設定します。

    • コンストラクタを使用して PrintedOutputOptionsSpec オブジェクトを作成します。
    • ファイルの場所と名前を表すstring値をPrintedOutputOptionsSpecオブジェクトのfileURIデータメンバーに割り当てて、ファイルを指定します。 例えば、C:\AdobeにあるPostScriptファイル​MortgageForm.ps​にOutputサービスを印刷する場合は、C:\Adobe\MortgageForm.psと指定します。
    • PrintedOutputOptionsSpecオブジェクトのcopiesデータメンバにコピー数を表す整数値を割り当てて、印刷するコピー数を指定します。
  5. 印刷ストリームをファイルに印刷します。

    OutputServiceServiceオブジェクトのgeneratePrintedOutputメソッドを呼び出し、次の値を渡して、ファイルに出力します。

    • 作成する印刷ストリーム形式を指定するPrintFormat列挙値。 例えば、PostScript印刷ストリームを作成するには、PrintFormat.PostScriptを渡します。
    • フォームデザイン名を指定する string 値。
    • 画像ファイルなど、関連する販促物ファイルの場所を指定するstring値。
    • 使用するXDCファイルの場所を指定するstring値(PrintedOutputOptionsSpecオブジェクトを使用して使用するXDCファイルを指定した場合、nullを渡すことができます)。
    • ファイルに印刷するために必要な印刷実行時オプションを含むPrintedOutputOptionsSpecオブジェクト。
    • フォームデータを含むXMLデータソースを含むBLOBオブジェクト。
    • generatePDFOutputメソッドによって設定されるBLOBオブジェクト。 generatePDFOutputメソッドは、このオブジェクトに、ドキュメントを表す生成済みのメタデータを入力します。 (このパラメーター値は、Webサービスの呼び出しのみに必要です)。
    • generatePDFOutputメソッドによって設定されるBLOBオブジェクト。 generatePDFOutputメソッドは、このオブジェクトに結果データを入力します。 (このパラメーター値は、Webサービスの呼び出しのみに必要です)。
    • 操作の結果を格納するOutputResultオブジェクト。 (このパラメーター値は、Webサービスの呼び出しのみに必要です)。
  6. 操作の結果を取得します。

    • コンストラクターを呼び出し、結果データを含むXMLファイルの場所を表す文字列値を渡すことで、System.IO.FileStreamオブジェクトを作成します。 ファイル拡張子がXMLであることを確認します。
    • OutputServiceServiceオブジェクトのgeneratePDFOutputメソッド(8番目のパラメーター)によって結果データが入力されたBLOBオブジェクトのデータコンテンツを格納するバイト配列を作成します。 BLOBオブジェクトのMTOMデータメンバーの値を取得して、バイト配列を設定します。
    • コンストラクターを呼び出し、System.IO.FileStreamオブジェクトを渡して、System.IO.BinaryWriterオブジェクトを作成します。
    • System.IO.BinaryWriterオブジェクトのWriteメソッドを呼び出し、バイト配列を渡すことにより、バイト配列の内容をXMLファイルに書き込みます。

関連トピック

手順の概要

MTOMを使用したAEM Formsの呼び出し

SwaRefを使用したAEM Formsの呼び出し

プリンターへの印刷ストリームの送信

Outputサービスを使用して、PostScript、Printer Control Language(PCL)、または次のラベル形式などの印刷ストリームをネットワークプリンターに送信できます。

  • ゼブラ — ZPL
  • Intermec - IPL
  • Datamax - DPL
  • TecToshiba - TPCL

Outputサービスを使用すると、XMLデータをフォームデザインとマージし、フォームを印刷ストリームとして出力できます。 例えば、PostScript印刷ストリームを作成して、ネットワークプリンターに送信できます。 次の図は、印刷ストリームをネットワークプリンターに送信するOutputサービスを示しています。

メモ

この節では、印刷ストリームをネットワークプリンタに送信する方法を示すために、SharedPrinterプロトコルを使用してPostScript印刷ストリームをネットワークプリンタに送信します。

メモ

Outputサービスについて詳しくは、『AEM Formsのサービスリファレンス』を参照してください。

手順の概要

印刷ストリームをネットワークプリンタに送信するには、次の手順に従います。

  1. プロジェクトファイルを含めます。
  2. Outputクライアントオブジェクトを作成します。
  3. XMLデータソースを参照します。
  4. 印刷実行時オプションの設定
  5. 印刷するドキュメントを取得します。
  6. ドキュメントをネットワークプリンターに送信します。

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

必要なファイルを開発プロジェクトに含めます。 Javaを使用してクライアントアプリケーションを作成する場合は、必要なJARファイルを含めます。 Webサービスを使用する場合は、必ずプロキシファイルを含めてください。

次のJARファイルをプロジェクトのクラスパスに追加する必要があります。

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-output-client.jar
  • adobe-utilities.jar(AEM FormsがJBossにデプロイされている場合に必須)
  • jbossall-client.jar(AEM FormsがJBossにデプロイされている場合に必須)

AEM FormsがJBoss以外のサポート対象のJ2EEアプリケーションサーバーにデプロイされている場合は、adobe-utilities.jarファイルとjbossall-client.jarファイルを、AEM FormsがデプロイされているJ2EEアプリケーションサーバーに固有のJARファイルに置き換える必要があります。

Outputクライアントオブジェクトの作成

プログラムによってOutputサービス操作を実行する前に、Outputサービスクライアントオブジェクトを作成します。 Java APIを使用している場合は、OutputClientオブジェクトを作成します。 Output WebサービスAPIを使用している場合は、OutputServiceClientオブジェクトを作成します。

XMLデータソースの参照

データを含むドキュメントを印刷するには、データを入力するすべてのフォームフィールドに対して、XML要素を含むXMLデータソースを参照する必要があります。 XML 要素名は、フィールド名と一致する必要があります。XML 要素がフォームフィールドに対応していない場合や、XML 要素名がフィールド名と一致しない場合、XML 要素は無視されます。すべてのXML要素を指定した場合、XML要素の表示順序を一致させる必要はありません。

印刷実行時オプションの設定

印刷ストリームをプリンターに送信する際に、次のオプションを含む実行時オプションを設定できます。

  • コピー:プリンタに送信する部数を指定します。デフォルト値は 1 です。
  • ステープル:ステープル印刷が使用されると、XCIオプションが設定されます。このオプションは、設定モデルでステープル要素で指定でき、PSプリンターとPCLプリンターにのみ使用されます。
  • OutputJog:XCIオプションは、出力ページをジョグ(出力トレイ内で物理的にシフト)する必要がある場合に設定されます。このオプションは、PSおよびPCLプリンター専用です。
  • 出力ビン:印刷ドライバが適切な出力binを選択できるようにするために使用されるXCI値。
メモ

設定できるすべての実行時オプションについて詳しくは、PrintedOutputOptionsSpecクラス参照を参照してください。

印刷するドキュメントの取得

プリンターに送信する印刷ストリームを取得します。 例えば、PostScriptファイルを取得してプリンターに送信できます。

プリンターがPDFをサポートしている場合は、PDFファイルを送信するように選択できます。 ただし、PDFドキュメントをプリンターに送信する際の問題は、プリンターの製造元ごとにPDFインタープリターの実装が異なる点です。 つまり、一部の印刷メーカーはAdobe PDFの解釈を使用しますが、プリンターによって異なります。 その他のプリンターには、独自のPDFインタープリターがあります。 その結果、印刷結果が異なる場合があります。

PDFドキュメントをプリンターに送信するもう1つの制限は、単に印刷することです。両面印刷、用紙トレイの選択、ホチキス止めは、プリンタの設定を使用しない限り使用できません。

印刷するドキュメントを取得するには、generatePrintedOutputメソッドを使用します。 次の表は、generatePrintedOutputメソッドを使用する際に指定の印刷ストリームに設定されるコンテンツタイプを示しています。

印刷形式

説明

DPL

デフォルトまたはカスタムのxdc出力ストリームでdpl203.xdcを作成します。

DPL 300 DPI

DPL 300 DPI出力ストリームを作成します。

DPL 406 DPI

DPL 400 DPI出力ストリームを作成します。

DPL 600 DPI

DPL 600 DPI出力ストリームを作成します。

GenericColorPCL

汎用カラーPCL(5c)出力ストリームを作成します。

GenericPSLevel3

汎用PostScriptレベル3の出力ストリームを作成します。

IPL

カスタムIPL出力ストリームを作成します。

IPL 300 DPI

IPL 300 DPI出力ストリームを作成します。

IPL 400 DPI

IPL 400 DPI出力ストリームを作成します。

PCL

汎用モノクロPCL(5e)出力ストリームを作成します。

PostScript

汎用PostScriptレベル2の出力ストリームを作成します。

TPCL

カスタムTPCL出力ストリームを作成します。

TPCL 305 DPI

TPCL 305 DPI出力ストリームを作成します。

TPCL 600 DPI

TPCL 600 DPI出力ストリームを作成します。

ZPL

ZPL 203 DPI出力ストリームを作成します。

ZPL 300 DPI

ZPL 300 DPI出力ストリームを作成します。

メモ

generatePrintedOutput2メソッドを使用して、印刷ストリームをプリンターに送信することもできます。 ただし、「プリントストリームをプリンターに送信する」セクションに関連するクイックスタートでは、generatePrintedOutputメソッドを使用します。

印刷ストリームをネットワークプリンタに送信する

印刷するドキュメントを取得した後、Outputサービスを呼び出すと、印刷ストリームがネットワークプリンターに送信されます。 Outputサービスでプリンターを正しく見つけるには、プリントサーバーとプリンター名の両方を指定する必要があります。 また、印刷プロトコルも指定する必要があります。

メモ

PDFGがformsサーバーにインストールされ、サーバーがWindows Server 2008で実行されている場合、SharedPrinterプロパティは使用できません。 この場合は、別のプリンタープロトコルを使用します。

メモ

ネットワークプリンタを使用し、アクセスメカニズムがSharedPrinterの場合は、プリンタの完全なネットワークパスを指定する必要があります。Java APIを使用して、印刷ストリームをネットワークプリンタに送信します

Output API(Java)を使用して、印刷ストリームをネットワークプリンターに送信します。

  1. プロジェクトファイルを含めます。

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

  2. Outputクライアントオブジェクトの作成

    • 接続プロパティを含む ServiceClientFactory オブジェクトを作成します。
    • コンストラクターを使用してOutputClientオブジェクトを渡し、ServiceClientFactoryオブジェクトを作成します。
  3. XMLデータソースの参照

    • コンストラクタを使用し、XMLファイルの場所を指定する文字列値を渡すことで、ドキュメントの入力に使用されるXMLデータソースを表すjava.io.FileInputStreamオブジェクトを作成します。
    • コンストラクタを使用して com.adobe.idp.Document オブジェクトを渡すことによって、java.io.FileInputStream オブジェクトを作成します。
  4. 印刷実行時オプションの設定

    印刷ランタイムオプションを表すPrintedOutputOptionsSpecオブジェクトを作成します。 例えば、 PrintedOutputOptionsSpecオブジェクトのsetCopiesメソッドを呼び出して、印刷する部数を指定できます。

    メモ

    ZPL印刷ストリームを生成する場合は、 PrintedOutputOptionsSpecオブジェクトのsetPaginationメソッドを使用してページネーション値を設定することはできません。 同様に、ZPL印刷ストリームに対して次のオプションを設定することはできません。OutputJog、PageOffset、およびStaple。 setPaginationメソッドはPostScriptの生成には無効です。 PCL生成にのみ有効です。

  5. 印刷するドキュメントの取得

    • OutputClientオブジェクトのgeneratePrintedOutputメソッドを呼び出し、次の値を渡して、印刷するドキュメントを取得します。

      • 印刷ストリームを指定するPrintFormat列挙値。 例えば、PostScript印刷ストリームを作成するには、PrintFormat.PostScriptを渡します。
      • フォームデザイン名を指定する string 値。
      • 関連する販促物ファイル(画像ファイルなど)の場所を指定するstring値。
      • 使用するXDCファイルの場所を指定するstring値。
      • ファイルに印刷するために必要な実行時オプションを含むPrintedOutputOptionsSpecオブジェクト。
      • フォームデザインとマージするフォームデータが含まれるXMLデータソースを表すcom.adobe.idp.Documentオブジェクト。

      このメソッドは、操作の結果を含むOutputResultオブジェクトを返します。

    • OutputResultオブジェクトのgetGeneratedDocメソッドを呼び出して、プリンターに送信するcom.adobe.idp.Documentオブジェクトを作成します。 このメソッドはcom.adobe.idp.Documentオブジェクトを返します。

  6. 印刷ストリームをネットワークプリンタに送信する

    OutputClientオブジェクトのsendToPrinterメソッドを呼び出し、次の値を渡して、印刷ストリームをネットワークプリンターに送信します。

    • プリンターに送信する印刷ストリームを表すcom.adobe.idp.Documentオブジェクト。
    • 使用するプリンタープロトコルを指定するPrinterProtocol列挙値。 例えば、SharedPrinterプロトコルを指定するには、PrinterProtocol.SharedPrinterを渡します。
    • プリントサーバーの名前を指定するstring値。 例えば、プリントサーバーの名前がPrintSever1の場合、\\\PrintSever1を渡します。
    • プリンターの名前を指定するstring値。 例えば、プリンター名がPrinter1の場合、\\\PrintSever1\Printer1を渡します。
    メモ

    sendToPrinterメソッドがバージョン8.2.1のAEM Forms APIに追加されました。

WebサービスAPIを使用したプリンターへの印刷ストリームの送信

Output API(Webサービス)を使用して、印刷ストリームをネットワークプリンターに送信します。

  1. プロジェクトファイルを含めます。

    MTOMを使用するMicrosoft .NETプロジェクトを作成します。 次のWSDL定義を使用していることを確認します。http://localhost:8080/soap/services/OutputService?WSDL&lc_version=9.0.1.

    メモ

    localhostを、AEM FormsをホストするサーバーのIPアドレスに置き換えます。

  2. Outputクライアントオブジェクトを作成します。

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

    • System.ServiceModel.EndpointAddressコンストラクターを使用してOutputServiceClient.Endpoint.Addressオブジェクトを作成します。 WSDLをAEM Formsサービスに渡す文字列値(例:http://localhost:8080/soap/services/OutputService?blob=mtom)を渡します。 lc_version属性を使用する必要はありません。 この属性は、サービス参照を作成する際に使用されます。 ただし、MTOMを使用する場合は?blob=mtomを指定します。

    • OutputServiceClient.Endpoint.Bindingフィールドの値を取得してSystem.ServiceModel.BasicHttpBindingオブジェクトを作成します。 戻り値を BasicHttpBinding にキャストします。

    • System.ServiceModel.BasicHttpBindingオブジェクトのMessageEncodingフィールドをWSMessageEncoding.Mtomに設定します。 この値は、MTOMが使用されるようにします。

    • 次のタスクを実行して、基本的なHTTP認証を有効にします。

      • フィールドOutputServiceClient.ClientCredentials.UserName.UserNameにAEM formsユーザー名を割り当てます。
      • 対応するパスワード値をフィールドOutputServiceClient.ClientCredentials.UserName.Passwordに割り当てます。
      • フィールドBasicHttpBindingSecurity.Transport.ClientCredentialTypeに定数値HttpClientCredentialType.Basicを割り当てます。
      • フィールドBasicHttpBindingSecurity.Security.Modeに定数値BasicHttpSecurityMode.TransportCredentialOnlyを割り当てます。
  3. XMLデータソースを参照します。

    • コンストラクタを使用して BLOB オブジェクトを作成します。BLOBオブジェクトは、フォームデータの格納に使用されます。
    • コンストラクターを呼び出して、System.IO.FileStreamオブジェクトを作成します。 フォームデータを含むXMLファイルの場所を指定するstring値を渡します。
    • System.IO.FileStreamオブジェクトの内容を格納するバイト配列を作成します。 System.IO.FileStreamオブジェクトのLengthプロパティを取得して、バイト配列の長さを決定します。
    • System.IO.FileStreamオブジェクトのReadメソッドを呼び出し、読み取るバイト配列、開始位置、ストリーム長を渡すことによって、バイト配列にストリームデータを入力します。
    • BLOBオブジェクトのMTOMフィールドにバイト配列の内容を割り当てて、オブジェクトを設定します。
  4. 印刷実行時オプションを設定します。

    コンストラクタを使用して PrintedOutputOptionsSpec オブジェクトを作成します。例えば、PrintedOutputOptionsSpecオブジェクトのcopiesデータメンバーにコピー数を表す整数値を割り当てて、印刷するコピー数を指定できます。

    メモ

    ZPL印刷ストリームを生成する場合は、PrintedOutputOptionsSpecオブジェクトのpaginationデータメンバを使用してページネーション値を設定することはできません。 同様に、ZPL印刷ストリームに対して次のオプションを設定することはできません。OutputJog、PageOffsetおよびStaple。 paginationデータメンバはPostScriptの生成には無効です。 PCL生成にのみ有効です。

  5. 印刷するドキュメントを取得します。

    • OutputServiceServiceオブジェクトのgeneratePrintedOutputメソッドを呼び出し、次の値を渡して、印刷するドキュメントを取得します。

      • 印刷ストリームを指定するPrintFormat列挙値。 例えば、PostScript印刷ストリームを作成するには、PrintFormat.PostScriptを渡します。
      • フォームデザイン名を指定する string 値。
      • 関連する販促物ファイル(画像ファイルなど)の場所を指定するstring値。
      • 使用するXDCファイルの場所を指定するstring値。
      • 印刷ストリームをネットワークプリンターに送信する際に使用される印刷実行時オプションを含むPrintedOutputOptionsSpecオブジェクト。
      • フォームデータを含むXMLデータソースを含むBLOBオブジェクト。
      • generatePrintedOutputメソッドによって設定されるBLOBオブジェクト。 generatePrintedOutputメソッドは、このオブジェクトに、ドキュメントを表す生成済みのメタデータを入力します。 (このパラメーター値は、Webサービスの呼び出しのみに必要です)。
      • generatePrintedOutputメソッドによって設定されるBLOBオブジェクト。 generatePrintedOutputメソッドは、このオブジェクトに結果データを入力します。 (このパラメーター値は、Webサービスの呼び出しのみに必要です)。
      • 操作の結果を格納するOutputResultオブジェクト。 (このパラメーター値は、Webサービスの呼び出しのみに必要です)。
    • OutputResultオブジェクトのgeneratedDocメソッドの値を取得して、プリンターに送信するBLOBオブジェクトを作成します。 このメソッドは、 generatePrintedOutputメソッドで返されるPostScriptデータを含むBLOBオブジェクトを返します。

  6. 印刷ストリームをネットワークプリンタに送信します。

    OutputClientオブジェクトのsendToPrinterメソッドを呼び出し、次の値を渡して、印刷ストリームをネットワークプリンターに送信します。

    • プリンターに送信する印刷ストリームを表すBLOBオブジェクト。
    • 使用するプリンタープロトコルを指定するPrinterProtocol列挙値。 例えば、SharedPrinterプロトコルを指定するには、PrinterProtocol.SharedPrinterを渡します。
    • 前のパラメータ値を使用するかどうかを指定するbool値。 値trueを渡します。 (このパラメーター値は、Webサービスの呼び出しのみに必要です)。
    • プリントサーバーの名前を指定するstring値。 例えば、プリントサーバーの名前がPrintSever1である場合は、\\\PrintSever1を渡します。
    • プリンターの名前を指定するstring値。 例えば、プリンター名がPrinter1である場合は、\\\PrintSever1\Printer1を渡します。
    メモ

    sendToPrinterメソッドがバージョン8.2.1のAEM Forms APIに追加されました。

複数の出力ファイルの作成

Outputサービスでは、XMLデータソース内のレコードごとに別々のドキュメントを作成することも、すべてのレコードを含む単一のファイルを作成することもできます(この機能はデフォルトです)。 例えば、10件のレコードがXMLデータソース内に配置され、Output Service APIを使用して各レコードに対して個別のPDFドキュメント(または他のタイプの出力)を作成するようにOutputサービスに指示したとします。 その結果、Outputサービスは10個のPDFドキュメントを生成します。 (ドキュメントを作成する代わりに、1台のプリンターに複数の印刷ストリームを送信できます)。

次の図に、複数のレコードを含むXMLデータファイルを処理するOutputサービスを示します。 ただし、すべてのデータレコードを含む単一のPDFドキュメントを作成するようにOutputサービスに指示したとします。 この場合、Outputサービスは、すべてのレコードを含む1つのドキュメントを生成します。

次の図に、複数のレコードを含むXMLデータファイルを処理するOutputサービスを示します。 Outputサービスに対して、データレコードごとに個別のPDFドキュメントを作成するよう指示したとします。 この場合、Outputサービスは、データレコードごとに個別のPDFドキュメントを生成します。

cm_outputbatchmany

次のXMLデータは、3つのデータレコードを含むデータファイルの例を示しています。

 <?xml version="1.0" encoding="UTF-8"?> 
 <batch> 
 <LoanRecord> 
     <mortgageAmount>500000</mortgageAmount> 
     <lastName>Blue</lastName> 
     <firstName>Tony</firstName> 
     <SSN>555666777</SSN> 
     <PositionTitle>Product Manager</PositionTitle> 
     <Address>555 No Where Dr</Address> 
     <City>New York</City> 
     <StateProv>New York</StateProv> 
     <ZipCode>51256</ZipCode> 
     <Email>TBlue@NoMailServer.com</Email> 
     <PhoneNum>555-7418</PhoneNum> 
     <FaxNum>555-9981</FaxNum> 
     <Description>Buy a home</Description> 
 </LoanRecord> 
 <LoanRecord> 
     <mortgageAmount>300000</mortgageAmount> 
     <lastName>White</lastName> 
     <firstName>Sam</firstName> 
     <SSN>555666222</SSN> 
     <PositionTitle>Program Manager</PositionTitle> 
     <Address>557 No Where Dr</Address> 
     <City>New York</City> 
     <StateProv>New York</StateProv> 
     <ZipCode>51256</ZipCode> 
     <Email>SWhite@NoMailServer.com</Email> 
     <PhoneNum>555-7445</PhoneNum> 
     <FaxNum>555-9986</FaxNum> 
     <Description>Buy a home</Description> 
 </LoanRecord> 
 <LoanRecord> 
     <mortgageAmount>700000</mortgageAmount> 
     <lastName>Green</lastName> 
     <firstName>Steve</firstName> 
     <SSN>55566688</SSN> 
     <PositionTitle>Project Manager</PositionTitle> 
     <Address>445 No Where Dr</Address> 
     <City>New York</City> 
     <StateProv>New York</StateProv> 
     <ZipCode>51256</ZipCode> 
     <Email>SGreeb@NoMailServer.com</Email> 
     <PhoneNum>555-2211</PhoneNum> 
     <FaxNum>555-2221</FaxNum> 
     <Description>Buy a home</Description> 
 </LoanRecord> 
 </batch>

各データレコードを開始および終了するXML要素はLoanRecordです。 このXML要素は、複数のファイルを生成するアプリケーションロジックによって参照されます。

メモ

Outputサービスについて詳しくは、『AEM Formsのサービスリファレンス』を参照してください。

手順の概要

1つのXMLデータソースに基づいて複数のPDFファイルを作成するには、次の手順を実行します。

  1. プロジェクトファイルを含めます。
  2. Outputクライアントオブジェクトを作成します。
  3. XMLデータソースを参照します。
  4. PDF実行時オプションを設定します。
  5. レンダリングの実行時オプションを設定します。
  6. 複数のPDFファイルを生成します。
  7. 操作の結果を取得します。

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

必要なファイルを開発プロジェクトに含めます。 Javaを使用してクライアントアプリケーションを作成する場合は、必要なJARファイルを含めます。 Webサービスを使用する場合は、必ずプロキシファイルを含めてください。

次のJARファイルをプロジェクトのクラスパスに追加する必要があります。

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-output-client.jar
  • adobe-utilities.jar(AEM FormsをJBossにデプロイする場合に必要)
  • jbossall-client.jar(AEM FormsをJBossにデプロイする場合に必要)

AEM FormsがJBoss以外のサポート対象のJ2EEアプリケーションサーバーにデプロイされている場合は、adobe-utilities.jarファイルとjbossall-client.jarファイルを、AEM FormsがデプロイされているJ2EEアプリケーションサーバーに固有のJARファイルに置き換える必要があります。

Outputクライアントオブジェクトの作成

プログラムによってOutputサービス操作を実行する前に、Outputサービスクライアントオブジェクトを作成する必要があります。 Java APIを使用している場合は、OutputClientオブジェクトを作成します。 Output WebサービスAPIを使用している場合は、OutputServiceServiceオブジェクトを作成します。

XMLデータソースの参照

複数のレコードを含むXMLデータソースを参照します。 データレコードを区切るには、XML要素を使用する必要があります。 例えば、この節で前述したXMLデータソースの例では、データレコードを区切るXML要素の名前はLoanRecordです。

データを入力するフォームフィールドごとに、XML要素が存在する必要があります。 XML 要素名は、フィールド名と一致する必要があります。XML 要素がフォームフィールドに対応していない場合や、XML 要素名がフィールド名と一致しない場合、XML 要素は無視されます。すべてのXML要素を指定した場合、XML要素の表示順序を一致させる必要はありません。

PDF実行時オプションの設定

XMLデータソースに基づいて複数のファイルを正常に作成するには、Outputサービスに次のランタイムオプションを設定する必要があります。

  • 多数のファイル:Outputサービスで1つのドキュメントを作成するか、複数のドキュメントを作成するかを指定します。trueまたはfalseを指定できます。 XMLデータソース内のデータレコードごとに個別のドキュメントを作成するには、trueを指定します。
  • ファイルURI:Outputサービスが生成するファイルの場所を指定します。例えば、C:\Adobe\forms\Loan.pdfと指定したとします。 この場合、OutputサービスはLoan.pdfという名前のファイルを作成し、C:\Adobe\forms folderフォルダーに配置します。 複数のファイルが存在する場合、ファイル名はLoan0001.pdf、Loan0002.pdf、Loan0003.pdfなどです。 ファイルの場所を指定した場合、ファイルはクライアントコンピューターではなくサーバーに配置されます。
  • レコード名:データレコードを区切るデータソース内のXML要素名を指定します。例えば、この節で前に示したXMLデータソースの例では、データレコードを区切るXML要素はLoanRecordと呼ばれます。 (「レコード名」実行時オプションを設定する代わりに、データレコードを含む要素レベルを示す数値をレコードレベルに割り当てて、レコードレベルを設定できます。 ただし、「レコード名」または「レコードレベル」のみを設定できます。 両方の値を設定することはできません)。

レンダリング実行時オプションの設定

複数のファイルを作成する際に、レンダリングの実行時オプションを設定できます。 これらのオプションは必須ではありませんが(必須の出力ランタイムオプションとは異なり)、Outputサービスのパフォーマンス向上などのタスクを実行できます。 例えば、Outputサービスが使用するフォームデザインをキャッシュして、パフォーマンスを向上させることができます。

Outputサービスがバッチレコードを処理する場合、複数のレコードを含むデータを増分方法で読み取ります。 つまり、Outputサービスはデータをメモリに読み取り、レコードのバッチが処理されるたびにデータを解放します。 Outputサービスは、2つのランタイムオプションのいずれかが設定されている場合、増分方法でデータを読み込みます。 「Record Name」ランタイムオプションを設定した場合、Outputサービスは増分方法でデータを読み取ります。 同様に、「Record Level」実行時オプションを2以上に設定した場合、Outputサービスは増分方法でデータを読み取ります。

PDFOutputOptionsSpecまたはPrintedOutputOptionSpecオブジェクトのsetLazyLoadingメソッドを使用して、Outputサービスで増分読み込みを実行するかどうかを制御できます。 このメソッドに値falseを渡すと、増分読み込みがオフになります。

複数のPDFファイルの生成

複数のデータレコードと実行時オプションを設定した有効なXMLデータソースを参照した後、Outputサービスを呼び出すと、複数のファイルが生成されます。 複数のレコードを生成する場合、OutputResultオブジェクトのgetGeneratedDocメソッドはnullを返します。

操作の結果の取得

Outputサービスが操作を実行すると、その操作が成功したかどうかを示すXMLデータが返されます。 次のXMLがOutputサービスによって返されます。 この場合、Outputサービスは42個のドキュメントを生成しました。

 <?xml version="1.0" encoding="UTF-8"?> 
 <printResult> 
 <status>0</status> 
 <requestId>4ad85f9e2</requestId> 
 <context/> 
 <messages> 
 <message>Printed all 42 records successfully.</message> 
 </messages> 
 <printSpec> 
 <input> 
 <validated>true</validated> 
 <dataFile recordIdField="" recordLevel="0" recordName="LoanRecord"/> 
 <sniffRules lookAhead="300"/> 
 <formDesign>Loan.xdp</formDesign> 
 <contentRoot>C:\Adobe</contentRoot> 
 <metadata-spec record="false"/> 
 </input> 
 <output> 
 <format>PDF</format> 
 <fileURI>C:\Adobe\forms\Loan.pdf</fileURI> 
 <optionString>cacheenabled=true&padebug=false&linearpdf=false&pdfarevisionnumber=1&pdfaconformance=A&taggedpdf=false&TransactionTimeOut=180</optionString> 
 <waitForResponse>true</waitForResponse> 
 <outputStream>multiple</outputStream> 
 </output> 
 </printSpec> 
 </printResult>

関連トピック

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定

OutputサービスAPIのクイックスタート

Java APIを使用した複数のPDFファイルの作成

Output API(Java)を使用して複数のPDFファイルを作成します。

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

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

  2. Outputクライアントオブジェクトの作成

    • 接続プロパティを含む ServiceClientFactory オブジェクトを作成します。
    • コンストラクターを使用してOutputClientオブジェクトを渡し、ServiceClientFactoryオブジェクトを作成します。
  3. XMLデータソースの参照

    • コンストラクタを使用し、XMLファイルの場所を指定する文字列値を渡すことで、複数のレコードを含むXMLデータソースを表すjava.io.FileInputStreamオブジェクトを作成します。
    • コンストラクタを使用して com.adobe.idp.Document オブジェクトを渡すことによって、java.io.FileInputStream オブジェクトを作成します。
  4. PDF実行時オプションの設定

    • コンストラクタを使用して PDFOutputOptionsSpec オブジェクトを作成します。
    • PDFOutputOptionsSpecオブジェクトのsetGenerateManyFilesメソッドを呼び出して、「多数のファイル」オプションを設定します。 例えば、値trueを渡して、XMLデータソース内の各レコードに対して個別のPDFファイルを作成するようにOutputサービスに指示します。 (falseを渡すと、すべてのレコードを含む単一のPDFドキュメントがOutputサービスによって生成されます)。
    • PDFOutputOptionsSpecオブジェクトのsetFileUriメソッドを呼び出し、Outputサービスが生成するファイルの場所を指定する文字列値を渡すことで、「File URI」オプションを設定します。 「ファイルURI 」オプションは、AEM FormsをホストするJ2EEアプリケーションサーバーに対して相対的なもので、クライアントコンピューターに対しては相対的なものではありません。
    • OutputOptionsSpecオブジェクトのsetRecordNameメソッドを呼び出し、データレコードを区切るデータソース内のXML要素名を指定する文字列値を渡すことで、「レコード名」オプションを設定します。 (例えば、この節で前述したXMLデータソースについて考えてみましょう。 データレコードを区切るXML要素の名前はLoanRecordです。
  5. レンダリング実行時オプションの設定

    • コンストラクタを使用して RenderOptionsSpec オブジェクトを作成します。
    • RenderOptionsSpecオブジェクトのsetCacheEnabledを呼び出し、trueBoolean値を渡すことで、フォームデザインをキャッシュしてOutputサービスのパフォーマンスを向上させます。
  6. 複数のPDFファイルの生成

    OutputClientオブジェクトのgeneratePDFOutputメソッドを呼び出し、次の値を渡して、複数のPDFファイルを生成します。

    • TransformationFormat列挙値。 PDFドキュメントを生成するには、TransformationFormat.PDFを指定します。
    • フォームデザイン名を指定する string 値。
    • フォームデザインが存在するコンテンツルートを指定するstring値。
    • PDFランタイムオプションを含むPDFOutputOptionsSpecオブジェクト。
    • レンダリングの実行時オプションを含むRenderOptionsSpecオブジェクト。
    • フォームデザインとマージするデータを含むXMLデータソースを含むcom.adobe.idp.Documentオブジェクト。

    generatePDFOutputメソッドは、操作の結果を含むOutputResultオブジェクトを返します。

  7. 操作の結果の取得

    • generatePDFOutputメソッドの結果を格納するXMLファイルを表すjava.io.Fileオブジェクトを作成します。 ファイル名の拡張子が.xmlであることを確認します。
    • com.adobe.idp.DocumentオブジェクトのcopyToFileメソッドを呼び出して、com.adobe.idp.Documentオブジェクトの内容をファイルにコピーします(applyUsageRightsメソッドで返されたcom.adobe.idp.Documentオブジェクトを使用するようにしてください)。

関連トピック

手順の概要

クイックスタート(EJBモード):Java APIを使用した複数のPDFファイルの作成

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定

WebサービスAPIを使用した複数のPDFファイルの作成

Output API(Webサービス)を使用して複数のPDFファイルを作成します。

  1. プロジェクトファイルを含めます。

    MTOMを使用するMicrosoft .NETプロジェクトを作成します。 次のWSDL定義を使用していることを確認します。http://localhost:8080/soap/services/OutputService?WSDL&lc_version=9.0.1.

    メモ

    localhostを、AEM FormsをホストするサーバーのIPアドレスに置き換えます。

  2. Outputクライアントオブジェクトを作成します。

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

    • System.ServiceModel.EndpointAddressコンストラクターを使用してOutputServiceClient.Endpoint.Addressオブジェクトを作成します。 WSDLをAEM Formsサービスに渡す文字列値(例:http://localhost:8080/soap/services/OutputService?blob=mtom)を渡します。 lc_version属性を使用する必要はありません。 この属性は、サービス参照を作成する際に使用されます。 ただし、MTOMを使用する場合は?blob=mtomを指定します。

    • OutputServiceClient.Endpoint.Bindingフィールドの値を取得してSystem.ServiceModel.BasicHttpBindingオブジェクトを作成します。 戻り値を BasicHttpBinding にキャストします。

    • System.ServiceModel.BasicHttpBindingオブジェクトのMessageEncodingフィールドをWSMessageEncoding.Mtomに設定します。 この値は、MTOMが使用されるようにします。

    • 次のタスクを実行して、基本的なHTTP認証を有効にします。

      • フィールドOutputServiceClient.ClientCredentials.UserName.UserNameにAEM formsユーザー名を割り当てます。
      • 対応するパスワード値をフィールドOutputServiceClient.ClientCredentials.UserName.Passwordに割り当てます。
      • フィールドBasicHttpBindingSecurity.Transport.ClientCredentialTypeに定数値HttpClientCredentialType.Basicを割り当てます。
      • フィールドBasicHttpBindingSecurity.Security.Modeに定数値BasicHttpSecurityMode.TransportCredentialOnlyを割り当てます。
  3. XMLデータソースを参照します。

    • コンストラクタを使用して BLOB オブジェクトを作成します。BLOBオブジェクトは、複数のレコードを含むフォームデータを格納するために使用します。
    • コンストラクターを呼び出して、System.IO.FileStreamオブジェクトを作成します。 複数のレコードを含むXMLファイルのファイルの場所を表すstring値を渡します。
    • System.IO.FileStreamオブジェクトの内容を格納するバイト配列を作成します。 System.IO.FileStreamオブジェクトのLengthプロパティを取得することで、バイト配列のサイズを判断できます。
    • System.IO.FileStreamオブジェクトのReadメソッドを呼び出し、読み取るバイト配列、開始位置、ストリーム長を渡すことによって、バイト配列にストリームデータを入力します。
    • BLOBオブジェクトのMTOMフィールドにバイト配列の内容を割り当てて、オブジェクトを設定します。
  4. PDF実行時オプションを設定します。

    • コンストラクタを使用して PDFOutputOptionsSpec オブジェクトを作成します。
    • OutputOptionsSpecオブジェクトのgenerateManyFilesデータメンバーにブール値を割り当てて、「多数のファイル」オプションを設定します。 例えば、このデータメンバーに値trueを割り当てて、XMLデータソース内の各レコードに対して個別のPDFファイルを作成するようにOutputサービスに指示します。 (このデータメンバーにfalseを割り当てると、Outputサービスは、すべてのレコードを含む単一のPDFを生成します)。
    • Outputサービスが生成するファイルの場所を指定する文字列値をOutputOptionsSpecオブジェクトのfileURIデータメンバーに割り当てて、「file URI」オプションを設定します。 「ファイルURI 」オプションは、AEM FormsをホストするJ2EEアプリケーションサーバーに対して相対的なもので、クライアントコンピューターに対しては相対的なものではありません。
    • OutputOptionsSpecオブジェクトのrecordNameデータメンバーにデータレコードを分離するデータソース内のXML要素名を指定する文字列値を割り当てて、レコード名オプションを設定します。
    • OutputサービスがOutputOptionsSpecオブジェクトのcopiesデータメンバーに生成するコピー数を指定する整数値を割り当てて、copiesオプションを設定します。
  5. レンダリングの実行時オプションを設定します。

    • コンストラクタを使用して RenderOptionsSpec オブジェクトを作成します。
    • trueRenderOptionsSpecオブジェクトのcacheEnabledデータメンバーに割り当てることで、フォームデザインをキャッシュして、Outputサービスのパフォーマンスを向上させます。
  6. 複数のPDFファイルを生成します。

    OutputServiceServiceオブジェクトのgeneratePDFOutputメソッドを呼び出し、次の値を渡して、複数のPDFファイルを作成します。

    • TransformationFormat列挙値。 PDFドキュメントを生成するには、TransformationFormat.PDFを指定します。
    • フォームデザイン名を指定する string 値。
    • フォームデザインが存在するコンテンツルートを指定するstring値。
    • PDFランタイムオプションを含むPDFOutputOptionsSpecオブジェクト。
    • レンダリングの実行時オプションを含むRenderOptionsSpecオブジェクト。
    • フォームデザインとマージするデータを含むXMLデータソースを含むBLOBオブジェクト。
    • generatePDFOutputメソッドによって設定されるBLOBオブジェクト。 generatePDFOutputメソッドは、このオブジェクトに、ドキュメントを表す生成済みのメタデータを入力します。
    • generatePDFOutputメソッドによって設定されるBLOBオブジェクト。 generatePDFOutputメソッドは、このオブジェクトに結果データを入力します。
    • 操作の結果を格納するOutputResultオブジェクト。
  7. 操作の結果の取得

    • コンストラクターを呼び出し、結果データを含むXMLファイルの場所を表す文字列値を渡すことで、System.IO.FileStreamオブジェクトを作成します。 ファイル名の拡張子が.xmlであることを確認します。
    • OutputServiceServiceオブジェクトのgeneratePDFOutputメソッド(8番目のパラメーター)によって結果データが入力されたBLOBオブジェクトのデータコンテンツを格納するバイト配列を作成します。 BLOBオブジェクトのbinaryDataデータメンバーの値を取得して、バイト配列を設定します。
    • コンストラクターを呼び出し、System.IO.FileStreamオブジェクトを渡して、System.IO.BinaryWriterオブジェクトを作成します。
    • System.IO.BinaryWriterオブジェクトのWriteメソッドを呼び出し、バイト配列を渡すことにより、バイト配列の内容をXMLファイルに書き込みます。

関連トピック

手順の概要

MTOMを使用したAEM Formsの呼び出し

SwaRefを使用したAEM Formsの呼び出し

検索ルールの作成

Outputサービスで入力データを調べ、データコンテンツに基づいて様々なフォームデザインを使用して出力を生成する検索ルールを作成できます。 例えば、入力データ内にテキスト​mortgage​が配置されている場合、OutputサービスはMortgage.xdpという名前のフォームデザインを使用できます。 同様に、入力データ内にテキスト​automobile​が配置されている場合、Outputサービスでは、AutomobileLoan.xdpとして保存されたフォームデザインを使用できます。 Outputサービスでは異なる出力タイプを生成できますが、この節では、OutputサービスでPDFファイルが生成されることを前提としています。 次の図に、XMLデータファイルを処理し、様々なフォームデザインの1つを使用してPDFファイルを生成するOutputサービスを示します。

さらに、Outputサービスでは、複数のレコードがデータセットに提供され、各レコードがフォームデザインに一致し、1つのドキュメントが複数のフォームデザインで構成されるドキュメントパッケージを生成できます。

cs_outputbatchmanyformdesigns2

メモ

Outputサービスについて詳しくは、『AEM Formsのサービスリファレンス』を参照してください。

手順の概要

ドキュメントの生成時に検索ルールを使用するようにOutputサービスに指示するには、次の手順を実行します。

  1. プロジェクトファイルを含めます。
  2. Outputクライアントオブジェクトを作成します。
  3. XMLデータソースを参照します。
  4. 検索ルールを定義します。
  5. PDF実行時オプションを設定します。
  6. レンダリングの実行時オプションを設定します。
  7. PDFドキュメントを生成します。
  8. 操作の結果を取得します。

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

必要なファイルを開発プロジェクトに含めます。 Javaを使用してクライアントアプリケーションを作成する場合は、必要なJARファイルを含めます。 Webサービスを使用する場合は、プロキシファイルを必ず含めてください。

次のJARファイルをプロジェクトのクラスパスに追加する必要があります。

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-output-client.jar
  • adobe-utilities.jar(AEM FormsがJBossにデプロイされている場合に必須)
  • jbossall-client.jar(AEM FormsがJBossにデプロイされている場合に必須)

AEM FormsがJBoss以外のサポート対象のJ2EEアプリケーションサーバーにデプロイされている場合は、adobe-utilities.jarとjbossall-client.jarを、AEM FormsがデプロイされているJ2EEアプリケーションサーバーに固有のJARファイルに置き換える必要があります。

Outputクライアントオブジェクトの作成

プログラムによってOutputサービス操作を実行する前に、Outputサービスクライアントオブジェクトを作成する必要があります。

XMLデータソースの参照

データを入力するフォームフィールドごとに、XML要素が存在する必要があります。 XML 要素名は、フィールド名と一致する必要があります。XML 要素がフォームフィールドに対応していない場合や、XML 要素名がフィールド名と一致しない場合、XML 要素は無視されます。すべてのXML要素が指定されている限り、XML要素の表示順を一致させる必要はありません。

検索ルールの定義

検索ルールを定義するには、Outputサービスが入力データ内で検索する1つ以上のテキストパターンを定義します。 定義するテキストパターンごとに、テキストパターンが存在する場合に使用する対応するフォームデザインを指定します。 テキストパターンが見つかった場合、Outputサービスは対応するフォームデザインを使用して出力を生成します。 例えば、mortgage​などのテキストパターンがあります。

メモ

テキストパターンが見つからない場合は、デフォルトのフォームが使用されます。 使用するすべてのフォームデザインがコンテンツルートに配置されていることを確認します。

PDF実行時オプションの設定

Outputサービスが複数のフォームデザインに基づいてPDFドキュメントを正常に作成するために、次のPDFランタイムオプションを設定します。

  • ファイルURI:Outputサービスが生成するPDFファイルの名前と場所を指定します。
  • ルール:定義したルールを指定します。
  • LookAhead:定義済みのテキストパターンをスキャンするために入力データファイルの先頭から使用するバイト数を指定します。デフォルトは500バイトです。

レンダリング実行時オプションの設定

PDFファイルの作成時にレンダリングの実行時オプションを設定できます。 PDFの実行時オプションとは異なり、これらのオプションは必須ではありませんが、Outputサービスのパフォーマンス向上などのタスクを実行できます。 例えば、Outputサービスが使用するフォームデザインをキャッシュして、パフォーマンスを向上させることができます。

PDFドキュメントの生成

有効なXMLデータソースを参照し、実行時オプションを設定した後、Outputサービスを呼び出すと、PDFドキュメントが生成されます。 Outputサービスが入力データ内で指定されたテキストパターンを見つけた場合は、対応するフォームデザインが使用されます。 テキストパターンを使用しない場合、Outputサービスはデフォルトのフォームデザインを使用します。

操作の結果の取得

Outputサービスが操作を実行すると、その操作が成功したかどうかを示すXMLデータが返されます。

関連トピック

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定

OutputサービスAPIのクイックスタート

Java APIを使用した検索ルールの作成

Output API(Java)を使用して検索ルールを作成します。

  1. プロジェクトファイルを含めます。

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

  2. Outputクライアントオブジェクトを作成します。

    • 接続プロパティを含む ServiceClientFactory オブジェクトを作成します。
    • コンストラクターを使用してOutputClientオブジェクトを渡し、ServiceClientFactoryオブジェクトを作成します。
  3. XMLデータソースを参照します。

    • PDFドキュメントのコンストラクターを使用し、XMLファイルの場所を指定する文字列値を渡すことで、PDFドキュメントの入力に使用されるXMLデータソースを表すjava.io.FileInputStreamオブジェクトを作成します。
    • コンストラクタを使用して com.adobe.idp.Document オブジェクトを渡すことによって、java.io.FileInputStream オブジェクトを作成します。
  4. 検索ルールを定義します。

    • コンストラクタを使用して Rule オブジェクトを作成します。
    • RuleオブジェクトのsetPatternメソッドを呼び出し、テキストパターンを指定する文字列値を渡すことで、テキストパターンを定義します。
    • RuleオブジェクトのsetFormメソッドを呼び出して、対応するフォームデザインを定義します。 フォームデザインの名前を指定するstring値を渡します。
    メモ

    定義するテキストパターンごとに、前の3つのサブ手順を繰り返します。

    • java.util.ArrayListコンストラクターを使用してjava.util.Listオブジェクトを作成します。
    • 作成した各Ruleオブジェクトに対して、java.util.Listオブジェクトのaddメソッドを呼び出し、Ruleオブジェクトを渡します。
  5. PDF実行時オプションを設定します。

    • コンストラクタを使用して PDFOutputOptionsSpec オブジェクトを作成します。
    • PDFOutputOptionsSpecオブジェクトのsetFileURIメソッドを呼び出して、Outputサービスが生成するPDFファイルの名前と場所を指定します。 PDFファイルの場所を指定するstring値を渡します。 「ファイルURI 」オプションは、AEM FormsをホストするJ2EEアプリケーションサーバーに対して相対的なもので、クライアントコンピューターに対しては相対的なものではありません。
    • PDFOutputOptionsSpecオブジェクトのsetRulesメソッドを呼び出して、定義したルールを設定します。 Ruleオブジェクトを含むjava.util.Listオブジェクトを渡します。
    • PDFOutputOptionsSpecオブジェクトのsetLookAheadメソッドを呼び出して、定義済みのテキストパターンをスキャンするバイト数を設定します。 バイト数を表す整数値を渡します。
  6. レンダリングの実行時オプションを設定します。

    • コンストラクタを使用して RenderOptionsSpec オブジェクトを作成します。
    • RenderOptionsSpecオブジェクトのsetCacheEnabledを呼び出してtrueを渡すことで、Outputサービスのパフォーマンスを向上させるためにフォームデザインをキャッシュします。
  7. PDFドキュメントを生成します。

    OutputClientオブジェクトのgeneratePDFOutputメソッドを呼び出し、次の値を渡すことで、複数のフォームデザインに基づいたPDFドキュメントを生成します。

    • TransformationFormat列挙値。 PDFドキュメントを生成するには、TransformationFormat.PDFを指定します。
    • デフォルトのフォームデザインの名前を指定するstring値。 つまり、テキストパターンが見つからない場合に使用されるフォームデザインです。
    • フォームデザインが配置されるコンテンツルートを指定するstring値。
    • PDFランタイムオプションを含むPDFOutputOptionsSpecオブジェクト。
    • レンダリングの実行時オプションを含むRenderOptionsSpecオブジェクト。
    • 定義されたテキストパターンについてOutputサービスが検索するフォームデータを含むcom.adobe.idp.Documentオブジェクト。

    generatePDFOutputメソッドは、操作の結果を含むOutputResultオブジェクトを返します。

  8. 操作の結果を取得します。

    • OutputResultオブジェクトのgetStatusDocメソッドを呼び出して、generatePDFOutputメソッドのステータスを表すcom.adobe.idp.Documentオブジェクトを作成します。
    • 操作の結果を格納するjava.io.Fileオブジェクトを作成します。 ファイル拡張子が.xmlであることを確認します。
    • com.adobe.idp.DocumentオブジェクトのcopyToFileメソッドを呼び出して、com.adobe.idp.Documentオブジェクトの内容をファイルにコピーします(getStatusDocメソッドで返されたcom.adobe.idp.Documentオブジェクトを使用するようにしてください)。

関連トピック

手順の概要

クイックスタート(EJBモード):Java APIを使用した検索ルールの作成

クイックスタート(SOAPモード):Java APIを使用した検索ルールの作成

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定

WebサービスAPIを使用した検索ルールの作成

Output API(Webサービス)を使用して検索ルールを作成します。

  1. プロジェクトファイルを含めます。

    MTOMを使用するMicrosoft .NETプロジェクトを作成します。 次のWSDL定義を使用していることを確認します。http://localhost:8080/soap/services/OutputService?WSDL&lc_version=9.0.1.

    メモ

    localhostを、AEM FormsをホストするサーバーのIPアドレスに置き換えます。

  2. Outputクライアントオブジェクトを作成します。

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

    • System.ServiceModel.EndpointAddressコンストラクターを使用してOutputServiceClient.Endpoint.Addressオブジェクトを作成します。 WSDLをAEM Formsサービスに渡す文字列値(例:http://localhost:8080/soap/services/OutputService?blob=mtom)を渡します。 lc_version属性を使用する必要はありません。 この属性は、サービス参照を作成する際に使用されます。 ただし、MTOMを使用する場合は?blob=mtomを指定します。

    • OutputServiceClient.Endpoint.Bindingフィールドの値を取得してSystem.ServiceModel.BasicHttpBindingオブジェクトを作成します。 戻り値を BasicHttpBinding にキャストします。

    • System.ServiceModel.BasicHttpBindingオブジェクトのMessageEncodingフィールドをWSMessageEncoding.Mtomに設定します。 この値は、MTOMが使用されるようにします。

    • 次のタスクを実行して、基本的なHTTP認証を有効にします。

      • フィールドOutputServiceClient.ClientCredentials.UserName.UserNameにAEM formsユーザー名を割り当てます。
      • 対応するパスワード値をフィールドOutputServiceClient.ClientCredentials.UserName.Passwordに割り当てます。
      • フィールドBasicHttpBindingSecurity.Transport.ClientCredentialTypeに定数値HttpClientCredentialType.Basicを割り当てます。
      • フィールドBasicHttpBindingSecurity.Security.Modeに定数値BasicHttpSecurityMode.TransportCredentialOnlyを割り当てます。
  3. XMLデータソースを参照します。

    • コンストラクタを使用して BLOB オブジェクトを作成します。BLOBオブジェクトは、PDFドキュメントとマージされるデータを保存するために使用されます。
    • コンストラクターを呼び出し、暗号化するPDFドキュメントのファイルの場所とファイルを開くモードを表すstring値を渡して、System.IO.FileStreamオブジェクトを作成します。
    • System.IO.FileStreamオブジェクトの内容を格納するバイト配列を作成します。 System.IO.FileStreamオブジェクトのLengthプロパティを取得することで、バイト配列のサイズを判断できます。
    • System.IO.FileStreamオブジェクトのReadメソッドを呼び出し、読み取るバイト配列、開始位置、ストリーム長を渡すことによって、バイト配列にストリームデータを入力します。
    • BLOBオブジェクトのMTOMフィールドにバイト配列の内容を割り当てて、オブジェクトを設定します。
  4. 検索ルールを定義します。

    • コンストラクタを使用して Rule オブジェクトを作成します。
    • Ruleオブジェクトのpatternデータメンバにテキストパターンを指定する文字列値を割り当てて、テキストパターンを定義します。
    • Ruleオブジェクトのformデータメンバーにフォームデザインを指定する文字列値を割り当てて、対応するフォームデザインを定義します。
    メモ

    定義するテキストパターンごとに、前の3つのサブ手順を繰り返します。

    • ルールを保存するMyArrayOf_xsd_anyTypeオブジェクトを作成します。
    • RuleオブジェクトをMyArrayOf_xsd_anyType配列の要素に割り当てます。 各Ruleオブジェクトに対してMyArrayOf_xsd_anyTypeオブジェクトのAddメソッドを呼び出します。
  5. PDF実行時オプションの設定

    • コンストラクタを使用して PDFOutputOptionsSpec オブジェクトを作成します。
    • Outputサービスが生成するPDFファイルの場所を指定する文字列値をPDFOutputOptionsSpecオブジェクトのfileURIデータメンバーに割り当てて、「file URI」オプションを設定します。 「ファイルURI 」オプションは、AEM FormsをホストするJ2EEアプリケーションサーバーに対して相対的なもので、クライアントコンピューターに対しては相対的なものではありません。
    • OutputサービスがPDFOutputOptionsSpecオブジェクトのcopiesデータメンバーに生成するコピー数を指定する整数値を割り当てて、copiesオプションを設定します。
    • ルールを格納するMyArrayOf_xsd_anyTypeオブジェクトをPDFOutputOptionsSpecオブジェクトのrulesデータメンバーに割り当てて、定義したルールを設定します。
    • 定義済みのテキストパターンをスキャンするバイト数を設定します。スキャンするバイト数を表す整数値をPDFOutputOptionsSpecオブジェクトのlookAheadデータメソッドに割り当てます。
  6. レンダリング実行時オプションの設定

    • コンストラクタを使用して RenderOptionsSpec オブジェクトを作成します。
    • trueRenderOptionsSpecオブジェクトのcacheEnabledデータメンバーに割り当てて、Outputサービスのパフォーマンスを向上させるためにフォームデザインをキャッシュします。
    メモ

    入力ドキュメントがAcrobatフォームの場合、RenderOptionsSpecオブジェクトのpdfVersionメンバーを使用してPDFドキュメントのバージョンを設定することはできません。 出力PDFドキュメントには、AcrobatフォームのPDFバージョンが保持されます。 同様に、入力ドキュメントがAcrobatフォームの場合は、 RenderOptionsSpecオブジェクトのtaggedPDFメソッドを使用して、タグ付きPDFオプションを設定することはできません。

    メモ

    入力PDFドキュメントが認証またはデジタル署名されている場合、RenderOptionsSpecオブジェクトのlinearizedPDFメンバを使用して線形化されたPDFオプションを設定することはできません。 詳しくは、PDFドキュメントのデジタル署名を参照してください。

  7. PDFドキュメントの生成

    OutputServiceServiceオブジェクトのgeneratePDFOutputメソッドを呼び出し、次の値を渡してPDFドキュメントを作成します。

    • TransformationFormat列挙値。 PDFドキュメントを生成するには、TransformationFormat.PDFを指定します。
    • フォームデザイン名を指定する string 値。
    • フォームデザインが存在するコンテンツルートを指定するstring値。
    • PDFランタイムオプションを含むPDFOutputOptionsSpecオブジェクト。
    • レンダリングの実行時オプションを含むRenderOptionsSpecオブジェクト。
    • フォームデザインとマージするデータを含むXMLデータソースを含むBLOBオブジェクト。
    • generatePDFOutputメソッドによって設定されるBLOBオブジェクト。 generatePDFOutputメソッドは、このオブジェクトに、ドキュメントを表す生成済みのメタデータを入力します。 (このパラメーター値は、Webサービスの呼び出しにのみ必要です)。
    • generatePDFOutputメソッドによって設定されるBLOBオブジェクト。 generatePDFOutputメソッドは、このオブジェクトに結果データを入力します。 (このパラメーター値は、Webサービスの呼び出しにのみ必要です)。
    • 操作の結果を格納するOutputResultオブジェクト。 (このパラメーター値は、Webサービスの呼び出しにのみ必要です)。
    メモ

    generatePDFOutputメソッドを呼び出してPDFドキュメントを生成する場合、使用権限を含む、署名済みまたは認証済みのXFA PDFフォームとのデータの結合はできないことに注意してください。 使用権限について詳しくは、PDFドキュメントへの使用権限の適用を参照してください。

  8. 操作の結果の取得

    • コンストラクターを呼び出し、結果データを含むXMLファイルの場所を表す文字列値を渡すことで、System.IO.FileStreamオブジェクトを作成します。 ファイル拡張子がXMLであることを確認します。
    • OutputServiceServiceオブジェクトのgeneratePDFOutputメソッド(8番目のパラメーター)によって結果データが入力されたBLOBオブジェクトのデータコンテンツを格納するバイト配列を作成します。 BLOBオブジェクトのMTOMデータメンバーの値を取得して、バイト配列を設定します。
    • コンストラクターを呼び出し、System.IO.FileStreamオブジェクトを渡して、System.IO.BinaryWriterオブジェクトを作成します。
    • System.IO.BinaryWriterオブジェクトのWriteメソッドを呼び出し、バイト配列を渡すことにより、バイト配列の内容をXMLファイルに書き込みます。

関連トピック

手順の概要

MTOMを使用したAEM Formsの呼び出し

SwaRefを使用したAEM Formsの呼び出し

PDFドキュメントの統合

Outputサービスを使用して、インタラクティブPDFドキュメントを非インタラクティブPDFに変換できます。 インタラクティブPDFドキュメントを使用すると、ユーザーはPDFドキュメントフィールドにデータを入力または変更できます。 インタラクティブPDFドキュメントを非インタラクティブPDFドキュメントに変換するプロセスは、統合​と呼ばれます。 PDFドキュメントを統合すると、ユーザーはドキュメントフィールド内のデータを変更できなくなります。 PDF ドキュメントを統合する理由の 1 つは、データを変更できないようにすることです。

次のタイプの PDF ドキュメントを統合できます。

  • インタラクティブXFA PDFドキュメント
  • AcrobatForms

非インタラクティブPDFドキュメントのPDFをフラット化しようとすると、例外が発生します。

メモ

Outputサービスについて詳しくは、『AEM Formsのサービスリファレンス』を参照してください。

手順の概要

インタラクティブPDFドキュメントを非インタラクティブPDFドキュメントに統合するには、次の手順を実行します。

  1. プロジェクトファイルを含めます。
  2. Outputクライアントオブジェクトを作成します。
  3. インタラクティブPDFドキュメントを取得します。
  4. PDFドキュメントを変換します。
  5. 非インタラクティブPDFドキュメントをPDFファイルとして保存します。

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

必要なファイルを開発プロジェクトに含めます。 Javaを使用してクライアントアプリケーションを作成する場合は、必要なJARファイルを含めます。 Webサービスを使用する場合は、必ずプロキシファイルを含めてください。

次のJARファイルをプロジェクトのクラスパスに追加する必要があります。

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-output-client.jar
  • adobe-utilities.jar(AEM FormsをJBossにデプロイする場合に必要)
  • jbossall-client.jar(AEM FormsをJBossにデプロイする場合に必要)

AEM FormsがJBoss以外のサポート対象のJ2EEアプリケーションサーバーにデプロイされている場合は、adobe-utilities.jarファイルとjbossall-client.jarファイルを、AEM FormsがデプロイされているJ2EEアプリケーションサーバーに固有のJARファイルに置き換える必要があります。 すべてのAEM Forms JARファイルの場所について詳しくは、「AEM Forms Javaライブラリファイルを含める」を参照してください。

Outputクライアントオブジェクトの作成

プログラムによってOutputサービス操作を実行する前に、Outputサービスクライアントオブジェクトを作成する必要があります。 Java APIを使用している場合は、OutputClientオブジェクトを作成します。 Output WebサービスAPIを使用している場合は、OutputServiceServiceオブジェクトを作成します。

インタラクティブPDFドキュメントの取得

非インタラクティブPDFドキュメントに変換するインタラクティブPDFドキュメントを取得します。 非インタラクティブPDFドキュメントを変換しようとすると、例外が発生します。

PDFドキュメントの変換

インタラクティブPDFドキュメントを取得した後、そのドキュメントを非インタラクティブPDFドキュメントに変換できます。 Outputサービスは非インタラクティブPDFドキュメントを返します。

非インタラクティブPDFドキュメントをPDFファイルとして保存します

非インタラクティブPDFドキュメントをPDFファイルとして保存できます。

関連トピック

Java APIを使用したPDFドキュメントの統合

WebサービスAPIを使用したPDFドキュメントの統合

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定

OutputサービスAPIのクイックスタート

Java APIを使用したPDFドキュメントの統合

Output API(Java)を使用して、インタラクティブPDFドキュメントを非インタラクティブPDFドキュメントに統合します。

  1. プロジェクトファイルを含めます。

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

  2. Outputクライアントオブジェクトを作成します。

    • 接続プロパティを含む ServiceClientFactory オブジェクトを作成します。
    • コンストラクターを使用してOutputClientオブジェクトを渡し、ServiceClientFactoryオブジェクトを作成します。
  3. インタラクティブPDFドキュメントを取得します。

    • 変換するインタラクティブPDFドキュメントを表すjava.io.FileInputStreamオブジェクトを作成します。その際、コンストラクターを使用し、インタラクティブPDFファイルの場所を指定するstring値を渡します。
    • コンストラクタを使用して com.adobe.idp.Document オブジェクトを渡すことによって、java.io.FileInputStream オブジェクトを作成します。
  4. PDFドキュメントを変換します。

    OutputServiceServiceオブジェクトのtransformPDFメソッドを呼び出し、次の値を渡すことで、インタラクティブPDFドキュメントを非インタラクティブPDFドキュメントに変換します。

    • インタラクティブPDFドキュメントを格納するcom.adobe.idp.Documentオブジェクト。
    • TransformationFormat列挙値。 非インタラクティブPDFドキュメントを生成するには、TransformationFormat.PDFを指定します。
    • リビジョン番号を指定するPDFARevisionNumber列挙値。 このパラメーターはPDF/Aドキュメント用なので、nullを指定できます。
    • 修正番号と年をコロンで区切って表すstring値です。 このパラメーターはPDF/Aドキュメント用なので、nullを指定できます。
    • PDF/A準拠レベルを表すPDFAConformance列挙値。 このパラメーターはPDF/Aドキュメント用なので、nullを指定できます。

    transformPDFメソッドは、非インタラクティブPDFドキュメントを含むcom.adobe.idp.Documentオブジェクトを返します。

  5. 非インタラクティブPDFドキュメントをPDFファイルとして保存します。

    • java.io.Fileオブジェクトを作成し、ファイル名拡張子が.pdfであることを確認します。
    • DocumentオブジェクトのcopyToFileメソッドを呼び出して、Documentオブジェクトの内容をファイルにコピーします(transformPDFメソッドで返されたDocumentオブジェクトを使用するようにしてください)。

関連トピック

手順の概要

クイックスタート(EJBモード):Java APIを使用したPDFドキュメントの変換

クイックスタート(SOAPモード):Java APIを使用したPDFドキュメントの変換

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定

WebサービスAPIを使用したPDFドキュメントの統合

Output API(Webサービス)を使用して、インタラクティブPDFドキュメントを非インタラクティブPDFドキュメントに統合します。

  1. プロジェクトファイルを含めます。

    MTOMを使用するMicrosoft .NETプロジェクトを作成します。 次のWSDL定義を使用していることを確認します。http://localhost:8080/soap/services/OutputService?WSDL&lc_version=9.0.1.

    メモ

    localhostを、AEM FormsをホストするサーバーのIPアドレスに置き換えます。

  2. Outputクライアントオブジェクトを作成します。

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

    • System.ServiceModel.EndpointAddressコンストラクターを使用してOutputServiceClient.Endpoint.Addressオブジェクトを作成します。 WSDLをAEM Formsサービスに渡す文字列値(例:http://localhost:8080/soap/services/OutputService?blob=mtom)を渡します。 lc_version属性を使用する必要はありません。 この属性は、サービス参照を作成する際に使用されます。 ただし、MTOMを使用する場合は?blob=mtomを指定します。

    • OutputServiceClient.Endpoint.Bindingフィールドの値を取得してSystem.ServiceModel.BasicHttpBindingオブジェクトを作成します。 戻り値を BasicHttpBinding にキャストします。

    • System.ServiceModel.BasicHttpBindingオブジェクトのMessageEncodingフィールドをWSMessageEncoding.Mtomに設定します。 この値は、MTOMが使用されるようにします。

    • 次のタスクを実行して、基本的なHTTP認証を有効にします。

      • フィールドOutputServiceClient.ClientCredentials.UserName.UserNameにAEM formsユーザー名を割り当てます。
      • 対応するパスワード値をフィールドOutputServiceClient.ClientCredentials.UserName.Passwordに割り当てます。
      • フィールドBasicHttpBindingSecurity.Transport.ClientCredentialTypeに定数値HttpClientCredentialType.Basicを割り当てます。
      • フィールドBasicHttpBindingSecurity.Security.Modeに定数値BasicHttpSecurityMode.TransportCredentialOnlyを割り当てます。
  3. インタラクティブPDFドキュメントを取得します。

    • コンストラクタを使用して BLOB オブジェクトを作成します。BLOBオブジェクトは、インタラクティブPDFドキュメントの保存に使用されます。
    • コンストラクターを呼び出し、インタラクティブPDFドキュメントのファイルの場所を表すstring値を渡すことで、System.IO.FileStreamオブジェクトを作成します。
    • System.IO.FileStreamオブジェクトの内容を格納するバイト配列を作成します。 System.IO.FileStreamオブジェクトのLengthプロパティを取得することで、バイト配列のサイズを判断できます。
    • System.IO.FileStreamオブジェクトのReadメソッドを呼び出し、読み取るバイト配列、開始位置、ストリーム長を渡すことによって、バイト配列にストリームデータを入力します。
    • BLOBオブジェクトのMTOMプロパティにバイト配列の内容を割り当てて、オブジェクトを設定します。
  4. PDFドキュメントを変換します。

    OutputClientオブジェクトのtransformPDFメソッドを呼び出し、次の値を渡すことで、インタラクティブPDFドキュメントを非インタラクティブPDFドキュメントに変換します。

    • インタラクティブPDFドキュメントを格納するBLOBオブジェクト。
    • TransformationFormat列挙値。 非インタラクティブPDFドキュメントを生成するには、TransformationFormat.PDFを指定します。
    • リビジョン番号を指定するPDFARevisionNumber列挙値。
    • PDFARevisionNumber列挙値を使用するかどうかを指定するBoolean値。 このパラメーターはPDF/Aドキュメント用なので、falseを指定できます。
    • 修正番号と年をコロンで区切って表すstring値です。 このパラメーターはPDF/Aドキュメント用なので、nullを指定できます。
    • PDF/A準拠レベルを表すPDFAConformance列挙値。
    • PDFAConformance列挙値を使用するかどうかを指定するブール値。 このパラメーターはPDF/Aドキュメント用なので、falseを指定できます。

    transformPDFメソッドは、非インタラクティブPDFドキュメントを含むBLOBオブジェクトを返します。

  5. 非インタラクティブPDFドキュメントをPDFファイルとして保存します。

    • コンストラクターを呼び出し、非インタラクティブPDFドキュメントのファイルの場所を表すstring値を渡すことで、System.IO.FileStreamオブジェクトを作成します。
    • transformPDFメソッドで返されたBLOBオブジェクトのデータ内容を格納するバイト配列を作成します。 BLOBオブジェクトのMTOMデータメンバーの値を取得して、バイト配列を設定します。
    • コンストラクターを呼び出し、System.IO.FileStreamオブジェクトを渡して、System.IO.BinaryWriterオブジェクトを作成します。
    • System.IO.BinaryWriterオブジェクトのWriteメソッドを呼び出し、バイト配列を渡すことにより、バイト配列の内容をPDFファイルに書き込みます。

関連トピック

手順の概要

MTOMを使用したAEM Formsの呼び出し

SwaRefを使用したAEM Formsの呼び出し

このページ