(57)【特許請求の範囲】
【請求項１】
ＰＤＬデータを含む印刷データの処理方法であって、
印刷データを解析して、該印刷データにおける少なくとも１つの再利用可能なリソースをグローバル一意識別子により識別する工程と、
前記識別された再利用可能なリソースを、該再利用可能なリソースの少なくとも１つの特性を解析することにより決定したいくつかの内部形式のうちの少なくとも１つに変換する工程であって、前記内部形式は複数のＰＤＬデータタイプに共通している工程と、
前記フォーマット済みの再利用可能なリソースを記憶する工程と、
ページのビットマップ画像を作成する間に前記再利用可能なリソースが参照されるごとに、前記記憶されたフォーマット済みの再利用可能なリソースのレンダリングされたバージョンを用いて前記ページの前記ビットマップ画像を作成する工程とを有し、
前記識別された再利用可能なリソースを該再利用可能なリソースの少なくとも１つの特性を解析することにより決定したいくつかの内部形式のうちの少なくとも１つに変換する工程は、前記再利用可能なリソースを、データ構造におけるデータフィールドのインスタンスと関連づける工程であって、
前記リソースがテンポラリである場合は、前記データフィールドインスタンスはページに対して持続し、
前記リソースが複数ページにおいて用いられる場合は、前記データフィールドインスタンスは複数ページにわたって持続する工程を更に有する、印刷データの処理方法。
【請求項２】
前記少なくとも１つの再利用可能なリソースは、明示的リソース及び回収リソースのうち一以上を有する印刷データから識別される、請求項１記載の方法。
【請求項３】
前記識別された再利用可能なリソースを該再利用可能なリソースの少なくとも１つの特性を解析することにより決定したいくつかの内部形式のうちの少なくとも１つに変換する工程は、
前記再利用可能なリソースが複数文書において用いられる場合は、前記データフィールドインスタンスは複数文書にわたって持続する工程を更に有する、請求項１又は２記載の方法。
【請求項４】
前記再利用可能なリソースをデータ構造におけるデータフィールドのインスタンスと関連づける工程は、
ディスプレイリストオブジェクトをレンダリングするのに必要な時間が時間閾値未満である場合は、前記再利用可能なリソースに対応するディスプレイリストオブジェクトを生成する工程、
前記レンダリングされた再利用可能なリソースに必要なメモリ容量が空間閾値を越える場合は、前記再利用可能なリソースに対応するディスプレイリストオブジェクトを生成する工程、及び
その他の場合は前記再利用可能なリソースのレンダリングされた形式を生成する工程、のうちの１つを実行する工程を更に有する、請求項１〜３の何れか一項に記載の方法。
【請求項５】
前記再利用可能なリソースのレンダリングされたバージョンはキャッシュに記憶される、請求項４記載の方法。
【請求項６】
前記再利用可能なリソースのレンダリングされたバージョンは二次記憶装置に記憶される、請求項４記載の方法。
【請求項７】
前記再利用可能なリソースのレンダリングされたバージョンはフレームバッファに記憶される、請求項４記載の方法。
【請求項８】
前記再利用可能なリソースは、テキストオブジェクト、画像オブジェクト及びグラフィックオブジェクトのうち一以上を有する、請求項１〜７の何れか一項に記載の方法。
【請求項９】
前記印刷データを解析して該印刷データにおける少なくとも１つの再利用可能なリソースを識別する工程は、前処理フロントエンドにより実行される、請求項１〜８の何れか一項に記載の方法。
【請求項１０】
プロセッサによる実行時に、ＰＤＬデータを含む印刷データの処理方法の工程を実行する命令を含むコンピュータにより読取可能な媒体であって、
前記方法は、
印刷データを解析して、該印刷データにおける少なくとも１つの再利用可能なリソースをグローバル一意識別子により識別する工程と、
前記識別された再利用可能なリソースを、該再利用可能なリソースの少なくとも１つの特性を解析することにより決定したいくつかの内部形式のうちの少なくとも１つに変換する工程であって、前記内部形式は複数のＰＤＬデータタイプに共通している工程と、
前記フォーマット済みの再利用可能なリソースを記憶する工程と、
ページのビットマップ画像を作成する間に前記再利用可能なリソースが参照されるごとに、前記記憶されたフォーマット済みの再利用可能なリソースのレンダリングされたバージョンを用いて前記ページの前記ビットマップ画像を作成する工程とを有し、
前記識別された再利用可能なリソースを該再利用可能なリソースの少なくとも１つの特性を解析することにより決定したいくつかの内部形式のうちの少なくとも１つに変換する工程は、前記再利用可能なリソースを、データ構造におけるデータフィールドのインスタンスと関連づける工程であって、
前記リソースがテンポラリである場合は、前記データフィールドインスタンスはページに対して持続し、
前記リソースが複数ページにおいて用いられる場合は、前記データフィールドインスタンスは複数ページにわたって持続する工程を更に有する、コンピュータにより読取可能な媒体。
【請求項１１】
前記少なくとも１つの再利用可能なリソースは、明示的リソース及び回収リソースのうち一以上を有する印刷データから識別される、請求項１０記載のコンピュータにより読取可能な媒体。
【請求項１２】
前記識別された再利用可能なリソースを該再利用可能なリソースの少なくとも１つの特性を解析することにより決定したいくつかの内部形式のうちの少なくとも１つに変換する工程は、
前記再利用可能なリソースが複数文書において用いられる場合は、前記データフィールドインスタンスは複数文書にわたって持続する工程を更に有する、請求項１０又は１１記載のコンピュータにより読取可能な媒体。
【請求項１３】
前記再利用可能なリソースをデータ構造におけるデータフィールドのインスタンスと関連づける工程は、
ディスプレイリストオブジェクトをレンダリングするのに必要な時間が時間閾値未満である場合は、前記再利用可能なリソースに対応するディスプレイリストオブジェクトを生成する工程、
前記レンダリングされた再利用可能なリソースに必要なメモリ容量が空間閾値を越える場合は、前記再利用可能なリソースに対応するディスプレイリストオブジェクトを生成する工程、及び
その他の場合は前記再利用可能なリソースのレンダリングされた形式を生成する工程、のうちの１つを実行する工程を更に有する、請求項１０〜１２の何れか一項に記載のコンピュータにより読取可能な媒体。
【請求項１４】
前記少なくとも１つの識別された再利用可能なリソースのレンダリングされたバージョンはフレームバッファに記憶される、請求項１０〜１３の何れか一項に記載のコンピュータにより読取可能な媒体。
【請求項１５】
前記少なくとも１つの識別された再利用可能なリソースのレンダリングされたバージョンはキャッシュに記憶される、請求項１０〜１３の何れか一項に記載のコンピュータにより読取可能な媒体。
【請求項１６】
前記少なくとも１つの識別された再利用可能なリソースのレンダリングされたバージョンは二次記憶装置に記憶される、請求項１０〜１３の何れか一項に記載のコンピュータにより読取可能な媒体。
【請求項１７】
前記印刷データを解析して前記ＰＤＬデータにおける少なくとも１つの再利用可能なリソースを識別する工程は、前処理フロントエンドにより実行される、請求項１０〜１６の何れか一項に記載のコンピュータにより読取可能な媒体。
【請求項１８】
プロセッサによる実行時に、ＰＤＬデータを含む印刷データの処理方法の工程を実行する命令を含むコンピュータにより読取可能なメモリであって、
前記方法は、
印刷データを解析して、該印刷データにおける少なくとも１つの再利用可能なリソースをグローバル一意識別子により識別する工程と、
前記識別された再利用可能なリソースを、該再利用可能なリソースの少なくとも１つの特性を解析することにより決定したいくつかの内部形式のうちの少なくとも１つに変換する工程であって、前記内部形式は複数のＰＤＬデータタイプに共通している工程と、
前記フォーマット済みの再利用可能なリソースを記憶する工程と、
ページのビットマップ画像を作成する間に前記再利用可能なリソースが参照されるごとに、前記記憶されたフォーマット済みの再利用可能なリソースのレンダリングされたバージョンを用いて前記ページの前記ビットマップ画像を作成する工程とを有し、
前記識別された再利用可能なリソースを該再利用可能なリソースの少なくとも１つの特性を解析することにより決定したいくつかの内部形式のうちの少なくとも１つに変換する工程は、前記再利用可能なリソースを、データ構造におけるデータフィールドのインスタンスと関連づける工程であって、
前記リソースがテンポラリである場合は、前記データフィールドインスタンスはページに対して持続し、
前記リソースが複数ページにおいて用いられる場合は、前記データフィールドインスタンスは複数ページにわたって持続する工程を更に有する、コンピュータにより読取可能なメモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は印刷の分野に関し、特に、ページ記述言語のリソースを管理するシステム及び方法に関する。
【背景技術】
【０００２】
文書処理ソフトウェアは、ユーザが文書を便利に閲覧し、編集し、処理し、記憶することを可能にする。文書におけるページは、印刷において現れるように正確にスクリーンに表示されることができる。しかし、文書が印刷可能とされる前は、文書のページはページ記述言語（「ＰＤＬ」）で記述されることが多い。本願で使用されるように、ＰＤＬは、ＰｏｓｔＳｃｒｉｐｔ、Ａｄｏｂｅ  ＰＤＦ、ＨＰ  ＰＣＬ、Ｍｉｃｒｏｓｏｆｔ  ＸＰＳ及びそれらの変種（ｖａｒｉａｎｔ）、並びに文書におけるページを記述するのに用いられる他のいかなる言語をも含みうる。文書のＰＤＬ記述は、文書における各ページの高級の（ｈｉｇｈ−ｌｅｖｅｌ）記述を提供する。このＰＤＬ記述は、多くの場合、文書が印刷されるときに一連のより低級の（ｌｏｗｅｒ−ｌｅｖｅｌ）プリンタ固有コマンドに翻訳される。ＰＤＬからより低級のプリンタ固有コマンドへの翻訳処理は複雑であることがあり、特定のプリンタが示す特性及び能力に依存することがある。印刷媒体に点を配置するのに用いられる、文書のＰＤＬ記述からより低級の記述への翻訳処理は、ラスタライゼーションと呼ばれる。
【０００３】
１つの側面において、印刷ジョブには２つの一般的なタイプがあると考えられる。不可変データ印刷ジョブと呼ばれる１つ目のタイプでは、ページのテキスト要素及びグラフィック要素のコードはプリンタに送信され、プリンタによりいったんラスタライズされてもよい。その後、プリンタは指定された数だけコピーを印刷することができる。不可変データ印刷ジョブでは、各コピーは同一であることから、多くのコピーが印刷される場合でも、ラスタライゼーションは一度実行される。
【０００４】
可変データ印刷ジョブと呼ばれる２つ目のタイプでは、ページのテキスト及びグラフィック要素のコードは、そのページのカスタマイズドバーションが印刷されるごとにプリンタに送信されてもよい。ラスタライゼーションは、各コピーの内容の大部分が重複しうるとしてもカスタマイゼーションによりコピーが同一ではないかもしれないため、印刷されるコピーごとに行う必要のある可能性がある。このように、可変データ印刷ジョブの印刷には、実質的により時間がかかる。
【０００５】
ＰＤＬは、印刷言語がテキスト及びグラフィックの要素を識別し、記憶し、再利用することを可能とするＰＰＭＬ（Ｐｅｒｓｏｎａｌ  Ｐｒｉｎｔｅｒ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）規格に準拠する言語の部類を含む。このようにＰＰＭＬ対応言語は、テキスト及びグラフィック要素の記憶及び再利用を可能とすることによってラスタライゼーション及び帯域のオーバーヘッドを低減し、可変データ印刷ジョブの印刷速度を上げることができる。ＰＰＭＬ対応言語は、プリンタがデータ構成要素をページレベルではなくオブジェクトレベルで操作することを可能とする。すなわち、プリンタに記憶された情報の粒度をオブジェクトレベルまで低減することにより、ＰＰＭＬ対応言語は、オブジェクトに名前を付与することをコードに許容しており、可変データジョブの印刷処理の間、必要に応じてオブジェクトを再利用する。再利用可能なオブジェクトは、ＰＰＭＬにおけるリソースとも呼ばれることが多い。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
歴史的に、時間が経つに連れて複数のＰＤＬが出現したのに伴い、種々の別々の技術が異なるＰＤＬの類似するオブジェクトを処理するように進化した。例えば、プリンタは、１つのＰＤＬにおいて再利用されたオブジェクトを最適化するために或る技術を用い、また、異なるＰＤＬにおいて再利用されたオブジェクトを処理するために異なる技術を用いる可能性がある。したがって、文書のＰＤＬ記述をプリンタ固有コマンドに効率的に処理し、従来のＰＤＬ処理に伴う複雑性を排除するには、より多目的なスキームが必要である。
【課題を解決するための手段】
【０００７】
本発明に従い、印刷リソース管理のためのシステム及び方法が示される。一部の実施形態では、ＰＤＬデータを含む印刷データの処理方法は、印刷データを解析して、該印刷データにおける少なくとも１つの再利用可能なリソースをグローバル一意識別子により識別する工程と、前記識別された再利用可能なリソースを、該再利用可能なリソースの少なくとも１つの特性を解析することにより決定したいくつかの内部形式のうちの少なくとも１つに変換する工程であって、前記内部形式は複数のＰＤＬデータタイプに共通している工程と、前記フォーマット済みの再利用可能なリソースを記憶する工程と、ページのビットマップ画像を作成する間に前記再利用可能なリソースが参照されるごとに、前記記憶されたフォーマット済みの再利用可能なリソースのレンダリングされたバージョンを用いて前記ページの前記ビットマップ画像を作成する工程とを有し、前記識別された再利用可能なリソースを該再利用可能なリソースの少なくとも１つの特性を解析することにより決定したいくつかの内部形式のうちの少なくとも１つに変換する工程は、前記再利用可能なリソースを、データ構造におけるデータフィールドのインスタンスと関連づける工程であって、前記リソースがテンポラリである場合は、前記データフィールドインスタンスはページに対して持続し、前記リソースが複数ページにおいて用いられる場合は、前記データフィールドインスタンスは複数ページにわたって持続する工程を更に有する。
【０００８】
本発明の実施形態は、コンピュータにより読取可能な媒体及び／又はコンピュータにより読取可能なメモリを用いたプロセッサにより作成され、記憶され、アクセスされ又は修正される指示にも関連している。
【０００９】
これらの及び他の実施形態は、以下の図面を参照して、以下において更に説明される。
【図面の簡単な説明】
【００１０】
【図１】図１は、文書を印刷するシステムの構成要素を図示するブロック図を示す。
【図２】図２は、例示的なプリンタの高位のブロック図を示す。
【図３】図３は、ＰＤＬから発生するディスプレイリストを生成し、処理するシステムの例示的な高位アーキテクチャを示す。
【図４】図４は、ＰＤＬリソース管理のための例示的なシステム４００における種々の構成要素の相互関係を示す。
【発明を実施するための形態】
【００１１】
本発明の種々の特徴を反映する実施形態に従って、第１の印刷可能データから生成された第２又は中間形式の印刷可能データを自動的に記憶、操作及び処理するシステム及び方法が示される。一部の実施形態では、第１の印刷可能データは文書のＰＤＬ記述の形式をとることが可能であり、中間印刷可能データはＰＤＬ記述から生成されたオブジェクトのディスプレイリストの形式をとることが可能である。
【００１２】
図１は、本発明の一部の実施形態による文書印刷システムの構成要素を図示するブロック図を示している。本発明に適合するコンピュータソフトウェアアプリケーションは、図１に示すように、従来の通信プロトコル及び／又はデータポートインタフェースを用いて情報をやり取りするコミュニケーションリンクを介して接続されたコンピュータのネットワーク上で実施されうる。
【００１３】
図１に示すように、例示的なシステム１００は、コンピュータデバイス１１０及びサーバ１３０を備えたコンピュータを含んでいる。更に、コンピュータデバイス１１０及びサーバ１３０は、一例においてインターネットでありうるネットワーク１４０を通過する可能性がある接続１２０によって通信可能となっている。コンピュータデバイス１１０は、コンピュータワークステーション、デスクトップコンピュータ、ラップトップコンピュータ、又はネットワーク環境で使用しうる他のいかなるコンピュータデバイスであってもよい。サーバ１３０は、コンピュータデバイス１１０及び他のデバイス（図示せず）に接続可能なプラットフォームであってもよい。コンピュータデバイス１１０及びサーバ１３０は、プリンタ１７０を用いた文書の印刷を可能とするソフトウェア（図示せず）を実行することができる。
【００１４】
例示的なプリンタ１７０は、電子データから物理的な文書を生成するデバイスを備え、前記デバイスは、これらに限られないが、レーザプリンタ、インクジェットプリンタ、ＬＥＤプリンタ、プロッタ、ファクシミリ装置及びデジタルコピー機を含む。一部の実施形態では、プリンタ１７０は、接続１２０を介してコンピュータデバイス１１０及びサーバ１３０から受信した文書を直接印刷することが可能であってもよい。一部の実施形態では、このような配置が、コンピュータデバイス１１０及びサーバ１３０による追加的な処理と共に（又はなしで）、文書の直接印刷を可能とすることができる。一部の実施形態では、文書はテキスト、グラフィック及び画像のうちの一以上を含みうる。一部の実施形態では、プリンタ１７０は印刷のための文書のＰＤＬ又はＰＰＭＬ記述を受信することができる。また、文書印刷処理は分担されうる点に留意されたい。したがって、コンピュータデバイス１１０、サーバ１３０及び／又はプリンタは、プリンタ１７０によって文書が物理的に印刷される前に、ハーフトーン、カラーマッチング及び／又は他の操作処理等の文書印刷処理の一部を実行することができる。
【００１５】
また、コンピュータデバイス１１０は、リムーバブルメディアドライブ１５０を有している。リムーバブルメディアドライブ１５０は、例えば、３．５インチフロッピードライブ、ＣD−ＲＯＭドライブ、ＤＶＤ−ＲＯＭドライブ、ＣＤ±ＲＷ若しくはＤＶＤ±ＲＷドライブ、ＵＳＢフラッシュデバイス及び／又は本発明の実施形態に適合する他のいかなるリムーバブルメディアドライブを含んでもよい。一部の実施形態では、ソフトウェアアプリケーションの一部はリムーバブルメディアにあってもよく、リムーバブルメディアドライブ１５０を用いてコンピュータデバイス１１０により読み出され、実行されてもよい。
【００１６】
接続１２０は、コンピュータデバイス１１０、サーバ１３０及びプリンタ１７０を接続し、従来の通信プロトコル及び／又はデータポートインタフェースを用いて有線又は無線接続として実施されうる。一般に、接続１２０は、デバイス間のデータ送信を可能とするいかなる通信チャネルであってもよい。１つの実施形態では、例えば、デバイスは、適当な接続を介してデータ送信するためのパラレルポート、シリアルポート、イーサネット、ＵＳＢ、ＳＣＳＩ、ＦＩＲＥＷＩＲＥ及び／又は同軸ケーブルポート等の従来のデータポートを備えてもよい。一部の実施形態では、接続部１２０は、ＤＳＬ（Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅ）、ＡＤＳＬ（Ａｓｙｍｍｅｔｒｉｃ  Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅ）又はケーブル接続であってもよい。コミュニケーションリンクは、無線リンク、有線リンク又は種々のデバイス間の通信を可能とする本発明の実施形態に適合するいかなる組合せであってもよい。
【００１７】
ネットワーク１４０は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）又はインターネットを含んでもよい。一部の実施形態では、ネットワーク１４０上で送信される情報は、送信されるデータの安全性を確保するために暗号化されてもよい。プリンタ１７０は、接続部１２０を介してネットワーク１４０に接続されてもよい。また、一部の実施形態では、プリンタ１７０はコンピュータデバイス１１０及び／又はサーバ１３０に直接接続されてもよい。また、システム１００は、本発明の一部の実施形態に従った他の周辺デバイス（図示せず）を備えてもよい。本発明に適合するコンピュータソフトウェアアプリケーションは、図１に示すように、例示的なコンピュータのいずれにおいて配備されてもよい。例えば、コンピュータデバイス１１０は、サーバ１３０から直接ダウンロードしうるソフトウェアを実行してもよい。アプリケーションの一部は、本発明の一部の実施形態に従い、プリンタ１７０によって実行されてもよい。
【００１８】
図２は、例示的なプリンタ１７０の高位のブロック図を示している。一部の実施形態では、プリンタ１７０は、ＣＰＵ１７６、ファームウェア１７１、メモリ１７２、入出力ポート１７５、プリントエンジン１７７及び二次記憶装置１７３を接続するバス１７４を備えてもよい。プリンタ１７０は、本発明の一部の実施形態に従って文書を印刷するアプリケーションの一部を実行することができる他のＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）及び／又はＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）１７８を含んでもよい。一部の実施形態では、プリンタ１７０は、Ｉ／Ｏポート１７５及び接続１２０を用いて、二次記憶装置又はコンピュータデバイス１１０における他のメモリにアクセスすることが可能であってもよい。一部の実施形態では、プリンタ１７０は、プリンタオペレーティングシステム及び他の適当なアプリケーションソフトウェアを含むソフトウェアを実行することが可能であってもよい。一部の実施形態では、プリンタ１７０は、用紙サイズ、出力トレイ、カラー選択及び印字解像度を、他のオプションの中からユーザにより設定可能としてもよい。
【００１９】
一部の実施形態では、ＣＰＵ１７６は、汎用プロセッサ、特殊用途プロセッサ又は内臓プロセッサであってもよい。ＣＰＵ１７６は、制御情報及び指示を含むデータを、メモリ１７２及び／又はファームウェア１７１とやり取りすることができる。メモリ１７２は、これらに限られないが、ＳＤＲＡＭ又はＲＤＲＡＭ等のいずれのタイプのＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）であってもよい。ファームウェア１７１は、これらに限られないが、ブートアップシーケンス、予約ルーチン及び他のコードを含む指示及びデータを有してもよい。一部の実施形態では、ファームウェア１７１のコード及びデータは、ＣＰＵ１７６によって作動される前に、メモリ１７２にコピーされてもよい。ファームウェア１７１におけるルーチンは、コンピュータデバイス１１０から受信したページ記述をディスプレイリスト及びイメージバンドに翻訳するコードを含みうる。一部の実施形態では、ファームウェア１７１は、ディスプレイリストにおけるディスプレイコマンドを適当なラスタライズされたビットマップに変換して、そのビットマップをメモリ１７２に記憶するラスタライゼーションルーチンを含んでもよい。ファームウェア１７１は、圧縮ルーチン及びメモリ管理ルーチンを含んでもよい。一部の実施形態では、ファームウェア１７１におけるデータ及び指示は、アップグレード可能であってもよい。
【００２０】
一部の実施形態では、ＣＰＵ１７６は指示及びデータに従い、ＡＳＩＣ／ＦＰＧＡ１７８及びプリントエンジン１７７に制御及びデータを提供して印刷文書を生成させてもよい。一部の実施形態では、ＡＳＩＣ／ＦＰＧＡ１７８がプリントエンジン１７７に制御及びデータを提供してもよい。ＡＳＩＣ／ＦＰＧＡ１７８が、翻訳、圧縮及びラスタライゼーションアルゴリズムの一以上を実行してもよい。一部の実施形態では、コンピュータデバイス１１０は、文書データを第１の印刷可能データに変換することができる。その後、第１の印刷可能データは、中間印刷可能データに変換されるためにプリンタ１７０に送信されることができる。プリンタ１７０は、中間印刷可能データを印刷可能データの最終形式に変換して、この最終形式に従って印刷してもよい。一部の実施形態では、第１の印刷可能データは、文書のＰＤＬ又はＰＰＭＬ記述に対応しうる。一部の実施形態では、文書のＰＤＬ又はＰＰＭＬ記述から、一連の低位プリンタ固有コマンドを含む最終印刷可能データへの翻訳処理は、オブジェクトのディスプレイリストを含む中間印刷可能データの生成を含んでもよい。一部の実施形態では、ディスプレイリストは、テキスト、グラフィック、コマンド及び画像データオブジェクトの一以上を含んでもよい。一部の実施形態では、ディスプレイリストにおけるオブジェクトは、ユーザ文書における類似するオブジェクトに対応してもよい。一部の実施形態では、ディスプレイリストは、中間印刷可能データの生成を支援してもよい。一部の実施形態では、ディスプレイリストはメモリ１７２又は二次の記憶装置１７３に記憶されてもよい。例示的な二次記憶装置１７３は、内臓又は外部ハードディスク、メモリスティック又はシステム２００で使用されうる他のいかなるメモリ記憶装置であってもよい。一部の実施形態では、ディスプレイリストは、プリンタ１７０、コンピュータデバイス１１０及びサーバ１３０の一以上に常駐してもよい。ディスプレイリストを記憶するメモリは、専用メモリであってもよく、汎用メモリの一部を形成してもよく、また、本発明の一部の実施形態に従ったそれらいくつかの組合せであってもよい。一部の実施形態では、メモリは、必要に応じてディスプレイリストを保持するために動的に割り当てられてもよい。一部の実施形態では、ディスプレイリストを記憶するために割り当てられたメモリは、処理後に動的に解放されてもよい。
【００２１】
図３は、ＰＤＬから発生するディスプレイリストを生成し、処理するシステムの例示的な高位アーキテクチャを示している。図３に示すように、言語サーバ３４０、エンジンサーバ３６０及びラスタサーバ３２０は互いに通信可能である。更に、言語サーバ３４０、エンジンサーバ３６０及びラスタサーバ３２０は、ルーチンを呼び出してＲＤＬライブラリ３３０と通信することができる。一部の実施形態では、ディスプレイリストは、印刷される文書又はその文書中のページの範囲内のデータオブジェクト及びそれらのコンテキストを定めるコマンドを含んでもよい。これらのディスプレイコマンドは、文字若しくはテキスト、線画若しくはベクタ、及び画像若しくはラスタデータを含むデータを含んでもよい。
【００２２】
一部の実施形態では、ディスプレイリストは動的に再構成可能であってもよく、ＲＤＬ（Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ｄｉｓｐｌａｙ  Ｌｉｓｔ）と呼ばれる。一部の実施形態では、ＲＤＬは、特定のディスプレイリストオブジェクトを、それらを動的に操作可能とする方法で記憶させるデータ構造を用いて実施されてもよい。例えば、イメージオブジェクトは、メモリの使用可能量を増加させるように所定位置で圧縮され、参照及び／又は使用されるときに伸張されてもよい。一部の実施形態では、ＲＤＬは、ポインタ、オフセット又はアドレスを参照及び／又は使用時に検索可能なＲＤＬオブジェクトの実際の位置に保持して、ＲＤＬオブジェクトをメモリ及び／又は二次記憶装置に記憶させてもよい。一般に、ＲＤＬは、システムの制約及びパラメータに基づき、ディスプレイリストオブジェクトを融通よく記憶又は操作させること可能とする。
【００２３】
一部の実施形態では、文書におけるＰＤＬ記述をディスプレイリスト表示へ翻訳することは、ＲＤＬライブラリ３３０のルーチンを用いて言語サーバ３４０によって実行されてもよい。一部の実施形態では、言語サーバ３４０は、ＲＤＬライブラリ３３０により提供される能力（Ｃａｐａｂｉｌｉｔｙ）を用いて、ＰＤＬ言語プリミティブを取得してデータ及びグラフィカルオブジェクトに変換し、それらをディスプレイリストに加えてもよい。一部の実施形態では、ＲＤＬライブラリ３３０における能力及びルーチンへのアクセスは、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）によって提供されてもよい。一部の実施形態では、ディスプレイリストは、例示的なＲＤＬメモリプール３２０等の動的に割り当てられたメモリプールにおいて記憶され、操作されてもよい。一部の実施形態では、ディスプレイリストは、実際の印刷の前のデータ処理における第２の又は中間の工程であってもよく、それに続く形式に変換される前に解析されてもよい。一部の実施形態では、それに続く形式は最終的な表現であってもよく、その変換処理はデータのラスタライズと呼ばれる。一部の実施形態では、ラスタライゼーションはラスタサーバ３２０によって実行されてもよい。ラスタライゼーションにおいて、ラスタライズされたデータは、メモリ１７２の一部でありうるフレームバッファ３５０に記憶されてもよい。一部の実施形態では、ラスタライズされたデータは、印刷ページに配置される点を特定するビットマップの形式をとりうる。プリントエンジン１７７は、ラスタライズされたデータをフレームバッファ３５０において処理してもよく、紙等の印刷媒体におけるページの印刷可能画像を形成してもよい。一部の実施形態では、ラスタサーバ３２０及びエンジンサーバ３６０は、ＲＤＬライブラリ３３０のルーチンを用いてそれらの機能を実行してもよい。一部の実施形態では、エンジンサーバ３６０は、プリントエンジン１７７に制御情報、指示及びデータを提供することができる。一部の実施形態では、エンジンサーバ３６０は、ディスプレイリストオブジェクトにより使用されたメモリを、ＲＤＬメモリプール３２０に戻すために、処理後に解放してもよい。一部の実施形態では、ＲＤＬメモリプール及び／又はフレームバッファ３５０の一部は、メモリ１７２又は二次記憶装置にあってもよい。一部の実施形態では、言語サーバ３４０、ラスタサーバ３２０及びエンジンサーバ３６０のルーチンは、ファームウェア１７１において提供され、又はＡＳＩＣ／ＦＰＧＡ１７８を用いて実施されてもよい。
【００２４】
図４は、ＰＤＬリソース管理のための例示的なシステム４００における種々の構成要素の相互関係を示している。一部の実施形態では、ＰＤＬデータ４１０は、ＰＰＭＬ、ＰＣＬ、ＸＰＳ、ＰＳ及び／又はＰＤＬデータの種々の他の形式のうち一以上を含んでもよい。図４に示すように、例示的なＰＤＬデータ４１０に含まれる情報は、明示的リソース（ｅｘｐｌｉｃｉｔ  ｒｅｓｏｕｒｃｅ）４１５及び回収リソース（ｈａｒｖｅｓｔｅｄ  ｒｅｓｏｕｒｃｅ）４１８の双方を含みうる。一部の実施形態では、ＰＤＬデータ４１０は言語サーバ３４０により処理されることができる。一部の実施形態では、ファイルに含まれるＰＤＬデータのデータ形式を決定するＰＤＬファイルのヘッダ情報の検査が処理に含まれてもよい。ＲＤＬライブラリ３３０のルーチンは、ＰＤＬデータ４１０に含まれる情報を処理するのに用いられうる。
【００２５】
一部の実施形態では、再利用しうるリソースの識別表示はＰＤＬ言語固有であってもよく、言語サーバ３４０による処理の前に前処理フロントエンドによって実行されてもよい。一部の実施形態では、前処理フロントエンドは、言語に固有のＲＤＬライブラリ３３０におけるルーチンを用いてＰＤＬファイルを解析し、再利用可能なリソースを識別することができる。その後、例示的な言語サーバ３４０は、ＰＤＬ言語非依存ルーチンを用いて、前処理フロントエンドにより識別されたすべての再利用可能なリソースを処理することができる。識別された再利用可能なリソースは、このようなリソースの処理に一般的に利用可能な標準的ルーチンを用いて処理されうる。したがって、前処理フロントエンドによる操作の後、言語サーバ３４０は、複数のＰＤＬに共有される共通コードパスウェイを用いて、言語非依存方式により当該サーバの機能を実行することが可能であってもよい。
【００２６】
一部の実施形態では、共通コードパスウェイの使用は、言語サーバ３４０が、非常に多数のＰＤＬのために記載された多数のルーチンではなく、再利用可能なリソースの内部表現に基づいて、印刷処理のための一般最適化を利用することを可能とする。一部の実施形態では、内部表現又は内部形式は、多数のＰＤＬ全体で再利用可能なリソースに共通であってもよい。一部の実施形態では、内部形式は、再利用可能なリソースに関連するデータ構造において一以上のデータフィールドを含みうる。一部の実施形態では、データ構造は、ディスプレイリスト又は再構成可能なディスプレイリスト及びＤＬ若しくはＲＤＬオブジェクトのデータフィールドに対応してもよい。一つの実施形態では、レンダリングされたビットマップ画像は、再利用可能なリソースに関連するデータ構造におけるデータフィールドに関連しうる。１つの実施形態では、データフィールドは、再利用可能なリソースに対応する内部フォーマットバージョンを直接保持してもよい。他の実施形態では、データフィールドは、ポインタ、リンクリスト等の種々の仕組みを用いて、再利用可能なリソースに対応する内部フォーマットバージョンを参照してもよい。
【００２７】
一部の実施形態では、ラスタライゼーション処理の間に再利用可能なオブジェクトレベルデータは、総合リソースマネージャ４２０のリソースとして識別されうる。一部の実施形態では、リソースが例えばＰＰＭＬ対応言語で明確に識別されるならば、それらは明示的リソース４１５として識別されることができる。例えば、明示的リソース４１５は、ＰＰＭＬ対応言語で再利用可能であると明確に識別されるようなオブジェクトを含みうる。識別には、リソースへの固有ＩＤの生成及び割り当てが含まれてもよい。一部の実施形態では、ＧＵＩＤ（Ｇｌｏｂａｌ  Ｕｎｉｑｕｅ  Ｉｄｅｎｔｉｆｉｅｒ）をリソースへの固有の識別子の割り当てに用いることができる。一部の実施形態では、ＰＤＬデータ４１０を更に解析することにより、ＰＤＬに固有で再利用されうる回収リソース４１８を生成することができる。回収リソース４１８は、明確に識別されないが、ここに記載する実施形態に適合する方法によるＰＤＬデータ４１０の解析によってリソースとして識別されうるような再利用可能なオブジェクトを構成する。例えば、ＰＳ（ＰｏｓｔＳｃｒｉｐｔ）データを有するＰＤＬデータ４１０において以下のコードシーケンスを検討する。
％！ｐｓ
［５  １  １  １］  ０  ｓｅｔｄａｓｈ
０．８  ０．８  ０  ０  ｓｅｔｃｍｙｋｃｏｌｏｒ
１０  ５７０  ｍｏｖｅｔｏ
２００  ０  ｒｌｉｎｅ
０  ２００  ｒｌｉｎｅｔｏ
−２００  ０  ｒｌｉｎｅｔｏ
ｃｌｏｓｅｐａｔｈ
ｓｔｒｏｋｅ
ｓｈｏｗｐａｇｅ
【００２８】
上記の例において、「ｓｅｔｄａｓｈ」コマンドは、このストロークがパス全体にわたって繰り返される一連のドット‐ダッシュから構成されることを意味すると解釈することが可能である。「ｓｅｔｄａｓｈ」コマンドは、総合リソースマネージャ４２０への回収リソース４１８として識別されうる。一度識別されると、総合リソースマネージャ４２０はコマンドに対するＧＵＩＤを作成することが可能であり、ドット‐ダッシュは最適性の考慮に基づいていったんレンダリングされ、又はＤＬ形式で記憶されて、どこでドット‐ダッシュが印刷されても再利用することが可能となる。
【００２９】
一部の実施形態では、総合リソースマネージャ４２０は、現在のシステムにおけるリソースを追跡するのに用いることが可能なテーブル又は他のデータ構造を有してもよい。リソースに割り当てられたＧＵＩＤは、特定のリソースがレンダリングされたか否かを追跡するのに用いることができる。すなわち、テーブルは、リソースが（レンダリングされていない）ディスプレイリスト４３０又は（レンダリングされた）ビットマップ４４０として表されたか否かの経過を追う。例示的な言語サーバ３４０は、明示的リソース４１５及び回収リソース４１８を処理することが可能であり、処理の間に生成されたオブジェクトをディスプレイリスト（ＤＬ）４３０及び／又は再設定可能なディスプレイリスト（ＲＤＬ）４５０に記憶することができる。一部の実施形態では、再利用可能なリソース又はオブジェクトは、リソースマネージャ４２０を用いてＲＤＬ４５０に記憶されてもよい。ＤＬ４３０及びＲＤＬ４５０は、ラスタサーバ３２０により処理されてビットマップ４４０を生成する。
【００３０】
総合リソースマネージャ４２０は、特定のリソースに対してビットマップ４４０又はＲＤＬ４５０のいずれの形式が最適かを決定することができる。例えば、広い領域を対象とする低密度のリソースをＲＤＬ形式で保持しうるのに対し、狭い領域を対象とする高密度のリソースをビットマップ形式で保持することができる。一部の実施形態では、総合リソースマネージャ４２０は、リソースの物理的境界及びリソースのディスプレイリストにおける各オブジェクトの物理的境界の推定値についての情報を用いて、リソース全体の密度を推定することが可能である。例えば、総合リソースマネージャ４２０は、ディスプレイリストの単一のオブジェクトが約１４０ピクセルに印をつけるのみである場合は、１００ピクセル×１００ピクセルに及ぶリソースを低密度と識別し、リソースをディスプレイリスト形式で記憶することが可能である。一方、総合リソースマネージャ４２０は、リソースに対するディスプレイリストに多くのオブジェクトが存在し、それらが合計して１００００ピクセル以上に印をつける場合（いくつかのオブジェクトが他のオブジェクトと物理的に重複する場合に起こりうる）は、１００ピクセル×１００ピクセルに及ぶリソースを高密度と識別し、リソースをビットマップ形式で記憶することが可能である。一般に、総合リソースマネージャ４２０は、デバイス固有基準を含む一以上の基準を用いてリソースを記憶する形式を決定することができる。
【００３１】
再利用可能なオブジェクトがレンダリングされる場合、総合リソースマネージャ４２０はレンダリング時にリソースに印をつけることができる。一部の実施形態では、再利用可能なレンダリングされたオブジェクトは、総合リソースマネージャ４２０により、フレームバッファ３５０に記憶されてもよい。他の実施形態では、フレームバッファ３５０に利用可能なメモリが存在しない場合は、レンダリングされた再利用可能なオブジェクトは、二次記憶装置１７３に記憶されてもよい。例えば、再利用可能なオブジェクトを二次記憶装置からフレームバッファにコピーする時間が、オブジェクトをレンダリングする時間未満である場合は、オブジェクトを二次記憶装置に記憶することができる。一部の実施形態では、再利用可能なオブジェクトはキャッシュされうる。他の実施形態では、リソースはＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）の形式でプリンタ１７２に送信されてもよい。リソースが既にキャッシュされている場合は、プリンタ１７２はキャッシュされたリソースを使用しうる。そうでない場合は、ＵＲＬはリソースを検索するのに用いられることができる。
【００３２】
いくつかのＰＰＭＬは、ページの境界を亘り再利用可能なオブジェクトを使用することを可能とする。例えば、ＰＰＭＬにおける再利用可能なオブジェクト及びＸＰＳにおけるリソースエレメントは、ページの境界を亘って使用することが可能である。一つの実施形態では、総合リソースマネージャ４２０は、一以上のページにわたるコンテキストにおいてリソースが記憶され再利用されることを可能とすることもできる。一部の実施形態では、ページの境界を亘ったオブジェクトの記憶及び再利用は、後のページで見られる再利用可能なオブジェクトを再作成する必要を排除する。一部の実施形態では、総合リソースマネージャ４２０は、１ページ内で有効なリソース及びより広い範囲を有するそれらのリソースの処理を促進するデータ構造を使用することが可能である。１ページ内で必要なリソースは、１ページが生成する間だけ必要なものなので、しばしば「テンポラリリソース」と呼ばれる。一部の実施形態では、総合リソースマネージャ４２０は、現在ページのコンテキストにおいて決まって用いられるＲＤＬ４５０を実施するデータ構造の範囲内でデータ要素を用いることができる。例えば、現在ページのレジストリはテンポラリリソースを追跡するのに使用してもよく、テンポラリリソースは、それらが識別されたときにこのレジストリに登録されてもよい。
【００３３】
一部の実施形態では、１ページより広い範囲のリソースは、特有のリソースデータ構造に記憶されてもよい。例えば、リソースはいくつかのページ、文書及び／又は一連の文書にわたってもよい。いくつかのページ、文書又は複数の文書にわたるリソースは、しばしば「永続リソース」として分類される。１つの実施形態では、永続リソースを保持するデータ構造は、フォントテーブル、ハーフトーンテーブル等のデータと、ディスプレイリスト及び／又はフレームバッファのオブジェクトとを含んでもよい。一部の実施形態では、システムワイドレジストリは永続リソースを追跡するのに使用されてもよく、永続リソースは、それらが識別されたときにこのレジストリに登録されてもよい。
【００３４】
例えば、ＰＰＭＬは一連の再利用可能なオブジェクトを作成する機能性を提供する。ＰＰＭＬにおいて、ページ、又は複数ページから成る文書のページのサブセットは、再利用可能なオブジェクトとして定義されることが可能であり、複数回出現することができる。一部の実施形態では、総合リソースマネージャ４２０は、リソースのコンテキストの判定に基づき、現在ページのコンテキストで用いられているデータ構造の範囲内のデータ要素又は複数ページを超えて使用される特有のリソースデータ構造のデータ要素にリソースを割り当てることができる。一部の実施形態では、テンポラリ若しくは永続リソースの識別、それらの適当なデータ構造内のデータ要素への割り当て、及び／又は適当なレジストリへの登録は、言語サーバ３４０によって実行されてもよい。例示的なエンジンサーバ３６０は、文書の印刷のために、ビットマップ４４０のデータを処理することができる。
【００３５】
本発明の他の実施形態は、明細書の検討及びここに開示される一以上の実施形態の実施により当業者において明らかになるだろう。明細書及び実施例は例示的なものにすぎないと解釈されることが意図されており、本発明の真の範囲及び趣旨は以下のクレームによって示されている。
【図１】
0005238526.tif 000002
【図２】
0005238526.tif 000003
【図３】
0005238526.tif 000004
【図４】
0005238526.tif 000005