Assemblerサービスを使用すると、PDFドキュメントがPDF/Aに準拠しているかどうかを確認できます。 PDF/Aドキュメントは、ドキュメントのコンテンツを長期間保存するためのアーカイブ形式として存在します。 フォントはドキュメント内に埋め込まれ、ファイルは圧縮されません。その結果、通常、PDF/A ドキュメントは標準の PDF ドキュメントよりも大きくなります。また、PDF/A ドキュメントには、オーディオおよびビデオコンテンツは含まれません。
PDF/A-1仕様は、AとBの2つの準拠レベルで構成されています。2つのレベルの主な違いは、論理構造(アクセシビリティ)のサポートです。これは、準拠レベルBには必要ありません。準拠レベルにかかわらず、PDF/A-1は、生成されたPDF/Aドキュメントにすべてのフォントを埋め込むことを指示します。 現時点では、検証(および変換)ではPDF/A-1bのみがサポートされています。
この説明の目的で、次のDDXドキュメントが使用されているとします。
<?xml version="1.0" encoding="UTF-8"?>
<DDX xmlns="https://ns.adobe.com/DDX/1.0/">
<DocumentInformation source="Loan.pdf" result="Loan_result.xml">
<PDFAValidation compliance="PDF/A-1b" resultLevel="Detailed" ignoreUnusedResources="true" allowCertificationSignatures="true" />
</DocumentInformation>
</DDX>
このDDXドキュメント内で、DocumentInformation
要素がAssemblerサービスに対して、入力PDFドキュメントに関する情報を返すように指示します。 DocumentInformation
要素内で、PDFAValidation
要素は、入力PDFドキュメントがPDF/Aに準拠しているかどうかをAssemblerサービスに示します。
Assemblerサービスは、PDFAConformance
要素を含むXMLドキュメント内で、入力PDFドキュメントがPDF/Aに準拠しているかどうかを指定する情報を返します。 入力PDFドキュメントがPDF/Aに準拠している場合、PDFAConformance
要素のisCompliant
属性の値はtrue
です。 PDFドキュメントがPDF/Aに準拠していない場合、PDFAConformance
要素のisCompliant
属性の値はfalse
です。
この節で指定するDDXドキュメントにはDocumentInformation
要素が含まれているので、AssemblerサービスはPDFドキュメントではなくXMLデータを返します。 つまり、Assemblerサービスは、PDFドキュメントをアセンブリまたはディスアセンブリしません。xmlドキュメント内の入力PDFドキュメントに関する情報を返します。
Assemblerサービスについて詳しくは、『AEM Formsのサービスリファレンス』を参照してください。
DDXドキュメントについて詳しくは、「Assembler Service and DDX Reference」を参照してください。
PDFドキュメントがPDF/Aに準拠しているかどうかを確認するには、次のタスクを実行します。
プロジェクトファイルを含める
必要なファイルを開発プロジェクトに含めます。 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ドキュメントの参照
Assemblerサービス操作を実行するには、DDXドキュメントを参照する必要があります。 入力PDFドキュメントがPDF/Aに準拠しているかどうかを確認するには、DDXドキュメントにDocumentInformation
要素内にPDFAValidation
要素が含まれていることを確認します。 PDFAValidation
要素は、入力PDFドキュメントがPDF/Aに準拠しているかどうかを指定するXMLドキュメントを返すようAssemblerサービスに指示します。
PDF/Aの準拠性の判定に使用されるPDFドキュメントの参照
PDFドキュメントがPDF/Aに準拠しているかどうかを確認するには、PDFドキュメントを参照してAssemblerサービスに渡す必要があります。
実行時オプションの設定
ジョブの実行中にAssemblerサービスの動作を制御する実行時オプションを設定できます。 例えば、エラーが発生した場合にジョブの処理を続行するようAssemblerサービスに指示するオプションを設定できます。 設定できる実行時オプションについて詳しくは、AEM FormsAPIリファレンスのAssemblerOptionSpec
クラス参照を参照してください。
PDFドキュメントに関する情報の取得
Assemblerサービスクライアントの作成、DDXドキュメントの参照、インタラクティブPDFドキュメントの参照、および実行時オプションの設定が完了したら、invokeDDX
操作を呼び出すことができます。 DDXドキュメントにはDocumentInformation
要素が含まれているので、AssemblerサービスはPDFドキュメントではなくXMLデータを返します。
返されたXMLドキュメントを保存します
Assemblerサービスが返すXMLドキュメントは、入力PDFドキュメントがPDF/Aに準拠しているかどうかを指定します。 例えば、入力PDFドキュメントがPDF/Aに準拠していない場合、Assemblerサービスは次の要素を含むXMLドキュメントを返します。
<PDFAConformance isCompliant="false" compliance="PDF/A-1b" resultLevel="Detailed" ignoreUnusedResources="true" allowCertificationSignatures="true">
XMLドキュメントをXMLファイルとして保存し、ファイルを開いて結果を表示できるようにします。
関連トピック
Java APIを使用した、ドキュメントがPDF/Aに準拠しているかどうかの確認
WebサービスAPIを使用した、ドキュメントがPDF/Aに準拠しているかどうかを確認する
Assembler Service API(Java)を使用して、PDFドキュメントがPDF/Aに準拠しているかどうかを確認します。
プロジェクトファイルを含めます。
Javaプロジェクトのクラスパスに、adobe-assembler-client.jarなどのクライアントJARファイルを含めます。
PDFアセンブラクライアントを作成します。
ServiceClientFactory
オブジェクトを作成します。AssemblerServiceClient
オブジェクトを渡して、ServiceClientFactory
オブジェクトを作成します。既存のDDXドキュメントの参照。
java.io.FileInputStream
オブジェクトを作成します。 PDFドキュメントがPDF/Aに準拠しているかどうかを確認するには、DDXドキュメントにDocumentInformation
要素内に含まれるPDFAValidation
要素が含まれていることを確認します。com.adobe.idp.Document
オブジェクトを渡すことによって、java.io.FileInputStream
オブジェクトを作成します。PDF/Aの準拠性の判定に使用されるPDFドキュメントを参照します。
コンストラクターを使用し、PDF/Aの準拠性を判断するために使用するPDFドキュメントの場所を渡して、java.io.FileInputStream
オブジェクトを作成します。
コンストラクターを使用し、PDFドキュメントを含むjava.io.FileInputStream
オブジェクトを渡して、com.adobe.idp.Document
オブジェクトを作成します。
HashMap
コンストラクターを使用して、入力PDFドキュメントの保存に使用するjava.util.Map
オブジェクトを作成します。
<a0追加/>オブジェクトへのエントリ。そのput
メソッドを呼び出し、次の引数を渡すことによって作成します。java.util.Map
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
メソッドは、入力PDFドキュメントがPDF/Aに準拠しているかどうかを指定するXMLデータを含むcom.adobe.livecycle.assembler.client.AssemblerResult
オブジェクトを返します。
返されたXMLドキュメントを保存します。
入力PDFドキュメントがPDF/Aドキュメントであるかどうかを指定するXMLデータを取得するには、次の操作を実行します。
AssemblerResult
オブジェクトのgetDocuments
メソッドを呼び出します。 java.util.Map
オブジェクトを返します。java.util.Map
オブジェクトを繰り返し処理して、結果のcom.adobe.idp.Document
オブジェクトを見つけます。com.adobe.idp.Document
オブジェクトのcopyToFile
メソッドを呼び出して、XMLドキュメントを抽出します。 XMLデータはXMLファイルとして保存してください。関連トピック
クイック開始(SOAPモード):Java API (SOAPモード)を使用したPDF/A準拠のドキュメントかどうかの判定
Assembler Service API(Webサービス)を使用して、PDFドキュメントがPDF/Aに準拠しているかどうかを確認します。
プロジェクトファイルを含めます。
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/Aの準拠性の判定に使用されるPDFドキュメントを参照します。
BLOB
オブジェクトを作成します。BLOB
オブジェクトは、入力PDFドキュメントの保存に使用されます。System.IO.FileStream
オブジェクトを作成します。System.IO.FileStream
オブジェクトの内容を格納するバイト配列を作成します。 System.IO.FileStream
オブジェクトのLength
プロパティを取得して、バイト配列のサイズを決定できます。System.IO.FileStream
オブジェクトのRead
メソッドを呼び出し、読み取るバイト配列、開始位置、ストリーム長を渡すことで、バイト配列にストリームデータを入力します。BLOB
オブジェクトにMTOM
プロパティを割り当て、バイト配列の内容を指定します。MyMapOf_xsd_string_To_xsd_anyType
オブジェクトを作成します。 このコレクションオブジェクトは、PDFドキュメントの保存に使用されます。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
オブジェクトを渡します。実行時オプションを設定します。
AssemblerOptionSpec
オブジェクトを作成します。AssemblerOptionSpec
オブジェクトに属するデータメンバに値を割り当てて、ビジネス要件に合うように実行時オプションを設定します。 例えば、エラーが発生した場合にジョブの処理を続行するようにAssemblerサービスに指示するには、false
をAssemblerOptionSpec
オブジェクトのfailOnError
データメンバーに割り当てます。PDFドキュメントに関する情報を取得します。
AssemblerServiceService
オブジェクトのinvoke
メソッドを呼び出し、次の値を渡します。
BLOB
オブジェクトです。MyMapOf_xsd_string_To_xsd_anyType
オブジェクトです。 キーはPDFソースファイルの名前と一致する必要があり、その値は入力PDFファイルに対応するBLOB
オブジェクトである必要があります。AssemblerOptionSpec
オブジェクト。invoke
メソッドは、入力PDFドキュメントがPDF/Aドキュメントであるかどうかを指定するXMLデータを含むAssemblerResult
オブジェクトを返します。
返されたXMLドキュメントを保存します。
入力PDFドキュメントがPDF/Aドキュメントであるかどうかを指定するXMLデータを取得するには、次の操作を実行します。
AssemblerResult
オブジェクトのdocuments
フィールドにアクセスします。これは、入力PDFドキュメントがPDF/Aドキュメントであるかどうかを指定するXMLデータが含まれるMap
オブジェクトです。Map
オブジェクトを繰り返し処理して、各結果ドキュメントを取得します。 次に、その配列メンバの値をBLOB
にキャストします。BLOB
オブジェクトのMTOM
フィールドにアクセスして、XMLデータを表すバイナリデータを抽出します。 このフィールドには、XMLファイルとして書き出すことができるバイトの配列が格納されます。関連トピック