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 ファイルに書き出すことができるバイト配列が返されます。
関連トピック