ブックマークによるPDFドキュメントのアセンブリ

ブックマークを含むPDFドキュメントをアセンブリできます。 例えば、しおりが含まれていないPDFドキュメントがあり、しおりを指定して変更するとします。 Assemblerサービスを使用すると、ブックマークを含まないPDFドキュメントを渡して、ブックマークを含むPDFドキュメントに戻すことができます。

ブックマークには、次のプロパティが含まれます。

  • 画面にテキストとして表示されるタイトル。
  • ユーザーがブックマークをクリックした場合の動作を指定するアクション。 ブックマークの一般的な操作は、現在のドキュメント内の別の場所に移動するか、別のPDFドキュメントを開くことです。ただし、他の操作を指定することもできます。

この説明の目的で、次のDDXドキュメントが使用されているとします。

 <?xml version="1.0" encoding="UTF-8"?>
 <DDX xmlns="https://ns.adobe.com/DDX/1.0/">
       <PDF result="FinalDoc.pdf">
          <PDF source="Loan.pdf">
             <Bookmarks source="doc2" />
          </PDF>
       </PDF>
 </DDX>

このDDXドキュメント内で、source属性にLoan.pdfという値が割り当てられています。 このDDXドキュメントは、1つのPDFドキュメントをAssemblerサービスに渡すことを指定します。 ブックマークを使用してPDFドキュメントをアセンブリする場合は、結果ドキュメントーでブックマークを説明するブックマークXMLドキュメントを指定する必要があります。 ブックマークXMLドキュメントを指定するには、DDXドキュメントでBookmarks要素が指定されていることを確認します。

この例のDDXドキュメントでは、Bookmarks要素でdoc2を値として指定しています。 この値は、Assemblerサービスに渡される入力マップにdoc2という名前のキーが含まれていることを示します。 doc2キーの値は、ブックマークXMLドキュメントを表すcom.adobe.idp.Document値です。 (『Assembler Service and DDX Reference』の「Bookmarks Language」を参照)。

このトピックでは、次のXMLブックマーク言語を使用して、ブックマークを含むPDFドキュメントをアセンブリします。

 <?xml version="1.0" encoding="UTF-8"?>
 <Bookmarks xmlns="https://ns.adobe.com/pdf/bookmarks" version="1.0">
       <Bookmark>
          <Action>
             <Launch NewWindow="true">
                <File Name="C:\Adobe\LoanDetails.pdf" />
             </Launch>
          </Action>
         <Title>Open the Loan document</Title>
       </Bookmark>
 <Bookmark>
          <Action>
             <Launch>
                <Win Name="C:\WINDOWS\notepad.exe" />
             </Launch>
          </Action>
     <Title>Launch NotePad</Title>
       </Bookmark>
 </Bookmarks>

このブックマークXMLドキュメント内に、ユーザーがブックマークをクリックしたときに実行されるアクションを定義するAction要素があることに注意してください。 アクション要素の下に、NotePadなどのアプリケーションを起動し、PDFファイルなどのファイルを開くLaunch要素があります。 PDFファイルを開くには、開くファイルを指定するFile要素を使用する必要があります。 例えば、この節で指定するブックマークXMLファイルでは、開かれるファイルの名前はLoanDetails.pdfです。

NOTE

サポートされているアクションについて詳しくは、『Assembler Service and DDX Reference』の「Action要素」を参照してください。

この節で指定するDDXドキュメントとブックマークXMLファイルを入力として指定した場合、Assemblerサービスは、次のブックマークを含むPDFドキュメントをアセンブリします。

aw_aw_bmark

ユーザーが​ローンの詳細​ブックマークを開くをクリックすると、LoanDetails.pdfが開きます。 同様に、ユーザーが​NotePad​のブックマークをクリックすると、NotePadが起動します。

NOTE

この節を読む前に、Assemblerサービスを使用したPDFドキュメントのアセンブリについて理解しておくことをお勧めします。 ここでは、入力ドキュメントを含むコレクションオブジェクトの作成や、返されるコレクションオブジェクトから結果を抽出する方法の学習など、概念については説明しません。 (「PDFドキュメントのプログラムによるアセンブリ」を参照)。

NOTE

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

NOTE

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

手順の概要

ブックマークを含むPDFドキュメントをアセンブリするには、次のタスクを実行します。

  1. プロジェクトファイルを含めます。
  2. PDFアセンブラクライアントを作成します。
  3. 既存のDDXドキュメントの参照。
  4. ブックマークを追加するPDFドキュメントを参照します。
  5. ブックマークXMLドキュメントを参照します。
  6. 追加PDFドキュメントとブックマークXMLドキュメントをMapコレクションに追加します。
  7. 実行時オプションを設定します。
  8. PDFドキュメントをアセンブリします。
  9. しおりが含まれているPDFドキュメントを保存します。

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

必要なファイルを開発プロジェクトに含めます。 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にデプロイされている場合に必要)

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

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

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

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

PDFドキュメントをアセンブリするには、DDXドキュメントを参照する必要があります。 このDDXドキュメントにはBookmarks要素を含める必要があります。この要素は、Assemblerサービスに対して、ブックマークを含むPDFのアセンブリを指示します。 (例については、この節で前述したDDXドキュメントを参照してください)。

ブックマークが追加されたPDFドキュメントの参照

ブックマークを追加するPDFドキュメントを参照します。 参照先のPDFドキュメントに既にしおりが含まれているかどうかは関係ありません。 Bookmarks要素がPDFソース要素の子である場合、PDFソースに既に存在するものはブックマークに置き換えられます。 ただし、既存のしおりを保持する場合は、BookmarksがPDFソース要素の兄弟であることを確認してください。 例えば、次の例を考えてみましょう。

 <PDF result="foo">
      <PDF source="inDoc"/>
      <Bookmarks source="doc2"/>
 </PDF>

ブックマークXMLドキュメントの参照

新しいブックマークを含むPDFをアセンブリするには、ブックマークXMLドキュメントを参照する必要があります。 ブックマークXMLドキュメントは、Mapコレクションオブジェクト内のAssemblerサービスに渡されます。 (例については、この節で前述したブックマークXMLドキュメントを参照してください)。

NOTE

Assembler Service and DDX Reference』の「Bookmarks Language」を参照してください。

追加PDFドキュメントとブックマークXMLドキュメントをMapコレクションにマックする

ブックマークを追加するPDFドキュメントとブックマークXMLドキュメントの両方をMapコレクションに追加する必要があります。 したがって、Mapコレクションオブジェクトには2つの要素が含まれます。PDFドキュメントとブックマークXMLドキュメント

実行時オプションの設定

ジョブの実行中にAssemblerサービスの動作を制御する実行時オプションを設定できます。 例えば、エラーが発生した場合にジョブの処理を続行するようAssemblerサービスに指示するオプションを設定できます。 設定できる実行時オプションについて詳しくは、AEM FormsAPIリファレンスAssemblerOptionSpecクラス参照を参照してください。

PDFドキュメントのアセンブリ

新しいブックマークを含むPDFドキュメントをアセンブリするには、AssemblerサービスのinvokeDDX操作を使用します。 invokeOneDocumentなどの他のAssemblerサービス操作とは異なり、invokeDDX操作を使用する必要があるのは、AssemblerサービスがMapコレクションオブジェクト内で渡されるブックマークXMLドキュメントを必要とするからです。 このオブジェクトはinvokeDDX操作のパラメータです。

しおりが含まれているPDFドキュメントの保存

返されたマップオブジェクトから結果を抽出し、対応するPDFドキュメントを保存する必要があります。 (「PDFドキュメントのプログラムによるアセンブリ」の「結果を抽出」を参照)。

関連トピック

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

接続プロパティの設定

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

Java APIを使用して、しおりを使用してPDFドキュメントをアセンブリする

Assembler Service API(Java)を使用して、ブックマークを使用してPDFドキュメントをアセンブリします。

  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. ブックマークを追加するPDFドキュメントを参照します。

    • コンストラクターを使用し、PDFドキュメントーの場所を渡して、java.io.FileInputStreamオブジェクトを作成します。
    • コンストラクターを使用してcom.adobe.idp.Documentオブジェクトを作成し、PDFドキュメントを含むjava.io.FileInputStreamオブジェクトを渡します。
  5. ブックマークXMLドキュメントを参照します。

    • コンストラクターを使用し、ブックマークXMLドキュメントーを表すXMLファイルの場所を渡して、java.io.FileInputStreamオブジェクトを作成します。
    • com.adobe.idp.Documentオブジェクトを作成し、PDFドキュメントを含むjava.io.FileInputStreamオブジェクトを渡します。
  6. 追加PDFドキュメントとブックマークXMLドキュメントをMapコレクションに追加します。

    • 入力PDFドキュメントとブックマークXMLドキュメントの両方を保存するために使用するjava.util.Mapオブジェクトを作成します。

    • 追加java.util.Mapオブジェクトのputメソッドを呼び出し、次の引数を渡すことによって、入力PDFドキュメントを指定します。

      • キー名を表すstring値です。 この値は、DDXドキュメントで指定されたPDFソース要素の値と一致する必要があります。
      • 入力PDFドキュメントを含むcom.adobe.idp.Documentオブジェクトです。
    • 追加java.util.Mapオブジェクトのputメソッドを呼び出し、次の引数を渡すことにより、ブックマークXMLドキュメントを設定します。

      • キー名を表すstring値です。 この値は、DDXドキュメントで指定されたBookmarksソース要素の値と一致する必要があります。
      • ブックマークXMLドキュメントが含まれるcom.adobe.idp.Documentオブジェクト。
  7. 実行時オプションを設定します。

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

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

    • 使用するDDXドキュメントを表すcom.adobe.idp.Documentオブジェクト
    • 入力PDFドキュメントとブックマークXMLドキュメントの両方を含むjava.util.Mapオブジェクトです。
    • デフォルトのフォントとジョブログレベルを含む、実行時のオプションを指定するcom.adobe.livecycle.assembler.client.AssemblerOptionSpecオブジェクト

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

  9. しおりが含まれているPDFドキュメントを保存します。

    新しく作成されたPDFドキュメントを取得するには、次の操作を実行します。

    • AssemblerResultオブジェクトのgetDocumentsメソッドを呼び出します。 java.util.Mapオブジェクトを返します。
    • java.util.Mapオブジェクトを繰り返し処理して、結果のcom.adobe.idp.Documentオブジェクトを見つけます。 (DDXドキュメントで指定されたPDF結果ドキュメントを使用して、要素を取得できます)。
    • com.adobe.idp.DocumentオブジェクトのcopyToFileメソッドを呼び出してPDFドキュメントを抽出します。

関連トピック

クイック開始(SOAPモード):Java APIを使用したブックマークによるPDFドキュメントのアセンブリ

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

接続プロパティの設定

WebサービスAPIを使用して、ブックマークを使用してPDFドキュメントをアセンブリする

Assembler Service API(Webサービス)を使用して、ブックマークを使用してPDFドキュメントをアセンブリします。

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

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

    NOTE

    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. ブックマークを追加するPDFドキュメントを参照します。

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

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

    • MyMapOf_xsd_string_To_xsd_anyTypeオブジェクトを作成します。 このコレクションオブジェクトは、入力PDFドキュメントとブックマークXMLドキュメントの格納に使用されます。
    • 入力PDFドキュメントとブックマークXMLドキュメントごとに、MyMapOf_xsd_string_To_xsd_anyType_Itemオブジェクトを作成します。
    • キー名を表すstring値をMyMapOf_xsd_string_To_xsd_anyType_Itemオブジェクトのkeyフィールドに割り当てます。 この値は、DDXドキュメントで指定されたPDFソース要素の値と一致する必要があります。
    • PDFドキュメントを格納しているBLOBオブジェクトをMyMapOf_xsd_string_To_xsd_anyType_Itemオブジェクトのvalueフィールドに割り当てます。
    • 追加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ドキュメントおよびブックマークXMLドキュメントごとに実行します)。
  7. 実行時オプションを設定します。

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

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

    • DDXドキュメントを表すBLOBオブジェクト
    • 入力ドキュメントーが含まれるMyMapOf_xsd_string_To_xsd_anyType配列
    • 実行時オプションを指定するAssemblerOptionSpecオブジェクト

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

  9. しおりが含まれているPDFドキュメントを保存します。

    新しく作成されたPDFドキュメントを取得するには、次の操作を実行します。

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

関連トピック

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

このページ