Web サービス API を使用した PDF ドキュメントの分割 disassemble-a-pdf-document-usingthe-web-service-api
このドキュメントのサンプルと例は、JEE 環境の AEM Forms のみを対象としています。
Assembler サービス API(web サービス)を使用して PDF ドキュメントを分割します。
-
プロジェクトファイルを含めます。
MTOM を使用する Microsoft .NET プロジェクトを作成します。サービスリファレンスを設定する際は、WSDL の定義
http://localhost:8080/soap/services/AssemblerService?WSDL&lc_version=9.0.1を必ず使用してください。note note NOTE localhostを、AEM Forms をホストするサーバーの IP アドレスに置き換えます。 -
PDF Assembler クライアントを作成します。
-
デフォルトのコンストラクターを使用して、
AssemblerServiceClientオブジェクトを作成します。 -
System.ServiceModel.EndpointAddressコンストラクターを使用して、AssemblerServiceClient.Endpoint.Addressオブジェクトを作成します。WSDL を指定する文字列値を AEM Forms サービスに渡します(例: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フィールドに AEM Forms ユーザー名を割り当てます。- 対応するパスワード値を
AssemblerServiceClient.ClientCredentials.UserName.Passwordフィールドに割り当てます。 - 定数値
HttpClientCredentialType.BasicをBasicHttpBindingSecurity.Transport.ClientCredentialTypeフィールドに割り当てます。 - 定数値
BasicHttpSecurityMode.TransportCredentialOnlyをフィールドBasicHttpBindingSecurity.Security.Modeに割り当てます。
-
-
既存の DDX ドキュメントを参照します。
- コンストラクターを使用して
BLOBオブジェクトを作成します。BLOBオブジェクトは、DDX ドキュメントを保存するために使用されます。 - コンストラクタを呼び出して
System.IO.FileStreamオブジェクトを作成します。DDX ドキュメントのファイルの場所を表す文字列値と、ファイルを開くモードを表す文字列値を渡します。 System.IO.FileStreamオブジェクトのコンテンツを格納するバイト配列を作成します。System.IO.FileStreamオブジェクトのLengthプロパティを取得することで、バイト配列のサイズを決定できます。- バイト配列にストリームデータを入力するには、
System.IO.FileStreamオブジェクトのReadメソッドを呼び出し、バイト配列、開始位置、読み取るストリーム長を渡します。 MTOMプロパティにバイト配列の内容を割り当てることによって、BLOBオブジェクトにデータを入力します。
- コンストラクターを使用して
-
分割する PDF ドキュメントを参照します。
- コンストラクターを使用して
BLOBオブジェクトを作成します。BLOBオブジェクトは、入力 PDF ドキュメントを格納するために使用します。このBLOBオブジェクトは引数としてinvokeOneDocumentに渡されます。 - コンストラクタを呼び出し、入力 PDF ドキュメントのファイルの場所とファイルを開くモードを表す文字列値を渡すことによって、
System.IO.FileStreamオブジェクトを作成します。 System.IO.FileStreamオブジェクトのコンテンツを格納するバイト配列を作成します。System.IO.FileStreamオブジェクトのLengthプロパティを取得することで、バイト配列のサイズを決定できます。System.IO.FileStreamオブジェクトのReadメソッドを呼び出し、バイト配列、開始位置、読み取るストリーム長を渡すことによって、バイト配列にストリームデータを入力します。- バイト配列の内容を
MTOMフィールドに割り当てることで、BLOBオブジェクトにデータを入力します。 MyMapOf_xsd_string_To_xsd_anyTypeオブジェクトを作成します。このコレクションオブジェクトは、ディスアセンブルする PDF を保存するために使用されます。MyMapOf_xsd_string_To_xsd_anyType_Itemオブジェクトを作成します。- キー名を表す文字列値を
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_ItemオブジェクトをMyMapOf_xsd_string_To_xsd_anyTypeオブジェクトに追加します。MyMapOf_xsd_string_To_xsd_anyTypeオブジェクトのAddメソッドを呼び出して、MyMapOf_xsd_string_To_xsd_anyTypeオブジェクトを渡します。
- コンストラクターを使用して
-
実行時オプションを設定します。
- ランタイムオプションを格納する
AssemblerOptionSpecオブジェクトをコンストラクタで作成します。 AssemblerOptionSpecオブジェクトに属するデータメンバーに値を割り当てることで、ビジネス要件を満たす実行時オプションを設定します。例えば、エラーが発生してもジョブの処理を続行するよう Assembler サービスに指示するには、AssemblerOptionSpecオブジェクトのfailOnErrorフィールドにfalseを割り当てます。
- ランタイムオプションを格納する
-
PDF ドキュメントを分割します。
AssemblerServiceClientオブジェクトのinvokeDDXメソッドを呼び出して、次の値を渡します。- PDF ドキュメントをディスアセンブルする DDX ドキュメントを表す
BLOBオブジェクト - ディスアセンブルする PDF ドキュメントを含む
MyMapOf_xsd_string_To_xsd_anyTypeオブジェクト - 実行時オプションを指定する
AssemblerOptionSpecオブジェクト
invokeDDXメソッドは、ジョブの結果および発生した例外を含むAssemblerResultオブジェクトを返します。 - PDF ドキュメントをディスアセンブルする DDX ドキュメントを表す
-
分割した PDF ドキュメントを保存します。
新しく作成した PDF ドキュメントを取得するには、次の操作を実行します。
AssemblerResultオブジェクトのdocumentsフィールド(ディスアセンブリされた PDF ドキュメントを含むMapオブジェクト)にアクセスします。Mapオブジェクトを反復処理して、各結果ドキュメントを取得します。次に、その配列メンバーのvalueをBLOBにキャストします。BLOBオブジェクトのMTOMプロパティにアクセスして、PDF ドキュメントを表すバイナリデータを抽出します。これにより、PDF ファイルに書き出すことができるバイト配列が返されます。
関連トピック