このドキュメントのサンプルと例は、JEE環境上のAEM Formsに対してのみ提供されています。
ブックマークを含むPDFドキュメントをアセンブリできます。 例えば、しおりが含まれていないPDFドキュメントがあり、しおりを指定して変更するとします。 Assemblerサービスを使用すると、ブックマークを含まない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です。
サポートされているアクションについて詳しくは、『Assembler Service and DDX Reference』の「Action
要素」を参照してください。
この節で指定するDDXドキュメントとブックマークXMLファイルを入力として指定した場合、Assemblerサービスは、次のブックマークを含むPDFドキュメントをアセンブリします。
ユーザーがローンの詳細ブックマークを開くをクリックすると、LoanDetails.pdfが開きます。 同様に、ユーザーがNotePadのブックマークをクリックすると、NotePadが起動します。
この節を読む前に、Assemblerサービスを使用したPDFドキュメントのアセンブリについて理解しておくことをお勧めします。 ここでは、入力ドキュメントを含むコレクションオブジェクトの作成や、返されるコレクションオブジェクトから結果を抽出する方法の学習など、概念については説明しません。 (「PDFドキュメントのプログラムによるアセンブリ」を参照)。
Assemblerサービスについて詳しくは、『AEM Formsのサービスリファレンス』を参照してください。
DDXドキュメントについて詳しくは、「Assembler Service and DDX Reference」を参照してください。
ブックマークを含むPDFドキュメントをアセンブリするには、次のタスクを実行します。
プロジェクトファイルを含める
必要なファイルを開発プロジェクトに含めます。 Javaを使用してクライアントアプリケーションを作成する場合は、必要なJARファイルを含めます。 Webサービスを使用している場合は、プロキシファイルを必ず含めてください。
次のJARファイルをプロジェクトのクラスパスに追加する必要があります。
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ドキュメントを参照してください)。
『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ドキュメントのプログラムによるアセンブリ」の「結果を抽出」を参照)。
関連トピック
Assembler Service API(Java)を使用して、ブックマークを使用してPDFドキュメントをアセンブリします。
プロジェクトファイルを含めます。
Javaプロジェクトのクラスパスに、adobe-assembler-client.jarなどのクライアントJARファイルを含めます。
PDFアセンブラクライアントを作成します。
ServiceClientFactory
オブジェクトを作成します。(接続プロパティの設定を参照。)AssemblerServiceClient
オブジェクトを渡して、ServiceClientFactory
オブジェクトを作成します。既存のDDXドキュメントの参照。
java.io.FileInputStream
オブジェクトを作成します。com.adobe.idp.Document
オブジェクトを渡すことによって、java.io.FileInputStream
オブジェクトを作成します。ブックマークを追加するPDFドキュメントを参照します。
java.io.FileInputStream
オブジェクトを作成します。com.adobe.idp.Document
オブジェクトを作成し、PDFドキュメントを含むjava.io.FileInputStream
オブジェクトを渡します。ブックマークXMLドキュメントを参照します。
java.io.FileInputStream
オブジェクトを作成します。com.adobe.idp.Document
オブジェクトを作成し、PDFドキュメントを含むjava.io.FileInputStream
オブジェクトを渡します。追加PDFドキュメントとブックマークXMLドキュメントをMapコレクションに追加します。
入力PDFドキュメントとブックマークXMLドキュメントの両方を保存するために使用するjava.util.Map
オブジェクトを作成します。
追加java.util.Map
オブジェクトのput
メソッドを呼び出し、次の引数を渡すことによって、入力PDFドキュメントを指定します。
com.adobe.idp.Document
オブジェクトです。追加java.util.Map
オブジェクトのput
メソッドを呼び出し、次の引数を渡すことにより、ブックマークXMLドキュメントを設定します。
com.adobe.idp.Document
オブジェクト。実行時オプションを設定します。
AssemblerOptionSpec
オブジェクトを作成します。AssemblerOptionSpec
オブジェクトに属するメソッドを呼び出して、ビジネス要件に合うように実行時オプションを設定します。 例えば、エラーが発生した場合にジョブの処理を続行するようにAssemblerサービスに指示するには、AssemblerOptionSpec
オブジェクトのsetFailOnError
メソッドを呼び出し、false
を渡します。PDFドキュメントをアセンブリします。
AssemblerServiceClient
オブジェクトのinvokeDDX
メソッドを呼び出し、次の必須値を渡します。
com.adobe.idp.Document
オブジェクトjava.util.Map
オブジェクトです。com.adobe.livecycle.assembler.client.AssemblerOptionSpec
オブジェクトinvokeDDX
メソッドは、ジョブの結果と発生した例外を含むcom.adobe.livecycle.assembler.client.AssemblerResult
オブジェクトを返します。
しおりが含まれている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ドキュメントのアセンブリ
Assembler Service API(Webサービス)を使用して、ブックマークを使用してPDFドキュメントをアセンブリします。
プロジェクトファイルを含めます。
MTOMを使用するMicrosoft .NETプロジェクトを作成します。 次のWSDL定義を使用していることを確認します。http://localhost:8080/soap/services/AssemblerService?WSDL&lc_version=9.0.1
.
localhost
を、AEM FormsをホストするサーバーのIPアドレスに置き換えます。
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認証を有効にします。
AssemblerServiceClient.ClientCredentials.UserName.UserName
に割り当てます。AssemblerServiceClient.ClientCredentials.UserName.Password
に割り当てます。HttpClientCredentialType.Basic
をフィールドBasicHttpBindingSecurity.Transport.ClientCredentialType
に割り当てます。BasicHttpSecurityMode.TransportCredentialOnly
をフィールドBasicHttpBindingSecurity.Security.Mode
に割り当てます。既存のDDXドキュメントの参照。
BLOB
オブジェクトを作成します。BLOB
オブジェクトは、DDXドキュメントの保存に使用されます。System.IO.FileStream
オブジェクトを作成します。System.IO.FileStream
オブジェクトの内容を格納するバイト配列を作成します。 System.IO.FileStream
オブジェクトのLength
プロパティを取得して、バイト配列のサイズを決定できます。System.IO.FileStream
オブジェクトのRead
メソッドを呼び出し、読み取るバイト配列、開始位置、ストリーム長を渡すことで、バイト配列にストリームデータを入力します。BLOB
オブジェクトに、MTOM
フィールドにバイト配列の内容を割り当てて入力します。ブックマークを追加するPDFドキュメントを参照します。
BLOB
オブジェクトを作成します。BLOB
オブジェクトは、入力PDFの保存に使用されます。System.IO.FileStream
オブジェクトを作成します。System.IO.FileStream
オブジェクトの内容を格納するバイト配列を作成します。 System.IO.FileStream
オブジェクトのLength
プロパティを取得して、バイト配列のサイズを決定できます。System.IO.FileStream
オブジェクトのRead
メソッドを呼び出し、読み取るバイト配列、開始位置、ストリーム長を渡すことで、バイト配列にストリームデータを入力します。BLOB
オブジェクトに、MTOM
フィールドにバイト配列の内容を割り当てて入力します。ブックマークXMLドキュメントを参照します。
BLOB
オブジェクトを作成します。BLOB
オブジェクトは、ブックマークXMLドキュメントの格納に使用されます。System.IO.FileStream
オブジェクトを作成します。System.IO.FileStream
オブジェクトの内容を格納するバイト配列を作成します。 System.IO.FileStream
オブジェクトのLength
プロパティを取得して、バイト配列のサイズを決定できます。System.IO.FileStream
オブジェクトのRead
メソッドを呼び出し、読み取るバイト配列、開始位置、ストリーム長を渡すことで、バイト配列にストリームデータを入力します。BLOB
オブジェクトに、MTOM
フィールドにバイト配列の内容を割り当てて入力します。追加PDFドキュメントとブックマークXMLドキュメントをMapコレクションに追加します。
MyMapOf_xsd_string_To_xsd_anyType
オブジェクトを作成します。 このコレクションオブジェクトは、入力PDFドキュメントとブックマークXMLドキュメントの格納に使用されます。MyMapOf_xsd_string_To_xsd_anyType_Item
オブジェクトを作成します。MyMapOf_xsd_string_To_xsd_anyType_Item
オブジェクトのkey
フィールドに割り当てます。 この値は、DDXドキュメントで指定された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ドキュメントごとに実行します)。実行時オプションを設定します。
AssemblerOptionSpec
オブジェクトを作成します。AssemblerOptionSpec
オブジェクトに属するデータメンバに値を割り当てて、ビジネス要件に合うように実行時オプションを設定します。 例えば、エラーが発生した場合にジョブの処理を続行するようにAssemblerサービスに指示するには、false
をAssemblerOptionSpec
オブジェクトのfailOnError
データメンバーに割り当てます。PDFドキュメントをアセンブリします。
AssemblerServiceClient
オブジェクトのinvokeDDX
メソッドを呼び出し、次の値を渡します。
BLOB
オブジェクトMyMapOf_xsd_string_To_xsd_anyType
配列AssemblerOptionSpec
オブジェクトinvokeDDX
メソッドは、ジョブの結果と発生した可能性のある例外を含むAssemblerResult
オブジェクトを返します。
しおりが含まれているPDFドキュメントを保存します。
新しく作成されたPDFドキュメントを取得するには、次の操作を実行します。
AssemblerResult
オブジェクトのdocuments
フィールドにアクセスします。これは、結果のPDFドキュメントを含むMap
オブジェクトです。Map
オブジェクトを繰り返し処理して、結果のドキュメントの名前と一致するキーを見つけます。 次に、その配列メンバーのvalue
をBLOB
にキャストします。BLOB
オブジェクトのMTOM
フィールドにアクセスして、PDFドキュメントを表すバイナリデータを抽出します。 PDFファイルに書き出すことができるバイトの配列を返します。関連トピック