Assembler 操作の実行に使用できる DDX ドキュメントを動的に作成できます。 DDX ドキュメントを動的に作成すると、実行時に取得された DDX ドキュメント内の値を使用できます。 DDX ドキュメントを動的に作成するには、使用しているプログラミング言語に属するクラスを使用します。 例えば、Java を使用してクライアントアプリケーションを開発する場合は、 org.w3c.dom.*
パッケージ。 同様に、Microsoft .NET を使用している場合は、 System.Xml
名前空間。
DDX ドキュメントを Assembler サービスに渡す前に、XML を org.w3c.dom.Document
インスタンスから com.adobe.idp.Document
インスタンス。 Web サービスを使用している場合は、XML を作成するために使用されたデータ型から XML を変換します ( 例: XmlDocument
) から BLOB
インスタンス。
このディスカッションでは、次の DDX ドキュメントが動的に作成されると仮定します。
<?xml version="1.0" encoding="UTF-8"?>
<DDX xmlns="https://ns.adobe.com/DDX/1.0/">
<PDFsFromBookmarks prefix="stmt">
<PDF source="AssemblerResultPDF.pdf"/>
</PDFsFromBookmarks>
</DDX>
この DDX ドキュメントは、PDFドキュメントを分解します。 PDF・ドキュメントの分解に関する知識を身に付けることをお勧めします。
Assembler サービスについて詳しくは、 AEM Formsのサービスリファレンス.
DDX ドキュメントについて詳しくは、 Assembler サービスと DDX リファレンス.
動的に作成された DDX ドキュメントを使用してPDFドキュメントをディスアセンブルするには、次のタスクを実行します。
プロジェクトファイルを含める
必要なファイルを開発プロジェクトに含めます。 Java を使用してクライアントアプリケーションを作成する場合は、必要な JAR ファイルを含めます。 Web サービスを使用している場合は、プロキシファイルを必ず含めてください。
次の JAR ファイルをプロジェクトのクラスパスに追加する必要があります。
Assembler クライアントのPDF
Assembler 操作をプログラムで実行する前に、Assembler サービスクライアントを作成します。
DDX ドキュメントの作成
使用しているプログラミング言語を使用して DDX ドキュメントを作成します。 PDFドキュメントを分解する DDX ドキュメントを作成するには、ドキュメントに PDFsFromBookmarks
要素。 DDX ドキュメントの作成に使用するデータタイプをに変換 com.adobe.idp.Document
インスタンスを使用します(Java API を使用する場合)。 Web サービスを使用している場合は、データ型を BLOB
インスタンス。
DDX ドキュメントの変換
を使用して作成された DDX ドキュメント org.w3c.dom
クラスは、 com.adobe.idp.Document
オブジェクト。 Java API を使用する際にこのタスクを実行するには、Java XML 変換クラスを使用します。 Web サービスを使用している場合は、DDX ドキュメントを BLOB
オブジェクト。
ディスアセンブリするPDFドキュメントの参照
PDF文書を分解するには、分解するPDF文書を表すPDFファイルを参照します。 Assembler サービスに渡されると、ドキュメント内のレベル 1 のブックマークごとに個別のPDFドキュメントが返されます。
実行時オプションを設定
ジョブの実行中に Assembler サービスの動作を制御する実行時オプションを設定できます。 例えば、エラーが発生した場合にジョブの処理を続行するよう Assembler サービスに指示するオプションを設定できます。 実行時オプションを設定するには、 AssemblerOptionSpec
オブジェクト。
PDF文書の分解
を呼び出してPDFドキュメントを分解する invokeDDX
操作。 動的に作成された DDX ドキュメントを渡します。 Assembler サービスは、コレクションオブジェクト内の分解されたPDFドキュメントを返します。
分解したPDF文書を保存
分解されたすべてのPDF・ドキュメントは、コレクション・オブジェクト内で返されます。 コレクションオブジェクトを繰り返し処理し、各PDFドキュメントをPDFファイルとして保存します。
関連トピック
Java API を使用した DDX ドキュメントの動的な作成
Web サービス API を使用した DDX ドキュメントの動的な作成
Assembler Service API(Java) を使用して、DDX ドキュメントを動的に作成し、PDFドキュメントをディスアセンブルします。
プロジェクトファイルを含めます。
Java プロジェクトのクラスパスに、adobe-assembler-client.jar などのクライアント JAR ファイルを含めます。
Assembler クライアントをPDFします。
ServiceClientFactory
オブジェクトを作成します。AssemblerServiceClient
オブジェクトのコンストラクタを使用し、 ServiceClientFactory
オブジェクト。DDX ドキュメントを作成します。
Java の作成 DocumentBuilderFactory
オブジェクトを DocumentBuilderFactory
クラス' newInstance
メソッド。
Java の作成 DocumentBuilder
オブジェクトを DocumentBuilderFactory
オブジェクトの newDocumentBuilder
メソッド。
を DocumentBuilder
オブジェクトの newDocument
メソッドを使用して org.w3c.dom.Document
オブジェクト。
を呼び出して、DDX ドキュメントのルート要素を作成します。 org.w3c.dom.Document
オブジェクトの createElement
メソッド。 このメソッドは、 Element
ルート要素を表すオブジェクト。 要素名を表す文字列値を createElement
メソッド。 戻り値を Element
にキャストします。次に、 setAttribute
メソッド。 最後に、ヘッダー要素の appendChild
メソッドを使用し、子要素オブジェクトを引数として渡します。 次のコード行は、このアプリケーションロジックを示しています。
Element root = (Element)document.createElement("DDX"); root.setAttribute("xmlns","https://ns.adobe.com/DDX/1.0/"); document.appendChild(root);
を作成します。 PDFsFromBookmarks
要素を Document
オブジェクトの createElement
メソッド。 要素名を表す文字列値を createElement
メソッド。 戻り値を Element
にキャストします。の値を設定 PDFsFromBookmarks
要素を setAttribute
メソッド。 を追加します。 PDFsFromBookmarks
要素を DDX
要素内で DDX 要素の appendChild
メソッド。 パス PDFsFromBookmarks
element オブジェクトを引数として指定します。 次のコード行は、このアプリケーションロジックを示しています。
Element PDFsFromBookmarks = (Element)document.createElement("PDFsFromBookmarks"); PDFsFromBookmarks.setAttribute("prefix","stmt"); root.appendChild(PDFsFromBookmarks);
の作成 PDF
要素を Document
オブジェクトの createElement
メソッド。 要素名を表す string 値を渡します。 戻り値を Element
にキャストします。の値を設定 PDF
要素を setAttribute
メソッド。 を追加します。 PDF
要素を PDFsFromBookmarks
要素を PDFsFromBookmarks
要素の appendChild
メソッド。 パス PDF
element オブジェクトを引数として指定します。 次のコード行は、このアプリケーションロジックを示しています。
Element PDF = (Element)document.createElement("PDF"); PDF.setAttribute("source","AssemblerResultPDF.pdf"); PDFsFromBookmarks.appendChild(PDF);
DDX ドキュメントを変換します。
javax.xml.transform.Transformer
を呼び出すことによってオブジェクトを取得 javax.xml.transform.Transformer
オブジェクトの静的 newInstance
メソッド。Transformer
を呼び出すことによってオブジェクトを取得 TransformerFactory
オブジェクトの newTransformer
メソッド。ByteArrayOutputStream
オブジェクトを作成します。javax.xml.transform.dom.DOMSource
オブジェクトを作成します。パス org.w3c.dom.Document
DDX ドキュメントを表すオブジェクト。javax.xml.transform.dom.DOMSource
オブジェクトを渡すことによって、ByteArrayOutputStream
オブジェクトを作成します。ByteArrayOutputStream
を呼び出すことによってオブジェクトを取得 javax.xml.transform.Transformer
オブジェクトの transform
メソッド。 パス javax.xml.transform.dom.DOMSource
そして javax.xml.transform.stream.StreamResult
オブジェクト。ByteArrayOutputStream
オブジェクトをバイト配列に変換します。ByteArrayOutputStream
オブジェクトの toByteArray
メソッド。com.adobe.idp.Document
オブジェクトの値を指定します。ディスアセンブリするPDFドキュメントを参照します。
の作成 java.util.Map
オブジェクトを使用して入力PDFドキュメントを格納する HashMap
コンストラクタ。
の作成 java.io.FileInputStream
オブジェクトのコンストラクタを使用し、ディスアセンブリするPDFドキュメントの場所を渡す。
の作成 com.adobe.idp.Document
オブジェクト。 パス java.io.FileInputStream
ディスアセンブリするPDFドキュメントを含むオブジェクト。
エントリを java.util.Map
オブジェクトを呼び出す put
メソッドを使用し、次の引数を渡す。
AssemblerResultPDF.pdf
.)com.adobe.idp.Document
ディスアセンブリするPDFドキュメントを含むオブジェクト。実行時オプションを設定します。
AssemblerOptionSpec
コンストラクタを使用して実行時オプションを格納するオブジェクト。AssemblerOptionSpec
オブジェクト。 例えば、エラーが発生したときにジョブの処理を続行するように Assembler サービスに指示するには、 AssemblerOptionSpec
オブジェクトの setFailOnError
メソッドとパス false
.PDF文書の分解
を呼び出す AssemblerServiceClient
オブジェクトの invokeDDX
メソッドを使用して、次の値を渡します。
com.adobe.idp.Document
動的に作成された DDX ドキュメントを表すオブジェクトjava.util.Map
分解するPDF・ドキュメントを含むオブジェクトcom.adobe.livecycle.assembler.client.AssemblerOptionSpec
デフォルトのフォントやジョブログレベルを含む、実行時のオプションを指定するオブジェクトこの invokeDDX
メソッドは、 com.adobe.livecycle.assembler.client.AssemblerResult
分解されたPDF文書と発生した例外を含むオブジェクト。
分解したPDF文書を保存します。
分解されたPDF・ドキュメントを取得するには、次の操作を実行します。
AssemblerResult
オブジェクトの getDocuments
メソッド。 このメソッドは、 java.util.Map
オブジェクト。java.util.Map
結果が見つかるまでオブジェクトを閉じます。 com.adobe.idp.Document
オブジェクト。com.adobe.idp.Document
オブジェクトの copyToFile
メソッドを使用して、PDFドキュメントを抽出します。関連トピック
クイックスタート(SOAP モード):Java API を使用した DDX ドキュメントの動的な作成
Assembler Service API(Web サービス)を使用して、DDX ドキュメントを動的に作成し、PDFドキュメントをディスアセンブルします。
プロジェクトファイルを含めます。
MTOM を使用するMicrosoft .NET プロジェクトを作成します。 サービス参照を設定する際は、次の WSDL 定義を必ず使用してください。 http://localhost:8080/soap/services/AssemblerService?WSDL&lc_version=9.0.1
.
置換 localhost
を、AEM Formsをホストするサーバーの IP アドレスに設定します。
Assembler クライアントをPDFします。
の作成 AssemblerServiceClient
オブジェクトのデフォルトのコンストラクタを使用します。
の作成 AssemblerServiceClient.Endpoint.Address
オブジェクトを System.ServiceModel.EndpointAddress
コンストラクタ。 WSDL をAEM Formsサービスに渡す文字列値 ( 例: http://localhost:8080/soap/services/AssemblerService?blob=mtom
) をクリックします。 を使用する必要はありません。 lc_version
属性。 この属性は、サービス参照を作成する際に使用されます。
の作成 System.ServiceModel.BasicHttpBinding
オブジェクトを作成するには、 AssemblerServiceClient.Endpoint.Binding
フィールドに入力します。 戻り値を 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 ドキュメントを作成します。
コンストラクタを使用して System.Xml.XmlElement
オブジェクトを作成します。
を呼び出して、DDX ドキュメントのルート要素を作成します。 XmlElement
オブジェクトの CreateElement
メソッド。 このメソッドは、 Element
ルート要素を表すオブジェクト。 要素名を表す文字列値を CreateElement
メソッド。 DDX 要素の値を設定するには、 SetAttribute
メソッド。 最後に、 XmlElement
オブジェクトの AppendChild
メソッド。 DDX オブジェクトを引数として渡します。 次のコード行は、このアプリケーションロジックを示しています。
System.Xml.XmlElement root = ddx.CreateElement("DDX"); root.SetAttribute("xmlns", "https://ns.adobe.com/DDX/1.0/"); ddx.AppendChild(root);
DDX ドキュメントの作成 PDFsFromBookmarks
要素を XmlElement
オブジェクトの CreateElement
メソッド。 要素名を表す文字列値を CreateElement
メソッド。 次に、 SetAttribute
メソッド。 を追加します。 PDFsFromBookmarks
要素をルート要素に追加するには、 DDX
要素の AppendChild
メソッド。 パス PDFsFromBookmarks
element オブジェクトを引数として指定します。 次のコード行は、このアプリケーションロジックを示しています。
XmlElement PDFsFromBookmarks = ddx.CreateElement("PDFsFromBookmarks"); PDFsFromBookmarks.SetAttribute("prefix", "stmt"); root.AppendChild(PDFsFromBookmarks);
DDX ドキュメントの作成 PDF
要素を XmlElement
オブジェクトの CreateElement
メソッド。 要素名を表す文字列値を CreateElement
メソッド。 次に、 SetAttribute
メソッド。 を追加します。 PDF
要素を PDFsFromBookmarks
要素を PDFsFromBookmarks
要素の AppendChild
メソッド。 パス PDF
element オブジェクトを引数として指定します。 次のコード行は、このアプリケーションロジックを示しています。
XmlElement PDF = ddx.CreateElement("PDF"); PDF.SetAttribute("source", "AssemblerResultPDF.pdf"); PDFsFromBookmarks.AppendChild(PDF);
DDX ドキュメントを変換します。
コンストラクタを使用して System.IO.MemoryStream
オブジェクトを作成します。
次の項目に MemoryStream
オブジェクトを XmlElement
DDX ドキュメントを表すオブジェクト。 を呼び出す XmlElement
オブジェクトの Save
メソッドを使用して、 MemoryStream
オブジェクト。
バイト配列を作成し、 MemoryStream
オブジェクト。 次のコードは、このアプリケーションロジックを示しています。
int bufLen = Convert.ToInt32(stream.Length); byte[] byteArray = new byte[bufLen]; stream.Position = 0; int count = stream.Read(byteArray, 0, bufLen);
の作成 BLOB
オブジェクト。 バイト配列を BLOB
オブジェクトの MTOM
フィールドに入力します。
ディスアセンブリするPDFドキュメントを参照します。
BLOB
オブジェクトを作成します。この BLOB
オブジェクトは、入力PDF・ドキュメントを格納するために使用します。 この BLOB
オブジェクトが invokeOneDocument
を引数として。System.IO.FileStream
オブジェクトを指定します。 入力PDFドキュメントのファイルの場所と、ファイルを開くモードを表す string 値を渡します。System.IO.FileStream
オブジェクト。 バイト配列のサイズは、 System.IO.FileStream
オブジェクトの Length
プロパティ。System.IO.FileStream
オブジェクトの Read
メソッドを使用し、読み込むバイト配列、開始位置、ストリーム長を渡す。BLOB
オブジェクトを割り当てる MTOM
プロパティは、バイト配列の内容を示します。実行時オプションを設定します。
AssemblerOptionSpec
コンストラクタを使用して実行時オプションを格納するオブジェクト。AssemblerOptionSpec
オブジェクト。 例えば、エラーが発生した場合にジョブの処理を続行するように Assembler サービスに指示するには、 false
から AssemblerOptionSpec
オブジェクトの failOnError
データメンバー。PDF文書の分解
を呼び出す AssemblerServiceClient
オブジェクトの invokeDDX
メソッドを使用して、次の値を渡します。
BLOB
動的に作成された DDX ドキュメントを表すオブジェクトmapItem
入力PDF文書を含む配列AssemblerOptionSpec
実行時のオプションを指定するオブジェクトこの invokeDDX
メソッドは、 AssemblerResult
ジョブの結果と発生した例外を含むオブジェクト。
分解したPDF文書を保存します。
新しく作成したPDF・ドキュメントを取得するには、次の操作を実行します。
AssemblerResult
オブジェクトの documents
フィールド ( Map
分解されたPDF文書を含むオブジェクト。Map
オブジェクトを使用して各結果ドキュメントを取得します。 次に、その配列メンバの value
から BLOB
.BLOB
オブジェクトの MTOM
プロパティ。 これは、バイトの配列を返し、PDF・ファイルに書き出すことができます。関連トピック