PDFPortfolioのアセンブリ

Assembler JavaおよびWebサービスAPIを使用してPDFPortfolioをアセンブリできます。 ポートフォリオは、Wordファイル、画像ファイル(jpegファイルなど)、PDFドキュメントなど、様々な種類のドキュメントを組み合わせることができます。 ポートフォリオのレイアウトは、プレビュー付きグリッド画像​レイアウトまたは​回転​など、異なるスタイルに設定できます。

次の図は、画像​スタイルレイアウトのポートフォリオのスクリーンショットです。

ap_ap_portfolio

PDFPortfolioを作成すると、ドキュメントの集まりを渡す代わりに、ペーパーレスで行うことができます。 AEM Formsを使用すると、構造化DDXドキュメントを使用してAssemblerサービスを呼び出し、ポートフォリオを作成できます。 次のDDXドキュメントは、PDFPortfolioを作成するDDXドキュメントの例です。

 <DDX xmlns="https://ns.adobe.com/DDX/1.0/"> 
     <PDF result="portfolio1.pdf"> 
         <Portfolio>   
             <Navigator source="myNavigator">   
                 <Resource name="navigator/image.xxx" source="myImage.png"/> 
             </Navigator> 
         </Portfolio> 
         <PackageFiles source="dog1"  > 
              <FieldData name="X">72</FieldData> 
             <FieldData name="Y">72</FieldData> 
             <File filename="saint_bernard.jpg" mimetype="image/jpeg"/> 
         </PackageFiles> 
         <PackageFiles source="dog2"  > 
             <FieldData name="X">120</FieldData> 
             <FieldData name="Y">216</FieldData> 
             <File filename="greyhound.pdf"/> 
         </PackageFiles>     
     </PDF> 
 </DDX>

DXXドキュメントには、Portfolioタグと入れ子のNavigatorタグが含まれている必要があります。 タグ<Resource name="navigator/image.xxx" source="myImage.png"/>は、myNavigatorがonImageレイアウトナビゲーターとして割り当てられている場合にのみ必要です。AdobeOnImage.nav。 このタグを使用すると、Assemblerサービスでポートフォリオの背景として使用する画像を選択できます。 パッケージファイルのファイル名とMIMEタイプを定義するには、PackageFilesタグとFileタグを含めます。

メモ

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

メモ

DDXドキュメントについて詳しくは、「Assembler Service and DDX Reference」を参照してください。

手順の概要

PDFPortfolioを作成するには、次のタスクを実行します。

  1. プロジェクトファイルを含めます。
  2. PDFアセンブラクライアントを作成します。
  3. 既存のDDXドキュメントの参照。
  4. 必要なドキュメントを参照します。
  5. 実行時オプションを設定します。
  6. ポートフォリオをアセンブルします。
  7. 組み立てたポートフォリオを保存します。

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

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

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

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

PDFアセンブラクライアントの作成

プログラムによってAssembler操作を実行する前に、Assemblerサービスクライアントを作成します。

既存のDDXドキュメントの参照

PDFPortfolioをアセンブリするには、DDXドキュメントを参照する必要があります。 このDDXドキュメントには、PortfolioNavigatorおよびPackageFiles要素を含める必要があります。

必要なドキュメントの参照

PDFPortfolioをアセンブリするには、アセンブリ対象のドキュメントを表すすべてのファイルを参照します。 例えば、DDXドキュメントで指定されているすべての画像ファイルをAssemblerサービスに渡します。 これらのファイルは、この節で指定するDDXドキュメントで参照されます。myImage.png​と​saint_bernard.jpg

PDFPortfolioのアセンブリ時に、NAVファイル(ナビゲータファイル)をAssemblerサービスに渡します。 Assemblerサービスに渡すNAVファイルは、作成するPDFPortfolioのタイプに応じて異なります。 例えば、On an Image​レイアウトを作成するには、AdobeOnImage.navファイルを渡します。 NAVファイルは次のフォルダーにあります。

<Install folder>\Acrobat 9.0\Acrobat\Navigators

NAVファイルをAcrobat 9(またはそれ以降)のインストールディレクトリからコピーします。 NAVファイルは、クライアントアプリケーションがアクセスできる場所に配置します。 すべてのファイルは、Mapコレクションオブジェクト内でAssemblerサービスに渡されます。

メモ

PDFPortfolioのアセンブリに関連付けられているクイック開始では、AdobeOnImage.navを使用します。

実行時オプションの設定

ジョブの実行中にAssemblerサービスの動作を制御する実行時オプションを設定できます。 例えば、エラーが発生した場合にジョブの処理を続行するようAssemblerサービスに指示するオプションを設定できます。

ポートフォリオの編成

PDFPortfolioをアセンブリするには、invokeDDX操作を呼び出します。 Assemblerサービスは、コレクションオブジェクト内でPDFPortfolioを返します。

組み立てたポートフォリオの保存

コレクションオブジェクト内でPDFPortfolioが返されます。 コレクションオブジェクトを繰り返し処理し、PDFPortfolioをPDFファイルとして保存します。

関連トピック

Java APIを使用したPDFPortfolioのアセンブリ

WebサービスAPIを使用したPDFPortfolioのアセンブリ

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

接続プロパティの設定

プログラムによるPDFドキュメントのアセンブリ

Java APIを使用したPDFPortfolioのアセンブリ

Assembler Service API(Java)を使用してPDFPortfolioをアセンブリします。

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

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

  2. PDFアセンブラクライアントを作成します。

    • 接続プロパティを含む ServiceClientFactory オブジェクトを作成します。
    • コンストラクターを使用し、AssemblerServiceClientオブジェクトを渡して、ServiceClientFactoryオブジェクトを作成します。
  3. 既存のDDXドキュメントの参照。

    • コンストラクターを使用し、DDXファイルの場所を指定する文字列値を渡して、DDXドキュメントを表すjava.io.FileInputStreamオブジェクトを作成します。
    • コンストラクタを使用して com.adobe.idp.Document オブジェクトを渡すことによって、java.io.FileInputStream オブジェクトを作成します。
  4. 必要なドキュメントを参照します。

    • HashMapコンストラクターを使用して、入力PDFドキュメントの格納に使用するjava.util.Mapオブジェクトを作成します。

    • コンストラクタを使用して java.io.FileInputStream オブジェクトを作成します。必要なNAVファイルの場所を渡します(ポートフォリオの作成に必要な各ファイルに対してこのタスクを繰り返します)。

    • com.adobe.idp.Documentオブジェクトを作成し、NAVファイルを含むjava.io.FileInputStreamオブジェクトを渡します(ポートフォリオの作成に必要な各ファイルに対してこのタスクを繰り返します)。

    • <a0追加/>オブジェクトへのエントリ。そのputメソッドを呼び出し、次の引数を渡すことによって作成します。java.util.Map

      • キー名を表すstring値です。 この値は、DDXドキュメントで指定されたソース要素の値と一致する必要があります。 (ポートフォリオの作成に必要なファイルごとに、このタスクを繰り返します)。
      • PDFドキュメントを含むcom.adobe.idp.Documentオブジェクトです。 (ポートフォリオの作成に必要なファイルごとに、このタスクを繰り返します)。
  5. 実行時オプションを設定します。

    • コンストラクターを使用して、実行時オプションを格納するAssemblerOptionSpecオブジェクトを作成します。
    • AssemblerOptionSpecオブジェクトに属するメソッドを呼び出して、ビジネス要件に合うように実行時オプションを設定します。 例えば、エラーが発生した場合にジョブの処理を続行するようにAssemblerサービスに指示するには、AssemblerOptionSpecオブジェクトのsetFailOnErrorメソッドを呼び出し、falseを渡します。
  6. ポートフォリオをアセンブルします。

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

    • 使用するDDXドキュメントを表すcom.adobe.idp.Documentオブジェクト
    • PDFPortfolioの構築に必要なファイルが含まれるjava.util.Mapオブジェクトです。
    • デフォルトフォントとジョブログレベルを含む、ランタイムオプションを指定するcom.adobe.livecycle.assembler.client.AssemblerOptionSpecオブジェクト

    invokeDDXメソッドは、アセンブリされたPDFPortfolioと発生した例外を含むcom.adobe.livecycle.assembler.client.AssemblerResultオブジェクトを返します。

  7. 組み立てたポートフォリオを保存します。

    PDFPortfolioを取得するには、次の操作を実行します。

    • AssemblerResultオブジェクトのgetDocumentsメソッドを呼び出します。 このメソッドは、java.util.Mapオブジェクトを返します。
    • java.util.Mapオブジェクトを繰り返し処理して、結果のcom.adobe.idp.Documentオブジェクトを見つけます。
    • com.adobe.idp.DocumentオブジェクトのcopyToFileメソッドを呼び出してPDFPortfolioを抽出します。

関連トピック

クイック開始(SOAPモード):Java APIを使用したPDFPortfolioのアセンブリ

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

接続プロパティの設定

WebサービスAPIを使用してPDFPortfolioをアセンブリする

Assembler Service API(Webサービス)を使用してPDFPortfolioをアセンブリします。

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

    MTOMを使用するMicrosoft .NETプロジェクトを作成します。 サービス参照を設定する際は、次のWSDL定義を使用してください。http://localhost:8080/soap/services/AssemblerService?WSDL&lc_version=9.0.1.

    メモ

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

  2. PDFアセンブラクライアントを作成します。

    • AssemblerServiceClientオブジェクトを作成するには、そのデフォルトのコンストラクタを使用します。

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

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

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

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

      • AEM formsユーザー名をフィールドAssemblerServiceClient.ClientCredentials.UserName.UserNameに割り当てます。
      • 対応するパスワード値をフィールドAssemblerServiceClient.ClientCredentials.UserName.Passwordに割り当てます。
      • 定数値HttpClientCredentialType.BasicをフィールドBasicHttpBindingSecurity.Transport.ClientCredentialTypeに割り当てます。
      • 定数値BasicHttpSecurityMode.TransportCredentialOnlyをフィールドBasicHttpBindingSecurity.Security.Modeに割り当てます。
  3. 既存のDDXドキュメントの参照。

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

    • 各入力ファイルに対して、コンストラクタを使用してBLOBオブジェクトを作成します。 BLOBオブジェクトは、入力ファイルの保存に使用されます。
    • コンストラクターを呼び出し、入力ファイルのファイルの場所とファイルを開くモードを表すstring値を渡して、System.IO.FileStreamオブジェクトを作成します。
    • System.IO.FileStreamオブジェクトの内容を格納するバイト配列を作成します。 System.IO.FileStreamオブジェクトのLengthプロパティを取得して、バイト配列のサイズを決定できます。
    • System.IO.FileStreamオブジェクトのReadメソッドを呼び出して、バイト配列にストリームデータを入力します。 読み取るバイト配列、開始位置、ストリーム長を渡します。
    • BLOBオブジェクトに、MTOMフィールドにバイト配列の内容を割り当てて入力します。
    • MyMapOf_xsd_string_To_xsd_anyTypeオブジェクトを作成します。 このコレクションオブジェクトは、PDFPortfolioの作成に必要な入力ファイルの格納に使用されます。
    • 入力ファイルごとに、MyMapOf_xsd_string_To_xsd_anyType_Itemオブジェクトを作成します。
    • キー名を表すstring値をMyMapOf_xsd_string_To_xsd_anyType_Itemオブジェクトのkeyフィールドに割り当てます。 この値は、DDXドキュメントで指定された要素の値と一致する必要があります。 (このタスクは、入力ファイルごとに実行します)。
    • 入力ファイルを保存するBLOBオブジェクトをMyMapOf_xsd_string_To_xsd_anyType_Itemオブジェクトのvalueフィールドに割り当てます。 (このタスクは、入力PDFドキュメントごとに実行します)。
    • 追加MyMapOf_xsd_string_To_xsd_anyTypeオブジェクトのMyMapOf_xsd_string_To_xsd_anyType_Itemオブジェクト。 MyMapOf_xsd_string_To_xsd_anyTypeオブジェクトのAddメソッドを呼び出し、MyMapOf_xsd_string_To_xsd_anyTypeオブジェクトを渡します。 (このタスクは、入力PDFドキュメントごとに実行します)。
  5. 実行時オプションを設定します。

    • コンストラクターを使用して、実行時オプションを格納するAssemblerOptionSpecオブジェクトを作成します。
    • AssemblerOptionSpecオブジェクトに属するデータメンバに値を割り当てて、ビジネス要件に合うように実行時オプションを設定します。 例えば、エラーが発生した場合にジョブの処理を続行するようにAssemblerサービスに指示するには、falseAssemblerOptionSpecオブジェクトのfailOnErrorデータメンバーに割り当てます。
  6. ポートフォリオをアセンブルします。

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

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

    invokeDDXメソッドは、ジョブの結果と発生した例外を含むAssemblerResultオブジェクトを返します。

  7. 組み立てたポートフォリオを保存します。

    新しく作成されたPDFPortfolioを取得するには、次の操作を実行します。

    • AssemblerResultオブジェクトのdocumentsフィールドにアクセスします。これは、結果のPDFドキュメントを含むMapオブジェクトです。
    • Mapオブジェクトを繰り返し処理して、各結果ドキュメントを取得します。 次に、その配列メンバーのvalueBLOBにキャストします。
    • BLOBオブジェクトのMTOMプロパティにアクセスして、PDFドキュメントを表すバイナリデータを抽出します。 PDFファイルに書き出すことができるバイトの配列を返します。

関連トピック

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

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

このページ

Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now