Generate PDFサービスについて
Generate PDF サービスは、ネイティブファイル形式を PDF に変換します。また、PDF を他のファイル形式に変換し、PDF ドキュメントのサイズを最適化します。
Generate PDF サービスは、以下のファイル形式を PDF に変換する際にネイティブアプリケーションを使用します。特に説明がない限り、これらのアプリケーションはドイツ語版、フランス語版、英語版および日本語版のみサポートされています。Windows は、Windows Server® 2003およびWindows Server 2008のみをサポートすることを示しています。
Microsoft XPS形式をPDFに変換するには、Acrobat® 9.2以降が必要です。
Generate PDFサービスは、64ビット版のOpenOfficeをサポートしていません。
PhotoshopCS3とCS4は、Windows Server 2003またはWindows Server 2008をサポートしていないため、サポートされていません。
Generate PDF サービスでは、次の標準ベースのファイル形式を PDF に変換します。
Generate PDF サービスでは、PDF を次のファイル形式に変換します(Windows のみ):
Generate PDF サービスを使用するには、以下の管理タスクを実行する必要があります。
これらのタスクは、『AEM formsの自動インストールおよびデプロイ(JBoss版)』に説明されています。
Generate PDFサービスを使用して、次のタスクを実行できます。
Generate PDFサービスについて詳しくは、「AEM Formsのサービスリファレンス」を参照してください。
この節では、Generate PDF APIを使用して、Microsoft WordドキュメントをPDFドキュメントにプログラム的に変換する方法について説明します。
その他のファイル形式について詳しくは、追加のネイティブファイル形式に対するサポートの追加を参照してください。
Generate PDFサービスについて詳しくは、「AEM Formsのサービスリファレンス」を参照してください。
Microsoft WordドキュメントをPDFドキュメントに変換するには、次のタスクを実行します。
プロジェクトファイルを含める
必要なファイルを開発プロジェクトに含めます。 Javaを使用してクライアントアプリケーションを作成する場合は、必要なJARファイルを含めます。 Webサービスを使用している場合は、プロキシファイルを必ず含めてください。
Generate PDFクライアントの作成
プログラムを使用してGenerate PDF操作を実行する前に、Generate PDFサービスクライアントを作成します。 Java APIを使用している場合は、GeneratePdfServiceClient
オブジェクトを作成します。 WebサービスAPIを使用している場合は、GeneratePDFServiceService
オブジェクトを作成します。
PDFドキュメントに変換するファイルを取得します
Microsoft Wordドキュメントを取得してPDFドキュメントに変換します。
ファイルをPDFドキュメントに変換
Generate PDFサービスクライアントの作成後、createPDF2
メソッドを呼び出すことができます。 このメソッドには、変換するドキュメント(ファイル拡張子など)に関する情報が必要です。
結果を取得する
ファイルがPDFドキュメントに変換された後、結果を取得できます。 例えば、WordファイルをPDFドキュメントに変換した後、PDFドキュメントを取得して保存できます。
関連トピック
Java APIを使用したWordドキュメントのPDFドキュメントへの変換
WebサービスAPIを使用してWordドキュメントをPDFドキュメントに変換する
Generate PDF Service APIのクイック開始
Generate PDF API(Java)を使用してMicrosoft WordドキュメントをPDFドキュメントに変換します。
プロジェクトファイルを含めます。
Javaプロジェクトのクラスパスに、adobe-generatepdf-client.jarなどのクライアントJARファイルを含めます。
Generate PDFクライアントを作成します。
ServiceClientFactory
オブジェクトを作成します。GeneratePdfServiceClient
オブジェクトを渡すことによって、ServiceClientFactory
オブジェクトを作成します。PDFドキュメントに変換するファイルを取得します。
java.io.FileInputStream
オブジェクトを作成します。 ファイルの場所を指定するstring値を渡します。com.adobe.idp.Document
オブジェクトを渡すことによって、java.io.FileInputStream
オブジェクトを作成します。ファイルをPDFドキュメントに変換します。
GeneratePdfServiceClient
オブジェクトのcreatePDF2
メソッドを呼び出し、次の値を渡して、ファイルをPDFドキュメントに変換します。
com.adobe.idp.Document
オブジェクト。java.lang.String
オブジェクト。java.lang.String
オブジェクト。 ファイルタイプの設定では、.docや.xlsなど、異なるファイルタイプの変換設定を指定します。java.lang.String
オブジェクトです。 例えば、Standard
を指定できます。java.lang.String
オブジェクト。com.adobe.idp.Document
オブジェクトです。com.adobe.idp.Document
オブジェクトです。createPDF2
メソッドは、新しいPDFドキュメントとログ情報を含むCreatePDFResult
オブジェクトを返します。 通常、ログファイルには、変換要求によって生成されるエラーメッセージや警告メッセージが含まれます。
結果を取得します。
PDFドキュメントを取得するには、次の操作を実行します。
CreatePDFResult
オブジェクトのgetCreatedDocument
メソッドを呼び出します。このメソッドは、com.adobe.idp.Document
オブジェクトを返します。com.adobe.idp.Document
オブジェクトのcopyToFile
メソッドを呼び出して、前の手順で作成したオブジェクトからPDFドキュメントを抽出します。createPDF2
メソッドを使用してログドキュメントを取得した場合(HTML変換には適用されません)、次の操作を実行します。
CreatePDFResult
オブジェクトのgetLogDocument
メソッドを呼び出します。 com.adobe.idp.Document
オブジェクトを返します。com.adobe.idp.Document
オブジェクトのcopyToFile
メソッドを呼び出して、ログドキュメントを抽出します。関連トピック
クイック開始(SOAPモード):Java APIを使用したMicrosoft WordドキュメントのPDFドキュメントへの変換
Generate PDF API(Webサービス)を使用して、Microsoft WordドキュメントをPDFドキュメントに変換します。
プロジェクトファイルを含めます。
MTOMを使用するMicrosoft .NETプロジェクトを作成します。 次のWSDL定義を使用していることを確認します。http://localhost:8080/soap/services/GeneratePDFService?WSDL&lc_version=9.0.1
.
localhost
を、AEM FormsをホストするサーバーのIPアドレスに置き換えます。
Generate PDFクライアントを作成します。
GeneratePDFServiceClient
オブジェクトを作成するには、そのデフォルトのコンストラクタを使用します。
System.ServiceModel.EndpointAddress
コンストラクターを使用してGeneratePDFServiceClient.Endpoint.Address
オブジェクトを作成します。 WSDLをAEM Formsサービスに指定するstring値を渡します(例:http://localhost:8080/soap/services/GeneratePDFService?blob=mtom
)。 lc_version
属性を使用する必要はありません。 ただし、?blob=mtom
を指定します。
GeneratePDFServiceClient.Endpoint.Binding
フィールドの値を取得してSystem.ServiceModel.BasicHttpBinding
オブジェクトを作成します。 戻り値を BasicHttpBinding
にキャストします。
System.ServiceModel.BasicHttpBinding
オブジェクトのMessageEncoding
フィールドをWSMessageEncoding.Mtom
に設定します。 この値により、MTOMが使用されます。
次のタスクを実行して、基本的なHTTP認証を有効にします。
GeneratePDFServiceClient.ClientCredentials.UserName.UserName
に割り当てます。GeneratePDFServiceClient.ClientCredentials.UserName.Password
に割り当てます。HttpClientCredentialType.Basic
をフィールドBasicHttpBindingSecurity.Transport.ClientCredentialType
に割り当てます。BasicHttpSecurityMode.TransportCredentialOnly
をフィールドBasicHttpBindingSecurity.Security.Mode
に割り当てます。PDFドキュメントに変換するファイルを取得します。
BLOB
オブジェクトを作成します。BLOB
オブジェクトは、PDFドキュメントに変換するファイルを保存するために使用します。System.IO.FileStream
オブジェクトを作成します。 変換するファイルの場所とファイルを開くモードを表すstring値を渡します。System.IO.FileStream
オブジェクトの内容を格納するバイト配列を作成します。 System.IO.FileStream
オブジェクトのLength
プロパティを取得して、バイト配列のサイズを決定できます。System.IO.FileStream
オブジェクトのRead
メソッドを呼び出し、読み取るバイト配列、開始位置、ストリーム長を渡すことで、バイト配列にストリームデータを入力します。BLOB
オブジェクトを設定するには、MTOM
プロパティにバイト配列の内容を割り当てます。ファイルをPDFドキュメントに変換します。
GeneratePDFServiceService
オブジェクトのCreatePDF2
メソッドを呼び出し、次の値を渡して、ファイルをPDFドキュメントに変換します。
BLOB
オブジェクト。java.lang.String
オブジェクト。 ファイルタイプの設定では、.docや.xlsなど、異なるファイルタイプの変換設定を指定します。Standard
を指定できます。No Security
を指定できます。BLOB
オブジェクトです。BLOB
オブジェクトです。CreatePDF2
メソッドによって入力される、タイプBLOB
の出力パラメーター。 CreatePDF2
メソッドは、変換されたドキュメントをこのオブジェクトに入力します。 (このパラメーター値は、Webサービスの呼び出しの場合にのみ必要です)。CreatePDF2
メソッドによって入力される、タイプBLOB
の出力パラメーター。 CreatePDF2
メソッドは、このオブジェクトにログドキュメントを入力します。 (このパラメーター値は、Webサービスの呼び出しの場合にのみ必要です)。結果を取得します。
BLOB
オブジェクトのMTOM
フィールドをバイト配列に割り当てて、変換されたPDFドキュメントを取得します。 byte配列は、変換されたPDFドキュメントを表します。 createPDF2
メソッドの出力パラメーターとして使用するBLOB
オブジェクトを使用してください。System.IO.FileStream
オブジェクトを作成します。System.IO.FileStream
オブジェクトを渡し、System.IO.BinaryWriter
オブジェクトを作成します。System.IO.BinaryWriter
オブジェクトのWrite
メソッドを呼び出し、バイト配列を渡すことで、バイト配列の内容をPDFファイルに書き込みます。関連トピック
この節では、Generate PDF APIを使用して、HTMLドキュメントをPDFドキュメントにプログラム的に変換する方法について説明します。
Generate PDFサービスについて詳しくは、「AEM Formsのサービスリファレンス」を参照してください。
HTMLドキュメントをPDFドキュメントに変換するには、次のタスクを実行します。
プロジェクトファイルを含める
必要なファイルを開発プロジェクトに含めます。 Javaを使用してクライアントアプリケーションを作成する場合は、必要なJARファイルを含めます。 Webサービスを使用している場合は、プロキシファイルを必ず含めてください。
Generate PDFクライアントの作成
プログラムを使用してGenerate PDF操作を実行する前に、Generate PDFサービスクライアントを作成する必要があります。 Java APIを使用している場合は、GeneratePdfServiceClient
オブジェクトを作成します。 WebサービスAPIを使用している場合は、GeneratePDFServiceService
を作成します。
PDFドキュメントに変換するHTMLコンテンツを取得する
PDFドキュメントに変換するHTMLコンテンツを参照します。 HTMLファイルなどのHTMLコンテンツや、URLを使用してアクセスできるHTMLコンテンツを参照できます。
HTMLコンテンツのPDFドキュメントへの変換
サービスクライアントを作成したら、適切なPDF作成操作を呼び出すことができます。 この操作には、ターゲットドキュメントへのパスなど、変換するドキュメントに関する情報が必要です。
結果を取得する
HTMLコンテンツがPDFドキュメントに変換されたら、結果を取得してPDFドキュメントを保存できます。
関連トピック
Java APIを使用したHTMLコンテンツのPDFドキュメントへの変換
WebサービスAPIを使用したHTMLコンテンツのPDFドキュメントへの変換
Generate PDF Service APIのクイック開始
Generate PDF API(Java)を使用してHTMLドキュメントをPDFドキュメントに変換します。
プロジェクトファイルを含めます。
Javaプロジェクトのクラスパスに、adobe-generatepdf-client.jarなどのクライアントJARファイルを含めます。
Generate PDFクライアントを作成します。
コンストラクターを使用し、接続プロパティを含むServiceClientFactory
オブジェクトを渡して、GeneratePdfServiceClient
オブジェクトを作成します。
PDFドキュメントに変換するHTMLコンテンツを取得します。
文字列変数を作成し、HTMLコンテンツを指すURLを割り当てることで、HTMLコンテンツを取得します。
HTMLコンテンツをPDFドキュメントに変換します。
GeneratePdfServiceClient
オブジェクトのhtmlToPDF2
メソッドを呼び出し、次の値を渡します。
java.lang.String
オブジェクト。java.lang.String
オブジェクト。 ファイルタイプ設定には、スパイダリングレベルを含めることができます。java.lang.String
オブジェクト。com.adobe.idp.Document
オブジェクトです。 この情報を指定しない場合、設定は前の3つのパラメーターに基づいて自動的に選択されます。com.adobe.idp.Document
オブジェクトです。結果を取得します。
htmlToPDF2
メソッドは、生成された新しいPDFドキュメントを含むHtmlToPdfResult
オブジェクトを返します。 新しく作成されたPDFドキュメントを取得するには、次の操作を実行します。
HtmlToPdfResult
オブジェクトのgetCreatedDocument
メソッドを呼び出します。 com.adobe.idp.Document
オブジェクトを返します。com.adobe.idp.Document
オブジェクトのcopyToFile
メソッドを呼び出して、前の手順で作成したオブジェクトからPDFドキュメントを抽出します。関連トピック
クイック開始(SOAPモード):Java APIを使用したHTMLコンテンツのPDFドキュメントへの変換
クイック開始(SOAPモード):Java APIを使用したHTMLコンテンツのPDFドキュメントへの変換
Generate PDF API(Webサービス)を使用してHTMLコンテンツをPDFドキュメントに変換します。
プロジェクトファイルを含めます。
MTOMを使用するMicrosoft .NETプロジェクトを作成します。 次のWSDL定義を使用していることを確認します。http://localhost:8080/soap/services/GeneratePDFService?WSDL&lc_version=9.0.1
.
localhost
を、AEM FormsをホストするサーバーのIPアドレスに置き換えます。
Generate PDFクライアントを作成します。
GeneratePDFServiceClient
オブジェクトを作成するには、そのデフォルトのコンストラクタを使用します。
System.ServiceModel.EndpointAddress
コンストラクターを使用してGeneratePDFServiceClient.Endpoint.Address
オブジェクトを作成します。 WSDLをAEM Formsサービスに指定するstring値を渡します(例:http://localhost:8080/soap/services/GeneratePDFService?blob=mtom
)。 lc_version
属性を使用する必要はありません。 ただし、?blob=mtom
を指定します。
GeneratePDFServiceClient.Endpoint.Binding
フィールドの値を取得してSystem.ServiceModel.BasicHttpBinding
オブジェクトを作成します。 戻り値を BasicHttpBinding
にキャストします。
System.ServiceModel.BasicHttpBinding
オブジェクトのMessageEncoding
フィールドをWSMessageEncoding.Mtom
に設定します。 この値により、MTOMが使用されます。
次のタスクを実行して、基本的なHTTP認証を有効にします。
GeneratePDFServiceClient.ClientCredentials.UserName.UserName
に割り当てます。GeneratePDFServiceClient.ClientCredentials.UserName.Password
に割り当てます。HttpClientCredentialType.Basic
をフィールドBasicHttpBindingSecurity.Transport.ClientCredentialType
に割り当てます。BasicHttpSecurityMode.TransportCredentialOnly
をフィールドBasicHttpBindingSecurity.Security.Mode
に割り当てます。PDFドキュメントに変換するHTMLコンテンツを取得します。
文字列変数を作成し、HTMLコンテンツを指すURLを割り当てることで、HTMLコンテンツを取得します。
HTMLコンテンツをPDFドキュメントに変換します。
GeneratePDFServiceService
オブジェクトのHtmlToPDF2
メソッドを呼び出し、次の値を渡して、HTMLコンテンツをPDFドキュメントに変換します。
java.lang.String
オブジェクト。BLOB
オブジェクトです。BLOB
オブジェクトです。CreatePDF2
メソッドによって入力される、タイプBLOB
の出力パラメーター。 CreatePDF2
メソッドは、変換されたドキュメントをこのオブジェクトに入力します。 (このパラメーター値は、Webサービスの呼び出しの場合にのみ必要です)。結果を取得します。
BLOB
オブジェクトのMTOM
フィールドをバイト配列に割り当てて、変換されたPDFドキュメントを取得します。 byte配列は、変換されたPDFドキュメントを表します。 HtmlToPDF2
メソッドの出力パラメーターとして使用するBLOB
オブジェクトを使用してください。System.IO.FileStream
オブジェクトを作成します。System.IO.FileStream
オブジェクトを渡し、System.IO.BinaryWriter
オブジェクトを作成します。System.IO.BinaryWriter
オブジェクトのWrite
メソッドを呼び出し、バイト配列を渡すことで、バイト配列の内容をPDFファイルに書き込みます。関連トピック
この節では、Generate PDF Java APIとWebサービスAPIを使用して、PDFドキュメントをプログラムでRTFファイルに変換する方法について説明します。このファイルは画像以外の形式の例です。 その他の画像以外の形式には、HTML、テキスト、DOC、EPSがあります。 PDFドキュメントをRTFに変換する場合は、PDFドキュメントに送信ボタンなどのフォーム要素が含まれていないことを確認します。 フォーム要素は変換されません。
Generate PDFサービスについて詳しくは、「AEM Formsのサービスリファレンス」を参照してください。
PDFドキュメントをサポートされている任意の種類に変換するには、次の手順を実行します。
プロジェクトファイルを含める
必要なファイルを開発プロジェクトに含めます。 Javaを使用してクライアントアプリケーションを作成する場合は、必要なJARファイルを含めます。 Webサービスを使用している場合は、プロキシファイルを必ず含めてください。
Generate PDFクライアントの作成
プログラムを使用してGenerate PDF操作を実行する前に、Generate PDFサービスクライアントを作成する必要があります。 Java APIを使用している場合は、GeneratePdfServiceClient
オブジェクトを作成します。 WebサービスAPIを使用している場合は、GeneratePDFServiceService
オブジェクトを作成します。
変換するPDFドキュメントを取得します
画像以外の形式に変換するPDFドキュメントを取得します。
「Convert the PDF」ドキュメント
サービスクライアントを作成したら、PDF書き出し操作を呼び出すことができます。 この操作には、ターゲットドキュメントへのパスなど、変換するドキュメントに関する情報が必要です。
変換したファイルを保存
変換したファイルを保存します。 例えば、PDFドキュメントをRTFファイルに変換する場合は、変換後のドキュメントをRTFファイルに保存します。
関連トピック
Java APIを使用したPDFドキュメントのRTFファイルへの変換
WebサービスAPIを使用したPDFドキュメントのRTFファイルへの変換
Generate PDF Service APIのクイック開始
Generate PDF API(Java)を使用してPDFドキュメントをRTFファイルに変換します。
プロジェクトファイルを含めます。
Javaプロジェクトのクラスパスに、adobe-generatepdf-client.jarなどのクライアントJARファイルを含めます。
Generate PDFクライアントを作成します。
コンストラクターを使用し、接続プロパティを含むServiceClientFactory
オブジェクトを渡して、GeneratePdfServiceClient
オブジェクトを作成します。
変換するPDFドキュメントを取得します。
java.io.FileInputStream
オブジェクトを作成します。 PDFドキュメントの場所を指定するstring値を渡します。com.adobe.idp.Document
オブジェクトを渡すことによって、java.io.FileInputStream
オブジェクトを作成します。PDFドキュメントを変換します。
GeneratePdfServiceClient
オブジェクトのexportPDF2
メソッドを呼び出し、次の値を渡します。
com.adobe.idp.Document
オブジェクトです。java.lang.String
オブジェクト。java.lang.String
オブジェクト。ConvertPDFFormatType
オブジェクト。com.adobe.idp.Document
オブジェクトです。exportPDF2
メソッドは、変換されたファイルを含むExportPDFResult
オブジェクトを返します。
PDFドキュメントを変換します。
新しく作成したファイルを取得するには、次の操作を実行します。
ExportPDFResult
オブジェクトのgetConvertedDocument
メソッドを呼び出します。 com.adobe.idp.Document
オブジェクトを返します。com.adobe.idp.Document
オブジェクトのcopyToFile
メソッドを呼び出して、新しいドキュメントを抽出します。関連トピック
クイック開始(SOAPモード):Java APIを使用したHTMLコンテンツのPDFドキュメントへの変換
Generate PDF API(Webサービス)を使用してPDFドキュメントをRTFファイルに変換します。
プロジェクトファイルを含めます。
MTOMを使用するMicrosoft .NETプロジェクトを作成します。 次のWSDL定義を使用していることを確認します。http://localhost:8080/soap/services/GeneratePDFService?WSDL&lc_version=9.0.1
.
localhost
を、AEM FormsをホストするサーバーのIPアドレスに置き換えます。
Generate PDFクライアントを作成します。
GeneratePDFServiceClient
オブジェクトを作成するには、そのデフォルトのコンストラクタを使用します。
System.ServiceModel.EndpointAddress
コンストラクターを使用してGeneratePDFServiceClient.Endpoint.Address
オブジェクトを作成します。 WSDLをAEM Formsサービスに指定するstring値を渡します(例:http://localhost:8080/soap/services/GeneratePDFService?blob=mtom
)。 lc_version
属性を使用する必要はありません。 ただし、?blob=mtom
を指定します。
GeneratePDFServiceClient.Endpoint.Binding
フィールドの値を取得してSystem.ServiceModel.BasicHttpBinding
オブジェクトを作成します。 戻り値を BasicHttpBinding
にキャストします。
System.ServiceModel.BasicHttpBinding
オブジェクトのMessageEncoding
フィールドをWSMessageEncoding.Mtom
に設定します。 この値により、MTOMが使用されます。
次のタスクを実行して、基本的なHTTP認証を有効にします。
GeneratePDFServiceClient.ClientCredentials.UserName.UserName
に割り当てます。GeneratePDFServiceClient.ClientCredentials.UserName.Password
に割り当てます。HttpClientCredentialType.Basic
をフィールドBasicHttpBindingSecurity.Transport.ClientCredentialType
に割り当てます。BasicHttpSecurityMode.TransportCredentialOnly
をフィールドBasicHttpBindingSecurity.Security.Mode
に割り当てます。変換するPDFドキュメントを取得します。
BLOB
オブジェクトを作成します。BLOB
オブジェクトは、変換されたPDFドキュメントの保存に使用されます。System.IO.FileStream
オブジェクトを作成します。System.IO.FileStream
オブジェクトの内容を格納するバイト配列を作成します。 System.IO.FileStream
オブジェクトのLength
プロパティを取得して、バイト配列のサイズを決定できます。System.IO.FileStream
オブジェクトのRead
メソッドを呼び出し、読み取るバイト配列、開始位置、ストリーム長を渡すことで、バイト配列にストリームデータを入力します。BLOB
オブジェクトを設定するには、MTOM
プロパティにバイト配列の内容を割り当てます。PDFドキュメントを変換します。
GeneratePDFServiceServiceWse
オブジェクトのExportPDF2
メソッドを呼び出し、次の値を渡します。
BLOB
オブジェクトです。java.lang.String
オブジェクト。RTF
を指定します。BLOB
オブジェクトです。ExportPDF2
メソッドによって入力される、タイプBLOB
の出力パラメーター。 ExportPDF2
メソッドは、変換されたドキュメントをこのオブジェクトに入力します。 (このパラメーター値は、Webサービスの呼び出しの場合にのみ必要です)。変換したファイルを保存します。
BLOB
オブジェクトのMTOM
フィールドをバイト配列に割り当てて、変換されたRTFドキュメントを取得します。 バイト配列は、変換されたRTFドキュメントを表します。 ExportPDF2
メソッドの出力パラメーターとして使用するBLOB
オブジェクトを使用してください。System.IO.FileStream
オブジェクトを作成します。 RTFファイルの場所を表すstring値を渡します。System.IO.FileStream
オブジェクトを渡し、System.IO.BinaryWriter
オブジェクトを作成します。System.IO.BinaryWriter
オブジェクトのWrite
メソッドを呼び出し、バイト配列を渡すことで、バイト配列の内容をRTFファイルに書き込みます。関連トピック
この節では、その他のネイティブファイル形式に対するサポートを追加する方法について説明します。 このサービスでは、Generate PDFサービスと、このサービスでネイティブファイル形式をPDFに変換する際に使用されるネイティブアプリケーションとの間のやり取りの概要を提供します。
この節では、以下についても説明します。
Generate PDFサービスは、ファイル形式に関連付けられたアプリケーションを呼び出してネイティブファイル形式を変換し、アプリケーションとやり取りして、デフォルトのプリンターを使用してドキュメントを印刷します。 デフォルトのプリンターは、Adobe PDFプリンターとして設定する必要があります。
次の図に、ネイティブアプリケーションのサポートに関連するコンポーネントとドライバを示します。 また、インタラクションに影響を与えるXMLグラマーについても説明します。
ネイティブファイル変換のコンポーネントの操作
このドキュメントでは、「ネイティブアプリケーション」という用語を使用して、Microsoft Wordなどのネイティブファイル形式の生成に使用するアプリケーションを示します。
AppMonisは、ユーザーがそのアプリケーションによって表示されるダイアログボックス内を移動するのと同じ方法で、ネイティブアプリケーションと対話するエンタープライズコンポーネントです。 AppMonで、Microsoft Wordなどのアプリケーションに対して、ファイルを開いて印刷するよう指示するために使用されるXMLグラマーでは、次の順次タスクが含まれます。
AppMonは、標準のWin32 APIを使用して、キーストロークやマウスクリックなどのUIイベントを転送するために、サードパーティアプリケーションとやり取りします。これは、これらのアプリケーションを制御してPDFファイルを生成するのに役立ちます。
これらのWin32 APIの制限により、AppMonは、フローティングメニューバー(TextPadなどのアプリケーションで見つかる)や、Win32 APIを使用してコンテンツを取得できない特定の種類のダイアログなど、特定の種類のウィンドウにこれらのUIイベントをディスパッチできません。
フローティングメニューバーを見分けるのは簡単です。ただし、特別な種類のダイアログは、視覚検査だけでは特定できない場合があります。 AppMonが標準のWin32 APIを使用してAppMonとやり取りできるかどうかを調べるためのダイアログを調べるには、Microsoft Spy++ (Microsoft Visual C++開発環境の一部)やそれに相当するWinID (https://www.dennisbabkin.com/php/download.php?what=WinIDから無料でダウンロードできます)などのサードパーティ製品が必要です。
WinIDがテキスト、サブウィンドウ、ウィンドウクラスIDなどのダイアログコンテンツを抽出できる場合、AppMonも同様に機能します。
次の表に、ネイティブファイル形式で印刷する際に使用する情報の種類を示します。
情報タイプ |
説明 |
ネイティブファイルに関連するエントリの変更/作成 |
---|---|---|
管理設定 |
PDF設定、セキュリティ設定、ファイルタイプ設定などが含まれます。 ファイルタイプ設定により、ファイル名拡張子が対応するネイティブアプリケーションに関連付けられます。 ファイルタイプ設定では、ネイティブファイルの印刷に使用するネイティブアプリケーション設定も指定します。 |
既にサポートされているネイティブアプリケーションの設定を変更するには、システム管理者が管理コンソールで「ファイルタイプ設定」を設定します。 新しいネイティブファイル形式のサポートを追加するには、ファイルを手動で編集する必要があります。 (ネイティブファイル形式のサポートの追加または変更を参照)。 |
スクリプト |
Generate PDFサービスとネイティブアプリケーションとの間のやり取りを指定します。 このような操作を行うと、通常、アプリケーションはAdobe PDFドライバにファイルを印刷するよう指示します。 このスクリプトには、ネイティブアプリケーションに特定のダイアログボックスを開かせ、それらのダイアログボックスのフィールドとボタンに対して特定の応答を提供する命令が含まれています。 |
Generate PDFサービスには、サポートされるすべてのネイティブアプリケーション用のスクリプトファイルが含まれます。 これらのファイルは、XML編集アプリケーションを使用して変更できます。 新しいネイティブアプリケーションのサポートを追加するには、新しいスクリプトファイルを作成する必要があります。 (ネイティブアプリケーション用の追加のダイアログXMLファイルの作成または変更を参照)。 |
一般的なダイアログボックスの説明 |
複数のアプリケーションに共通のダイアログボックスに対する対応方法を指定します。 このようなダイアログボックスは、オペレーティングシステム、ヘルパーアプリケーション(PDFMakerなど)、およびドライバーによって生成されます。 この情報を含むファイルは、appmon.global.en_US.xmlです。 |
このファイルは変更しないでください。 |
アプリケーション固有のダイアログボックスの説明 |
アプリケーション固有のダイアログボックスに対する応答方法を指定します。 この情報を含むファイルはappmonです。`[appname]`.dialog.`[ロケール]`.xml (appmon.word.en_US.xmlなど) |
このファイルは変更しないでください。 新しいネイティブアプリケーション用のダイアログボックスの手順を追加するには、ネイティブアプリケーション用の追加のダイアログXMLファイルの作成または変更を参照してください。 |
その他のアプリケーション固有のダイアログボックスの手順 |
アプリケーション固有のダイアログボックスの説明に対する上書きと追加を指定します。 この節では、このような情報の例を示します。 この情報を含むファイルはappmonです。`[appname]`.addition.`[ロケール]`.xml.appmon.addition.en_US.xmlなどがあります。 |
この種類のファイルは、XML編集アプリケーションを使用して作成および変更できます。 (ネイティブアプリケーション用の追加のダイアログXMLファイルの作成または変更を参照)。 重要:サーバーがサポートするネイティブアプリケーションごとに、アプリケーション固有のダイアログボックスに関する追加の手順を作成する必要があります。 |
スクリプトXMLファイルは、ユーザーがアプリケーションのダイアログボックスを移動するのと同じように、Generate PDFサービスにアプリケーションのダイアログボックス間を移動するよう指示します。 また、スクリプトXMLファイルは、ボタンの押し下げ、チェックボックスの選択/選択解除、メニュー項目の選択などの操作を実行して、Generate PDFサービスにダイアログボックスへの応答を指示します。
対照的に、ダイアログXMLファイルは、スクリプトXMLファイルで使用されるのと同じタイプのアクションを持つダイアログボックスに応答します。
この節と次の節では、説明するパースペクティブに応じて、ダイアログボックスやダイアログボックスに含まれるコンポーネントに対して異なる用語を使用します。 ダイアログボックスのコンポーネントは、ボタン、フィールド、コンボボックスなどの項目です。
この節と次の節では、ユーザーの観点からダイアログボックスとその構成要素について説明する際に、ダイアログボックス、ボタン、フィールド、コンボボックスなどの用語が使用されます。
この節と次の節では、内部表現の観点から、ダイアログボックスとそのコンポーネントについて説明する場合、window要素という用語が使用されます。 ウィンドウ要素の内部表現は階層で、各ウィンドウ要素のインスタンスはラベルで識別されます。 ウィンドウ要素インスタンスは、その物理的な特性と動作も記述します。
ユーザーの観点から見ると、ダイアログボックスとそのコンポーネントには異なる動作が表示されます。この場合、一部のダイアログボックス要素はアクティブ化されるまで非表示になります。 内部表現の観点からは、そのような行動の問題は存在しません。 例えば、ダイアログボックスの内部表現は、ダイアログボックス内でコンポーネントがネストされる点を除いて、ダイアログボックスの内部表現とそのコンポーネントの内部表現は似ています。
ここでは、AppMonに手順を提供するXML要素について説明します。 これらの要素には、dialog
要素やwindow
要素などの名前が付けられます。 このドキュメントでは、XML要素を区別するために等幅フォントを使用します。 dialog
要素は、XMLスクリプトファイルが意図的にまたは意図せずに表示される原因となる可能性のあるダイアログボックスを識別します。 window
要素は、ウィンドウ要素(ダイアログボックスまたはダイアログボックスのコンポーネント)を識別します。
次の図に、スクリプトとダイアログのXMLの階層を示します。 スクリプトXMLファイルは、script.xsdスキーマに準拠しています。このには、(XMLの意味で)window.xsdスキーマが含まれます。 同様に、ダイアログXMLファイルはdialogs.xsdスキーマに準拠しています。この中にはwindow.xsdスキーマも含まれています。
スクリプトとダイアログのXMLの階層
スクリプトXMLファイルは、ネイティブアプリケーションに特定のウィンドウ要素に移動させ、それらの要素に応答を提供する一連の手順を指定します。 ほとんどの応答は、対応するダイアログボックスのフィールド、コンボボックス、またはボタンに対してユーザーが入力するテキストまたはキーストロークです。
Generate PDFサービスでスクリプトXMLファイルがサポートされる目的は、ネイティブアプリケーションにネイティブファイルを印刷させることです。 ただし、スクリプトXMLファイルは、ネイティブアプリケーションのダイアログボックスを操作する際にユーザーが実行できるあらゆるタスクを実行するために使用できます。
スクリプトXMLファイル内の手順は、分岐の必要がなく順番に実行されます。 サポートされる唯一の条件付きテストは、タイムアウト/再試行に対するテストです。これにより、特定の再試行内および特定の数の期間が経過した後にステップが正常に完了しなかった場合に、スクリプトが終了します。
順次的なステップに加えて、ステップ内の命令も順に実行される。 手順と手順が、ユーザーが同じ手順を実行する順序を反映していることを確認する必要があります。
スクリプトXMLファイル内の各手順は、手順が正常に実行された場合に表示される予定のウィンドウ要素を識別します。 スクリプトの手順の実行中に予期しないダイアログボックスが表示された場合は、次の節の説明に従って、Generate PDFサービスでダイアログXMLファイルを検索します。
ネイティブアプリケーションを実行すると、表示モードと非表示モードのどちらに関係なく、異なるダイアログボックスが表示されます。 ダイアログボックスは、オペレーティングシステムまたはアプリケーション自体で生成できます。 ネイティブアプリケーションがGenerate PDFサービスの制御下で実行されている場合、システムおよびネイティブアプリケーションのダイアログボックスが非表示ウィンドウに表示されます。
ダイアログXMLファイルは、Generate PDFサービスがシステムまたはネイティブアプリケーションのダイアログボックスに対してどのように応答するかを指定します。 ダイアログXMLファイルを使用すると、Generate PDFサービスは、変換プロセスを容易にする方法で、指示に従わないダイアログボックスに応答できます。
現在実行中のスクリプトXMLファイルで処理されないダイアログボックスがシステムまたはネイティブアプリケーションに表示された場合、Generate PDFサービスは、次の順序でダイアログXMLファイルを検索し、一致が見つかった場合は停止します。
[appname]
.追加の.[locale]
.xml[appname]
[locale]
.xml (このファイルは変更しないでください。)[locale]
.xml (このファイルは変更しないでください。)Generate PDFサービスは、ダイアログボックスに一致するものを見つけた場合、ダイアログボックスに対して指定されたキーストロークまたは他の操作を送信して、ダイアログボックスを閉じます。 ダイアログボックスの手順で中止メッセージを指定した場合、Generate PDFサービスは、現在実行中のジョブを終了し、エラーメッセージを生成します。 このような中止メッセージは、スクリプトXML文法のabortMessage
要素で指定されます。
Generate PDFサービスで、前述のファイルのいずれにも記述されていないダイアログボックスが検出された場合、Generate PDFサービスは、このダイアログボックスのキャプションをログファイルエントリに組み込みます。 現在実行中のジョブは、最終的にタイムアウトになります。 その後、ログファイル内の情報を使用して、ネイティブアプリケーション用の追加のダイアログXMLファイル内の新しい手順を作成できます。
この節では、他のネイティブファイル形式をサポートするため、または既にサポートされているネイティブファイル形式のサポートを変更するために実行する必要があるタスクについて説明します。
サポートを追加または変更する前に、次のタスクを実行する必要があります。
ダイアログおよびスクリプトのXMLファイルでは、ダイアログまたはスクリプト要素が応答するウィンドウ要素(ダイアログボックス、フィールド、または他のダイアログコンポーネント)を指定する必要があります。 例えば、スクリプトがネイティブ・アプリケーションのメニューを呼び出した後、スクリプトはキー操作またはアクションを適用するメニューのウィンドウ要素を識別する必要があります。
ダイアログボックスは、タイトルバーに表示されるキャプションで簡単に識別できます。 ただし、Microsoft Spy++などのツールを使用して、下位レベルのウィンドウ要素を識別する必要があります。 下位レベルのウィンドウ要素は、明らかでない様々な属性を使用して識別できます。 また、各ネイティブアプリケーションは、ウィンドウ要素を異なる方法で識別できます。 その結果、ウィンドウ要素を識別する複数の方法があります。 ウィンドウ要素の識別を考慮するための推奨順序を次に示します。
これら3つの属性のいずれかまたは組み合わせを使用して、ウィンドウを識別できます。
属性がキャプションを識別できない場合、親に対するインデックスを使用してウィンドウ要素を識別できます。 indexは、兄弟のwindow要素を基準にした、window要素の位置を指定します。 多くの場合、コンボボックスを識別する唯一の方法はインデックスです。
次の問題に注意してください。
Pri&nt
と表示されます。これは、ホットキーがnであることを示します。 スクリプトおよびダイアログXMLファイルのキャプションタイトルでは、アンパサンドを省略する必要があります。^Long caption title$
)のように指定します。 (キャプション属性での正規式の使用を参照)。&
、次の値より小さい記号および次の値には<
および>
を、アポストロフィには'
を、引用符には"
を使用します。ダイアログまたはスクリプトXMLファイルを操作する場合は、Microsoft Spy++アプリケーションをインストールする必要があります。
ダイアログファイルとスクリプトファイルは、appmondata.jarファイルに存在します。 これらのファイルのいずれかを変更したり、新しいスクリプトやダイアログファイルを追加したりする前に、このJARファイルを展開する必要があります。 例えば、EditPlusアプリケーションのサポートを追加するとします。 appmon.editplus.script.en_US.xmlという名前の2つのXMLファイルとappmon.editplus.script.addition.en_US.xmlを作成します。 これらのXMLスクリプトは、次に示すように、adobe-appmondata.jarファイルの2か所に追加する必要があります。
[AEM forms install directory]\configurationManager
のexportフォルダーにあります。 (AEM Formsを別のJ2EEアプリケーションサーバーにデプロイする場合は、adobe-livecycle-native-jboss-x86_win32.earファイルを、ご使用のJ2EEアプリケーションサーバーに対応するEARファイルに置き換えます)。[AEM forms install directory]\deploy
フォルダーにあります。これらのXMLファイルをadobe-appmondata.jarファイルに追加した後、GeneratePDFコンポーネントを再デプロイする必要があります。 adobe-appmondata.jarファイルにダイアログおよびスクリプトXMLファイルを追加するには、次のタスクを実行します。
GeneratePDFコンポーネントを再デプロイするには
ファイルを新しいネイティブアプリケーションに転送する場合は、そのアプリケーションのスクリプトXMLファイルを作成する必要があります。 既にサポートされているネイティブアプリケーションとGenerate PDFサービスがやり取りする方法を変更する場合は、そのアプリケーションのスクリプトを変更する必要があります。
スクリプトには、ネイティブアプリケーションのウィンドウ要素間を移動し、それらの要素に対して特定の応答を提供する手順が含まれています。 この情報を含むファイルは、appmon.
[appname]".script.
[locale].xml
です。 appmon.notepad.script.en_US.xmlなどがあります。
ネイティブのドキュメントを使用して、ナビゲートする必要のあるウィンドウ要素と、アプリを印刷するために実行する必要のある各応答を決定します。 任意の応答から生成されるダイアログボックスに注目してください。 手順は次の手順と似ています。
Microsoft Spy++を使用して、ネイティブアプリケーションのウィンドウ要素プロパティのIDを取得します。 スクリプトを作成するには、これらのIDが必要です。
キャプションの仕様では、正規式を使用できます。 Generate PDFサービスは、java.util.regex.Matcher
クラスを使用して正規式をサポートします。 java.util.regex.Pattern
で説明されている正規式をサポートしています。 (JavaのWebサイト(https://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html)にアクセスします)。
メモ帳バナーの前に付加されるファイル名を格納する正規式
<!-- The regular expression ".*Notepad" means any number of non-terminating characters followed by Notepad. -->
<step>
<expectedWindow>
<window caption=".*Notepad"/>
</expectedWindow>
</step>
印刷と印刷設定を区別する正規式
<!-- This regular expression differentiates the Print dialog box from the Print Setup dialog box. The "^" specifies the beginning of the line, and the "$" specifies the end of the line. -->
<windowList>
<window controlID="0x01" caption="^Print$" action="press"/>
</windowList>
window
要素とwindowList
要素は、次のように並べる必要があります。
window
要素がwindowList
またはdialog
要素内の子として表示される場合、それらのwindow
要素を降順に並べ、caption
名前の長さで順序内の位置を示します。windowList
要素がwindow
要素に出現する場合、それらのwindowList
要素を降順に並べます。最初のindexes/
要素のcaption
属性の長さは、順序内の位置を示します。ダイアログファイル内のウィンドウ要素の順序付け
<!-- The caption attribute in the following window element is 40 characters long. It is the longest caption in this example, so its parent window element appears before the others. -->
<window caption="Unexpected Failure in DebugActiveProcess">
<…>
</window>
<!-- Caption length is 33 characters. -->
<window caption="Adobe Acrobat - License Agreement">
<…>
</window>
<!-- Caption length is 33 characters. -->
<window caption="Microsoft Visual.*Runtime Library">
<…>
</window>
<!-- The caption attribute in the following window element is 28 characters long. It is the shortest caption in this example, so its parent window element appears after the others. -->
<window caption="Adobe Acrobat - Registration">
<…>
</window>
windowList要素内のウィンドウ要素の順序付け
<!-- The caption attribute in the following indexes element is 56 characters long. It is the longest caption in this example, so its parent window element appears before the others. -->
<windowList>
<window caption="Can't exit design mode because.* cannot be created"/>
<window className="Button" caption="OK" action="press"/>
</windowList>
<windowList>
<window caption="Do you want to continue loading the project?"/>
<window className="Button" caption="No" action="press"/>
</windowList>
<windowList>
<window caption="The macros in this project are disabled"/>
<window className="Button" caption="OK" action="press"/>
</windowList>
以前サポートされていなかったネイティブアプリケーションのスクリプトを作成する場合は、そのアプリケーション用に追加のダイアログXMLファイルも作成する必要があります。 AppMonで使用されるすべてのネイティブアプリケーションには、ダイアログXMLファイルが1つだけ必要です。 未承諾のダイアログボックスが想定されない場合でも、追加のダイアログXMLファイルが必要です。 追加のダイアログボックスには、そのwindow
要素が単なるプレースホルダーであっても、少なくとも1つのwindow
要素が必要です。
このコンテキストで、additionalはappmon.[applicationname].addition.[locale]
.xml`ファイルの内容を表します。 このようなファイルは、ダイアログXMLファイルへの上書きと追加を指定します。
ネイティブアプリケーション用の追加のダイアログXMLファイルは、次の目的で変更することもできます。
追加のdialogXMLファイルを識別するファイル名はappmon.[appname].addition.[locale].xml
です。 appmon.excel.addition.en_US.xmlなどがあります。
追加のダイアログXMLファイルの名前は、appmon.[applicationname].addition.[locale].xml
の形式を使用する必要があります。applicationnameは、XML設定ファイルおよびスクリプトで使用されるアプリケーション名と完全に一致する必要があります。
native2pdfconfig.xml設定ファイルで指定された汎用アプリケーションには、プライマリダイアログXMLファイルがありません。 ネイティブファイル形式のサポートの追加または変更の節で、このような仕様を説明します。
window
要素に子として表示するwindowList
要素を順に並べる必要があります。 (ウィンドウ要素とwindowList要素の順序を参照)。
一般的なダイアログXMLファイルを変更して、システムによって生成されたダイアログボックスに応答したり、複数のアプリケーションに共通するダイアログボックスに応答したりできます。
この手順では、Generate PDFサービス設定ファイルを更新して、ファイルの種類をネイティブアプリケーションに関連付ける方法を説明します。 この設定ファイルを更新するには、管理コンソールを使用して設定データをファイルに書き出す必要があります。 設定データのデフォルトのファイル名は、native2pdfconfig.xmlです。
Generate PDFサービス設定ファイルの更新
filetype-settings
要素を変更します。アプリケーションの名前は、GenericApp
要素のname
属性の値として指定されます。 この値は、そのアプリケーション用に開発するスクリプトで指定された、対応する名前と完全に一致する必要があります。 同様に、GenericApp
要素のdisplayName
属性は、対応するスクリプトのexpectedWindow
ウィンドウのキャプションと完全に一致する必要があります。 このような等価性は、displayName
属性またはcaption
属性に出現する正規式を解決した後で評価されます。
この例では、Generate PDFサービスに付属のデフォルトの設定データを変更し、(Microsoft Wordではなく)メモ帳を使用してファイル名拡張子.txtのファイルを処理するように指定しています。 この変更前は、Microsoft Wordは、このようなファイルを処理するネイティブアプリケーションとして指定されていました。
テキストファイルをメモ帳に向けるための変更(native2pdfconfig.xml)
<filetype-settings>
<!-- Some native app file types were omitted for brevity. -->
<!-- The following GenericApp element specifies Notepad as the native application that should be used to process files that have a txt file name extension. -->
<GenericApp
extensions="txt"
name="Notepad" displayName=".*Notepad"/%3E%E2%80%89%20%20%20%20%20%20%20%20%20%20%20%20%3CGenericApp%E2%80%89%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20extensions=?lang=ja"wpd"
name="WordPerfect" displayName="Corel WordPerfect"/%3E%E2%80%89%20%20%20%20%20%20%20%20%20%20%20%20%3CGenericApp%20extensions=?lang=ja"pmd,pm6,p65,pm"
name="PageMaker" displayName="Adobe PageMaker"/%3E%E2%80%89%20%20%20%20%20%20%20%20%20%20%20%20%3CGenericApp%20extensions=?lang=ja"fm"
name="FrameMaker" displayName="Adobe FrameMaker"/%3E%E2%80%89%20%20%20%20%20%20%20%20%20%20%20%20%3CGenericApp%20extensions=?lang=ja"psd"
name="Photoshop" displayName="Adobe Photoshop"/>
</settings>
</filetype-settings>
ネイティブ環境の実行可能ファイルの場所を指定するアプリケーション変数を作成します。 変数は[applicationname]_PATH
の形式を使用する必要があります。applicationnameは、XML設定ファイルおよびスクリプトで使用されるアプリケーション名と完全に一致し、パスには重複引用符で囲まれた実行可能ファイルのパスが含まれます。 このような環境変数の例はPhotoshop_PATH
です。
新しい環境変数を作成したら、Generate PDFサービスをデプロイしているサーバーを再起動する必要があります。
Windows XP環境でシステム変数を作成する
[applicationname]_PATH
という形式を使用する名前を入力します。c:\windows\Notepad.exe
コマンドラインからシステム変数を作成する
コマンドラインウィンドウで、次の形式を使用して変数定義を入力します。
[applicationname]_PATH=[Full path name]
例えば、次のように入力します。NotePad_PATH=C:\WINDOWS\NOTEPAD.EXE
システム変数を有効にするための新しいコマンドラインプロンプトを開始します。
AEM Formsには、Generate PDFサービスでメモ帳を使用してファイル名拡張子.txtのファイルを処理するためのサンプルXMLファイルが含まれています。 このコードは、この節に含まれています。 さらに、この節で説明するその他の変更を行う必要があります。
次の使用例は、メモ帳アプリケーション用の追加のダイアログボックスを含みます。 これらのダイアログボックスは、Generate PDFサービスで指定されているダイアログボックスに加えて使用できます。
メモ帳ダイアログボックス(appmon.notepad.addition.en_US.xml)
<dialogs app="Notepad" locale="en_US" version="7.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="dialogs.xsd">
<window caption="Caption Title">
<windowList>
<window className="Button" caption="OK" action="press"/>
</windowList>
</window>
</dialogs>
次の例では、Generate PDFサービスがメモ帳とやり取りし、Adobe PDFプリンターを使用してファイルを印刷する方法を指定します。
NotepadスクリプトXMLファイル(appmon.notepad.script.en_US.xml)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
*
* ADOBE CONFIDENTIAL
* ___________________
* Copyright 2004 - 2005 Adobe Systems Incorporated
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe Systems Incorporated and its suppliers,
* if any. The intellectual and technical concepts contained
* herein are proprietary to Adobe Systems Incorporated and its
* suppliers and may be covered by U.S. and Foreign Patents,
* patents in process, and are protected by trade secret or copyright law.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe Systems Incorporated.
*-->
<!-- This file automates printing of text files via notepad to Adobe PDF printer. In order to see the complete hierarchy we recommend using the Microsoft Spy++ which details the properties of windows necessary to write scripts. In this sample there are total of eight steps-->
<application name="Notepad" version="9.0" locale="en_US" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="scripts.xsd">
<!-- In this step we wait for the application window to appear -->
<step>
<expectedWindow>
<window caption=".*Notepad"/%3E%20%20%20%20%20%20%20%20%3C/expectedWindow%3E%20%20%20%20%3C/step%3E%20%20%20%20%3C!--%20In%20this%20step,%20we%20acquire%20the%20application%20window%20and%20send%20File-%3EOpen%20menu%20bar,%20menu%20item%20commands%20and%20the%20expectation%20is%20the%20windows%20Open%20dialog--%3E%20%20%20%20%3Cstep%3E%20%20%20%20%20%20%20%20%3CacquiredWindow%3E%20%20%20%20%20%20%20%20%20%20%20%20%3Cwindow%20caption=?lang=ja".*Notepad">
<virtualInput>
<menuBar>
<selection>
<name>File</name>
</selection>
<selection>
<name>Open...</name>
</selection>
</menuBar>
</virtualInput>
</window>
</acquiredWindow>
<expectedWindow>
<window caption="Open"/%3E%20%20%20%20%20%20%20%20%3C/expectedWindow%3E%20%20%20%20%3C/step%3E%20%20%20%20%3C!--%20In%20this%20step,%20we%20acquire%20the%20Open%20window%20and%20then%20select%20the%20'Edit'%20widget%20and%20input%20the%20source%20path%20followed%20by%20clicking%20on%20the%20'Open'%20button%20.%20The%20expectation%20of%20this%20'action'%20is%20that%20the%20Open%20dialog%20will%20disappear%20--%3E%20%20%20%20%3Cstep%3E%20%20%20%20%20%20%20%20%3CacquiredWindow%3E%20%20%20%20%20%20%20%20%20%20%20%20%3Cwindow%20caption=?lang=ja"Open">
<windowList>
<window className="ComboBoxEx32">
<windowList>
<window className="ComboBox">
<windowList>
<window className="Edit" action="inputSourcePath"/%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/windowList%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/window%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/windowList%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/window%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/windowList%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3CwindowList%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cwindow%20className=?lang=ja"Button" caption="Open" action="press"/%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/windowList%3E%20%20%20%20%20%20%20%20%20%20%20%20%3C/window%3E%20%20%20%20%20%20%20%20%3C/acquiredWindow%3E%20%20%20%20%20%20%20%20%3CexpectedWindow%3E%20%20%20%20%20%20%20%20%20%20%20%20%3Cwindow%20caption=?lang=ja"Open" action="disappear"/%3E%20%20%20%20%20%20%20%20%3C/expectedWindow%3E%20%20%20%20%20%20%20%20%3Cpause%20value=?lang=ja"30"/%3E%20%20%20%20%3C/step%3E%20%20%20%20%3C!--%20In%20this%20step,%20we%20acquire%20the%20application%20window%20and%20send%20File-%3EPrint%20menu%20bar,%20menu%20item%20commands%20and%20the%20expectation%20is%20the%20windows%20Print%20dialog--%3E%20%20%20%20%3Cstep%3E%20%20%20%20%20%20%20%20%3CacquiredWindow%3E%20%20%20%20%20%20%20%20%20%20%20%20%3Cwindow%20caption=?lang=ja".*Notepad">
<virtualInput>
<menuBar>
<selection>
<name>File</name>
</selection>
<selection>
<name>Print...</name>
</selection>
</menuBar>
</virtualInput>
</window>
</acquiredWindow>
<expectedWindow>
<window caption="Print">
</window>
</expectedWindow>
</step>
<!-- In this step, we acquire the Print dialog and click on the 'Preferences' button and the expected window in this case is the dialog with the caption '"Printing Preferences' -->
<step>
<acquiredWindow>
<window caption="Print">
<windowList>
<window caption="General">
<windowList>
<window className="Button" caption="Preferences" action="press"/%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/windowList%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/window%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/windowList%3E%20%20%20%20%20%20%20%20%20%20%20%20%3C/window%3E%20%20%20%20%20%20%20%20%3C/acquiredWindow%3E%20%20%20%20%20%20%20%20%3CexpectedWindow%3E%20%20%20%20%20%20%20%20%20%20%20%20%3Cwindow%20caption=?lang=ja"Printing Preferences"/%3E%20%20%20%20%20%20%20%20%3C/expectedWindow%3E%20%20%20%20%3C/step%3E%20%20%20%20%3C!--%20In%20this%20step,%20we%20acquire%20the%20dialog?lang=ja"Printing Preferences' and select the combo box which is the 10th child of window with caption '"Adobe PDF Settings' and select the first index. (Note: All indeces start with 0.) Besides this we uncheck the box which has the caption '"View Adobe PDF results' and we click on the button OK. The expectation is that 'Printing Preferences' dialog disappears. -->
<step>
<acquiredWindow>
<window caption="Printing Preferences">
<windowList>
<window caption="Adobe PDF Settings">
<windowList>
<window className="Button" caption="View Adobe PDF results" action="uncheck"/%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/windowList%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3CwindowList%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cwindow%20className=?lang=ja"Button" caption="Ask to Replace existing PDF file" action="uncheck"/%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/windowList%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/window%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/windowList%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3CwindowList%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cwindow%20className=?lang=ja"Button" caption="OK" action="press"/%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/windowList%3E%20%20%20%20%20%20%20%20%20%20%20%20%3C/window%3E%20%20%20%20%20%20%20%20%3C/acquiredWindow%3E%20%20%20%20%20%20%20%20%3CexpectedWindow%3E%20%20%20%20%20%20%20%20%20%20%20%20%3Cwindow%20caption=?lang=ja"Printing Preferences" action="disappear"/%3E%20%20%20%20%20%20%20%20%3C/expectedWindow%3E%20%20%20%20%3C/step%3E%20%20%20%20%3C!--%20In%20this%20step,%20we%20acquire%20the%20'Print'%20dialog%20and%20click%20on%20the%20Print%20button.%20The%20expectation%20is%20that%20the%20dialog%20with%20caption%20'Print'%20disappears.%20In%20this%20case%20we%20use%20the%20regular%20expression%20'^Print"%20for%20specifying%20the%20caption%20given%20there%20could%20be%20multiple%20dialogs%20with%20caption%20that%20includes%20the%20word%20Print.%20--%3E%20%20%20%20%3Cstep%3E%20%20%20%20%20%20%20%20%3CacquiredWindow%3E%20%20%20%20%20%20%20%20%20%20%20%20%3Cwindow%20caption=?lang=ja"Print">
<windowList>
<window caption="General"/%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cwindow%20className=?lang=ja"Button" caption="^Print$" action="press"/%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/windowList%3E%20%20%20%20%20%20%20%20%20%20%20%20%3C/window%3E%20%20%20%20%20%20%20%20%3C/acquiredWindow%3E%20%20%20%20%20%20%20%20%3CexpectedWindow%3E%20%20%20%20%20%20%20%20%20%20%20%20%3Cwindow%20caption=?lang=ja"Print" action="disappear"/%3E%20%20%20%20%20%20%20%20%3C/expectedWindow%3E%20%20%20%20%3C/step%3E%20%20%20%20%3Cstep%3E%20%20%20%20%20%20%20%20%3CexpectedWindow%3E%20%20%20%20%20%20%20%20%20%20%20%20%3Cwindow%20caption=?lang=ja"Save PDF File As"/%3E%20%20%20%20%20%20%20%20%3C/expectedWindow%3E%20%20%20%20%3C/step%3E%20%20%20%20%3C!--%20Finally%20in%20this%20step,%20we%20acquire%20the%20dialog%20with%20caption?lang=ja"Save PDF File As" and in the Edit widget type the destination path for the output PDF file and click on the Save button. The expectation is that the dialog disappears-->
<step>
<acquiredWindow>
<window caption="Save PDF File As">
<windowList>
<window className="Edit" action="inputDestinationPath"/%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/windowList%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3CwindowList%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cwindow%20className=?lang=ja"Button" caption="Save" action="press"/%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/windowList%3E%20%20%20%20%20%20%20%20%20%20%20%20%3C/window%3E%20%20%20%20%20%20%20%20%3C/acquiredWindow%3E%20%20%20%20%20%20%20%20%3CexpectedWindow%3E%20%20%20%20%20%20%20%20%20%20%20%20%3Cwindow%20caption=?lang=ja"Save PDF File As" action="disappear"/%3E%20%20%20%20%20%20%20%20%3C/expectedWindow%3E%20%20%20%20%3C/step%3E%20%20%20%20%3C!--%20We%20can%20always%20set%20a%20retry%20count%20or%20a%20maximum%20time%20for%20a%20step.%20In%20case%20we%20surpass%20these%20limitations,%20PDF%20Generator%20generates%20this%20abort%20message%20and%20terminates%20processing.%20--%3E%20%20%20%20%3CabortMessage%20msg=?lang=ja"15078"/>
</application>