(57)【要約】【課題】  ＰＤＦ文書からＰＰＭＬテンプレートを生成する。【解決手段】ＰＤＦ文書（２０２）からＰＰＭＬテンプレート（２０４）を生成するように、オペレーションシステム（２００）およびオペレーション方法（１２００）が構成される。一実施形態では、システム（２００）は、ＰＤＦ文書（２０２）をオープンして、ＰＤＦ文書（２０２）内のＰＤＦ要素（２０８、２１０）を可変オブジェクト（２１２）に変換する。マクロ（２２０）が生成される。このマクロは、可変オブジェクト（２１２）の使用および再使用を規定するルール（２２２）を含む。最終結果として生成されたＰＰＭＬテンプレート（２０４）は、可変オブジェクト（２１２）の定義と、マクロ（２２０）と、元のＰＤＦ文書（２０２）のバージョンとを含むように構成され、ＰＤＦ文書（２０２）の少なくとも一部が、ＰＰＭＬ文書（２０２）内の背景要素として構成される。【選択図】図２
2005166050.tif 000002
【特許請求の範囲】
【請求項１】
ＰＤＦ文書（２０２）を処理してＰＰＭＬテンプレート（２０４）を生成する方法であって、
前記ＰＤＦ文書（２０２）をオープンする（１２０２）ステップと、
前記ＰＤＦ文書（２０２）内のＰＤＦ要素（２０８、２１０）を可変オブジェクト（２１２）に変換するステップと、
前記可変オブジェクト（２１２）のオペレーションを規定するルール（２２２）と
を含むマクロ（２２０）を選択するステップと、
前記ＰＰＭＬテンプレート（２０４）を、前記可変オブジェクト（２１２）の定義と、前記マクロ（２２０）と、前記ＰＤＦ文書（２０２）のバージョンとを含むように構成する（１２１４）ステップと
を含み、
前記ＰＤＦ文書（２０２）の前記バージョンは、前記ＰＰＭＬテンプレート（２０４）内の背景要素として構成される
方法。
【請求項２】
前記ＰＤＦ文書（２０２）内の前記ＰＤＦ要素（２０８、２１０）を前記可変オブジェクト（２１２）に変換することは、
ユーザによるオペレーション用のツール（２１４〜２１８）を提供する（１２０４）命令と、
前記オペレーションの結果、前記ＰＤＦ文書（２０２）の一部の選択が前記可変オブジェクト（２１２）に関連付けられる前記ツール（２１４〜２１８）のオペレーションに応答する命令と
をさらに含む請求項１に記載の方法。
【請求項３】
前記ツール（２１４〜２１８）のオペレーションに応答することは、
図形オブジェクト（２１０）の第１の組のプロパティおよびテキストオブジェクト（２０８）の第２の組のプロパティを前記ユーザに提供する（１３０２）命令と、
前記プロパティを調整することを前記ユーザに可能にする（１３０４）命令と、
前記プロパティに従って、前記ＰＤＦ文書（２０２）内の前記ＰＤＦ要素を前記可変オブジェクト（２１２）に変換することを規定する（１３０８）命令と
をさらに含む請求項２に記載の方法。
【請求項４】
ＰＤＦ文書（２０２）内のオブジェクト（２０８、２１０）を選択して、ＰＰＭＬテンプレート（２０４）内の可変オブジェクト（２１２）として指定する可変オブジェクト作成ツール（２１４〜２１８）と、
前記可変オブジェクトの使用を規定するルールを選択することをユーザに可能にするマクロ選択ツール（２２６）と、
前記ＰＰＭＬテンプレート（２０４）内の前記可変オブジェクトを組み立てて、前記ＰＤＦ文書（２０２）の少なくとも一部を前記ＰＰＭＬテンプレート（２０４）内の背景として構成し、前記選択されたルールをマクロとして組み立てるＰＰＭＬテンプレートジェネレータ（２２６）と
を備えることを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
グラフィックアーティストは、コンテンツの生成に使用する複数の既知のツールを有する。
ＱｕａｒｋＸＰｒｅｓｓ（商標）、Ａｄｏｂｅ（商標）  ＩｎＤｅｓｉｇｎ（商標）、およびＡｄｏｂｅ（商標）  ＰａｇｅＭａｋｅｒ（商標）はすべて、文書に使用するコンテンツの生成を容易にするツールを作者に提供する。
しかしながら、多くのオーサリングプログラムによって生成されたＰＤＦやＡｄｏｂｅ（商標）  ＰｏｓｔＳｃｒｉｐｔ（商標）等の出力が、多数の異なる文書の出力を必要とする状況では非効率的であることから、作者は困難に直面する。
【０００２】
ＰＰＭＬ（パーソナライズド印刷マークアップ言語（personalized print markup language））は、可変データ印刷用のＸＭＬベースの言語である。
したがって、ＰＰＭＬは、多数の異なる文書、例えば多数のカスタム印刷される広告を印刷する際に役立つ。
従来、ＰＰＭＬは、デジタルプレス（例えば、ＨＰ  Ｉｎｄｉｇｏ  Ｄｉｇｉｔａｌ  Ｐｒｅｓｓ  １０００）等の超高速ハイエンドプリンタに印刷する際に使用される。
その理由は、ジョブが、Ａｄｏｂｅ（商標）  Ａｃｒｏｂａｔ（商標）のＰＤＦ（ポータブル文書フォーマット）ファイルフォーマットで送信される場合等に、このようなプリンタが動作する高速な速度では、各ジョブを個別に送信して処理する余裕がないことによる。
【０００３】
しかしながら、ＰＰＭＬ文書およびＰＰＭＬテンプレートの生成は複雑なプロセスである。
グラフィックアーティストは、複数のコンテンツオーサリングプログラムの中から、どのプログラムでコンテンツを生成するかを選択することができるが、ハイエンドプリンタへ可変データ印刷ジョブを送信する際にそのコンテンツを実際に使用するために、ＰＰＭＬテンプレート（ＰＰＭＬＴ）を生成するという困難なタスクに直面する。
多くのアプリケーションでは、ノートパッド等のテキストエディタを使用して、ＰＰＭＬテンプレートを生成することができる。
この編集プロセスは、所望の文書を得るのに、複数の繰り返しを必要とすることがある。
【０００４】
したがって、ＰＰＭＬが可変データ印刷にかなりの利点を提供する一方、現在利用可能なツールは、ＰＰＭＬテンプレートを生成するタスクを実行するには不十分であることを理解することができる。
したがって、より高速なＰＰＭＬテンプレート生成方法を利用する装置が有用となる。
【０００５】
本発明は、電子文書を処理してテンプレートを生成する改良された方法およびシステムを提供しようとするものである。
【０００６】
本発明の一態様によると、ＰＤＦ文書を処理してＰＰＭＬテンプレートを生成する方法が提供される。
この方法は、ＰＤＦ文書をオープンするステップと、ＰＤＦ文書内のＰＤＦ要素を可変オブジェクトに変換するステップと、可変オブジェクトのオペレーションを規定するルールを含んだマクロを選択するステップと、可変オブジェクトの定義、マクロ、およびＰＤＦ文書のバージョンを含むようにＰＰＭＬテンプレートを構成するステップとを含む。
ＰＤＦ文書のバージョンは、ＰＰＭＬテンプレート内の背景要素として構成される。
【０００７】
本発明の別の態様を見ると、システムが提供される。
このシステムは、ＰＤＦ文書内のオブジェクトを選択して、ＰＰＭＬテンプレート内の可変オブジェクトとして指定する可変オブジェクト作成ツールと、可変オブジェクトの使用を規定するルールを選択することをユーザに可能にするマクロ選択ツールと、ＰＰＭＬテンプレート内の可変オブジェクトを組み立てて、ＰＤＦ文書の少なくとも一部をＰＰＭＬテンプレート内の背景として構成し、選択されたルールをマクロとして組み立てるＰＰＭＬテンプレートジェネレータとを備える。
【０００８】
本発明の第３の態様を見ると、コンピュータプログラムであって、当該プログラムがコンピュータ上で実行されると、上記方法のすべてのステップを実行するようになっているコンピュータプログラムコード手段を備える、コンピュータプログラムが提供される。
【０００９】
本発明の第３の態様を見ると、上記方法のすべてのステップを実行するプログラム命令を含むコンピュータ可読手段が提供される。
【００１０】
以下の詳細な説明は添付図面を参照する。
図面において、参照符号の左端の数字（または複数の数字）は、その参照符号が最初に現れる図面（図）を特定するものである。
さらに、同じ参照符号は、図面全体を通して、同様の特徴およびコンポーネントを参照するのに使用される。
【００１１】
動作システムおよび動作方法は、ＰＤＦ文書からＰＰＭＬテンプレートを生成するように構成される。
このシステムの一実施形態は、ユーザがＰＤＦ文書をオープンして、ＰＤＦ文書内のＰＤＦ要素を可変オブジェクトに変換することを可能にするように構成される。
例えば、ＰＤＦ文書内の画像またはテキスト領域は、可変オブジェクトに翻訳してＰＰＭＬテンプレート内に含めるために、ユーザが選択することができる。
可変オブジェクトの使用を規定するルールを含むマクロファイルが、既存のマクロの中から選択されるか、または、カスタム生成される。
画像である可変オブジェクトの例示のルールは、画像のスケーリングや画像のクロッピング等の事項を規制する。
テキストである可変オブジェクトの例示のルールは、フォントサイズやテキストラッピング等の事項を規制する。
例示のマクロファイルは、ＸＭＬフォーマットおよびＸＳＬＴ（ＸＳＬテンプレート）スキーマを利用することができる。
例示のＰＰＭＬテンプレートは、１つまたは２つ以上の可変オブジェクトと、各可変オブジェクトにオプションとして関連付けられたマクロファイル（またはマクロファイルへのリンク）と、ＰＤＦ文書のバージョンとを含むように構成することができ、この場合、ＰＤＦ文書は、ＰＰＭＬテンプレート内の背景として構成することができる。
【００１２】
ＰＤＦ文書からＰＰＭＬテンプレートを生成できることは、ＰＤＦで出力する多種多様なアプリケーションを使用するコンテンツを生成する作者にとって好都合である。
ツールのいずれからのＰＤＦ出力も、ＰＰＭＬテンプレートに容易に変換することができ、続いて、ＰＰＭＬテンプレートは、データとマージされて、ハイエンドデジタルプレスに送信されるＰＰＭＬ印刷ジョブを形成することができる。
このように、ＰＤＦからＰＰＭＬテンプレートへの翻訳は、一般に利用可能なＰＤＦ文書とＰＰＭＬを消費するハイエンドデジタルプレスとの間のギャップを埋める。
【００１３】
より詳細に分かるように（例えば図１２）、グラフィックデザイナまたは他のコンテンツ生成専門家は、商業広告の材料等のＰＤＦが含む情報を作成することができる。
好都合なこととして、素人のユーザは、その際、ＰＤＦ文書を「マーキング」することができる。
ＰＤＦ文書は、続いて、ＰＰＭＬテンプレートに変換される。
ユーザは、ＰＤＦ文書内に含まれるＰＤＦ構造体の知識がなくても、このマーキングおよび変換を行うことができる。
したがって、ユーザは、ＰＤＦ文書内に見られる複雑なレイヤ、オブジェクト、および他の構造体についてほとんどまたは全く考慮することなく、ＰＤＦ文書をＰＰＭＬテンプレートに変換することができる。
ＰＰＭＬテンプレートを生成する際に、ユーザは、製品の画像や価格等のＰＤＦ文書の部分が、ＰＰＭＬテンプレート内で変数となることを示されていることがある。
ＰＤＦ文書の他の部分は、ＰＰＭＬテンプレートの背景を形成する。
マクロとして構成されるルールは、ユーザによって割り当てられ、変数のオペレーションを規定する。
例えば、ルールは、テキストラッピングおよび画像クロッピングを規定することができる。
また、ルールは、データベースとの通信も規定することができる。
例えば、ルールは、１つまたは２つ以上の企業販売領域のそれぞれについて、画像変数およびテキスト変数を製品のパッケージおよび価格の画像にそれぞれ関連付けることができる。
したがって、データを、ルールに従ってそれらの変数内に挿入して、デジタルプレス等のハイエンドプリンタに送信することができる。
【００１４】
図１は、ＰＤＦ文書からＰＰＭＬテンプレートへの翻訳をその内部で実行できる例示の環境１００の図である。
印刷サーバまたはファイルサーバ１０２は、複数のワークステーション１０４のいずれかから受信される印刷ジョブを受信するように構成される。
例示のアプリケーションでは、ＰＤＦ文書は、ワークステーション１０４においてＰＰＭＬテンプレートに翻訳される。
ＰＰＭＬテンプレートを利用すると、ＰＰＭＬ印刷ジョブをネットワーク１０６を介してハイエンドプリンタ１０８に送信することができる。
また、この例示の環境１００は、ローエンドプリンタ１１０、多機能周辺機器１１２、ファクス装置１１４、ネットワークコピー機１１６または他の印刷デバイスもしくは画像形成デバイスも示している。
したがって、例示の環境では、ハイエンドプリンタ１０８（デジタルプレスやオフセットプレス等）が、作成されたＰＰＭＬテンプレートに基づいてＰＰＭＬ印刷ジョブを消費する一方、ローエンドデバイス１１０〜１１６が、ＰＤＦ、ＰｏｓｔＳｃｒｉｐｔ（商標）、および他の印刷ジョブを消費することができる。
【００１５】
図２は、ＰＤＦ文書からＰＰＭＬテンプレートへの翻訳システム２００の例示の実施形態を示すブロック図である。
この翻訳システム２００は、一実施形態では、Ａｄｏｂｅ（商標）  Ａｃｒｏｂａｔ（商標）用のプラグインとして構成することができる。
以下でより詳細に分かるように、ＰＤＦ文書２０２は、ＰＰＭＬテンプレート２０４に翻訳される。
以下でより詳細に分かるように、ユーザインタフェース２０６によって、ユーザは、可変オブジェクト作成ツール２１４〜２１８等で、ＰＤＦ要素を選択することが可能になる。
ツール２１４〜２１８により、ＰＤＦ文書２０２内において、テキスト領域２０８またはグラフィックス２１０の選択が可能になる。
これらのテキスト領域またはグラフィックスは、ＰＰＭＬテンプレート２０４内に含めるために、可変オブジェクト２１２に変換することができる。
例示のユーザインタフェース２０６の部分は、図３〜図１１にも示す。
以下でより詳細に分かるように、作成された各可変オブジェクトは、オブジェクトのオペレーションを規定するルール２２２を含んだマクロファイル２２０に関連付けることができる。
例示のルールは、テキストラッピングや画像クロッピング等の事項を扱う。
マクロは、選択ツール２２４を使用して選択される。
選択ツール２２４は、図８に示すダイアログボックス等のダイアログボックスを組み込むことができる。
マクロ２２０は、事前に定義することもできるし、カスタムに作成することもできる。
【００１６】
ＰＰＭＬテンプレートジェネレータ２２６は、（通常）少なくとも１つの可変オブジェクト２１２を含むＰＰＭＬファイル２０４と、少なくとも１つのマクロファイル２２０またはこのようなファイルへのリンクと、ＰＤＦ文書２０２とを組み立てるように構成される。
多くの実施形態では、ＰＤＦ文書の一部またはバージョンは、ＰＰＭＬテンプレート２０４内の背景オブジェクトとして構成される。
【００１７】
ＰＰＭＬテンプレート２０４の構造体は、最適化されたツリー構造として保存することができる。
ＰＰＭＬからＰＤＦへの変換器２２８が利用可能な場合、ＰＤＦファイルを最適化したものは、ワークフローのさらに別の部分において生成されたＰＰＭＬテンプレートの使用をプレビューする手段となる。
このような最適化されたＰＤＦファイルでは、ＰＤＦコンポーネントの複数のインスタンスの代わりに、そのＰＤＦコンポーネントの参照が使用され、それによって、効率性が増大する。
例示のＰＰＭＬからＰＤＦへの変換器２２８を図１８に示す。
【００１８】
図３は、ＰＤＦ文書のＰＰＭＬテンプレートへの翻訳システム２００の例示のユーザインタフェース２０６（図２）の一部を示している。
この翻訳システム２００は、Ａｄｏｂｅ（商標）  Ａｃｒｏｂａｔ（商標）用のプラグインとして構成することができる。
図３に示すプラグインのユーザインタフェースは、ＰＤＦオブジェクト（画像またはテキスト）を可変オブジェクトに翻訳することによって、ＰＤＦ文書２０２をＰＰＭＬテンプレート２０４に翻訳することをユーザに可能にする。
可変オブジェクト２１２（図２）は、そこに含まれる画像またはテキストを変更できる特徴を有し、それによって、各印刷ジョブを個人専用にすることが可能になる。
プラグインは、３つのツール２１４〜２１８（図４に個別に示す）を追加する。
第１のツール２１４は、［Ｉ／Ｒ］のラベルが付され（図２および図４に示す）、テンプレートの部分を選択することをユーザに可能にし、それによって、図形画像用に構成された可変オブジェクト２１２を作成することをユーザに可能にするように構成される。
同様に、第２のツール２１６は、［Ｔ／Ｒ］のラベルが付され（図２および図４に示す）、テンプレートの部分を選択することをユーザに可能にし、それによって、テキスト用に構成された可変オブジェクト２１２を作成することをユーザに可能にするように構成される。
さらに、第３のツール２１８は、［  ／Ｒ］のラベルが付され（図２および図４に示す）、ＰＤＦオブジェクトの部分を選択することをユーザに可能にし、それによって、汎用変数として構成された新しい可変オブジェクト２１２を作成することをユーザに可能にするように構成される。
図３に示すように、Ａｃｒｏｂａｔ（商標）メニューには、「ＰＰＭＬ」とラベル付けされ、図６に関連して説明するオペレーションを有するメニュー項目３０２がある。
【００１９】
図５は、テンプレートオブジェクトの作成を示す３つの連続図５０２〜５０６を示している。
最初に、ＰＤＦファイルがオープンされる。
このようなファイルのページは、図５の左側にページ５０２によって表される。
画像ツール２１４またはテキストツール２１６が必要に応じて選択される。
ツールの選択に応じてカーソルが変化し、そのカーソルによって、ユーザは、図５の左側に示すように、テンプレート上に長方形５０８を描くことが可能になる。
画像ダイアログボックスまたはテキストダイアログボックス、例えば、それぞれ図１０または図９が現れる。
ユーザは、以下に説明するように、ダイアログボックスのフィールドを満たす（例えば図９または図１０）。
同様に、ＰＤＦオブジェクトも新しい可変オブジェクトに翻訳することができる。
ＰＤＦ文書２０２がオープンされ、上述した図４の第３のツール２１８が選択される。
カーソルが適切に変化する。
ユーザは、ＰＤＦオブジェクト、すなわち、パス、画像、Ｘオブジェクト、またはテキストを選択することが可能になる。
ＰＰＭＬメニュー３０２を使用して、ユーザは、PPML\Transform to Variable Object（ＰＰＭＬ￥可変オブジェクトへの翻訳）を選択する。
図１０または図９の画像ダイアログボックスまたはテキストダイアログボックスが（後述するように）現れ、ユーザは、その利用可能なフィールドを満たす。
一般に、システム２００は、新しいオブジェクトの作成後にダイアログボックスを提供するように構成される。
ユーザは、ＰＰＭＬテンプレート２０４内のオブジェクトのアラインメントや、重要なものとして、オブジェクトと共に使用できるマクロ等の情報を入力することができる。
マクロは、外部のＸＭＬファイルからプラグイン２００にインポートすることができるＸＳＬＴルールとすることができる。
ＸＳＬＴルールは、テキストおよび／または画像の振る舞いを規定する。
例えば、テキストラッピングおよび行端揃えに加えて、画像クロッピングまたはリサイズが、このようなルールによって規定される。
【００２０】
図５の第２の画像５０４は、図５の第１の画像５０２においてユーザが画定した位置に貼り付けられた図形画像を示している。
図５の第３の画像５０６は、テンプレートに一旦追加されると、ユーザが画像のリサイズおよび移動ができることを示している。
これらの目的には、従来のツールを使用することができる。
ユーザは、適切なカーソルを使用してオブジェクトの移動、リサイズ、または消去をすることができる。
ユーザは、これに加えて、ＰＰＭＬメニュー３０２を使用することによりオブジェクトを選択して、編集することができる。
ユーザがオブジェクトツールを操作してオブジェクトを選択すると、選択長方形５０２（図５）が赤に着色されてＰＤＦオブジェクトが選択されたことを示し、青に着色されて可変オブジェクトが選択されたことを示すように、図４に示すオブジェクトツール２１４〜２１８を構成することができる。
【００２１】
図６は、プラグイン２００の機能に関連したメニュー項目３０２を示している。
プラグイン２００は、いくつかの文書化メニューの選択項目のサポートを含むように構成される。
「…について（About…）」選択項目は、プラグイン２００の現在のバージョン番号を与えるように構成される。
「ヘルプ（Help）」選択項目は、関連したヘルプ文書をオープンするように構成される。
【００２２】
図６を続けて参照して、プラグイン２００は、いくつかの編集メニュー選択項目のサポートを含むように構成される。
「マクロ…編集（Edit Macro…）」選択項目は、マクロダイアログボックス（以下の図８の説明を参照）をオープンするように構成される。
このマクロダイアログボックスは、マクロテンプレートの更新を可能にする。
さらに、ユーザは、事前に記述された一定のマクロテンプレートを含むファイルをロードすることができる。
「オブジェクトの編集（Edit Object）」選択項目は、画像ダイアログボックスまたはテキストダイアログボックスをオープンして、選択されたオブジェクトの編集をユーザに可能にするように構成される。
「インポジションプロパティ（Imposition Properties）」選択項目は、インポジションダイアログボックスをオープンして、現在のインポジションプロパティ（以下の図１１に関係した追加説明を参照）を変更する。
【００２３】
図６を続けて参照して、プラグイン２００は、翻訳メニュー選択項目のサポートを含むように構成される。
選択項目「可変オブジェクトへの翻訳（Transform to Variable Object）」選択項目は、選択されたＰＤＦオブジェクト（例えば、ＰＤＦファイル内のテキスト要素または図形要素）を可変オブジェクト２１２に翻訳するように構成される。
【００２４】
図６を続けて参照して、プラグイン２００は、いくつかの操作メニュー選択項目のサポートを含むように構成される。
「テンプレート画像（template image）」選択項目は、画像テンプレートツール２１４（図２〜図４）を選択する。
「テンプレートテキスト（template text）」選択項目は、テキストテンプレートツール２１６（図２〜図４）を選択する。
「テンプレートオブジェクト（template object）」選択項目は、オブジェクトテンプレートツール２１８（図２〜図４）を選択する。
【００２５】
図６を続けて参照して、プラグイン２００は、いくつかの消去メニュー選択項目のサポートを含むように構成される。
「オブジェクトの消去（Delete Object）」選択項目は、選択されたオブジェクトを消去する。
オブジェクトを実際に消去する前に、通常、図７に示すメッセージが表示される。
同様に、すべてのオブジェクトの消去（Delete All Object）」選択項目は、すべてのオブジェクトを消去し、これを行う前に図７に類似したメッセージを表示する。
【００２６】
図６を続けて参照して、プラグイン２００は、前景および背景に従って画像を配置するいくつかの画像選択項目のサポートを含むように構成される。
「前方へ持ってくる（Bring to Front）」選択項目は、選択された画像を前方に移動させる。
「前方から後方へ（From Front to Back）」選択項目は、選択された画像を前方から後方へ移動させる。
「後方から前方へ（From Back to Front）」選択項目は、選択された画像を後方から前方へ移動させる。
「後方へ送る（Send to Back）」選択項目は、選択された画像を後方に移動させる。
これらの操作選択項目を使用する際に、ユーザは、選択された画像を現在の位置から（ｚ軸順で）前方または後方へ移動させる。
メニューの各選択項目は、選択された画像を、その選択項目に従って前方または後方のいずれかに向けて或る位置に移動させる。
【００２７】
図６を続けて参照して、プラグイン２００は、ＰＰＭＬテンプレートフォーマットの文書を保存するためのいくつかの保存選択項目のサポートを含むように構成される。
「テンプレート…の保存（Save Template…）」選択項目は、現在の文書をＰＰＭＬテンプレートに保存するように構成される。
「フォントにより（With Fonts）」選択項目は、テキストテンプレートで使用されたすべてのフォントのプロパティを「filename.fonts.txt」または類似の名前を有するファイルで保存するように構成される。
【００２８】
図８は、例示のマクロ選択ツール２２４を示している。
このマクロ選択ツール２２４は、この例では、プラグイン２００がサポートするように構成されるダイアログボックスとして構成される。
詳細には、マクロダイアログボックスによって、ユーザは、マクロ２２０を構成して管理することが可能になり、マクロ２２０は、ＰＰＭＬテンプレート内の可変オブジェクトを管理するルールを規定する。
ダイアログボックス８０２では、事前に定義されたマクロ２２０を、可変オブジェクト２１２（図２）に付随させるために選択することができる。
ダイアログボックス８０４では、ユーザは、カスタム設計されたマクロ２２０をロードして可変オブジェクトに付随させることができる。
【００２９】
例示の実施形態では、マクロ２２０は、ＸＳＬスキーマによって定義されたＸＭＬファイルに含まれる。
第１のテンプレートタグは、「index（インデックス）」と命名され、マクロ全体を記述する。
例示のコードは以下に示す。
【００３０】
<xsl:template name（テンプレート名）="index">
<function name（機能名）="scaleText（テキストのスケーリング）" type="text"/>
<function name="scaleAndWrapText（テキストのスケーリングおよびラッピング）" type="text"/>
<function name="scaleAndFitImage（画像のスケーリングおよび適合）" type="image"/>
<function name="scaleAndCropImage（画像のスケーリングおよびクロッピング）" type="image"/>
</xsl:template>
【００３１】
name（名前）の値およびtype（タイプ）の値は、通常、各マクロテンプレートに必須である。
これに加えて、マクロはパラメータを有することができる。
例えば、画像変数をサポートするマクロは、画像名、画像の幅、画像の高さ、マークの幅、およびマークの高さを含むパラメータを有することができる。
同様に、テキスト変数をサポートするマクロは、フォント情報（例えば、フォントサイズ、行の高さ、１行ごとの文字数、文字間隔、ベースラインオフセット）、出力されるテキスト、ソースの幅および高さ、フォントファミリー、フォントカラー、水平アラインメント、ならびにベースラインアラインメントを含むパラメータを有することができる。
【００３２】
図９は、プラグイン２００がサポートするように構成される別の例示のダイアログボックスを示している。
詳細には、テキストダイアログボックス９００は、次の変数、すなわちＸ、Ｙ、Ｗ、およびＨに従って位置およびサイズ（position and size）のパラメータを入力することをユーザに可能にする。
Ｘは相対的なメディアボックス系の横座標である。
Ｙは相対的なメディアボックス系の縦座標である。
Ｗは長方形の幅である。
Ｈは長方形の高さである。
この別に示す例示のテキストダイアログボックスによって、ユーザは、以下の変数等の属性（attributes）を入力することが可能になる。
すなわち、例えば
フルフォント名であるフォント名；PPML\SVG（スケーラブルベクトルグラフィックス（Scalable Vector Graphics））またはＰＰＭＬテンプレートで使用されるフォント名（font named, used in PPML\SVG）；
テキストサイズであるサイズ（size）；
最小テキストサイズである「min.」；
テキストスケーリングである間隔（spacing）；
最小テキスト間隔である「min.」；
テキストスケーリング幅であるスケーリング（scaling）；
テキストの向きであり、０度、９０度または２７０度のいずれかとして表される回転（rotate）；
左（left）、中央（center）、右（right）、または行端揃え（justified）として表される水平アラインメント（horz. alignment）；
テキストカラーダイアログを使用してユーザが選択する色（color）；
ＰＤＦファイルにおける可視テキストであり、デフォルトでは「可変テキスト（Variable Text）」であるテキスト（text）；および
長方形における最大テキスト長である１行ごとの文字数（number of characters per line）
等の属性を入力することが可能になる。
ＳＶＧ（スケーラブルベクトルグラフィックス）は、デバイスに依存しない２次元グラフィックス、テキスト、および図形アプリケーションをＸＭＬで記述するためのＸＭＬベースの言語であることに留意されたい。
これは、ＰＰＭＬテンプレートの内部でコンテンツを表現できる多くの可能なフォーマットの例示である。
ＸＭＬで記述されたＰＰＭＬテンプレート内において、デジタルプレスに送信されることになるテキストを表すのにＳＶＧを使用すると、そのＳＶＧを使用することによって、性能の利点を提供することができる。
これに加えて、ＳＶＧは、ＰＰＭＬテンプレート内部のＸＳＬＴの使用とうまく連携し、マクロの使用に適合する。
したがって、ＳＶＧは、ＰＰＭＬテンプレート内で可変オブジェクトを表現できるフォーマットの１つである。
【００３３】
例示のテキストダイアログボックス９００は、タイプ（type）パラメータを入力することをユーザに可能にするようにさらに構成される。
このタイプパラメータには、以下の変数が含まれる。
すなわち、ＰＰＭＬテンプレートを使用するオブジェクトのプライベート名である名前（name）；垂直方向のアラインメントであり、すなわちトップ（top）、ミドル（middle）、またはボトム（bottom）である垂直アラインメント（vert. alignment）；その使用（ユーザ？）がマクロをこのオブジェクトに関連付けている場合のマクロの使用（using macro）；および選択されたマクロの名前であるマクロ名（macro name）、が含まれる。
【００３４】
図１０は、プラグイン２００がサポートするように構成される別の例示のダイアログボックス１０００を示している。
詳細には、画像ダイアログボックス１０００は、テンプレート内に画像を配置することをユーザに可能にする。
位置およびサイズ（position and size）のパラメータは、次の変数Ｘ、Ｙ、Ｗ、およびＨを示す。
Ｘは相対的なメディアボックス系の横座標である。
Ｙは相対的なメディアボックス系の縦座標である。
Ｗは長方形の幅である。
Ｈは長方形の高さである。
これに加えて、画像ダイアログボックス１０００は、以下の変数に従ってタイプパラメータを表すことをユーザに可能にする。
すなわち、ＰＰＭＬテンプレートを使用するオブジェクトのプライベート名である名前（name）；トップ（top）、ミドル（middle）、またはボトム（bottom）として表される垂直アラインメント；ユーザがマクロをこのオブジェクトに関連付けている場合のマクロの使用（using macro）；およびマクロが存在する場合のマクロ名（macro name）に従ってタイプパラメータを表すことをユーザに可能にする。
パラメータＸ、Ｙ、Ｗ、およびＨによって、ユーザは、選択ツール２１４のオペレーションを反映した元のパラメータ値をより高い精度で制御することが可能になることに留意されたい。
代替的に、「scaleAndFitImage（画像のスケーリングおよび適合）」オプションによって、ユーザは、画像をスケーリングして、エリアでセンタリングすることが可能になる。
また、画像に割り当てられたサイズが不十分な場合に、マクロは、画像のスケーリングまたはクロッピングの決定を規定するルールを提供することになることにも留意されたい。
さらに、プライベート名は、画像オブジェクトが可変となる時にこの画像オブジェクトに与えられた名前であり（これは、テキストオブジェクトに関する同様の状況に類似している）、オブジェクトが変数として参照される名前である。
したがって、オブジェクトは、その以降、その名前を通じて参照されることになる。
マクロ名は、テンプレートにおいて命名された可変オブジェクトの使用に応答してシステムにインポートされる特定のマクロに関係するものである。
【００３５】
図１１は、プラグイン２００がサポートするように構成される別の例示のダイアログボックス１１００を示している。
詳細には、ダイアログボックス１１００は、テンプレートのインポジションプロパティを示し、インポジションの計算に使用されるパラメータをユーザが入力できるインタフェースを提供する。
インポジションは、論理ページを物理ページにどのようにマッピングするかを規定する。
例えば、ユーザは、単一のページをｎ回繰り返したい場合もあるし、２つの論理ページを左に回転して１つの物理ページに配置し、カスタムブックレット印刷が行えるように、各論理ページをその元のサイズの半分にしたい場合もある。
印刷レイアウト（print layout）パラメータ部は、以下の変数、すなわち、このインポジション用のコピー部数（number of copies）；帳合い（collate）の必要性；コピー順序；テンプレート名（template name）；およびプライベートテンプレート名を示す。
【００３６】
インポジション（imposition）パラメータ部は、以下の変数、すなわち、ＰＤＦ文書の現在のサイズである文書サイズ（document size）； プライベートインポジション名である名前（name）；および２枚のＡ４ページを１枚のＡ３ページとして印刷する場合や２枚のＡ６ページを１枚のＡ４ページとして印刷する場合の組み立てインポジション（building imposition）等の定型のインポジションである定型（predefined）を示す。
【００３７】
カスタム（custom）パラメータ部は、インポジション値を選択することをユーザに可能にする。
インポジション値には、用紙の幅である幅（width）；用紙の高さである高さ（height）；列数である列（columns）；行数である行（rows）；および通常は０度、９０度、または２７０度として規定される回転角度である角度（angle）が含まれる。
【００３８】
その他（miscellaneous）のパラメータ部は、以下の変数、すなわち、ユーザが選択することができる（すなわち、イエスまたはノー）グローバルスコープで（with global scope）；およびユーザがプライベート環境名を命名することができる環境（environment）、を選択することをユーザに可能にする。
【００３９】
図１２は、ＰＤＦからＰＰＭＬテンプレートへの例示の翻訳１２００を説明するフロー図である。
詳細には、ＰＰＭＬテンプレート２０４（図２）は、ＰＤＦ文書２０２を使用して作成される。
ＰＰＭＬテンプレート２０４では、ＰＤＦ文書２０２内の要素が可変オブジェクト２１２に変換され、マクロ２２０が可変オブジェクト２１２の使用を規定するルールを含むように生成され、ＰＰＭＬテンプレート２０４が、可変オブジェクト２１２、マクロファイル２２０、およびＰＤＦ文書２０２を含むように構成され、ＰＤＦ文書２０２のバージョンまたは部分が、ＰＰＭＬテンプレート２０４内の背景として構成される。
【００４０】
ブロック１２０２において、ＰＤＦ文書がオープンされる。
ブロック１２０４において、ツールがユーザに提供される。
このツールによって、ユーザは、ＰＤＦ要素の特徴の選択および変更を行うことができる。
これは、多数の方法で行うことができ、そのうちの２つはここで記載し、それ以外は、この明細書の他の箇所において示す。
第１の選択肢では、ブロック１２０６において、ユーザは、ＰＤＦ文書２０２内の図形画像を選択する。
この図形画像は、画像選択ツール２１４等のツールで選択することができる。
第２の選択肢では、ブロック１２０８に示すように、ユーザは、ＰＤＦ文書内のテキストを選択する。
このテキストは、テキスト選択ツール２１６等のツールで選択することができる。
【００４１】
ブロック１２１０において、ＰＤＦファイル内の選択された要素を可変オブジェクト２１２（図２）に変換することができる。
例えば、「タグ付き」画像領域が、その領域内の画像を代用できるように構成される。
同様に、テキスト領域をタグ付きにして、代わりのテキストを代用することを可能にすることができる。
一例では、可変オブジェクトへの翻訳は、図６のメニューの「可変オブジェクトへの翻訳（Transform to Variable Object）」選択項目の選択に応答して実行することができる。
【００４２】
ブロック１２１２において、可変オブジェクトの使用および再使用を規定するルールを含むマクロファイルが生成または取得される。
このマクロファイルは、既存の定義済みマクロまたは代わりのマクロもしくはカスタムマクロから、マクロ選択ツール２２４（図２）を使用して取得することができる。
ダイアログ８０２および８０４（図８）は、可変オブジェクト２１２（図２）内の特徴（テキストラッピングや画像クロッピング等）を規定するマクロの選択を可能にするマクロ選択ツール２２４の例示の実施形態を示している。
【００４３】
ブロック１２１４において、ＰＰＭＬテンプレート２０４が、可変オブジェクト２１２または可変オブジェクトの定義と、マクロファイル２２０（または当該マクロファイルへのリンク）と、背景として構成されたＰＤＦ文書のバージョンとを含むように構成される。
ＰＰＭＬテンプレート２０４は、ＰＰＭＬテンプレートジェネレータ２２６（図２）等のコードを使用してこのように構成することができる。
【００４４】
ブロック１２１６において、ＰＰＭＬテンプレートは、マクロファイル２２０（図２）によって定義されたルール２２２に従ってデータとマージされる。
データがＰＰＭＬテンプレートとマージされると、ＰＰＭＬ文書が作成される。
このような文書は、デジタルプレス等のハイエンドプリンタによって印刷することができる。
【００４５】
図１３は、例示の生成およびＰＤＦ要素から形成された可変オブジェクトへのルールの適用を説明するフロー図１３００である。
各可変オブジェクトは、可変オブジェクトのオペレーションを規定するルールに関連付けることができる。
ブロック１３０２において、ユーザには、可変画像オブジェクトに関連付けるための第１の組のプロパティ、および、可変テキストオブジェクトに関連付けるための第２の組のプロパティが提供される。
例えば、図９は、テキストプロパティを表す例示のインタフェースを提供する一方、図１０は、図形画像プロパティを表す例示のインタフェースを提供する。
ブロック１３０４において、ユーザは、プロパティを調整することが可能になる。
ユーザが行うことが可能になった例示の調整を図９〜図１０に示す。
例えば、ブロック１３０６において、ユーザは、図９のインタフェースでテキストのスケーリングおよびテキストラッピングを調整することができ、図１０のインタフェースで画像のスケーリングおよび画像クロッピングを調整することができる。
ブロック１３０８において、ＰＤＦ要素のＰＰＭＬテンプレート内の可変オブジェクトおよびＰＰＭＬテンプレート内の可変オブジェクトのオペレーションへの変換は、選択されたプロパティによって規定される。
これらのプロパティは、マクロファイル２２０内にルール２２２として保存することができる。
したがって、可変オブジェクト２１２のオペレーション中、マクロ２２０内のルール２２２が調べられる。
例えば、或る位置に適合させるように画像の圧縮またはクロッピングのいずれかを行う決定は、ＰＰＭＬテンプレート２０４内の可変オブジェクト２１２に関連付けられたマクロ２２０内のルール２２２によって規定される。
【００４６】
図１４は、ＰＰＭＬ文書の例示の保存を説明するフロー図１４００である。
ブロック１４０２において、ユーザは、ＰＤＦ文書からＰＰＭＬテンプレートへの翻訳器２００に、ＰＰＭＬテンプレート２０４（図２）を保存するように指示する。
これは、複数の方法で実行することができる。
そのうちの２つはここで記載し、それ以外はこの明細書の他の箇所において示す。
第１の選択肢では、ブロック１４０４において、ユーザにファイル名の拡張子の選択肢が提示される。
例えば、ユーザは、.ppml拡張子および.ppmlt拡張子間で選択することが可能にされることがある。
通常は.ppmlt拡張子を有するＰＰＭＬ文書として保存すること（すなわち、テンプレートとして保存すること）が行われることに留意されたい。
.pplm拡張子を有するＰＰＭＬ文書として保存されると、保存された文書には、ＸＳＬＴルール２２２は含まれず、その結果、保存ファイルのシンタックスの或る変形となることがある。
第２の選択肢では、ブロック１４０６において、ＰＰＭＬテンプレート２０４（図２）が、最適化されたツリー構造として保存される。
ブロック１４０８において、ＰＰＭＬからＰＤＦへの変換器２２８（図２および図１８）を使用して、ＰＰＭＬ文書からＰＤＦ文書を生成することができる。
例えば、経済的理由で単一の変換器がシステムで使用されるとき等のいくつかの場合には、最適化されたＰＤＦ文書が生成される。
ＰＤＦ文書が一旦プレビューとして観察され、その後、廃棄されるとき等の他の場合には、ＰＤＦ文書は、最適化しないこともできるが、そうしないで、より単純な非最適化変換器によって高速に生成するように構成することもできる。
最適化されたＰＤＦ文書では、ＰＤＦ文書のその続のインスタンスは、ＰＤＦオブジェクトの初期インスタンスを参照することで代用される。
したがって、この代用によって、ＰＤＦをより効率的に印刷することができる。
ＰＰＭＬからＰＤＦへの例示の変換器は、図２の２２８に示され、図１８および関連した説明にさらに詳細に開示される。
【００４７】
図１５は、ＰＰＭＬテンプレートの例示の構成を説明するフロー図１５００である。
ブロック１５０２において、ＰＤＦ文書は、可変オブジェクトをマクロファイルとリンクするマーキング要素を含むように変更される。
例えば、図２に示すように、可変オブジェクト２１２をマクロファイル２２０にリンクするように、当該可変オブジェクト２１２をマーキングすることができる。
ブロック１５０４において、マクロファイルが構成される。
上記に示したように、マクロファイルは、例えば図９および図１０に示す例などのように、ユーザがマクロ選択ツール２２４を使用することによって構成することができる。
マクロファイルの構成は複数の方法で行うことができる。
そのうちの２つをここで記載し、それ以外のものはこの明細書の他の箇所に示す。
第１の選択肢では、ブロック１５０６において、外部のＸＳＬＴマクロファイルが、可変オブジェクトの使用を規定するルールを含むように構成される。
ＸＳＬＴファイルは、ユーザ用に事前に記述することができ、それによって、ユーザは、ＸＳＬＴのプログラミングを知る必要はない。
その代わり、ユーザは、図８に示すインタフェース等によって、ファイルを単に選択するだけである。
第２の選択肢では、ブロック１５０８において、マクロファイルは、ＸＭＬスキーマによって記述されたマクロを含むＸＭＬファイルとして構成される。
【００４８】
ブロック１５１０において、ＰＰＭＬファイル２０４が構成される。
図２の例では、ＰＰＭＬテンプレートは、ＰＰＭＬテンプレートジェネレータの手順２２６によって生成される。
一方、ＰＰＭＬテンプレート２０４を構成するプログラムの特徴は、所望のアプリケーションに適合するように変更することができる。
一選択肢では、ブロック１５１２において、ＰＰＭＬ文書が、テンプレートとして構成され、このテンプレートは、通常、自身が使用する少なくとも１つのマクロファイルを含む。
ブロック１５１４において、第２の選択肢では、テンプレート内の可変オブジェクトを「ＲＥＵＳＥＡＢＬＥ（再使用可能）」として定義することができる。
ブロック１５１６において、第３の選択肢では、テンプレートが必要とするフォントを列挙することができる。
ブロック１５１８において、ＰＤＦ文書を背景ＰＰＭＬアセット（asset）として参照することができる。
【００４９】
図１６は、ＰＰＭＬ文書の例示の作成および使用を説明するフロー図１６００である。
ブロック１６０２において、ＰＤＦ文書（またはＰＤＦ文書のコピー）は、可変オブジェクトを示すようにマーキングされる。
このマーキングは、ツール２１４〜２１８（図２）によって行うことができ、図４により詳細に示される。
ブロック１６０４において、ＰＰＭＬテンプレートは、可変オブジェクトを含むように、かつ、背景としてＰＤＦ文書を含むように形成される。
ブロック１６０６において、可変オブジェクトの使用を規定するマクロが構成されて含められるか、または、ＰＰＭＬテンプレートによって参照される。
ブロック１６０８において、ＰＰＭＬテンプレートに基づくＰＰＭＬ文書が印刷される。
印刷プロセス中、ＰＰＭＬ文書内に含まれる可変オブジェクトの使用を規定するマクロが実行される。
【００５０】
例示のＰＰＭＬテンプレートを以下に示す。
<!-- Background（背景） -->
<REUSABLE_OBJECT（再使用可能オブジェクト）>
<OBJECT Position（オブジェクト位置）="0 0">  <!- "xx yy"-->
<SOURCE Format（ソースフォーマット）="application（アプリケーション）/pdf" Dimensions（文書）="ww hh">
<EXTERNAL_DATA（外部データ） Src="{$record/F[number($recordMapper/FIELD[@Name='Background']/@Position)]}"/>
</SOURCE>
</OBJECT>
<OCCURRENCE_LIST（発生リスト）>
<OCCURRENCE Name（発生名）="{$record/F[number($recordMapper/ FIELD[@Name='Background']/@Position)]}" Environment（環境）="GroceryStore" Scope="Global">
<VIEW（ビュー）>
<TRANSFORM（翻訳）>
<xsl:attribute name（属性名）="Matrix（行列）">
<xsl:variable name（変数名）="m1" select="1"/>
<xsl:variable name="m2" select="0"/>
<xsl:variable name="m3" select="0"/>
<xsl:variable name="m4" select="1"/>
<xsl:variable name="m5" select="0"/>
<xsl:variable name="m6" select="0"/>
<xsl:value-of select（選択値）="concat($m1, ' ', $m2, ' ', $m3, ' ', $ m4, ' ', $m5, ' ', m6)"/>
</xsl:attribute>
</TRANSFORM>
</VIEW>
</OCCURRENCE>
</OCCURRENCE_LIST>
</REUSABLE_OBJECT>
<MARK Position（マーク位置）="0 0">
<OCCURRENCE_REF Ref="{$record/F[number($recordMapper/FIELD[@Name='Backgroud']/@Position)]}" Environment="GroceryStore" Scope="Global"/>
</MARK>
注釈
デフォルトでは、Scope="Global"となり、Environment="GroceryStore"となる。
画像については
<xsl:if test = "not ($record/F[number($recordMapper/FIELD[@Name = 'ImageName']/@Position)] = ' ')">
</xsl:if>
３．マクロを有しない可変オブジェクト
. text
<!-- Product Text: TextName（テキスト生成：テキスト名） -->
<MARK Position="xx yy">
<OBJECT Position="0 0">
< SOURCE Format="image/svg-xml">
<xsl:attribute name="Dimensions（寸法）">
<xsl:variable name="width" select="ww"/>
<xsl:variable name="height" select="hh"/>
<xsl:value-of select="concat($width, ' ', $height)"/>
</xsl:attribute>
<INTERNAL_DATA（内部データ）>
<SVG viewBox="0 0 ww hh">
<text rotate（テキスト回転）="0" x="0pt" y="78.5pt" font-family="PostScipt Font Name" font-size="22pt" letter-spacing="0pt" text-anchor="start" alignment-baseline="bottom" fill="rgb(0,0,0)">
<xsl:value-of select="$record/F[number($recordMapper/FIELD[@Name='TextName']/@Position)]"/>
</text>
</SVG>
</INTERNAL_DATA>
</SOURCE>
</OBJECT>
<VIEW>
<TRANSFORM Matrix（翻訳行列）="1 0 1 0 0 0"/>
</VIEW>
</MARK>
. image
<!-- Product Image: ImageName（画像生成：画像名） -->
<REUSABLE_OBJECT>
<OBJECT Position="0 0">
< SOURCE Format="image/jpeg" Dimensions="ww hh">
<EXTERNAL_DATA Src="Image.jpg">
</SOURCE>
<VIEW>
<TRANSFORM Matrix="1 0 0 0.1 0 0"/>
</VIEW>
</OBJECT>
<OCCURRENCE_LIST>
<OCCURRENCE Name="{$record/F[number($recordMapper/ FIELD[@Name='ImageName']/@Position)]}" Environment="GroceryStore" Scope="Global">
<VIEW>
<TRANSFORM Matrix="1 0 0 1 0 0"/>
</VIEW>
</OCCURRENCE>
</OCCURRENCE_LIST>
</REUSABLE_OBJECT>
<MARK Position="xx yy">
<OCCURRENCE_REF Ref="{$record/F[number($recordMapper/FIELD[@Name='ImageName']/@Position)]}" Environment="GroceryStore" Scope="Global"/>
</MARK>
４．マクロを有する可変オブジェクト
. text
<!-- Product: TextName -->
<MARK Position="xx yy">
<xsl:call-template name（呼び出しテンプレート名）="TemplateName">
<!-- font size（フォントサイズ）, line height（行の高さ）, number of character per line（１行ごとの文字数）、letter-spacing（文字間隔）、baseline offset（ベースラインオフセット） -->
<xsl:with-param name="fontInfo" select"'6 7.2 63 0 1.4 5 6.5 69 0 1.3 4 5.8 78 0 1.1 3 4.3 104 0 0.8 2 2.9 157 0 0.6 1 2.2 209 0 0.4'"/>
<!-- Text to be outputted（出力されるテキスト） -->
<xsl:with-param name="text" select="$record/F[number($recordMapper/FIELD[@Name='TextName']/@Position)]"/>
<!-- Source width（ソースの幅） -->
<xsl:with-param name="width" select="ww"/>
<!-- Source height（ソースの高さ） -->
<xsl:with-param name="height" select="hh"/>
<!-- Font family（フォントファミリー） -->
<xsl:with-param name="fontFamily" select="PostScript Font Name"/>
<!-- Font color（フォントカラー） -->
<xsl:with-param name="fontColor" select="'rgb(0, 0, 0)'"/>
<!-- Horizontal alignmet（水平アラインメント） -->
<xsl:with-param name="hAlign" select="'right'"/>
<!-- Alignment baseline（アラインメントベースライン） -->
<xsl:with-param name="alignBaseline" select="'middle'"/>
</xsl:call-template>
<VIEW>
<TRANSFORM Matrix="1.000000 0.000000 0.000000 1.000000 0 0"/>
</VIEW>
</MARK>
. image
<!-- Product: ImageName -->
<REUSABLE_OBJECT>
<xsl:call-template name="TemplateName">
<!-- Image name（画像名）-->
<xsl:with-param name="image" select="$record/F[number($recordMapper/FIELD[@Name='ImageName']/@Position)]"/>
<!-- Image width（画像の幅） -->
<xsl:with-param name="imageWidth" select="$record/F[number($recordMapper/FIELD[@Name='ImageNameWidth']/@Position)]"/>
<!-- Image height（画像の高さ） -->
<xsl:with-param name="imageHeight" select="$record/F[number($recordMapper/FIELD[@Name='ImageNameHeight']/@Position)]"/>
<!-- Mark width（マークの幅） -->
<xsl:with-param name="markWidth" select="ww"/>
<!-- Mark height（マークの高さ） -->
<xsl:with-param name="markHeight" select="hh"/>
</xsl:call-template>
<OCCURRENCE_LIST>
<OCCURRENCE Name="{$record/F[number($recordMapper/ FIELD[@Name='ImageName']/@Position)]}" Environment="GroceryStore" Scope="Global">
<VIEW>
<TRANSFORM Matrix="1 0 0 1 0 0"/>
</VIEW>
</OCCURRENCE>
</OCCURRENCE_LIST>
</REUSABLE_OBJECT>
<MARK Position="xx yy">
<OCCURRENCE_REF Ref="{$record/F[number($recordMapper/FIELD[@Name='ImageName']/@Position)]}" Environment="GroceryStore" Scope="Global"/>
</MARK>
５．メインテンプレート
<!-- Template Entry Point（テンプレート入力ポイント） -->
<xsl:template match（テンプレート一致）="/">
<!-- Template Specific Variables（テンプレート特有の変数） -->
<!-- (must match with other templates being merged)（マージされる他のテンプレートと一致しなければならない） -->
<xsl:variable name="sheetWidth" select="WW"/>
<xsl:variable name="sheetHeight" select="HH"/>
<xsl:variable name="pageWidth" select="ww"/>
<xsl:variable name="pageHeight" select="hh"/>
<xsl:variable name="TemplateName_Mapper" select="//RS/RECORD[@name='Template Name']"/>
<PPML>
<JOB（ジョブ）>
<!-- Page Design（ページ設計） -->
<PAGE_DESIGN TrimBox="0 0 ww hh"/>
<DOCUMENT（文書）>
<xsl:for-each select="//R">
<PAGE（ページ）>
<xsl:choose>
<xsl:when test="F[number($TemplateName_Mapper/FIELD[@Name='Template']/@Position)]='TemplateName'">
<xsl:call-template name="TemplateName">
<xsl:with-param name="record" select="."/>
<xsl:with-param name="recordMapper" select="$TemplateName_Mapper"/>
</xsl:call-template>
</xsl:when>
</xsl:choose>
</PAGE>
</xsl:for-each>
</DOCUMENT>
</JOB>
</PPML>
</xsl:template>
６．内部データ
<DATA（データ）>
<INTERNAL_DATA（内部データ）>
<RS>
<!-- internal name of PPML template（ＰＰＭＬテンプレートの内部名）-->
<RECORD name（レコード名）="TemplateName">
<FIELD Name（フィールド名）="Template" Position="1"/>
<FIELD Name="Background" Position="2"/>
<FIELD Name="ImageName" Position="3"/>
<FIELD Name=" ImageNameWidth" Position="4"/>
<FIELD Name=" ImageNameHeight" Position="5"/>
<FIELD Name="TextName" Position="6"/>
</RECORD>
<!-- loop of databases description（データベース記述のループ） -->
<R>
<F>TemplateName</F>
<F>out_XXX.pdf</F>
<F>Image.jpg</F>
<F>width</F>
<F>height</F>
<F>text</F>
</R>
</RS>
</INTERNAL_DATA>
</DATA>
【００５１】
図１７は、ＰＰＭＬ文書をＰＤＦ文書に変換するシステム１７００の例示の実施形態を示すブロック図である。
ＰＰＭＬからＰＤＦへ変換することによって、一般にローエンドプリンタ（例えば、ヒューレットパッカードのＤｅｓｉｇｎＪｅｔプリンタおよびＬａｓｅｒＪｅｔプリンタ）であるＰＰＭＬ入力を受け付けないプリンタでＰＰＭＬ印刷ジョブを印刷することが可能になる。
このローエンドプリンタは、ＰＤＦ印刷ジョブを受け付けるが、ＰＰＭＬ印刷ジョブを受け付けるようには構成されていない。
さらに、ＰＰＭＬからＰＤＦへ変換することによって、ＰＰＭＬ文書またはテンプレートの作者は、ＰＰＭＬをＰＤＦに翻訳して戻すこと、ＰＰＭＬ文書の正確さをチェックすること、ＰＰＭＬワークフロー内の任意の点における文書を視覚化すること、または、適した印刷条件を追加することによってプレスでの印刷のシミュレーションをサポートすることが可能になる。
【００５２】
ＰＰＭＬテンプレート１７０２は、上記に示したように構築することもできるし、任意の従来の形式で構築することもできる。
テキスト、画像、フォント等のコンテンツまたはデータ１７０４をテンプレート１７０２に追加することができ、それによって、マージされたＰＰＭＬ文書１７０６を形成することができる。
【００５３】
ＰＰＭＬからＰＤＦへの変換器２２８は、マージされたＰＰＭＬ文書１７０６を解釈して、ＰＤＦ文書１７０８を作成するように構成される。
ＰＰＭＬからＰＤＦへの例示の変換器２２８（図２）は、ＰＰＭＬ文書１７０６を構文解析して、ＰＰＭＬ文書の要素をＰＤＦオブジェクトに直接翻訳するＰＤＦ文書ツリー１７１６を生成するように構成される。
【００５４】
ＰＰＭＬタグ１７１０が、フォント１７１２または画像１７１４のような外部オブジェクトを参照する場合に、変換器２２８は、そのＰＰＭＬインスタンスをアンマーシャルして、ＰＤＦ文書１７０８内への挿入を可能にする。
例えば、ＰＤＦ文書ツリー１７１６内のオブジェクト１７１８〜１７２４をこのように形成しておくことができる。
【００５５】
図１８は、ＰＰＭＬからＰＤＦへの変換器２２８の例示の細部を示すブロック図である。
ＰＰＭＬ文書解釈コンポーネント１８０２は、ＰＰＭＬ文書をオープンして、マージされたＰＰＭＬ文書１７０６（図１７）を解釈し、ＰＤＦ文書１７０８（図１７）を作成するように構成される。
構文解析／タグ付けコンポーネント１８０４は、ＰＰＭＬ文書１７０６を構文解析して、さまざまな特徴を特定するように構成される。
例えば、構文解析コンポーネント１８０４は、ＰＰＭＬグローバルインポジションおよびアセットへの参照を特定するように構成される。
【００５６】
ＰＰＭＬ  ＳＯＵＲＣＥ＿ＴＹＰＥ（ソースタイプ）転換（resolving）コンポーネント１８０６は、ＰＰＭＬ文書１７０６内のオブジェクトについて、ＰＰＭＬ  ＳＯＵＲＣＥ＿ＴＹＰＥクラスを転換するように構成される。
これによって、ＰＰＭＬ  ＳＯＵＲＣＥ＿ＴＹＰＥクラスに従って翻訳コンポーネント１８０８によりＰＤＦオブジェクトを翻訳することが可能になる。
翻訳コンポーネント１８０８の一実施の形態では、ＰＤＦオブジェクトは、ＰＰＭＬ構造体を構文解析する時に検出されてタグ付けされたアセットのタイプに応じて、ＰｄｆＴｅｍｐｌａｔｅ（ＰＤＦテンプレート）内で翻訳される。
ＰｄｆＴｅｍｐｌａｔｅオブジェクトのこの実施形態は、ＰｄｆＴｅｍｐｌａｔｅのオブジェクトのキャッシュをサポートしてＰＤＦ構造体の最適化も行う。
オブジェクトをキャッシュすることによって、ＰＤＦテンプレート構造体内の画像または他のデータを複製する必要性が低減される。
したがって、オブジェクトの発生のすべてを複製する必要はなく、ＰｄｆＴｅｍｐｌａｔｅはより最適なものにされる。
【００５７】
ＰＤＦツリー生成コンポーネント１８１０は、構文解析コンポーネント１８０４によって明らかにされたＰＰＭＬ構造体に従ってＰＤＦツリー１７１６（図１７）を生成するように構成される。
ＰＤＦツリーの生成は再帰的にすることができ、ＰＤＦ文書を最適化するのに使用することができる。
例えば、Ａ４テンプレートは、独立して構成することもできるし、２つのＡ６テンプレートを合計したものとして構成することもできる。
同様に、Ａ３テンプレートも、独立して構成することもできるし、２つのＡ４テンプレートを合計したものとして構成することもできる。
さらに、Ａ３テンプレートは、４つのＡ６テンプレートを合計したものとして構成することもできる。
したがって、ＰＰＭＬ文書の再帰的なツリー構造体は、ＰｄｆＴｅｍｐｌａｔｅ構造体を使用して、ＰＤＦ文書の類似の再帰的なツリー構造体に変換することができる。
このような変換の結果、ＰｄｆＴｅｍｐｌａｔｅをよりコンパクトにすることができる。
【００５８】
アンマーシャルコンポーネント１８１２は、ＰＰＭＬインスタンスをアンマーシャルするように構成され、これらのインスタンスは、その後、ＰＤＦ文書に組み込むことができる。
例えば、ＰＰＭＬ文書内のタグ１７１０が、ＰＤＦファイル、フォント１７１２、画像１７１４等の外部オブジェクトを示していることを構文解析コンポーネント１８０４が明らかにすると、アンマーシャルコンポーネント１８１２は、そのＰＰＭＬインスタンスをアンマーシャルして、ＰＤＦ文書にオブジェクト（例えば、フォント、画像、またはＰＤＦファイル）を組み込む。
【００５９】
ＳｏｕｒｃｅＲｅｓｏｌｖｅｒ（ソース転換装置）インタフェースコンポーネント１８１４は、ＰＰＭＬ文書をＰＤＦ文書に翻訳する過程で、アセットへの参照を転換するように構成される。
したがって、ＳｏｕｒｃｅＲｅｓｏｌｖｅｒは、オブジェクトまたはアセットを識別し、ＩｎｐｕｔＳｏｕｒｃｅ（入力ソース）を使用して、オブジェクトまたはアセットをＰＰＭＬ特有のファイルに入れる。
最終的に、これによって、ＰＰＭＬファイルをＰＤＦファイルに変換して印刷することが可能になる。
例えば、ＳｏｕｒｃｅＲｅｓｏｌｖｅｒコンポーネント１８１４は、ＰＰＭＬ構造体を使用して、画像（例えばhello.jpg）等のアセットをＩｎｐｕｔＳｏｕｒｃｅオブジェクトに転換するように構成される。
例示のＰＰＭＬ構造体は次の通りである。
【００６０】
<SOURCE Format= "image/jpeg" Dimensions= "842 1190">
<EXTERNAL_DATA_ARRAY Src= "hello.jpg"/>
</SOURCE>
【００６１】
ＦｏｎｔＲｅｓｏｌｖｅｒ（フォント転換装置）インタフェースコンポーネント１８１６は、ＳｏｕｒｃｅＲｅｓｏｌｖｅｒインタフェースコンポーネント１８１４と類似のオペレーション方法を使用してフォントを転換するように構成される。
例えば、ＰＰＭＬ構造体は、「ＡｒｉａｌＭＴ」アセットを、所与のＴＴＦフォント、すなわちArialMT.ttfフォントを表すｉＴｅｘｔフォントに翻訳するのに使用することができる。
「ＡｒｉａｌＭＴ」アセットを翻訳するための例示のＰＰＭＬ構造体は次の通りである。
【００６２】
<text dx= "20" dy= "20"
font-size= "30"
font-family= "ArialMT">Arial</text>
【００６３】
ＯｃｃｕｒｒｅｎｃｅＳｔｏｒｅ（発生ストア）インタフェースコンポーネント１８１８は、画定された範囲（例えば「グローバル」範囲）内のＰＰＭＬオブジェクト、すなわちＲＥＵＳＡＢＬＥ＿ＯＢＪＥＣＴ＿ＴＹＰＥ（再使用可能オブジェクトタイプ）インスタンスの再利用を可能にする。
この再利用プロセスは、オブジェクト用のキャッシュメモリの空間を予約する。
このような予約によって、その度にオブジェクトへの再ロードの必要性が回避され、それによって、オブジェクトを必要とするオペレーションが高速になる。
ＰＰＭＬグローバルオブジェクトの再利用を可能にする例示のＰＰＭＬ構造体は次の通りである。
【００６４】
<REUSABLE_OBJECT>
<OBJECT Position= "0 0">
<SOURCE Format= "application/pdf" Dimensions= "842 1190">
<EXTERNAL_DATA_ARRAY Src= "A3.pdf"/>
</SOURCE>
</OBJECT>
<OCCURRENCE_LIST>
<OCCURRENCE Name= "bg" Scope="Global" Environment= test1"/>
</OCCURRENCE_LIST>
</REUSABLE_OBJECT>
【００６５】
ＩｍｐｏｓｉｔｉｏｎＳｔｏｒｅ（インポジションストア）インタフェースコンポーネント１８２０は、ＰＰＭＬグローバルインポジション、すなわちＩＭＰＯＳＩＴＩＯＮ＿ＴＹＰＥ（インポジションタイプ）インスタンスの再利用を可能にする。
ＰＰＭＬグローバルインポジションの再利用は、メモリに記憶することができる。
例えば、繰り返し行われる回転、再配置等をメモリに記憶して、関連したインポジションを繰り返し再ロードする必要を防ぐことができる。
ＰＰＭＬグローバルインポジションの再利用を可能にする例示のＰＰＭＬ構造体は次の通りである。
【００６６】
<IMPOSITION Rotation（回転）= "90" Name= "2x1"
Environment= "test1" Scope= "Global">
<SIGNATURE（シグネチャ） PageCount（ページカウント）= "2" Ncols= "2" Nrows= "1" />
<CELL PageOrder（ページ順序）= "s" Face= "Up" Col= "1" Row= "1" />
</SIGNATURE>
</IMPOSITION>
【００６７】
図１９は、ＰＰＭＬ文書のＰＤＦ文書への例示の変換を説明するフロー図１９００である。
ブロック１９０２において、ＰＰＭＬ文書内の構造体が構文解析される。
例えば、構文解析／タグ付けコンポーネント１８０４を使用して、ＰＰＭＬ文書を構文解析することができる。
ブロック１９０４において、ＰＤＦ文書ツリー１７１６（図１７）が生成される。
これは、ＰＤＦツリー生成コンポーネント１８１０（図１８）によって行うことができる。
図１７に示すように、ＰＤＦ文書ツリー１７１６は、１つまたは２つ以上のアセット１７１８〜１７２４を含む。
ブロック１９０６において、ＰＰＭＬ文書から構文解析された構造体が解釈され、それによって、その結果のデータがＰＤＦ文書ツリーに配置される。
このような翻訳は、図１８の翻訳コンポーネント１８０８によって行うことができる。
【００６８】
ブロック１９０８において、ＰＰＭＬ文書内のＳＯＵＲＣＥ＿ＴＹＰＥクラスのオブジェクトが転換される。
これは、図１８のＳｏｕｒｃｅＲｅｓｏｌｖｅｒ１８１４によって行うことができる。
ブロック１９１０において、ＰＰＭＬ文書内のオブジェクトが、ＰＰＭＬ  ＳＯＵＲＣＥ＿ＴＹＰＥクラスに従って翻訳される。
【００６９】
ブロック１９１２において、ＰＰＭＬタグが外部オブジェクトを参照する場合に、ＰＰＭＬインスタンスがアンマーシャルされる。
上記に示したように、アンマーシャルは、図１８のアンマーシャルコンポーネント１８１２によって行うことができる。
ブロック１９１４において、外部オブジェクトはＰＤＦ文書に組み込まれる。
【００７０】
図２０は、ＰＰＭＬのＰＤＦへの変換の別の態様２０００を示すフロー図である。
あらゆる特定の変換にすべてのブロックが必要とされるとは限らず、用途によっては、ブロックの利用順序が変更されることがある。
ブロック２００２において、構文解析されたＰＰＭＬ文書内の参照が転換され、それによって、アセットが形成される。
【００７１】
ブロック２００４において、アセットがＰＤＦ文書に組み込まれる。
例えば、ブロック２００６において、画像アセットが、ＰＰＭＬ構造体を使用してＩｎｐｕｔＳｏｕｒｃｅオブジェクトに転換される。
上記に示したように、一実施形態では、ＳｏｕｒｃｅＲｅｓｏｌｖｅｒ１８１４が、画像アセットをＩｎｐｕｔＳｏｕｒｃｅオブジェクトに転換するように構成される。
ブロック２００８において、画像アセットはＰＤＦ文書に組み込まれる。
アセットをＰＤＦ文書にどのように組み込むかについてのさらに別の例として、ブロック２０１０において、構文解析されたＰＰＭＬ文書内のアセットがオブジェクト（例えばフォント）に転換される。
上記に示したように、一実施形態では、ＳｏｕｒｃｅＲｅｓｏｌｖｅｒ１８１４が画像アセットを転換するのとほとんど同様に、ＦｏｎｔＲｅｓｏｌｖｅｒ１８１６がフォントアセットを転換するように構成される。
ブロック２０１２において、オブジェクトはＰＤＦ文書に組み込まれる。
【００７２】
図２１は、ＰＰＭＬのＰＤＦへの変換の別の態様２１００を示すフロー図である。
あらゆる特定の変換にすべてのブロックが必要とされるとは限らず、用途によっては、ブロックの利用順序が変更されることがある。
ブロック２１０２において、ＰＰＭＬ構造体が使用されて、アセットが、ＴＴＦフォントを表すｉＴｅｘｔフォントに翻訳される。
例示の実施形態では、この機能は、図１８のＦｏｎｔＲｅｓｏｌｖｅｒ１８１６によって実行することができる。
【００７３】
ブロック２１０４において、マージされたＰＰＭＬ文書１７０６（図１７）が構文解析されて、グローバルオブジェクトが特定される。
例示の実施形態では、この構文解析は、図１８の構文解析コンポーネント１８０４によって行うことができる。
ブロック２１０６において、ＰＰＭＬ文書内で検出されたＰＰＭＬグローバルオブジェクトが再利用される。
例示の実施形態では、ＯｃｃｕｒｒｅｎｃｅＳｔｏｒｅ１８１８が、グローバルオブジェクトを再利用するように構成される。
【００７４】
ブロック２１０８において、マージされたＰＰＭＬ文書１７０６（図１７）が構文解析されて、グローバルインポジションが特定される。
ブロック２１１０において、ＰＰＭＬ文書内で検出されたＰＰＭＬグローバルインポジションが再利用される。
例示の実施形態では、ＩｍｐｏｓｉｔｉｏｎＳｔｏｒｅ１８２０が、グローバルインポジションを再利用するように構成される。
【００７５】
上記開示は、構造的な特徴および／または方法のステップに特有の文言で説明されているが、これらの特定の特徴およびステップは、この開示を実施する例示の形態であることを理解すべきである。
例えば、フロー図のブロックで説明した動作は、他のブロックで説明した動作と並列に実行することができると同時に、それらの動作は、別の順序で行うこともできるし、２つ以上の他のブロックに動作を関連付ける方法で分散させることもできる。
さらに、開示した方法の要素は、任意の所望の方法で実行されるように意図されていると同時に、一般にワークステーション、印刷サーバ、またはプリンタ内に配置されたコンピュータおよび／またはプロセッサによって実行されて、ＲＯＭ、ディスク、ＣＤＲＯＭ等のコンピュータ可読媒体またはプロセッサ可読媒体から読み出されるコンピュータ可読命令またはプロセッサ可読命令が好ましいことが予想されるが、特定用途向けゲートアレイ（ＡＳＩＣ）または類似のハードウェア構造を代用できることが予想される。
【００７６】
［請求項１］
ＰＤＦ文書（２０２）を処理して、ＰＰＭＬテンプレート（２０４）を生成する方法であって、
前記ＰＤＦ文書（２０２）をオープンする（１２０２）ステップと、
前記ＰＤＦ文書（２０２）内のＰＤＦ要素（２０８、２１０）を可変オブジェクト（２１２）に変換するステップと、
前記可変オブジェクト（２１２）のオペレーションを規定するルール（２２２）を含むマクロ（２２０）を選択するステップと、
前記ＰＰＭＬテンプレート（２０４）を、前記可変オブジェクト（２１２）の定義と、前記マクロ（２２０）と、前記ＰＤＦ文書（２０２）のバージョンとを含むように構成する（１２１４）ステップと、
を含み、
前記ＰＤＦ文書（２０２）の前記バージョンは、前記ＰＰＭＬテンプレート（２０４）内の背景要素として構成される
方法。
［請求項２］
前記ＰＤＦ文書（２０２）内の前記ＰＤＦ要素（２０８、２１０）を前記可変オブジェクト（２１２）に変換することは、
ユーザによるオペレーション用のツール（２１４〜２１８）を提供する（１２０４）命令と、
前記ツール（２１４〜２１８）のオペレーションであって、該オペレーションの結果、前記ＰＤＦ文書（２０２）の一部の選択が前記可変オブジェクト（２１２）に関連付けられる、前記ツール（２１４〜２１８）のオペレーション、に応答する命令と
をさらに含む請求項１に記載の方法。
［請求項３］
前記ＰＤＦ文書（２０２）の前記一部の前記選択は、
前記ＰＤＦ文書（２０２）内の図形画像（２１０）を選択する（１２０６）命令
をさらに含む請求項２に記載の方法。
［請求項４］
前記ＰＤＦ文書の前記一部の前記選択は、
前記ＰＤＦ文書（２０２）内のテキスト（２０８）を選択する（１２０８）命令
をさらに含む
請求項２または３に記載の方法。
［請求項５］
前記ツール（２１４〜２１８）のオペレーションに応答することは、
図形オブジェクト（２１０）の第１の組のプロパティおよびテキストオブジェクト（２０８）の第２の組のプロパティを前記ユーザに提供する（１３０２）命令と、
前記プロパティを調整することを前記ユーザに可能にする（１３０４）命令と、
前記プロパティに従って、前記ＰＤＦ文書（２０２）内の前記ＰＤＦ要素を前記可変オブジェクト（２１２）に変換することを規定する（１３０８）命令と、
をさらに含む
請求項２〜４のいずれかに記載の方法。
［請求項６］
ＰＤＦ文書（２０２）内のオブジェクト（２０８、２１０）を選択して、ＰＰＭＬテンプレート（２０４）内の可変オブジェクト（２１２）として指定する可変オブジェクト作成ツール（２１４〜２１８）と、
前記可変オブジェクトの使用を規定するルールを選択することをユーザに可能にするマクロ選択ツール（２２６）と、
前記ＰＰＭＬテンプレート（２０４）内の前記可変オブジェクトを組み立てて、前記ＰＤＦ文書（２０２）の少なくとも一部を前記ＰＰＭＬテンプレート（２０４）内の背景として構成し、前記選択されたルールをマクロとして組み立てるＰＰＭＬテンプレートジェネレータ（２２６）と
を備えることを特徴とするシステム（２００）。
［請求項７］
前記選択されたオブジェクトが図形オブジェクトを含む第１の組のプロパティおよび前記選択されたオブジェクトがテキストオブジェクト（２０８）を含む第２の組のプロパティを前記ユーザに提供し、前記第１の組のプロパティおよび前記第２の組のプロパティを調整することを前記ユーザに可能にするように構成されたユーザインタフェース（２０６）をさらに備え、前記第１の組のプロパティおよび前記第２の組のプロパティは、ＰＰＭＬテンプレート（２０４）内の前記可変オブジェクト（２１２）のオペレーションを規定するように構成される請求項６に記載のシステム。
［請求項８］
前記ＰＰＭＬテンプレート（１７０２）から導出されたＰＰＭＬ文書（１７０６）から最適化されたＰＤＦ文書（１７０８）を生成する、ＰＰＭＬからＰＤＦへの変換器（２２８）を備え、
ＰＤＦオブジェクト（１７１２、１７１４）のその後のインスタンスは、該ＰＤＦオブジェクトの初期インスタンスを参照することで代用される
請求項６に記載のシステム。
［請求項９］
ＰＤＦ文書（２０２）をオープンする（１２０２）手段を備え、
このような可変作成ツールは、前記ＰＤＦ文書（２０２）内のＰＤＦオブジェクト（２０８、２１０）を可変オブジェクト（２１２）に変換する（１２１０）手段をさらに備える請求項６〜８のいずれかに記載のシステム。
［請求項１０］
コンピュータプログラムがコンピュータ上で実行されると、請求項１〜５のいずれかに記載の方法のすべてのステップを実行するようになっているコンピュータプログラムコード手段を備えるコンピュータプログラム。
［請求項１１］
請求項１〜５のいずれかに記載の方法のすべてのステップを実行するプログラム命令を含むコンピュータ可読手段。
【図面の簡単な説明】
【００７７】
【図１】ＰＤＦ文書からＰＰＭＬテンプレートへの翻訳をその内部で実行できる例示の環境の図である。
【図２】ＰＤＦ文書からＰＰＭＬテンプレートへのシステムの例示の実施形態を示すブロック図である。
【図３】図２に示すユーザインタフェースの例示のコンポーネントである。
【図４】図２に示すユーザインタフェースの例示のコンポーネントである。
【図５】図２に示すユーザインタフェースの例示のコンポーネントである。
【図６】図２に示すユーザインタフェースの例示のコンポーネントである。
【図７】図２に示すユーザインタフェースの例示のコンポーネントである。
【図８】図２に示すユーザインタフェースの例示のコンポーネントである。
【図９】図２に示すユーザインタフェースの例示のコンポーネントである。
【図１０】図２に示すユーザインタフェースの例示のコンポーネントである。
【図１１】図２に示すユーザインタフェースの例示のコンポーネントである。
【図１２】ＰＤＦ文書からＰＰＭＬテンプレートへの例示の翻訳を説明するフロー図である。
【図１３】例示の生成およびＰＤＦ要素から形成された可変オブジェクトへのルールの適用を説明するフロー図である。
【図１４】ＰＰＭＬ文書の例示の保存を説明するフロー図である。
【図１５】ＰＰＭＬテンプレートの例示の構成を説明するフロー図である。
【図１６】ＰＰＭＬテンプレートの例示の作成および使用を説明するフロー図である。
【図１７】ＰＰＭＬ文書をＰＤＦ文書に変換するシステムの例示の実施形態を示すブロック図である。
【図１８】ＰＰＭＬからＰＤＦへの例示の変換器を示すブロック図である。
【図１９】ＰＰＭＬのＰＤＦへの例示の変換を説明するフロー図である。
【図２０】ＰＰＭＬのＰＤＦへの変換の態様を説明するフロー図である。
【図２１】ＰＰＭＬのＰＤＦへの変換の態様を説明するフロー図である。
【符号の説明】
【００７８】
１０２・・・印刷サーバ／ファイルサーバ，
１０４・・・ワークステーション，
１０６・・・ネットワーク，
１０８・・・ハイエンドプリンタ，
１１０・・・ローエンドプリンタ，
１１２・・・多機能周辺機器，
１１４・・・ファックス装置，
１１６・・・ネットワーク複写機，
２００・・・ＰＤＦからＰＰＭＬテンプレートへの翻訳器，
２０２・・・ＰＤＦ文書，
２０８・・・テキスト，
２１０・・・グラフィックス，
２０４・・・ＰＰＭＬテンプレート，
２１２・・・可変オブジェクト，
２０６・・・ユーザインタフェース，
２１４〜２１８・・・可変オブジェクト作成ツール，
２２０・・・マクロファイル，
２２２・・・ルール，
２２４・・・マクロ選択ツール，
２２６・・・ＰＰＭＬテンプレートジェネレータ，
２２８・・・ＰＰＭＬからＰＤＦへの変換器，
【図１】
2005166050.tif 000003
【図２】
2005166050.tif 000004
【図３】
2005166050.tif 000005
【図４】
2005166050.tif 000006
【図５】
2005166050.tif 000007
【図６】
2005166050.tif 000008
【図７】
2005166050.tif 000009
【図８】
2005166050.tif 000010
【図９】
2005166050.tif 000011
【図１０】
2005166050.tif 000012
【図１１】
2005166050.tif 000013
【図１２】
2005166050.tif 000014
【図１３】
2005166050.tif 000015
【図１４】
2005166050.tif 000016
【図１５】
2005166050.tif 000017
【図１６】
2005166050.tif 000018
【図１７】
2005166050.tif 000019
【図１８】
2005166050.tif 000020
【図１９】
2005166050.tif 000021
【図２０】
2005166050.tif 000022
【図２１】
2005166050.tif 000023
【外国語明細書】
PDF DOCUMENT TO PPML TEMPLATE TRANSLATION
[0001] Graphic artists have a number of well-known tools for use in the generation of content.  QuarkXPress(tm), Adobe(r) InDesign(r) and Adobe(r) PageMaker(r) all provide the author with tools to facilitate the generation of content for use in documents.  However, authors face difficulty in that the output-such as PDF and Adobe(r) PostScript(r)-produced by many authoring programs is inefficient in circumstances requiring the output of large numbers of different documents.
[0002] PPML (personalized print markup language) is an XML-based language for variable-data printing.  Accordingly, PPML is useful when printing large numbers of different documents, e.g. large numbers of custom-printed advertisements.  Conventionally, PPML is used when printing to very fast high-end printers, such as digital presses (e.g. the HP Indigo Digital Press 1000), since the rapid speed with which such printers operate does not allow for each job to be individually transmitted and processed, such as where the jobs are transmitted in an Adobe(r) Acrobat(r) PDF (portable document format) file format. 
[0003] However, the generation of PPML documents and PPML templates is a complex process.  The graphic artist, who may chose from among a number of content-authoring programs with which to generate the content, is faced with the difficult task of generating PPML templates (PPMLT) in order to actually use that content when sending variable data print jobs to high-end printers.  In many applications, a text-editor, such as notepad, may be used to create the PPML template.  The editing process may require a number of iterations to result in the desired document. 
[0004] Therefore, it can be seen that while PPML offers substantial advantages for variable data printing, currently available tools inadequately perform the task of generating PPML templates.  Accordingly, an apparatus utilizing a faster method of PPML template generation would be useful. 
[0005] The present invention seeks to provide an improved method and system for processing electronic documents to produce templates. 
[0006] According to an aspect of the present invention, there is provided a method for processing a PDF document to produce a PPML template, the method comprising  the steps of: opening the PDF document; converting a PDF element within the PDF document into a variable object; selecting a macro containing rules governing operation of the variable object; and  configuring  the PPML template to include a definition of the variable object, the macro and a version of the PDF document, wherein the version of the PDF document is configured as a background element within the PPML template.:
[0007] Viewing another aspect of the present invention, there is provided a system comprising a variable object creation tool to select objects within a PDF document for designation as variable objects within a PPML template; a macro selection tool to allow a user to select rules governing use of the variable objects; and  a PPML template generator to assemble the variable objects within the PPML template and to configure at least portions of the PDF document as a background within the PPML template and to assemble the selected rules as a macro.
[0008] Viewing a third aspect of the present invention, there is provided a computer program comprising computer program code means adapted to perform all the steps of previous method, when said program is run on a computer.
[0009] Viewing a third aspect of the present invention, there is provided a computer readable means containing program instruction for carrying out all the steps of the previous method.
[0010] The following detailed description refers to the accompanying figures.  In the figures, the left-most digit(s) of a reference number identifies the figure (Fig.) in which the reference number first appears.  Moreover, the same reference numbers are used throughout the drawings to reference like features and components.
[0011] Fig. 1 is an illustration of an exemplary environment within which PDF document to PPML template translation may be performed. 
[0012] Fig. 2 is a block diagram illustrating an exemplary implementation of a PDF document to PPML template system. 
[0013] Fig. 3-11 are exemplary components of the user interface seen in Fig. 2. 
[0014] Fig. 12 is a flow diagram that describes exemplary PDF document to PPML template translation. 
[0015] Fig. 13 is a flow diagram that describes exemplary generation and application of rules to variable objects formed from PDF elements. 
[0016] Fig. 14 is a flow diagram that describes exemplary saving of the PPML document. 
[0017] Fig. 15 is a flow diagram that describes exemplary configuration of the PPML template. 
[0018] Fig. 16 is a flow diagram that describes exemplary creation and use of a PPML template. 
[0019] Fig. 17 is a block diagram illustrating an exemplary implementation of a system for converting PPML documents to PDF documents. 
[0020] Fig. 18 is a block diagram illustrating an exemplary PPML to PDF converter.
[0021] Fig. 19 is a flow diagram that describes exemplary PPML to PDF conversion.
[0022] Figs. 20-21 are flow diagrams which describe aspects of PPML to PDF conversion. 
[0023] A system and method of operation is configured to produce a PPML template from a PDF document.  One implementation of the system is configured to allow a user to open the PDF document and to convert a PDF element within the PDF document into a variable object.  For example, an image or a region of text within the PDF document may be selected by the user for transformation into a variable object for inclusion within the PPML template.  A macro file-to contain rules governing use of the variable object-is either selected from among existing macros or custom-generated.  Exemplary rules for variable objects which are images regulate issues such as image scaling or image cropping.  Exemplary rules for variable objects which are text regulate issues such as font sizes and text-wrapping.  Exemplary macro files may utilize an XML format and an XSLT (XSL template) schema.  An exemplary PPML template may be configured to include one or more variable objects, the macro file optionally associated with each variable object (or a link to the macro file), and a version of the PDF document, wherein the PDF document may be configured as a background within the PPML template. 
[0024] The ability to produce a PPML template from a PDF document is advantageous for authors who produce content using a wide variety of applications which output in PDF.  The PDF output from any of the tools can be easily converted into a PPML template, which can then be merged with data to form a PPML print job which is sent to high-end digital presses.  Thus, PDF to PPML template translation bridges the gap between commonly available PDF documents and high-end, PPML-consuming digital presses. 
[0025] As will be seen in greater detail (e.g. Fig. 12), a graphic designer or other content-generating professional can create a PDF containing information, such as commercial advertising material.  Advantageously, a non-expert user can then "mark" the PDF document, which is then converted into a PPML template.  The marking and conversion may be performed by a user without any knowledge of the PDF structures contained within the PDF document.  Accordingly, the user is able to convert the PDF document into a PPML template with little or no consideration of the complex layers, objects and other structures found within the PDF document.  In producing the PPML template, the user may have indicated that portions of the PDF document, such as a product's image and price, are to be variables within the PPML template.  Other portions of the PDF document form a background for the PPML template.  Rules, configured as macros, are assigned by the user to govern operation of the variables.  For example, the rules may govern text-wrapping and image-cropping.  The rules may also govern communication with a database.  For example, the rules may associate image and text variables with images of product packaging and pricing, respectively, for each of one or more corporate sales regions.  Accordingly, data may be inserted into the variables according to the rules and sent to a high-end printer, such as a digital press. 
[0026] Fig. 1 is an illustration of an exemplary environment 100 within which PDF document to PPML template translation may be performed.  A print server or file server 102 is configured to receive a print job received from any of a plurality of workstations 104.  In an exemplary application, a PDF document is translated into a PPML template on the workstation 104.  Utilizing the PPML template, PPML print jobs may be sent over a network 106 to high-end printer 108.  The exemplary environment 100 also illustrates a low-end printer 110 multifunctional peripheral 112, fax machine 114, network copier 116 or other printing or imaging device.  Accordingly, in the exemplary environment, a high-end printer 108 (such as a digital press or an offset press) consumes PPML print jobs based on the PPML template created, while lower-end devices 110-116 may consume PDF, PostScript(r) and other print jobs. 
[0027] Fig. 2 is a block diagram illustrating an exemplary implementation of a PDF document to PPML template translation system 200, which, in one implementation, may be configured as a plug-in for Adobe(r) Acrobat(r).  As will be seen in greater detail below, a PDF document 202 is translated into a PPML template 204.  A user interface 206 allows the user to select PDF elements, such as with variable object creation tools 214-218, as will be seen in greater detail below.  The tools 214-218 allow selection of regions of text 208 or graphics 210, within the PDF document 202, which may be converted into a variable object 212 for inclusion within the PPML template 204.  Portions of an exemplary user interface 206 are seen in Figs. 3-11.  As will be seen in greater detail below, each variable object created may be associated with a macro file 220 which includes rules 222 governing the operation of the object.  Exemplary rules address issues such as text-wrapping or image-cropping.  Macros are selected using a selection tool 224, which may incorporate dialog boxes, such as those seen in Fig. 8.  The macros 220 may be predefined or custom made.
[0028] A PPML template generator 226 is configured to assembly a PPML file 204 to (typically) include at least one variable object 212, at least one macro file 220 or link to such a file, and the PDF document 202.  In many implementations, a portion or version of the PDF document is configured as a background object within the PPML template 204. 
[0029] The structure of the PPML template 204 may be saved as an optimized tree-structure.  Where a PPML to PDF converter 228 is available, an optimized PDF file results as a means to preview the use of the generated PPML template in further parts of the workflow.  In such an optimized PDF file, multiple instances of a PDF component will be substituted for by references to the PDF component, thereby increasing efficiency.  An exemplary PPML to PDF converter 228 is seen in Fig. 18.
[0030] Fig. 3 shows a portion of an exemplary user interface 206 (Fig. 2) for a PDF document to PPML template translation system 200, which may be configured as a plug-in for Adobe(r) Acrobat(r).  The user interface for the plug-in seen in Fig. 3 allows a user to translate a PDF document 202 into a PPML template 204 by transforming PDF objects (image or text) to variable objects.  Variable objects 212 (Fig. 2) have the characteristic that the image or text contained therein can be changed, thereby allowing for each print job to be personalized.  The plug-in adds three tools 214-218 (seen separately in Fig. 4).  A first tool 214 is labeled [I/R] (seen in Figs. 2 and 4) and is configured to allow the user to select portions of a template, and to thereby create a variable object 212 configured for graphical images.  Similarly, a second tool 216 is labeled [T/R] (seen in Figs. 2 and 4) and is configured to allow the user to select portions of a template, and to thereby create a variable object 212 configured for text.  Additionally, a third tool 218 is labeled [  /R] (seen in Figs. 2 and 4) and is configured to allow the user to select portions of a PDF object, and to thereby create a new variable object 212 configured as a generic variable.  As seen in Fig. 3, there is a menu entry 302 labeled "PPML" in the Acrobat(r) menu, having operation that will be discussed in association with Fig. 6. 
[0031] Fig. 5 shows three successive views 502-506 illustrating the creation of a template object.  Initially, a PDF file is opened.  A page of such a file is represented by the page 502 on the left side of Fig. 5.  The image tool 214 or text tool 216 is selected, as required.  The cursor changes according to the tool selected, allowing the user to draw a rectangle 508 on the template, as seen in the left side of Fig. 5.  An image or text dialog box, e.g. Figs. 10 or 9 respectively, appears.  The user fills in the fields of the dialog box (e.g. Fig. 9 or 10), as discussed below.  Similarly, a PDF object may be transformed into a new variable object.  A PDF document 202 is opened and the third tool 218 of Fig. 4, discussed above, is selected.  The cursor changes appropriately.  The user is allowed to select a PDF object: path, image, Xobject or text.  Using the PPML menu 302, the user selects PPML\Transform to Variable Object.  The image or text dialog box of Figs. 10 or 9 appears (as discussed below) and the user fills out the available fields.  In general, the system 200 is configured to provide dialog boxes after creation of a new object.  A user can enter information such as alignment of the object within the PPML template 204, and importantly, macros that can be used with the object.  The macros may be XSLT rules that can be imported into the plug-in 200 from external XML files.  The XSLT rules govern the behavior of the text and/or images.  For example, text wrapping and justification, as well as image cropping or re-sizing are governed by such rules. 
[0032] The second image 504 in Fig. 5 illustrates a graphical image that is pasted into the location defined by the user in the first image 502 of Fig. 5.  The third image 506 in Fig. 5 illustrates the ability of the user to resize and move images, once added to the template.  Conventional tools may be used for these purposes.  The user can move, resize or delete objects using an appropriate cursor.  The user can additionally select an object and edit it by using the PPML menu 302.  The object tools 214-218 seen in Fig. 4 may be configured so that when a user handles the object tool and selects an object, the selection rectangle 502 (Fig. 5) is colored red to indicate selection of a PDF object, and is colored blue to indicate selection of a variable object. 
[0033] Fig. 6 shows menu items 302 associated with the functionality of the plug-in 200.  The plug-in 200 is configured to include support for several documentation menu selections.  The "About…" selection is configured to give the current version number of the plug-in 200.  The "Help" selection is configured to open an associated help document. 
[0034] Continuing to refer to Fig. 6, the plug-in 200 is configured to include support for several editing menu selections.  The "Edit Macro…" selection is configured to open the macro dialog box (see the discussion of Fig. 8, below), which allows updating of macro templates.  Additionally, the user can load a file containing certain previously-written macro templates.  The "Edit Object" selection is configured to open Image or Text Dialog Box to allow the user to edit the selected object.  The "Imposition Properties" selection opens the Imposition Dialog Box to change the current imposition properties (see additional discussion related to Fig. 11, below). 
[0035] Continuing to refer to Fig. 6, the plug-in 200 is configured to include support for a transformation menu selection.  The selection "Transform to Variable Object" selection is configured to transform the selected PDF object (e.g. a text or graphical element within a PDF file) into a variable object 212. 
[0036] Continuing to refer to Fig. 6, the plug-in 200 is configured to include support for several manipulation menu selections.  A "template image" selection selects the image template tool 214 (Figs. 2-4).  A "template text" selection selects the text template tool 216 (Figs. 2-4).  A "template object" selection selects the object template tool 218 (Figs. 2-4). 
[0037] Continuing to refer to Fig. 6, the plug-in 200 is configured to include support for several deletion menu selections.  A "Delete Object" selection deletes the selected object.  The message seen in Fig. 7 is typically displayed prior to actually deleting the object.  Similarly, the "Delete All Objects" selection deletes all objects, and displays a message similar to Fig. 7 before doing so. 
[0038] Continuing to refer to Fig. 6, the plug-in 200 is configured to include support for several image selections which arrange images according to foreground and background.  A "Bring to Front" selection moves the selected image to the front.  A "From Front to Back" selection moves the selected image from front to back.  A "From Back to Front" selection moves the selected image from back to front.  A "Send to Back" selection moves the selected image to the back.  In using the manipulation selections, the user moves the selected image from current position (in the z-order axis) to front or back.  Each selection of the menu moves the selected image one position, either toward the front or back, according to the selection. 
[0039] Continuing to refer to Fig. 6, the plug-in 200 is configured to include support for several save selections for saving the document in a PPML template format.  A "Save Template…" selection is configured to save the current document to a PPML template .  A "With Fonts" selection is configured to save the properties of all the fonts used in the text templates in a file named "filename.fonts.txt," or similar. 
[0040] Fig. 8 shows an exemplary macro selection tool 224, in this example configured as dialog boxes which the plug-in 200 is configured support.  In particular, macro dialog boxes allow the user to configure and manage macros 220, which govern the rules by which variable objects within the PPML template are managed.  At dialog box 802, macros 220, which have been predefined, may be selected for attachment to a variable object 212 (Fig. 2).  At dialog box 804, a user may load or attach a macro 220, which has been custom-designed, to a variable object. 
[0041] In an exemplary implementation, macros 220 are contained in an XML file defined by an XSL schema.  The first template tag is named 'index' and describes the entire macro.  Exemplary code is seen below.
[0042] <xsl:template name="index">
[0043]     <function name="scaleText" type="text"/>
[0044]     <function name="scaleAndWrapText" type="text"/>
[0045]     <function name="scaleAndFitImage" type="image"/>
[0046]     <function name="scaleAndCropImage" type="image"/>
[0047]     </xsl:template> 
[0048] Name and type values are typically mandatory for each macro template. Additionally, macros may have parameters; for example, a macro supporting an image variable may have parameters including: image name, image width, image height, mark width, and mark height.  Similarly, a macro supporting a text variable may have parameters including: font information (e.g. font size, line height, number of characters per line, letter-spacing, baseline offset), text to be outputted, source width and height, font family, font color, horizontal alignment and baseline alignment.
[0049]  Fig. 9 shows an additional exemplary dialog box which the plug-in 200 is configured to support.  In particular, text dialog box 900 allows the user to input position and size parameters according to the following variables: X, the abscissa in the relative media box system; Y, the ordinate in the relative media box system; W, the rectangle width; and H, the rectangle height.  The exemplary text dialog box shown additionally allows the user to input attributes such as the following variables: font name, e.g. the full font name; font named, used in PPML\SVG (scalable vector graphics) or in the PPML template; size, the text size; "min.", the minimal text size; spacing, the text scaling; "min." the minimal text spacing; scaling, the text scaling width; rotate, the orientation of the text, expressed as either 0, 90 or 270 degrees; horizontal alignment, expressed as left, center, right or justified; color, selection is made by the user using a text color dialog; text, the visible text in the PDF file, by default the 'Variable Text'; and number of characters per line, the maximal text length in the rectangle.  Note that SVG (Scalable Vector Graphics) is an XML-based language for describing device-independent two-dimensional graphics, text and graphical applications in XML.  It is exemplary of many possible formats within which content may be expressed inside PPML templates.  Within a PPML template written in XML, use of SVG may provide performance advantages when SVG is used to represent text that will be sent to a digital press.  Additionally, SVG aligns well with use of XSLT inside PPML template, and is compatible with the use of macros.  Accordingly, SVG is one of the formats with which variable objects can be represented within the PPML template.  
[0050] The exemplary text dialog box 900 is additionally configured to allow the user to enter type parameters, which include the following variables: name, the private name of the object using the PPML template; vert. alignment, the vertical alignment, i.e. top, middle or bottom; using macro, if the use has associated a macro with this object; and macro name, the name of the selected macro. 
[0051] Fig. 10 shows an additional exemplary dialog box 1000 which the plug-in 200 is configured support.  In particular, the image dialog box 1000 allows the user to locate an image within the template.  The position and size parameters show the following variables: X, the abscissa in the relative media box system; Y, the ordinate in the relative media box system; W, the width of the rectangle; and H, the height of the rectangle.  Additionally, the image dialog box 1000 allows the user to express type parameters according to the following variables: name, the private name of the object using the PPML template; vertical alignment, expressed as top, middle or bottom; using macro, if the user has associated a macro with the object; and macro name, if there is a macro.  Note that the parameters X, Y, W and H allow the user to control with greater accuracy the original parameter values, which reflected the operation of the selection tool 214.  In an alternative, a "scaleAndFitImage" option could allow the user to cause the image to be scaled and centered with an area.  Also, note that where the size allotted for the image is insufficient, macros will provide rules governing a decision to scale or crop the image.  And still further, note that the private name is the name given to this image object (which is analogous to a similar situation with text objects) when the image object becomes variable, and is the name by which the object is referenced as a variable.  Therefore further references to the object will be done through that name.  The macro name relates to a specific macro that is imported into the system in response to use of the named variable object in the template. 
[0052] Fig. 11 shows an additional exemplary dialog box 1100 which the plug-in 200 is configured support.  In particular, the dialog box 1100, showing imposition properties for the template, provides an interface with which the user may input parameters that are used in the calculation of the imposition.  The imposition defines how logical pages will be mapped into physical pages.  For example the user may want to repeat a single page n-times, or to make each logical page half its original size so that, when rotated to the left, two logical pages can be placed into a physical page for performing custom booklet printing.  A print layout parameters section shows the following variables: number of copies, for this imposition; the need to collate; the copy order; the template name; and the private template name.
[0053] An impositions parameters section shows the following variables: document size, the current size of the PDF document; name, the private impositions name; and predefined, the predefined imposition, such as a building imposition wherein two A4 pages are printed as one A3 page or wherein two A6 pages are printed as one A4 page.
[0054] A custom parameter section allows the user to choose imposition values, including: width, the paper sheet width; height, the paper sheet height; columns, the number of columns; rows, the number of rows; and angle, rotation angle, typically defined as 0, 90 or 270 degrees.
[0055] A miscellaneous parameters section allows the user to choose the following variables: with global scope, allows the user to select (i.e. yes or no); and environment, allows the user to name the private environment name. 
[0056] Fig. 12 is a flow diagram that describes exemplary PDF to PPML template translation 1200.  In particular, a PPML template 204 (Fig. 2) is created using a PDF document 202, wherein elements within the PDF document 202 are converted into variable objects 212, macros 220 are generated to contain rules governing use of the variable objects 212, and a PPML template 204 is configured to include the variable object 212, the macro file 220 and the PDF document 202, wherein a version of, or portions of, the PDF document 202 is configured as a background within the PPML template 204. 
[0057]     At block 1202, a PDF document is opened.  At block 1204, a tool is provided to a user, with which the user may select and alter characteristics of a PDF element.  This may be performed in a number of ways, two of which are listed here, and others of which are seen within other locations of this specification.  In a first alternative, at block 1206, the user is selects a graphical image within the PDF document 202.  The graphical image may be selected with a tool such as image selection tool 214.  In a second alternative, seen at block 1208, the user selects text within the PDF document.  The text may be selected with a tool such as text selection tool 216.
[0058] At block 1210, the element within the PDF file which was selected may be converted into a variable object 212 (Fig. 2).  For example, a "tagged" image region is configured so that images within the region may be substituted; similarly, a text region may be tagged to allow alternate text to be substituted.  In one example, the transformation to a variable object may be performed in response to selection of the "Transform to Variable Object" selection of the menu of Fig. 6. 
[0059] At block 1212, a macro file is generated or obtained to contain rules governing use and reuse of the variable object.  The macro file may be obtained using a macro selection tool 224 (Fig. 2) from existing predefined macros or from alternate or custom macros.  Dialogs 802 and 804 (Fig. 8) illustrate exemplary implementations of the macro selection tool 224 which allows selection of a macro which will govern characteristics (such as text-wrapping and image-cropping) within the variable object 212 (Fig. 2). 
[0060] At block 1214, the PPML template 204 is configured to include the variable object 212 or a definition of the variable object, the macro file 220 (or links to the macro file) and a version of the PDF document configured as a background.  The PPML template 204 may be configured in this manner using code such as the PPML template generator 226 (Fig. 2). 
[0061] At block 1216, the PPML template is merged with data according to rules 222 defined by a macro file 220 (Fig. 2).  Where the data is merged with the PPML template, a PPML document is created.  Such a document may be printed by a high-end printer, such as a digital press.  
[0062] Fig. 13 is a flow diagram 1300 that describes exemplary generation and application of rules to variable objects formed from PDF elements.  Each variable object may be associated with rules governing the operation of the variable object.  At block 1302, the user is provided with a first set of properties for association with variable image objects and a second set of properties for association with variable text objects.  For example, the Fig. 9 provides an exemplary interface that expresses text properties, while Fig. 10 provides an exemplary interface that expresses graphical image properties.  At block 1304, the user is allowed to adjust the properties.  Exemplary adjustments the user is allowed to make are seen in Figs. 9-10.  For example, at block 1306, the user is able to adjust text scale and text wrap in the interface of Fig. 9, and is able to adjust image scale and image cropping in the interface of Fig. 10.  At block 1308, the conversion of the PDF element to a variable object within the PPML template, and the operation of the variable object within the PPML template, is governed by the properties selected.  The properties may be saved as rules 222 within the macro file 220.  Thus, during operation of the variable objects 212, the rules 222 within the macro 220 are consulted.  For example, the decision to either compress or crop an image to fit a location would be governed by rules 222 within a macro 220 which are associated with a variable object 212 within the PPML template 204.
[0063] Fig. 14 is a flow diagram 1400 that describes exemplary saving of the PPML document.  At block 1402, the user instructs the PDF document to PPML template translator 200 to save the PPML template 204 (Fig. 2).  This may be performed in a number of ways, two of which are listed here, and others of which are seen within other locations of this specification.  In a first option, at block 1404, the user is presented with a choice between filename extensions.  For example, the user may be allowed to select between .ppml and .ppmlt extensions.  Note that saving as a PPML document having a .ppmlt extension (i.e. saving as a template) is typically performed.  When saving as a PPML document having a .ppml extension, the XSLT rules 222 are not included in the saved document, and some variation in syntax of the save file may result.  In a second option, at block 1406, the PPML template 204 (Fig. 2) is saved as an optimized-tree structure.  At block 1408, the PPML to PDF converter 228 (Figs. 2 and 18) may be used to produce a PDF document from the PPML document.  In some cases, an optimized PDF document will be produced; such as, for example, when for reasons of economy a single converter is employed in the system.  In other cases, such as where the PDF document will be viewed once as a preview and then discarded, the PDF document may not be optimized, but instead may be configured for rapid generation by a simpler, non-optimized converter.  In the optimized PDF document, subsequent instances of a PDF object will be substituted with references to an initial instance of the PDF object.  Accordingly, the PDF may be printed more efficiently, due to the substitution.  An exemplary PPML to PDF converter is seen at 228 in Fig. 2, and is disclosed in much greater detail in Fig. 18 and associated discussion. 
[0064] Fig. 15 is a flow diagram 1500 that describes exemplary configuration of a PPML template.  At block 1502, the PDF document is modified to include marking elements to link a variable object with a macro file.  For example, as seen in Fig. 2, the variable object 212 may be marked to link it to a macro file 220.  At block 1504, the macro file is configured.  As seen above, the macro file may be configured by the user using a macro selection tool 224, such as the examples illustrated in Figs. 9 and 10.  Macro file configuration may be performed in a number of ways, two of which are listed here, and others of which are seen within other locations of this specification.  In a first option, at block 1506, an external XSLT macro file is configured to contain the rules governing the use of the variable object.  The XSLT file may be previously written for the user, so that the user does not have to know XSLT programming.  Instead, the user simply selects the file, such as by an interface seen at Fig. 8.  In a second option, at block 1508, the macro file is configured as an XML file containing macros described by an XML schema.
[0065] At block 1510, the PPML file 204 is configured.  In the example of Fig. 2, the PPML template is produced by the PPML template generator procedure 226; however, the characteristics of the program which configures the PPML template 204 may be varied to suit a desired application.  In one option, at block 1512, the PPML document is configured as a template, typically including at least one macro file used by the template.  At block 1514, in a second option, a variable object within the template may be defined as "REUSEABLE".  At block 1516, in a third option, fonts required by the template may be listed.  At block 1518, the PDF document may be referenced as a background PPML asset. 
[0066] Fig. 16 is a flow diagram 1600 that describes exemplary creation and use of a PPML document.  At block 1602, a PDF document (or a copy of the PDF document) is marked to indicate variable objects.  The marking can be made by tools 214-218 (Fig. 2), and seen in greater detail in Fig. 4.  At block 1604, a PPML template is formed to include the variable objects and to include the PDF document as a background.  At block 1606, macros to govern use of the variable objects are configured and included, or referenced by, the PPML template.  At block 1608, a PPML document based on the PPML template is printed.  During the printing process, macros are executed to govern use of the variable objects contained within the PPML document. 
[0067] An exemplary PPML template is seen below. 
<!-- Background -->
<REUSABLE_OBJECT>
<OBJECT Position="0 0">  <!- "xx yy" -- >
<SOURCE Format="application/pdf" Dimensions="ww hh">
<EXTERNAL_DATA Src="{$record/F[number($recordMapper/FIELD[@Name='Background']/@Position)]}"/>
</SOURCE>
</OBJECT>
<OCCURRENCE_LIST>
<OCCURRENCE Name="{$record/F[number($recordMapper/FIELD[@Name='Background']/@Position)]}" Environment="GroceryStore" Scope="Global">
<VIEW>
<TRANSFORM>
<xsl:attribute name="Matrix">
<xsl:variable name="m1" select="1"/>
<xsl:variable name="m2" select="0"/>
<xsl:variable name="m3" select="0"/>
<xsl:variable name="m4" select="1"/>
<xsl:variable name="m5" select="0"/>
<xsl:variable name="m6" select="0"/>
<xsl:value-of select="concat($m1, ' ', $m2, ' ', $m3, ' ', $m4, ' ', $m5, ' ', $m6)"/>
</xsl:attribute>
</TRANSFORM>
</VIEW>
</OCCURRENCE>
</OCCURRENCE_LIST>
</REUSABLE_OBJECT>
<MARK Position="0 0">
<OCCURRENCE_REF Ref="{$record/F[number($recordMapper/FIELD[@Name='Background']/@Position)]}" Environment="GroceryStore" Scope="Global"/>
</MARK>
Remark:
by default, Scope="Global" and Environment="GroceryStore"
- for image:
<xsl:if test = "not ($record/F[number($recordMapper/FIELD[@Name = 'ImageName']/@Position)] = '')">
</xsl:if>
3. Variable objects without macro
. text:
<!-- Product Text: TextName -->
<MARK Position="xx yy">
<OBJECT Position="0 0">
<SOURCE Format="image/svg-xml">
<xsl:attribute name="Dimensions">
<xsl:variable name="width" select="ww"/>
<xsl:variable name="height" select="hh"/>
<xsl:value-of select="concat($width, ' ', $height)"/>
</xsl:attribute>
<INTERNAL_DATA>
<SVG viewBox="0 0 ww hh">
<text rotate="0" x="0pt" y="78.5pt" font-family="PostScipt Font Name" font-size="22pt" letter-spacing="0pt" text-anchor="start" alignment-baseline="bottom" fill="rgb(0,0,0)">
<xsl:value-of select="$record/F[number($recordMapper/FIELD[@Name='TextName']/@Position)]"/>
</text>
</SVG>
</INTERNAL_DATA>
</SOURCE>
</OBJECT>
<VIEW>
<TRANSFORM Matrix="1 0 1 0 0 0"/>
</VIEW>
</MARK>
. image
<!-- Product Image: ImageName -->
<REUSABLE_OBJECT>
<OBJECT Position="0 0">
<SOURCE Format="image/jpeg" Dimensions="ww hh">
<EXTERNAL_DATA Src="Image.jpg"/>
</SOURCE>
<VIEW>
<TRANSFORM Matrix="1 0 0 0.1 0 0"/>
</VIEW>
</OBJECT>
<OCCURRENCE_LIST>
<OCCURRENCE Name="{$record/F[number($recordMapper/FIELD[@Name='ImageName']/@Position)]}" Environment="GroceryStore" Scope="Global">
<VIEW>
<TRANSFORM Matrix="1 0 0 1 0 0"/>
</VIEW>
</OCCURRENCE>
</OCCURRENCE_LIST>
</REUSABLE_OBJECT>
<MARK Position="xx yy">
<OCCURRENCE_REF Ref="{$record/F[number($recordMapper/FIELD[@Name='ImageName']/@Position)]}" Environment="GroceryStore" Scope="Global"/>
</MARK>
4. Variable objects with macro
. text
<!-- Product: TextName -->
<MARK Position="xx yy">
<xsl:call-template name="TemplateName">
<!-- font size, line height, number of character per line, letter-spacing, baseline offset -->
<xsl:with-param name="fontInfo" select="'6 7.2 63 0 1.4 5 6.5 69 0 1.3 4 5.8 78 0 1.1 3 4.3 104 0 0.8 2 2.9 157 0 0.6 1 2.2 209 0 0.4'"/>
<!-- Text to be outputted -->
<xsl:with-param name="text" select="$record/F[number($recordMapper/FIELD[@Name='TextName']/@Position)]"/>
<!-- Source width -->
<xsl:with-param name="width" select="ww"/>
<!-- Source height -->
<xsl:with-param name="height" select="hh"/>
<!-- Font family -->
<xsl:with-param name="fontFamily" select="PostScript Font Name"/>
<!-- Font color -->
<xsl:with-param name="fontColor" select="'rgb(0,0,0)'"/>
<!-- Horizontal alignment -->
<xsl:with-param name="hAlign" select="'right'"/>
<!-- Alignment baseline -->
<xsl:with-param name="alignBaseline" select="'middle'"/>
</xsl:call-template>
<VIEW>
<TRANSFORM Matrix="1.000000 0.000000 0.000000 1.000000 0 0"/>
</VIEW>
</MARK>
. image
<!-- Product: ImageName -->
<REUSABLE_OBJECT>
<xsl:call-template name="TemplateName">
<!-- Image name -->
<xsl:with-param name="image" select="$record/F[number($recordMapper/FIELD[@Name='ImageName']/@Position)]"/>
<!-- Image width -->
<xsl:with-param name="imageWidth" select="$record/F[number($recordMapper/FIELD[@Name='ImageNameWidth']/@Position)]"/>
<!-- Image height -->
<xsl:with-param name="imageHeight" select="$record/F[number($recordMapper/FIELD[@Name='ImageNameHeight']/@Position)]"/>
<!-- Mark width -->
<xsl:with-param name="markWidth" select="ww"/>
<!-- Mark height -->
<xsl:with-param name="markHeight" select="hh"/>
</xsl:call-template>
<OCCURRENCE_LIST>
<OCCURRENCE Name="{$record/F[number($recordMapper/FIELD[@Name='ImageName']/@Position)]}" Environment="GroceryStore" Scope="Global">
<VIEW>
<TRANSFORM Matrix="1 0 0 1 0 0"/>
</VIEW>
</OCCURRENCE>
</OCCURRENCE_LIST>
</REUSABLE_OBJECT>
<MARK Position="xx yy">
<OCCURRENCE_REF Ref="{$record/F[number($recordMapper/FIELD[@Name='ImageName']/@Position)]}" Environment="GroceryStore" Scope="Global"/>
</MARK>
5. Main template
<!-- Template Entry Point -->
<xsl:template match="/">
<!-- Template Specific Variables -->
<!-- (must match with other templates being merged) -->
<xsl:variable name="sheetWidth" select="WW"/>
<xsl:variable name="sheetHeight" select="HH"/>
<xsl:variable name="pageWidth" select="ww"/>
<xsl:variable name="pageHeight" select="hh"/>
<xsl:variable name="TemplateName_Mapper" select="//RS/RECORD[@name='TemplateName']"/>
<PPML>
<JOB>
<!-- Page Design -->
<PAGE_DESIGN TrimBox="0 0 ww hh"/>
<DOCUMENT>
<xsl:for-each select="//R">
<PAGE>
<xsl:choose>
<xsl:when test="F[number($TemplateName_Mapper/FIELD[@Name='Template']/@Position)]='TemplateName'">
<xsl:call-template name="TemplateName">
<xsl:with-param name="record" select="."/>
<xsl:with-param name="recordMapper" select="$TemplateName_Mapper"/>
</xsl:call-template>
</xsl:when>
</xsl:choose>
</PAGE>
</xsl:for-each>
</DOCUMENT>
</JOB>
</PPML>
</xsl:template>
6. Internal Data
<DATA>
<INTERNAL_DATA>
<RS>
<!-- internal name of PPML template -->
<RECORD name="TemplateName">
<FIELD Name="Template" Position="1"/>
<FIELD Name="Background" Position="2"/>
<FIELD Name="ImageName" Position="3"/>
<FIELD Name="ImageNameWidth" Position="4"/>
<FIELD Name="ImageNameHeight" Position="5"/>
<FIELD Name="TextName" Position="6"/>
</RECORD>
<!-- loop of databases description -->
<R>
<F>TemplateName</F>
<F>out_XXX.pdf</F>
<F>Image.jpg</F>
<F>width</F>
<F>height</F>
<F>text</F>
</R>
</RS>
</INTERNAL_DATA>
</DATA>
[0068] Fig. 17 is a block diagram illustrating an exemplary implementation of a system 1700 for converting PPML documents to PDF documents.  PPML to PDF conversion allows PPML print jobs to be printed on printers not accepting PPML input - typically lower-end printers (e.g. Hewlett-Packard DesignJet and LaserJet printers), which accept PDF print jobs, but which are not configured to accept PPML print jobs.  Additionally, PPML to PDF conversion allows the author of a PPML document or template to translate the PPML back into PDF, to check the accuracy of the PPML document, to visualize the documents at any point within a PPML workflow, or to support the simulation of printing on a press by adding the right printing conditions. 
[0069] A PPML template 1702 maybe constructed as seen above, or in any conventional manner.  Content or data 1704, such as text, images, fonts, etc., may be added to the template 1702, thereby forming a merged PPML document 1706.
[0070] A PPML to PDF converter 228 is configured to interpret the merged PPML document 1706, and to create a PDF document 1708.  An exemplary PPML to PDF converter 228 (Fig. 2) is configured to parse the PPML document 1706, and generate a PDF document tree 1716 on which elements of the PPML document will be directly translated into PDF objects. 
[0071] When a PPML tag 1710 refers to an external object, like fonts 1712 or images 1714, the converter 228 will un-marshal that PPML instance to allow insertion within the PDF document 1708.  For example, objects 1718-1724, within the PDF document tree 1716, could have been formed in this manner. 
[0072] Fig. 18 is a block diagram illustrating exemplary detail of the PPML to PDF converter 228.  A PPML document interpretation component 1802 is configured to open the PPML document and interpret the merged PPML document 1706 (Fig. 17) to create the PDF document 1708 (Fig. 17).  A parsing and tagging component 1804 is configured to parse the PPML document 1706, to locate various features.  For example, the parsing component 1804 is configured to locate PPML global impositions and references to assets. 
[0073] A PPML SOURCE_TYPE resolving component 1806 is configured to resolve, for objects within the PPML document 1706, the PPML SOURCE_TYPE class.  This allows a PDF object to be translated by a translation component 1808 according to the PPML SOURCE_TYPE class.  In one embodiment of the translation component 1808, a PDF object will be translated within a PdfTemplate as a function of the type of assets found and tagged when parsing the PPML structure.  The implementation of the PdfTemplate object also supports caching of the objects on the PdfTemplate to optimize the PDF structure.  Caching of objects reduces the need to replicate images or other data within the PDF template structure.  Accordingly, all of the occurrences of objects do not have to be replicated and the PdfTemplate is made more optimal.      
[0074] A PDF tree-generating component 1810 is configured to generate a PDF tree 1716 (Fig. 17) according to the PPML structures revealed by the parsing component 1804.  The PDF tree generation could be recursive, and could be used to optimize the PDF document.  For example, an A4 template could be configured independently, or could be configured as the sum of two A6 templates.  Similarly, an A3 template could be configured independently, or could be configured as the sum of two A4 templates.  And still further, an A3 template can be configured as the sum of four A6 templates.  Accordingly, the recursive tree structure in a PPML document may be converted into a similar recursive tree structure in a PDF document, using the PdfTemplate structure.   Such a conversion may result in a more compact PdfTemplate.    
[0075] An un-marshalling component 1812 is configured to un-marshal PPML instances, which may then be embedded into the PDF document.  For example, where the parsing component 1804 has revealed tags 1710 within the PPML document indicating external objects, such as PDF files, fonts 1712 or images 1714, the un-marshalling component 1812 un-marshals that PPML instance to embed an object (e.g. fonts, images or PDF files) into the PDF document. 
[0076] A SourceResolver interface component 1814 is configured to resolve references to assets during the course of translating the PPML document into a PDF document.  Accordingly, the SourceResolver identifies the object or asset, and using an InputSource, puts it into the PPML specific file.  Ultimately, this allows the PPML file to be converted to a PDF file for printing.  For example, the SourceResolver component 1814 is configured to resolve an asset such as an image, (e.g. hello.jpg) into an InputSource object, using a PPML structure.  An exemplary PPML structure is:
[0077] <SOURCE Format= "image/jpeg" Dimensions= "842 1190">
[0078]    <EXTERNAL_DATA_ARRAY Src= "hello.jpg"/>
[0079] </SOURCE>
[0080] A FontResolver interface component 1816 is configured to resolve fonts using a manner of operation similar to the SourceResolver interface component 1814.  For example, a PPML structure may be used to translate the "ArialMT" asset into an iText font representing a given TTF font, i.e. the ArialMT.ttf font.  An exemplary PPML structure to translate the "ArialMT" asset is:
[0081] <text dx= "20" dy= "20"
[0082]   font-size= "30"
[0083]   font-family= "ArialMT">Arial</text>
[0084] An OccurrenceStore Interface component 1818 allows reutilization of PPML objects i.e. REUSABLE_OBJECT_TYPE instances, within the scope defined (e.g. "global" scope).  The reutilization process reserves a space in cache memory for an object.  Such a reservation avoids a need to reload to the object each time, thereby speeding operations in which the object is needed.  An exemplary PPML structure which allows reutilization of the PPML global objects is:
[0085] <REUSABLE_OBJECT>
[0086]   <OBJECT Position= "0 0">
[0087]   <SOURCE Format= "application/pdf" Dimensions= "842 1190">
[0088]     <EXTERNAL_DATA_ARRAY Src= "A3.pdf"/>
[0089]   </SOURCE>
[0090]  </OBJECT>
[0091] <OCCURRENCE_LIST>
[0092] <OCCURRENCE Name= "bg" Scope="Global" Environment= test1"/>
[0093] </OCCURRENCE_LIST>
[0094] </REUSABEL_OBJECT> 
[0095] An ImpositionStore interface component 1820 allows reutilization of PPML global impositions, i.e., IMPOSITION_TYPE instances.  Reutilization of PPML global impositions may be stored in memory.  For example, rotations, rearrangements, etc. which are repeatedly performed may be stored in memory to prevent the need to reload the associated impositions repeatedly.  An exemplary PPML structure which allows reutilization of the PPML global impositions is:
[0096] <IMPOSITION Rotation= "90" Name= "2x1"
[0097]   Environment= "test1" Scope= "Global">
[0098] <SIGNATURE PageCount= "2" Ncols= "2" Nrows= "1" />
[0099] <CELL PageOrder= "s" Face= "Up" Col= "1" Row= "1" />
[00100] </SIGNATURE> 
[00101] </IMPOSITION>
[00102] Fig. 19 is a flow diagram 1900 that describes an exemplary conversion of a PPML document into a PDF document.  At block 1902, structures within the PPML document are parsed.  For example, the parsing and tagging component 1804 may be used to parse the PPML document.  At block 1904, a PDF document tree 1716 (Fig. 17) is generated.  This may be performed by the PDF tree generating component 1810 (Fig. 18).  As seen in Fig. 17, the PDF document tree 1716 includes one or more assets 1718-1724.  At block 1906, the parsed structures from the PPML document are interpreted, thereby locating the resulting data on the PDF document tree.  Such translation may be performed by the translation component 1808 of Fig. 18. 
[00103] At block 1908, the SOURCE_TYPE class of objects within the PPML document is resolved.  This may be performed by the SourceResolver 1814 of Fig. 18.  At block 1910, objects within the PPML document are translated according to the PPML SOURCE_TYPE class.
[00104] At block 1912, when a PPML tag refers to an external object, a PPML instance is un-marshaled.  As seen above, un-marshalling may be performed by the un-marshalling component 1812 of Fig. 18.  At block 1914, the external object is embedded into the PDF document. 
[00105] Fig. 20 is a flow diagram illustrating additional aspects 2000 of PPML to PDF conversion.  Not all blocks are required for any particular conversion, and in some applications the order of block utilization may be altered.  At block 2002, references within a parsed PPML document are resolved, thereby forming assets.
[00106] At block 2004, the assets are incorporated into the PDF document.  For example, at block 2006, an image asset is resolved into an InputSource object using a PPML structure.  As seen above, in one implementation, the SourceResolver 1814 is configured to resolve an image asset into an InputSource object.  At block 2008, the image asset is incorporated into the PDF document.  As a further example of how assets are incorporated into the PDF document, at block 2010, assets within a parsed PPML document are resolved into objects (e.g. fonts).  As seen above, in one implementation, the FontResolver 1816 is configured to resolve a font asset much as the SourceResolver 1814 resolves image assets.  At block 2012, the objects are incorporated into the PDF document. 
[00107] Fig. 21 is a flow diagram illustrating additional aspects 2100 of PPML to PDF conversion.  Not all blocks are required for any particular conversion, and in some applications the order of block utilization may be altered.  At block 2102, a PPML structure is used to translate an asset into an iText font representing a TTF font.  In an exemplary implementation, this functionality may be performed by the FontResolver 1816 of Fig. 18. 
[00108] At block 2104, the merged PPML document 1706 (Fig. 17) is parsed to locate global objects.  In an exemplary implementation, the parsing may be performed by the parsing component 1804 of Fig. 18.  At block 2106, the PPML global objects found within the PPML document are reutilized.  In an exemplary implementation, the OccurrenceStore 1818 is configured to reutilize the global objects.
[00109] At block 2108, the merged PPML document 1706 (Fig. 17) is parsed to locate global impositions.  At block 2110, the PPML global impositions found within the PPML document are reutilized.  In an exemplary implementation, the ImpositionStore 1820 is configured to reutilize the global impositions.
[00110] Although the above disclosure has been described in language specific to structural features and/or methodological steps, it is to be understood that the specific features and steps are exemplary forms of implementing this disclosure.  For example, while actions described in blocks of the flow diagrams may be performed in parallel with actions described in other blocks, the actions may occur in an alternate order, or may be distributed in a manner which associates actions with more than one other block.  And further, while elements of the methods disclosed are intended to be performed in any desired manner, it is anticipated that computer- or processor-readable instructions, performed by a computer and/or processor, typically located within a workstation, print server or printer, reading from a computer- or processor-readable media, such as a ROM, disk or CD ROM, would be preferred, but that an application specific gate array (ASIC) or similar hardware structure, could be substituted.
[00111]
1. A method for processing a PDF document (202) to produce a PPML template (204), comprising the steps of: 
opening (1202) the PDF document (202); 
converting a PDF element (208, 210) within the PDF document (202) into a variable object (212); 
selecting a macro (220) containing rules (222) governing operation of the variable object (212); and 
configuring (1214) the PPML template (204) to include a definition of the variable object (212), the macro (220) and a version of the PDF document (202), wherein the version of the PDF document (202) is configured as a background element within the PPML template (204). 
2. The method as recited in claim 1, wherein converting the PDF element (208, 210) within the PDF document (202) into the variable object (212) comprises further instructions for: 
providing (1204) a tool (214-218) for operation by a user; and 
responding to operations of the tool (214-218) which result in a selection of a portion of the PDF document (202)to be associated with the variable object (212). 
3. The method as recited in claim 2, wherein the selection of the portion of the PDF document (202) comprises further instructions for: 
selecting (1206) a graphical image (210) within the PDF document (202). 
4. The method as recited in any of claims 2 or 3, wherein the selection of the portion of the PDF document comprises further instructions for: 
selecting (1208) text (208) within the PDF document (202). 
5. The method as recited in claim any of claims 2 to 4, wherein responding to operation of the tool (214-218) comprises further instructions for: 
providing (1302) the user with a first set of properties for graphical objects (210) and a second set of properties for text objects (208); 
allowing (1304) the user to adjust the properties; and 
governing (1308) conversion of the PDF element within the PDF document (202) into the variable object (212) according to the properties. 
6. A system (200) characterised by, comprising:
a variable object creation tool (214-218) to select objects (208, 210) within a PDF document (202) for designation as variable objects (212) within a PPML template (204); 
a macro selection tool (226) to allow a user to select rules governing use of the variable objects; and 
a PPML template generator (226) to assemble the variable objects within the PPML template (204) and to configure at least portions of the PDF document (202) as a background within the PPML template (204) and to assemble the selected rules as a macro. 
7. The system (200) of claim 6, additionally comprising: 
a user interface (206) configured to provide the user with a first set of properties wherein the selected objects include graphical objects and a second set of properties wherein the selected objects includes text objects (208), to allow the user to adjust the first and second sets properties, which are configured to govern operation of the variable objects (212) within the PPML template (204). 
8. The system (200) of claim 6, comprising: 
a PPML to PDF converter (228) to produce an optimized PDF document (1708) from a PPML document (1706) derived from the PPML template (1702) wherein subsequent instances of a PDF object (1712, 1714) will be substituted with references to an initial instance of the PDF object. 
9. The system of any of claims 6 to 8 comprising means for opening (1202) a PDF document (202); and 
wherein such variable creation tool further comprises means for converting (1210) a PDF object (208, 210) within the PDF document (202) into a variable object (212); 
10. A computer program comprising computer program code means adapted to perform all the steps of the method according to any of claims 1 to 5, when said program is run on a computer.
11. A computer readable means containing program instruction for carrying out all the steps of the method according to any of  claims  1 to 5.
CLAIMS
1. A method for processing a PDF document (202) to produce a PPML template (204), comprising the steps of: 
opening (1202) the PDF document (202); 
converting a PDF element (208, 210) within the PDF document (202) into a variable object (212); 
selecting a macro (220) containing rules (222) governing operation of the variable object (212); and 
configuring (1214) the PPML template (204) to include a definition of the variable object (212), the macro (220) and a version of the PDF document (202), wherein the version of the PDF document (202) is configured as a background element within the PPML template (204). 
2. The method as recited in claim 1, wherein converting the PDF element (208, 210) within the PDF document (202) into the variable object (212) comprises further instructions for: 
providing (1204) a tool (214-218) for operation by a user; and 
responding to operations of the tool (214-218) which result in a selection of a portion of the PDF document (202)to be associated with the variable object (212). 
3. The method as recited in claim 2, wherein responding to operation of the tool (214-218) comprises further instructions for: 
providing (1302) the user with a first set of properties for graphical objects (210) and a second set of properties for text objects (208); 
allowing (1304) the user to adjust the properties; and 
governing (1308) conversion of the PDF element within the PDF document (202) into the variable object (212) according to the properties. 
4. A system (200) characterised by, comprising:
a variable object creation tool (214-218) to select objects (208, 210) within a PDF document (202) for designation as variable objects (212) within a PPML template (204); 
a macro selection tool (226) to allow a user to select rules governing use of the variable objects; and 
a PPML template generator (226) to assemble the variable objects within the PPML template (204) and to configure at least portions of the PDF document (202) as a background within the PPML template (204) and to assemble the selected rules as a macro. 
ABSTRACT
A system (200) and method (1200) of operation is configured to produce a PPML template (204) from a PDF document (202).  In one implementation, the system (200) opens the PDF document (202) and converts PDF elements (208, 210) within the PDF document (202) into variable objects (212).  A macro (220) is generated, which contains rules (222) governing use and reuse of the variable objects (212).  The PPML template (204) generated as final result is configured to include a definition of the variable objects (212), the macro (220) and a version of the original PDF document (202), wherein at least portions of the PDF document (202) are configured as a background element within the PPML document (202). 
Fig. 2
2005166050.tif 000024
2005166050.tif 000025
2005166050.tif 000026
2005166050.tif 000027
2005166050.tif 000028
2005166050.tif 000029
2005166050.tif 000030
2005166050.tif 000031
2005166050.tif 000032
2005166050.tif 000033
2005166050.tif 000034
2005166050.tif 000035
2005166050.tif 000036
2005166050.tif 000037
2005166050.tif 000038
2005166050.tif 000039
2005166050.tif 000040
2005166050.tif 000041
2005166050.tif 000042
2005166050.tif 000043
2005166050.tif 000044