(57)【特許請求の範囲】
【請求項１】
少なくとも１つの文書ページのＰＰＭＬ印刷データを処理する印刷データ処理装置により実行される方法であって、
前記ＰＰＭＬ印刷データは、ＰＰＭＬ言語による記述と、前記ＰＰＭＬ言語以外の、種類の異なる複数のクライアントページ記述言語（ＰＤＬ）で記述された複数の言語オブジェクトとを備えており、
当該方法は、
前記少なくとも１つの文書ページの前記ＰＰＭＬ印刷データを構文解析して、前記複数のクライアントＰＤＬのうち何れかのクライアントＰＤＬで書かれた言語オブジェクトを識別する識別ステップと、
前記クライアントＰＤＬで書かれた言語オブジェクトが識別された場合に、識別された当該言語オブジェクトに対し、前記複数のクライアントＰＤＬのうち、当該識別された言語オブジェクトに対応する一のクライアントＰＤＬのためのＰＤＬ言語プロセッサの言語エントリポイント関数をマップするマップステップと、
マップされた言語エントリポイント関数を使って、当該言語エントリポイント関数に対応する前記一のクライアントＰＤＬのための前記ＰＤＬ言語プロセッサを呼び出す呼び出しステップと、
呼び出された前記一のクライアントＰＤＬのための前記ＰＤＬ言語プロセッサを使って、前記クライアントＰＤＬで書かれた言語オブジェクトを処理する処理ステップと
を含む方法。
【請求項２】
前記印刷データ処理装置は、ＰＰＭＬ言語プロセッサと、前記複数のクライアントＰＤＬのそれぞれに対応する複数のＰＤＬ言語プロセッサとを備え、
前記ＰＰＭＬ言語プロセッサが、前記識別ステップ、前記マップステップ及び前記呼び出しステップを実行し、
前記複数のクライアントＰＤＬのうち、前記呼び出しステップにおいて前記ＰＰＭＬ言語プロセッサにより呼び出された前記一のクライアントＰＤＬのための前記ＰＤＬ言語プロセッサが、前記処理ステップを実行する請求項１に記載の方法。
【請求項３】
前記マップステップは、言語エントリポイントのテーブルを使用するステップを含む請求項１または２に記載の方法。
【請求項４】
前記言語エントリポイントのテーブルは、複数の言語エントリポイント関数と複数の言語列挙名とを備え、
前記識別された言語オブジェクトの選択言語列挙名が決定すると、前記識別された言語オブジェクトに対し選択言語エントリポイント関数がマップされる請求項３に記載の方法。
【請求項５】
前記マップステップは、前記言語オブジェクトの一部分を解析して言語列挙名を決定するステップを含む請求項４に記載の方法。
【請求項６】
前記マップステップは、ＰＰＭＬ命令のＳＯＵＲＣＥ要素のＦＯＲＭＡＴ属性を解析するステップを含む請求項１〜５の何れか一項に記載の方法。
【請求項７】
前記処理ステップは、前記言語プロセッサの出力を少なくとも１つのメモリ位置に格納するステップをさらに含み、
前記少なくとも１つのメモリ位置の開始アドレスは、前記一のクライアントＰＤＬのための前記ＰＤＬ言語プロセッサに提供される請求項１〜６の何れか一項に記載の方法。
【請求項８】
前記少なくとも１つのメモリ位置の前記開始アドレスは、前記一のクライアントＰＤＬのための前記ＰＤＬ言語プロセッサが呼び出されるときに、前記一のクライアントＰＤＬのための前記ＰＤＬ言語プロセッサに提供される請求項７に記載の方法。
【請求項９】
前記少なくとも１つのメモリ位置の前記開始アドレスは、前記ＰＰＭＬ印刷データに特有のディスプレイリストのアドレスである請求項７または８に記載の方法。
【請求項１０】
前記少なくとも１つの文書ページのＰＰＭＬで書かれたページレイアウト命令およびデータを識別するステップと、
前記一のクライアントＰＤＬのための前記ＰＤＬ言語プロセッサから返されるページレイアウト命令およびデータを無視するステップと、
前記ＰＰＭＬで書かれたページレイアウト命令およびデータを適用して前記少なくとも１つの文書ページを書式設定するステップと
をさらに含む請求項１〜９の何れか一項に記載の方法。
【請求項１１】
前記ＰＰＭＬで書かれたページレイアウト命令およびデータは、ページサイズとグラフィックオブジェクトサイズのうちの少なくとも１つに関連するものである請求項１０に記載の方法。
【請求項１２】
複数の命令を保持するコンピュータ可読媒体であって、
前記複数の命令は、プロセッサによって実行されると、少なくとも１つの文書ページのＰＰＭＬ印刷データを処理する印刷データ処理装置により実行される方法における各ステップを実行するものであり、
前記ＰＰＭＬ印刷データは、ＰＰＭＬ言語による記述と、前記ＰＰＭＬ言語以外の、種類の異なる複数のクライアントページ記述言語（ＰＤＬ）で記述された複数の言語オブジェクトとを備えており、
前記方法は、
前記少なくとも１つの文書ページの前記ＰＰＭＬ印刷データを構文解析して、前記複数のクライアントＰＤＬのうち何れかのクライアントＰＤＬで書かれた言語オブジェクトを識別する識別ステップと、
前記クライアントＰＤＬで書かれた言語オブジェクトが識別された場合に、識別された当該言語オブジェクトに対し、前記複数のクライアントＰＤＬのうち、当該識別された言語オブジェクトに対応する一のクライアントＰＤＬのためのＰＤＬ言語プロセッサの言語エントリポイント関数をマップするマップステップと、
マップされた言語エントリポイント関数を使って、当該言語エントリポイント関数に対応する前記一のクライアントＰＤＬのための前記ＰＤＬ言語プロセッサを呼び出す呼び出しステップと、
呼び出された前記一のクライアントＰＤＬのための前記ＰＤＬ言語プロセッサを使って、前記クライアントＰＤＬで書かれた言語オブジェクトを処理する処理ステップと
を含むコンピュータ可読媒体。
【請求項１３】
前記印刷データ処理装置は、ＰＰＭＬ言語プロセッサと、前記複数のクライアントＰＤＬのそれぞれに対応する複数のＰＤＬ言語プロセッサとを備え、
前記ＰＰＭＬ言語プロセッサが、前記識別ステップ、前記マップステップ及び前記呼び出しステップを実行し、
前記複数のクライアントＰＤＬのうち、前記呼び出しステップにおいて前記ＰＰＭＬ言語プロセッサにより呼び出された前記一のクライアントＰＤＬのための前記ＰＤＬ言語プロセッサが、前記処理ステップを実行する請求項１２に記載のコンピュータ可読媒体。
【請求項１４】
前記マップステップは、言語エントリポイントのテーブルを使用するステップを含む請求項１２または１３に記載のコンピュータ可読媒体。
【請求項１５】
前記言語エントリポイントのテーブルは、複数の言語エントリポイント関数と複数の言語列挙名とを備え、
前記識別された言語オブジェクトの選択言語列挙名が決定すると、前記識別された言語オブジェクトに対し選択言語エントリポイント関数がマップされる請求項１４に記載のコンピュータ可読媒体。
【請求項１６】
前記マップステップは、前記言語オブジェクトの一部分を解析して言語列挙名を決定するステップを含む請求項１５に記載のコンピュータ可読媒体。
【請求項１７】
前記マップステップは、ＰＰＭＬ命令のＳＯＵＲＣＥ要素のＦＯＲＭＡＴ属性を解析するステップを含む請求項１２〜１６の何れか一項に記載のコンピュータ可読媒体。
【請求項１８】
前記処理ステップは、前記言語プロセッサの出力を少なくとも１つのメモリ位置に格納するステップをさらに含み、
前記少なくとも１つのメモリ位置の開始アドレスは、前記一のクライアントＰＤＬのための前記ＰＤＬ言語プロセッサに提供される請求項１２〜１７の何れか一項に記載のコンピュータ可読媒体。
【請求項１９】
前記少なくとも１つのメモリ位置の前記開始アドレスは、前記一のクライアントＰＤＬのための前記ＰＤＬ言語プロセッサが呼び出されるときに、前記一のクライアントＰＤＬのための前記ＰＤＬ言語プロセッサに提供される請求項１８に記載のコンピュータ可読媒体。
【請求項２０】
前記少なくとも１つのメモリ位置の前記開始アドレスは、前記ＰＰＭＬ印刷データに特有のディスプレイリストのアドレスである請求項１８または１９に記載のコンピュータ可読媒体。
【請求項２１】
少なくとも１つの文書ページのＰＰＭＬ印刷データを処理する印刷データ処理装置であって、
ＰＰＭＬ言語による記述、及び、前記ＰＰＭＬ言語以外の、種類の異なる複数のクライアントページ記述言語（ＰＤＬ）で記述された複数の言語オブジェクトを備えるＰＰＭＬ印刷データを受け取るように構成された入力インターフェースと、
前記ＰＰＭＬ印刷データを格納するように構成されたメモリと、
前記入力インターフェースと前記メモリとに接続されたプロセッサとを備え、
前記プロセッサは、前記メモリ内の命令を実行して、
前記少なくとも１つの文書ページの前記ＰＰＭＬ印刷データを構文解析して、前記複数のクライアントＰＤＬのうち何れかのクライアントＰＤＬで書かれた言語オブジェクトを識別するステップと、
前記クライアントＰＤＬで書かれた言語オブジェクトが識別された場合に、識別された当該言語オブジェクトに対し、前記複数のクライアントＰＤＬのうち、当該識別された言語オブジェクトに対応する一のクライアントＰＤＬのためのＰＤＬ言語プロセッサの言語エントリポイント関数をマップするステップと、
マップされた言語エントリポイント関数を使って、当該言語エントリポイント関数に対応する前記一のクライアントＰＤＬのための前記ＰＤＬ言語プロセッサを呼び出すステップと、
呼び出された前記一のクライアントＰＤＬのための前記ＰＤＬ言語プロセッサを使って、前記クライアントＰＤＬで書かれた言語オブジェクトを処理し、印刷可能データを作成するステップと
を有する各ステップの機能を実現するように構成された印刷データ処理装置。
【請求項２２】
ＰＰＭＬ言語プロセッサと、前記複数のクライアントＰＤＬのそれぞれに対応する複数のＰＤＬ言語プロセッサとを備え、
前記ＰＰＭＬ言語プロセッサが、
前記識別ステップ、前記マップステップ及び前記呼び出しステップを実行し、
前記複数のクライアントＰＤＬのうち、前記呼び出しステップにおいて前記ＰＰＭＬ言語プロセッサにより呼び出された前記一のクライアントＰＤＬのための前記ＰＤＬ言語プロセッサが、前記処理ステップを実行する請求項２１に記載の印刷データ処理装置。
【請求項２３】
前記印刷可能データが記憶装置に格納される請求項２１または２２に記載の印刷データ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は印刷の分野に関し、詳しくは、ＰＰＭＬ（Personalized Print Markup Language）のコンテキストにおいてページ記述言語（ＰＤＬ）を処理する印刷データ処理装置、方法及びコンピュータ可読媒体に関する。
【背景技術】
【０００２】
文書処理ソフトウェアによれば、ユーザは、文書を都合よく閲覧し、編集し、処理し、記憶することができる。文書中のページは、それらが印刷物に現れるとおりに、スクリーン上に正確に表示されうる。しかしながら、文書を印刷する前に、データは、プリンタが認識し、使用することのできる形に変換されなければならない。このために、文書内の各ページはしばしばページ記述言語（ＰＤＬ）で記述される。ＰＤＬは、視認可能な所望の出力セットを生成するためにプリンタまたは表示装置に送ることのできる命令を作成するのに使用される。これらの命令は一般に、最終的な出力が物理媒体に対するものでないときでさえも、視認可能な出力のレイアウトを記述する手段を含む。本出願で使用する場合、ＰＤＬには、ポストスクリプト（商標）、アドビ（商標）ＰＤＦ、ＨＰ（商標）ＰＣＬ（商標）、マイクロソフト（商標）ＸＰＳ（商標）、およびこれらの変形、ならびに文書内のページを記述するのに使用される他の言語が含まれ得る。
【０００３】
文書のＰＤＬ記述によれば、文書中のそれぞれのページのハイレベルな記述がもたらされる。このＰＤＬ記述は、文書が印刷されるときには、多くの場合、一連のよりローレベルなプリンタ特有コマンドへ翻訳される。プリンタまたは印刷装置はローレベルなプリンタ特有コマンドを使って印刷媒体上に印をつけることができる。ＰＤＬの様々な特徴は用途によって異なる利点を提供する。例えばＰＤＬの中にはより優れた、または高速な印刷性能を提供することのできるものもあり、或る種の視認可能なデータおよび／またはグラフィックアプリケーションを用いてより高品質のグラフィックスを提供することのできるものもある。
【０００４】
ＰＤＬ言語の１つのクラスはＰＰＭＬ規格によって管理（governed）されるものを含んでおり、このＰＰＭＬはテキスト要素およびグラフィック要素をプリンタ言語が識別し、格納し、再利用することを可能にする。ＰＰＭＬはＸＭＬベースの言語とすることができ、テキスト要素およびグラフィック要素を格納、再利用させて、ラスタ化および帯域幅のオーバーヘッド（overheads）を低減することにより、特定の印刷ジョブの印刷を高速化することができる。ＰＰＭＬはプリンタにページレベルではなくオブジェクトレベルでデータ構成要素を操作することを可能にする。言い換えると、プリンタにより格納される情報の細かさ（granularity）をオブジェクトレベルまで下げることにより、ＰＰＭＬは、可変データ印刷ジョブの印刷プロセスの間に、必要に応じてコードがオブジェクトに名前を付し、これらのオブジェクトを再利用することを可能にする。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＰＰＭＬが導入される以前、印刷アーキテクチャは、単一のＰＤＬで書かれた命令が提供され、ＰＤＬが処理されて、印刷されるページのレイアウトが決定され、書式設定されるというフレームワークを使って開発された。この意味では、非ＰＰＭＬ  ＰＤＬは、各ＰＤＬがページのレイアウトおよびその内容を別々に記述する特有の手法を有するという点においてページベースの言語である。また、言語の決定、選択、開始といった、印刷アーキテクチャの他の特徴もこのフレームワークに基づくものであった。
【０００６】
ＰＰＭＬを導入する場合、１ページの各部分をレンダリングするのに１つ以上のＰＤＬが呼び出され、ページレイアウト方法や言語識別方法といった標準的なページベースの処理方法がＰＰＭＬコンテキストにおける使用のために適合され得る。したがって、言語処理をページベースのコンテキストで行わせる機能を保持しつつ、従来からの単一のページフレームワークに単一のＰＤＬ、というコンテキストの枠外でのＰＤＬ言語処理を行う柔軟で効率の良い方式が求められている。
【課題を解決するための手段】
【０００７】
本発明によれば、印刷リソース管理のための印刷データ処理装置、方法及びコンピュータ可読媒体が提供される。いくつかの実施形態においては、少なくとも１つの文書ページのＰＰＭＬ印刷データを処理する方法であって、前記ＰＰＭＬ印刷データは、ＰＰＭＬ言語による記述と、前記ＰＰＭＬ言語以外の、種類の異なる複数のクライアントページ記述言語（ＰＤＬ）で記述された複数の言語オブジェクトとを備えており、当該方法は、前記少なくとも１つの文書ページの前記ＰＰＭＬ印刷データを構文解析して、前記複数のクライアントＰＤＬのうち何れかのクライアントＰＤＬで書かれた言語オブジェクトを識別する識別ステップと、前記クライアントＰＤＬで書かれた言語オブジェクトが識別された場合に、識別された当該言語オブジェクトに対し、前記複数のクライアントＰＤＬのうち、当該識別された言語オブジェクトに対応する一のクライアントＰＤＬのためのＰＤＬ言語プロセッサの言語エントリポイント関数をマップするマップステップと、マップされた言語エントリポイント関数を使って、当該言語エントリポイント関数に対応する前記一のクライアントＰＤＬのための前記ＰＤＬ言語プロセッサを呼び出す呼び出しステップと、呼び出された前記一のクライアントＰＤＬのための前記ＰＤＬ言語プロセッサを使って、前記クライアントＰＤＬで書かれた言語オブジェクトを処理する処理ステップとを含む方法が提供される。
【０００８】
また本発明の実施形態は、ＰＤＬを使ってページレイアウト命令を処理する方法にも関連するものである。以下の各図に関連して上記その他の実施形態を以下でさらに説明する。
【図面の簡単な説明】
【０００９】
【図１】文書を印刷するシステムにおける構成要素を示すブロック図である。
【図２】例示的プリンタを示すハイレベルなブロック図である。
【図３】ＰＤＬを使ったページ記述処理のシステムのハイレベルなアーキテクチャの例を示す図である。
【図４】従来のページ記述言語の処理例を示すフローチャートである。
【図５】ＰＰＭＬと１つ以上のクライアントＰＤＬを使ったページ記述処理のシステムのハイレベルなアーキテクチャの例を示す図である。
【図６】１つ以上の言語で書かれたＰＤＬオブジェクトを組み込んだＰＰＭＬデータを処理するアルゴリズムの一例における各部分を示すフローチャートである。
【図７】ＰＰＭＬを使ってＰＤＬを処理するシステムにおいて使用するための言語エントリポイントのテーブルの例を示す図である。
【発明を実施するための形態】
【００１０】
本発明の様々な特徴を反映する実施形態によれば、ページベースのコンテキストの外部でＰＤＬ言語を処理するシステム、方法及びコンピュータ可読媒体が提示される。加えて、ページベースのコンテキストにおいてＰＤＬ命令を処理することのできる能力を維持しながら、ページベースのコンテキストの外部でＰＤＬ命令を処理するシステム、方法及びコンピュータ可読媒体も提示される。
【００１１】
図１に、本発明のいくつかの実施形態によって文書を印刷するシステムにおける構成要素を例示するブロック図を示す。図１に示すように、本発明と整合性を有するコンピュータソフトウェアアプリケーションはコンピュータネットワーク上で展開することができ、このネットワークは、従来の通信プロトコルおよび／またはデータポートインターフェースを使って情報が交換されることを可能にする通信リンクを介して接続されている。
【００１２】
図１に示すように、例示的なシステム１００には、演算装置１１０とサーバ１３０とを含む複数のコンピュータが備えられる。さらに演算装置１１０とサーバ１３０とはコネクション１２０を介して通信し、コネクション１２０はネットワーク１４０を通る。ネットワーク１４０は、一例ではインターネットとすることもできる。演算装置１１０はコンピュータワークステーション、デスクトップコンピュータ、ラップトップコンピュータ、またはネットワーク環境で使用することのできる他の演算装置とすることができる。サーバ１３０は、演算装置１１０およびその他の装置（図示しない）に接続することのできるプラットフォームとすることができる。演算装置１１０とサーバ１３０とは、プリンタ１７０を使った文書の印刷を可能にするソフトウェア（図示しない）を実行することもできる。
【００１３】
例示的なプリンタ１７０は電子データから物理文書を生成する装置を含んでおり、この装置にはレーザプリンタ、インクジェットプリンタ、ＬＥＤプリンタ、プロッタ、ファクシミリ装置、およびディジタル複写機が含まれるが、これらに限定されない。いくつかの実施形態においては、プリンタ１７０は、演算装置１１０またはサーバ１３０からコネクション１２０を介して受信した文書を直接印刷することもできる。いくつかの実施形態においては、このような構成は、演算装置１１０またはサーバ１３０による追加の処理を伴って（またはこれを伴わずに）、文書の直接印刷を可能にする。いくつかの実施形態においては、文書はテキスト、グラフィックス、およびイメージのうちの１つ以上を含む。いくつかの実施形態においては、プリンタ１７０は印刷用の文書のＰＤＬまたはＰＰＭＬ記述を受け取る。また、文書印刷処理を分散させることもできることに留意されたい。よって、演算装置１１０、サーバ１３０、および／またはプリンタ１７０は、文書がプリンタ１７０によって物理的に印刷される前に、ハーフトーニング、カラーマッチング、および／またはその他の操作プロセスといった文書印刷処理の部分を実行し得る。
【００１４】
また演算装置１１０は着脱可能型メディアドライブ１５０も含む。着脱可能型メディアドライブ１５０には、例えば、３．５インチフロッピードライブ、ＣＤ−ＲＯＭドライブ、ＤＶＤ−ＲＯＭドライブ、ＣＤ±ＲＷもしくはＤＶＤ±ＲＷドライブ、ＵＳＢフラッシュドライブ、および／または本発明の実施形態と整合性を有する他の着脱可能型メディアドライブなどが含まれ得る。
【００１５】
コネクション１２０は、演算装置１１０とサーバ１３０とプリンタ１７０とを接続するものであり、従来の通信プロトコルおよび／またはデータポートインターフェースを使った有線または無線の接続として実施され得る。一般にコネクション１２０は、装置間のデータの伝送を可能にする任意の通信路とすることができる。一実施形態では、例えば各装置は、パラレルポート、シリアルポート、イーサネット（商標）、ＵＳＢ、ＳＣＳＩ、ＦＩＲＥＷＩＲＥ（商標）、および／または適切な接続を介したデータ伝送用の同軸ケーブルポートといった、従来のデータポートを備える。いくつかの実施形態においては、コネクション１２０は、ディジタル加入者線（ＤＳＬ）、非対称ディジタル加入者線（ＡＤＳＬ）、またはケーブル接続とすることができる。通信リンクは無線リンクでも、有線リンクでも、様々な装置間の通信を可能とする本発明の各実施形態と整合性を有する任意の組み合わせとすることもできる。
【００１６】
ネットワーク１４０はローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、またはインターネットを含んでいてもよい。いくつかの実施形態においては、ネットワーク１４０を介して送られる情報は、送信されるデータのセキュリティを確保するために暗号化することができる。プリンタ１７０はコネクション１２０を介してネットワーク１４０へ接続することができる。いくつかの実施形態においては、プリンタ１７０は演算装置１１０および／またはサーバ１３０に直接接続される。またシステム１００は、本発明のいくつかの実施形態によれば、他の周辺装置（図示しない）を含んでいてもよい。本発明と整合性を有するコンピュータソフトウェアアプリケーションは、図１に示すように、例示的コンピュータおよびプリンタのいずれに配備されていてもよい。例えば演算装置１１０は、サーバ１３０から直接ダウンロードされるソフトウェアを実行することもできる。いくつかの実施形態においては、ソフトウェアアプリケーションの各部分がリムーバブルメディア上に置かれ、演算装置１１０により着脱可能型メディアドライブ１５０を使って読み取られ、実行される。またアプリケーションの各部分は、開示されるいくつかの実施形態によれば、プリンタ１７０によって実行されてもよい。
【００１７】
図２に例示的なプリンタ１７０のハイレベルなブロック図２００を示す。いくつかの実施形態においては、プリンタ１７０は、中央処理装置（ＣＰＵ）１７６、ファームウェア１７１、メモリ１７２、入出力ポート１７５、印刷エンジン１７７、および補助記憶装置１７３を接続するバス１７４を含む。またプリンタ１７０は、１つ以上の開示の実施形態によれば、ＰＰＭＬを処理するためのアプリケーションの一部分を実行することのできるその他の特定用途向け集積回路（ＡＳＩＣ）、および／またはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）１７８を含んでいてもよい。別の実施形態ではプリンタ１７０は、入出力ポート１７５およびコネクション１２０またはネットワーク１４０を使って、２次記憶メモリまたは演算装置１１０内のその他のメモリにアクセスすることもできる。いくつかの実施形態においては、プリンタ１７０は、プリンタオペレーティングシステムおよびその他の適切なアプリケーションソフトウェアを含むソフトウェアを実行することもできる。いくつかの実施形態においては、プリンタ１７０は、他のオプションのうち、用紙サイズ、排紙トレイ、色選択、および印刷解像度をユーザ設定可能なものにすることができる。
【００１８】
いくつかの実施形態においては、ＣＰＵ１７６は、汎用プロセッサとすることも、専用プロセッサとすることも、組み込みプロセッサとすることもできる。ＣＰＵ１７６は、制御情報および命令を含むデータをメモリ１７２および／またはファームウェア１７１と交換することができる。メモリ１７２は、ＳＤＲＡＭやＲＤＲＡＭといった任意の種類のダイナミックランダムアクセスメモリ（ＤＲＡＭ）とすることができるが、これらには限定されない。ファームウェア１７１は、起動シーケンス、事前定義のルーチン、およびその他のコードを含む命令およびデータを保持するが、これらには限定されない。いくつかの実施形態においては、ＰＰＭＬを処理するためのコードおよびデータがファームウェア１７１に置かれ、ＣＰＵ１７６によって処理される前にメモリ１７２にコピーされる。ファームウェア１７１に含まれるルーチンには、演算装置１１０から受け取られるＰＤＬまたはＰＰＭＬページ記述を変換するコードを含めることができる。いくつかの実施形態においては、ファームウェア１７１は、１つ以上のＰＤＬを含むＰＰＭＬを処理するルーチンを含む。またファームウェア１７１は、ディスプレイリスト中の表示コマンドを適切なラスタ化ビットマップに変換し、そのビットマップをメモリ１７２に格納するルーチンを含んでいてもよい。またファームウェア１７１は、圧縮ルーチンおよびメモリマネージメントルーチンを含んでいてもよい。いくつかの実施形態においてはファームウェア１７１内のデータおよび命令をアップグレード可能とすることもできる。
【００１９】
いくつかの実施形態においては、ＣＰＵ１７６が命令およびデータに従って動作し、ＡＳＩＣ／ＦＰＧＡ１７８および印刷エンジン１７７に制御およびデータを提供して印刷文書を生成する。また、いくつかの実施形態においては、ＡＳＩＣ／ＦＰＧＡ１７８が印刷エンジン１７７に制御およびデータを提供する。またＡＳＩＣ／ＦＰＧＡ１７８は、変換、圧縮、およびラスタ化のアルゴリズムのうちの１つ以上を実施してもよい。いくつかの実施形態においては、演算装置１１０が文書データを第１の印刷可能データに変換することができる。次いで第１の印刷可能データを、中間印刷可能データに変換するためにプリンタ１７０に送ることができる。プリンタ１７０は、中間印刷可能データを最終形態の印刷可能データに変換して、この最終形態に従って印刷を行う。いくつかの実施形態においては、第１の印刷可能データは文書のＰＤＬまたはＰＰＭＬ記述に該当する。
【００２０】
いくつかの実施形態においては、文書のＰＤＬまたはＰＰＭＬ記述から、一連のよりローレベルなプリンタ特有コマンドを有する最終印刷可能データへの変換には、オブジェクトのディスプレイリストを有する中間印刷可能データの生成が含まれる。いくつかの実施形態においては、ディスプレイリストはメモリ１７２または補助記憶装置１７３に格納される。例示的な補助記憶装置１７３は、内蔵または外付けハードディスク、メモリスティック、またはシステム１００で使用され得る他の記憶装置などとすることができる。いくつかの実施形態においては、ディスプレイリストは、プリンタ１７０、演算装置１１０、およびサーバ１３０のうちの１つ以上に置かれる。
【００２１】
図３に、ＰＤＬを使ったページ記述処理のシステムのハイレベルなアーキテクチャ３００の例を示す。言語選択ルーチン３２０は、プリンタ１７０における処理のために受け取られる言語データ３１０を用いて、印刷ジョブを処理するのに使用されるＰＤＬを決定するために用いることができる。例えば言語選択ルーチン３２０は、印刷ジョブ内のヘッダデータを調べて印刷ジョブで使用されるＰＤＬを決定することができる。言語選択ルーチン３２０は、「スニファ（sniffer）」とも呼ばれる。また言語選択ルーチン３２０は、ＰＤＬ言語プロセッサ３３０のエントリポイントを決定し、適切なエントリポイントにおいてＰＤＬ言語プロセッサ３３０を呼び出すこともできる。ＰＤＬ言語プロセッサ３３０は、印刷ジョブを処理してＰＤＬに特有のディスプレイリスト３５０およびページレイアウトデータ３４０を生成することができる。次いで、ディスプレイリスト３５０をレンダリングし、印刷エンジン１７７を使って印刷媒体上に印刷マークを記すことができる。言語選択ルーチン３２０が関与し、ＰＤＬ言語プロセッサ３３０によって実行される処理は、ファームウェア１７１、ＣＰＵ１７６、および／または印刷エンジン１７７のうちの１つ以上を使って行われてもよく、さらにＡＳＩＣ／ＦＰＧＡ１７８を利用してもよい。ディスプレイリスト３５０はメモリ１７２および／または補助記憶装置１７３に格納される。また、言語選択ルーチン３２０が関与し、ＰＤＬ言語プロセッサ３３０によって実行される処理の全部または一部は、演算装置１１０のホストコントローラ内で実施されてもよい。
【００２２】
図４に、従来のページ記述言語の処理を説明するフローチャートの例４００を示す。図４に示すように、ステップ４１０では、処理のための印刷ジョブが受け取られる。次にステップ４２０では、印刷ジョブで使用されるＰＤＬが決定される。ステップ４３０でアルゴリズムは、ＰＤＬ言語プロセッサ３３０を呼び出すためのエントリポイントを決定する。次にステップ４４０で、ＰＤＬ言語プロセッサ３３０が呼び出される。例えば、プリンタ１７０上で作動している言語選択ルーチン３２０が、印刷エンジン１７７によって受け取られる印刷ジョブを処理してエントリポイントを決定し、適切なＰＤＬ言語プロセッサ３３０を呼び出してもよい。
【００２３】
ステップ４５０では、ＰＤＬ言語プロセッサ３３０によりＰＤＬに特有のページレイアウトデータ３４０が決定され、設定される。ＰＤＬ言語プロセッサ３３０が呼び出された後、ステップ４６０では、ディスプレイリスト３５０またはＰＤＬに特有の印刷データの他の中間形態が作成され、適切なオブジェクトが読み込まれる。次にステップ４７０では、ディスプレイリスト３５０がラスタ化され、ステップ４８０では、ページがレンダリングされる。例えば、ディスプレイリスト３５０内のオブジェクトは、メモリ１７２に置かれたフレームバッファにレンダリングされてもよい。従来の処理では、例示的なディスプレイリスト３５０−１、３５０−２、および３５０−３といった別々の互いに異なるディスプレイリストが、それぞれＰＤＬ言語プロセッサ３３０−１、３３０−２、および３３０−３によって個々のＰＤＬのために作成され、更新され、保持される。したがって従来の方法では、印刷ジョブにおける新しいＰＤＬの呼び出しにより新しいディスプレイリストが作成され、ＰＤＬ言語プロセッサ３３０のうち、その新しいＰＤＬのための１つのＰＤＬ言語プロセッサ３３０によって生成されるオブジェクトを処理する。
【００２４】
次にステップ４９０で、印刷ジョブが完了しているかどうかの判定を行うことができる。印刷ジョブが完了している場合、アルゴリズムは終了し、次のジョブを待つ待機状態に入る。例えば、すべての印刷命令が処理され、各ページがレンダリングされたときに印刷ジョブが完了とマークされ、印刷ジョブが完了し、ステップ４９５でコントローラがＰＤＬ言語プロセッサ３３０を終了する。印刷ジョブが完了していない場合、アルゴリズムはステップ４５０に戻り、印刷ジョブの処理が完了するまで後続の各ステップを繰り返す。図３および図４に示すように、従来の処理では、ＰＤＬ言語プロセッサ３３０が印刷ジョブ内の命令を処理し、ディスプレイリスト３５０を作成し、これにデータを読み込むことができる。従来のＰＤＬにおいては、このようなページベースの処理が一般的である。
【００２５】
図５に、ＰＰＭＬと１つ以上のクライアントＰＤＬを使ったページ記述言語処理のシステムのハイレベルなアーキテクチャ５００の例を示す。図５に示し、以下でより詳細に論じるように、言語選択ルーチン５２０、すなわちスニファは、プリンタ１７０における処理のために受け取られる言語データ５１０を用いて、印刷ジョブを処理するのに使用されるＰＤＬを決定するために用いることができる。例えば、言語選択ルーチン５２０は、印刷ジョブ内のヘッダデータを調べて印刷ジョブで使用される言語を決定することができる。一実施形態では、言語選択ルーチン５２０は、印刷ジョブ内のヘッダデータを解析することにより印刷ジョブをＰＰＭＬに分類する。いくつかの実施形態においては、言語選択ルーチン５２０は、ＰＰＭＬ言語プロセッサ５３０のエントリポイントを決定し、適切なエントリポイントにおいてＰＰＭＬを呼び出すことができる。ＰＰＭＬ言語プロセッサ５３０は印刷ジョブを処理して、ＰＰＭＬに特有のディスプレイリスト５６０およびページレイアウトデータ５４０を生成することができる。
【００２６】
ＰＰＭＬで実施される印刷ジョブは、１つ以上の非ＰＰＭＬ  ＰＤＬ(non-PPML PDSs)で記述された１つ以上の言語および／またはグラフィックオブジェクトを含むことができる。ＰＰＭＬは、様々な別個のＰＤＬで書かれた命令をページ記述のために使用させることのできるＰＤＬの一種とみなすことができる。これらの非ＰＰＭＬ  ＰＤＬは、ＰＰＭＬ言語プロセッサ５３０によって呼び出すことができ、しばしばクライアントＰＤＬと呼ばれる。いくつかの実施形態においては、クライアントＰＤＬは、ＪＰＥＧやＴＩＦＦ等といったオブジェクトフォーマットおよび画像フォーマットの１つ以上を含むこともできる。クライアントＰＤＬのセットは、印刷ジョブのＰＰＭＬ記述に埋め込むことのできるＰＤＬの範囲を含む。例えば、ページ記述のためのＰＰＭＬ印刷データは、様々な異なるＰＤＬで書かれた言語オブジェクトを使ったグラフィックコンテンツの記述を含むことができる。よってＰＤＬで書かれたページ記述は、Ａｄｏｂｅ（商標）ＰＤＦで記述されたあるグラフィック言語オブジェクトを含むことができ、同時に、同じページ上の別のグラフィック言語オブジェクトをＰｏｓｔＳｃｒｉｐｔ（商標）で記述することもできる。ＰＰＭＬは様々なＰＤＬでグラフィック出力を記述することのできる能力を提供するため、特定のオブジェクトを記述する際に個々のＰＤＬによって与えられる利点を維持することができ、誰が使っても全体の印刷品質および／または利用速度が向上する。加えてＰＰＭＬは、既存のＰＤＬのために以前に開発されたツールおよびグラフィックの財産を活用することができる。一実施形態では、文書のＰＰＭＬ記述またはＰＰＭＬ自体を生成するユーザまたはプログラムは、特定のグラフィック言語オブジェクトに使用され得るクライアントＰＤＬのセットを決定することができる。したがって、様々な用途（application）にわたって印刷品質と、処理速度と、その他のジョブパラメータの間のトレードオフを制御することができる。
【００２７】
いくつかの実施形態においては、ＰＰＭＬ言語プロセッサ５３０は、印刷ジョブ内の言語オブジェクトに遭遇すると、適切なエントリポイントにおいてクライアントＰＤＬに適したＰＤＬ言語プロセッサ３３０を呼び出すことができる。クライアントＰＤＬのためのＰＤＬ言語プロセッサ３３０は、印刷ジョブを処理して、ディスプレイリスト５６０にデータを読み込む。ディスプレイリスト５６０は、ＰＰＭＬ言語プロセッサ５３０によって作成され、かつ／または使用されるものであり、ＰＰＭＬ言語プロセッサ５３０によって処理されるＰＰＭＬ印刷データに特有のものとすることができる。例えばＰＰＭＬ言語プロセッサ５３０は、ＰＰＭＬ印刷データを含む印刷ジョブであって、更にＰＤＬ−１およびＰＤＬ−２で書かれた１つ以上の言語オブジェクトを含む印刷ジョブを処理して、エントリポイントを決定し、適切なクライアントＰＤＬ言語プロセッサ３３０−１および３３０−２を呼び出す。いくつかの実施形態においては、クライアントＰＤＬ言語プロセッサ３３０のうちの１つを呼び出すときに、ＰＰＭＬ言語プロセッサ５３０は、適切なクライアントＰＤＬ言語プロセッサ３３０に言語オブジェクトを処理させ、ディスプレイリスト５６０にデータを読み込ませるために、ページレイアウトデータ５４０およびディスプレイリスト５６０の位置に関する情報を盛り込む（include）。一実施形態では、クライアントＰＤＬ言語プロセッサが呼び出された後で、クライアントＰＤＬにより、ディスプレイリスト５６０またはＰＰＭＬに特有の印刷データの他の中間形態に、適切なオブジェクトが読み込まれる。一実施形態では、ＰＰＭＬ言語プロセッサ５３０が印刷ジョブのページデータを処理する間にページレイアウト命令に遭遇すると、文書用のＰＰＭＬページレイアウトデータを含み得るページレイアウトデータ５４０がＰＰＭＬ言語プロセッサ５３０により決定され、設定される。言語オブジェクト自体が１つ以上のクライアントＰＤＬで記述されていてもよい場合には、ＰＰＭＬページレイアウトデータ５４０はページサイズおよび／またはグラフィックオブジェクトサイズデータを含んでいてもよい。
【００２８】
印刷データ内の言語オブジェクトが処理されたとＰＰＭＬ言語プロセッサ５３０が判定した後で、ディスプレイリスト５６０をレンダリングし、印刷エンジン１７７を使って印刷媒体上に印刷マークを記すことができる。言語選択ルーチン５２０が関与し、ＰＰＭＬ言語プロセッサ５３０およびクライアントＰＤＬ言語プロセッサ３３０の１つ以上によって実行される処理は、ファームウェア１７１、ＣＰＵ１７６、および／または印刷エンジン１７７のうちの１つ以上を使って行われてもよく、さらにＡＳＩＣ／ＦＰＧＡ１７８を利用してもよい。ディスプレイリスト５６０または別のメモリ位置がメモリ１７２および／または補助記憶装置１７３に格納されてもよい。言語選択ルーチン５２０が関与し、ＰＰＭＬ言語プロセッサ５３０および／またはクライアントＰＤＬ言語プロセッサ３３０によって実行される処理の全部または一部は、演算装置１１０のホストコントローラ内で実施されてもよい。
【００２９】
いくつかの実施形態においては、ジョブが完全に単一の非ＰＰＭＬ  ＰＤＬ言語で記述されている場合、言語選択ルーチン５２０は、その通常のエントリポイントにおいて適切なＰＤＬ言語プロセッサ３３０を直接呼び出す。従ってジョブは、ＰＤＬ文書の通常のプロセスフローに従って処理される。いくつかの実施形態においては、下層のコードに最小限の変更を加えるだけで既存の機能を活用するために、システムアーキテクチャ５００が既存のＰＤＬ処理アーキテクチャの上の層として実施される。
【００３０】
図６に、１つ以上の言語で書かれたＰＤＬオブジェクトを組み込んだＰＰＭＬデータを処理するアルゴリズムの例の各部分を説明するフローチャート６００を示す。図６に示すように、ステップ６１０では、プリンタ１７０において処理するために受け取られる印刷ジョブが解析され、当該印刷ジョブで使用される言語が決定される。例えば言語選択ルーチン５２０は、印刷ジョブ内のヘッダデータを解析して、使用される言語を決定する。ステップ６１５では、使用される言語がＰＰＭＬであると判定された場合、初期設定およびその他のＰＰＭＬ特有の機能が実行される。いくつかの実施形態においては、これらの機能にディスプレイリストの作成および初期設定を含めることもできる。いくつかの実施形態においては、これらの機能はＰＰＭＬ言語プロセッサ５３０によって実行される。ステップ６２０では、ＰＰＭＬに特有のページレイアウトデータ５４０が決定され、設定される。いくつかの実施形態においては、ＰＰＭＬに特有のページレイアウトデータ５４０を、ＰＰＭＬ言語プロセッサ５３０が決定し、設定することができる。
【００３１】
印刷ジョブにおいて非ＰＰＭＬ  ＰＤＬが使用されていると判定された場合、ＰＤＬ言語プロセッサ３３０を呼び出すためのエントリポイントが決定される。例えばこのステップは、言語選択ルーチン５２０によって行われてもよい。続いて、図３および図４に示し、これらに関連して先に論じた方法に従って、印刷ジョブの処理が行われる。いくつかの実施形態においては、この処理はＰＤＬ言語プロセッサ３３０によって行われる。
【００３２】
ステップ６２５では、ＰＰＭＬ印刷命令内の言語オブジェクトに遭遇するまで、１つ以上の文書ページの印刷ジョブまたはＰＰＭＬ印刷データが構文解析される。この構文解析は、例えばＰＰＭＬ言語プロセッサ５３０によって行われる。ＰＰＭＬ印刷ジョブ内で言語オブジェクトが見つかると、ステップ６３０で、その言語オブジェクトに関連するクライアントＰＤＬの言語エントリポイントが決定され、またはマップされる。この決定またはマッピングは、一実施形態では、ＰＰＭＬ言語プロセッサ５３０によって行われる。例えばこの決定を行うために、ＰＰＭＬ言語プロセッサ５３０は、１つ以上のクライアントＰＤＬに対する言語エントリポイントのテーブルを備えていてもよい。
【００３３】
次いでステップ６４０でＰＤＬ言語プロセッサ３３０が呼び出される。一実施形態では、ＰＰＭＬ言語プロセッサ５３０が言語エントリポイント関数を使ってＰＤＬ言語プロセッサ３３０を呼び出すことができる。一実施形態では、クライアントＰＤＬのためのＰＤＬ言語プロセッサ３３０が、アプリケーションプログラミングインターフェース（ＡＰＩ）を使って呼び出される。クライアントＰＤＬによって使用されるディスプレイリスト５６０および／またはその他の構造のメモリ位置を指すアドレスが、呼び出しのときにＰＤＬ言語プロセッサ３３０に提供される。一実施形態では、クライアントＰＤＬのためのＰＤＬ言語プロセッサ３３０が、提供されるアドレスを使ってディスプレイリスト５６０内でグラフィック出力の位置付け（locate）および格納を行う。一実施形態では、この開始アドレスは、ＰＰＭＬ言語プロセッサ５３０によってＰＰＭＬ印刷データのためにすでに作成されているディスプレイリスト５６０のアドレスとすることができる。一実施形態では、ＰＤＬ言語プロセッサ３３０を呼び出すのにＡＰＩが使用され、ＡＰＩに提供されるパラメータが個々のクライアントＰＤＬへのエントリポイントと、ディスプレイリスト５６０などのメモリ位置との両方を記述する。これらエントリポイント及びメモリ位置は、ＰＰＭＬに特有、またはＰＰＭＬ言語プロセッサ５３０によって処理されるＰＰＭＬ印刷データに特有である。例えばＰＰＭＬ言語プロセッサ５３０がクライアントＰＤＬのためのＰＤＬ言語プロセッサ３３０にＡＰＩおよび／または開始アドレスを提供してもよい。
【００３４】
一実施形態では、ステップ６４５では、ページレイアウトデータ５４０に従ってグラフィック出力を生成するために、言語オブジェクトがさらに構文解析される。一実施形態では、ＰＤＬ言語プロセッサ３３０がこの機能を果たす。ページレイアウトデータ５４０は、グラフィック出力を書式設定し、またはこれを変換するのに使用される。一実施形態では、クライアントＰＤＬのためのＰＤＬ言語プロセッサ３３０は、ＰＰＭＬ言語プロセッサ５３０によって以前に決定されたページレイアウトデータ５４０を適用する。
【００３５】
いくつかの実施形態においては、ステップ６４０でクライアントＰＤＬのためのＰＤＬ言語プロセッサ３３０が呼び出されるときに、クライアントＰＤＬのためのＰＤＬ言語プロセッサ３３０にＰＰＭＬページレイアウトデータ５４０へのアクセス権が与えられる。一実施形態では、ＡＰＩは、ＰＰＭＬ言語プロセッサ５３０とクライアントＰＤＬのためのＰＤＬ言語プロセッサ３３０との一方または両方に提供され、ＰＰＭＬでページレイアウトデータ５４０のエントリポイントを記述する。
【００３６】
一実施形態では、クライアントＰＤＬのためのＰＤＬ言語プロセッサ３３０が「クライアントモード」で動作しているという判断がなされ、ステップ６４５でＰＰＭＬページレイアウトデータ５４０が検索され、適用される。例えばクライアントＰＤＬ言語プロセッサ３３０は、ＰＤＬレイアウト命令を識別すると、クライアントＰＤＬ言語プロセッサ３３０がクライアントモードで動作していると判断する。その場合、クライアントＰＤＬ言語プロセッサ３３０は、ＰＰＭＬ言語プロセッサ５３０により以前に決定されたＰＰＭＬページレイアウトデータ５４０を検索し、これをグラフィック出力に適用することができる。
【００３７】
一実施形態では、クライアントＰＤＬのためのＰＤＬ言語プロセッサ３３０がクライアントモードで動作していないと判断され、ＰＤＬに特有のＰＤＬページレイアウトデータが判断（determined）され、または設定される。一実施形態では、これらの判断がＰＤＬ言語プロセッサ３３０によって行われる。例えば、印刷ジョブが完全に単一のＰＤＬで記述されているときには、図５に示すように、ＰＤＬ言語プロセッサ３３０が直接呼び出され、固有のモードで動作する。したがって、いくつかの実施形態においては、図３および図４で説明したようなＰＰＭＬのコンテキストの外部のＰＤＬ言語プロセッサ３３０の動作と同様に、１つ以上のＰＤＬレイアウト命令を使って、ＰＤＬページレイアウトデータ３４０を決定し、設定することができる。例えば、１つ以上のＰＤＬレイアウト命令には、ページサイズ命令および／またはグラフィックオブジェクトサイズ命令が含まれてもよい。
【００３８】
ステップ６５０では、ディスプレイリスト５６０に適切なオブジェクトを読み込むことができる。例えば、クライアントＰＤＬのためＰＤＬ言語プロセッサ３３０がこの機能を果たす。次に、ステップ６５５では、クライアントＰＤＬ印刷ジョブが完了しているかどうか判定される。クライアントＰＤＬジョブが完了している場合、ステップ６６０でクライアントＰＤＬ言語プロセッサ３３０が終了し、ＰＰＭＬ言語プロセッサ５３０に戻る。クライアントＰＤＬジョブが完了していない場合、アルゴリズムはステップ６４５に戻り、ＰＤＬ印刷ジョブの処理が完了するまで後続のステップを反復する。
【００３９】
ステップ６６５で、ＰＰＭＬページが完了しているかどうか判定される。ＰＰＭＬページが完了している場合、ディスプレイリスト５６０がラスタ化され、ページがレンダリングされる。ＰＰＭＬページが完了していない場合、アルゴリズムはステップ６２５に戻り、ＰＰＭＬページの処理が完了するまで後続のステップを反復する。具体的には、文書ページは、１つ以上のクライアントＰＤＬを使って処理するための別の言語オブジェクトを含む。ＰＰＭＬページが完了した後、ステップ６７５ではＰＰＭＬ印刷ジョブが完了しているかどうか判定される。ＰＰＭＬ印刷ジョブが完了している場合、ステップ６８０でＰＰＭＬ言語プロセッサ５３０が終了する。印刷ジョブが完了していない場合、処理はステップ６２０に進み、印刷ジョブの処理が完了されるまで後続のステップを反復する。
【００４０】
いくつかの実施形態においては、印刷ジョブがＰＰＭＬ印刷ジョブであるかどうかの判定が、ＰＤＬレイアウト命令を実施し、またはＰＰＭＬページレイアウトデータを適用する前に行われる。また、いくつかの実施形態においては、印刷ジョブがＰＰＭＬ印刷ジョブであるかどうかの判定が、ディスプレイリスト５６０またはディスプレイリスト３５０にグラフィック出力を出力する前に行われる。例えば、ＰＤＬ言語プロセッサ３３０がこれらの機能を果たしてもよい。
【００４１】
図６に示すように、処理はページベースで行われる。一実施形態では、クライアントＰＤＬのためのＰＤＬ言語プロセッサ３３０は、あたかもページベースの印刷ジョブを実行しているかのように動作することができる。この意味において、ページベースのＰＤＬ処理を利用するプリンタアーキテクチャは、引き続きＰＤＬ印刷ジョブを処理することができ、同時に、さらにＰＰＭＬで提供される印刷ジョブのためのＰＰＭＬ機能もサポートすることができる。
【００４２】
図７に、ＰＰＭＬを使ってＰＤＬを処理するシステムにおいて使用するための言語エントリポイントのテーブル７００の例を示す。図７に示すように、言語エントリポイントのテーブル７００は、言語列挙名７１０〜７４０と言語エントリポイント関数７５０〜７８０とを含む。一実施形態では、テーブル７００はＰＰＭＬ言語プロセッサ５３０に備えられる。テーブル７００は、言語列挙名７１０〜７４０および言語エントリポイント関数７５０〜７８０を含むものとして示されているが、言語列挙名と言語エントリポイント関数はより多くても、より少なくてもよい。言語エントリポイント関数７５０〜７８０は、クライアントＰＤＬのＰＤＬ言語プロセッサ３３０を呼び出すためにＰＰＭＬ言語プロセッサ５３０によって呼び出される関数である。
【００４３】
一実施形態では、ＰＰＭＬ言語プロセッサ５３０は、言語オブジェクトに遭遇すると、言語定義命令などの印刷データの一部を受け取る。一実施形態では、ＰＰＭＬ命令内の言語定義命令は、ＰＰＭＬ言語プロセッサ５３０によって処理される言語オブジェクトのためのＳＯＵＲＣＥ要素のＦＯＲＭＡＴ属性の一部である。ＰＰＭＬ言語プロセッサ５３０は内部で、言語オブジェクトにおいて使用される言語を判定するルーチンを実施する。一実施形態では、ＰＰＭＬ言語プロセッサ５３０は、まず、言語定義命令などの印刷データ内の印刷命令を見て、グラフィックオブジェクトをレンダリングするのにどのクライアントＰＤＬを使用することができるか判定する。例えば、ＰＰＭＬ言語プロセッサ５３０は、言語定義命令を識別し、この言語定義命令を使って言語列挙名７１０〜７４０を決定する。一実施形態では、ＰＰＭＬ言語プロセッサ５３０は、言語オブジェクトの一部分を解析して言語列挙名７１０〜７４０を決定することができる。続いてＰＰＭＬ言語プロセッサ５３０は、テーブル７００を使って言語列挙名７１０〜７４０を、対応する言語エントリポイント関数７５０〜７８０にマップする。
【００４４】
例えば、以下のＸＭＬコード断片を用いて説明する。
＜ＳＯＵＲＣＥ  ＤＩＭＥＮＳＩＯＮＳ＝“１００  １００”  ＦＯＲＭＡＴ＝“ＡＰＰＬＩＣＡＴＩＯＮ／ＰＯＳＴＳＣＲＩＰＴ”＞
ＰＰＭＬ言語プロセッサ５３０は、上記のＸＭＬコード断片を構文解析すると、文字列「ＡＰＰＬＩＣＡＴＩＯＮ／ＰＯＳＴＳＣＲＩＰＴ」を、「ＰＰＭＬ＿ＰＯＳＴＳＣＲＩＰＴ」の言語列挙名７１０に対応する言語定義命令であると識別する。次いでＰＰＭＬ言語プロセッサ５３０はテーブル７００を使って、言語列挙名７１０に対応する言語エントリポイント関数７５０を見つける。このようにして、ＰＰＭＬ言語プロセッサ５３０は、例示的な言語エントリポイント関数７５０「ＰＰＭＬ  ＰＯＳＴＳＣＲＩＰＴＥＮＴＲＹ」を探索する。この関数は、例示的クライアントＰＤＬ  ＰｏｓｔＳｃｒｉｐｔ（商標）で書かれた言語オブジェクトを処理するためのＰＤＬ  ＰｏｓｔＳｃｒｉｐｔ（商標）のＰＤＬ言語プロセッサ３３０をＰＰＭＬ言語プロセッサ５３０が呼び出すのに使用することのできるものである。
【００４５】
ＰＤＬを使ったページデータ処理は以下の例によって示すことができる。ＰＰＭＬ言語プロセッサ５３０は以下のような例示的命令を受け取る。
【００４６】
<?xml version="1.0" encoding="UTF-8"?>
<PPML>
<PAGE_DESIGN TrimBox="0 0 612 792"/>
<JOB Label="1">
<DOCUMENT Label="1">
<PAGE Label="1">
<MARK Position="20 220">
<VIEW/>
<OBJECT Position="0 0">
<SOURCE Dimensions="545 20" Format="application/postscript">  
<INTERNAL_DATA> << /PageSize [595 842] /ImagingBBox null>> setpagedevice /Helvetica findfont 16 scalefont setfont 0 8 moveto (PostScript Selects A4) show</INTERNAL_DATA>
</SOURCE>
<VIEW/>
</OBJECT>
</MARK>
</PAGE>
</DOCUMENT>
</JOB>
</PPML>
【００４７】
命令<PAGE_DESIGN TrimBox="0 0 612 792"/>は、ページレイアウトデータ５４０における紙寸法をレターサイズ（８．５インチ×１１インチ）に設定することができる。命令<SOURCE Dimensions="545 20" Format="application/postscript">を構文解析すると、ＰＰＭＬ言語プロセッサ５３０は、文字列「application/postscript」を「ＰＰＭＬ＿ＰＯＳＴＳＣＲＩＰＴ」の言語列挙名７１０に対応する言語定義命令であると識別する。次いで、ＰＰＭＬ言語プロセッサ５３０はテーブル７００を使って、言語列挙名７１０に対応する言語エントリポイント関数７５０を探索する。ＰＰＭＬ言語プロセッサ５３０は、例示的言語エントリポイント関数７５０「ＰＰＭＬ  ＰｏｓｔｓｃｒｉｐｔＥｎｔｒｙ」を探索する。この関数は、例示的クライアントＰＤＬ  ＰｏｓｔＳｃｒｉｐｔ（商標）で書かれた言語オブジェクトを処理するための例示的クライアントＰＤＬ  ＰｏｓｔＳｃｒｉｐｔ（商標）のＰＤＬ言語プロセッサ３３０をＰＰＭＬ言語プロセッサ５３０が呼び出すのに使用することのできる関数である。
【００４８】
この時点においては、ＰｏｓｔＳｃｒｉｐｔ（商標）ＰＤＬのためのＰＤＬ言語プロセッサ３３０が動作し、ＰＤＬレイアウト命令<INTERNAL_DATA> << /PageSize [595 842] /ImagingBBox null>> setpagedevice /Helvetica findfont 16 scalefont setfont 0 8 moveto (PostScript Selects A4) show</INTERNAL_DATA>を使用している。したがって、ＰｏｓｔＳｃｒｉｐｔ（商標）のためＰＤＬ言語プロセッサ３３０は、紙サイズをＡ４に変更しようとする。ＰＰＭＬ言語プロセッサ５３０は、ＰＤＬレイアウト命令を無視し、ＰＰＭＬページレイアウトデータ５４０を適用してページレイアウトをレターサイズとして維持できる。
【００４９】
本発明の他の実施形態は、本明細書の考察、及び、本明細書中に開示された本発明の１つ以上の実施形態の実施により、当業者にとって明らかになるであろう。明細書及び例は例示的なものに過ぎないことを意図しており、本発明の本来の範囲及び要旨は、以下の特許請求の範囲に示されるものである。
【符号の説明】
【００５０】
１００  文書を印刷するシステム
１１０  演算装置
１２０  コネクション
１３０  サーバ
１４０  ネットワーク
１５０  着脱可能型メディアドライブ
１７０  プリンタ
１７１  ファームウェア
１７２  メモリ
１７３  ２次記憶
１７４  バス
１７５  入出力ポート
１７６  ＣＰＵ
１７７  印刷エンジン
３１０  言語データ
３２０  言語選択ルーチン
３３０  ＰＤＬ言語プロセッサ
３４０  ページレイアウトデータ
３５０  ディスプレイリスト
５１０  言語データ
５２０  言語選択ルーチン
５３０  ＰＰＭＬ言語プロセッサ
５４０  ページレイアウトデータ
７００  言語エントリポイントのテーブル
【図１】
0005261250.tif 000002
【図２】
0005261250.tif 000003
【図３】
0005261250.tif 000004
【図４】
0005261250.tif 000005
【図５】
0005261250.tif 000006
【図６】
0005261250.tif 000007
【図７】
0005261250.tif 000008