(57)【要約】      （修正有）【課題】ＰＤＦデータの伝送に要する時間を削減するとともに、使用しないＰＤＦデータがプリンタコントローラ上に不必要に保存されるのを防ぐ。【解決手段】ＰＤＦダイレクトプリント方法において、クライアントコンピュータは、ダイレクトプリントのために、ＰＤＦダイレクトプリントデータをプリンタコントローラに伝送する。クライアントには、ＰＤＦファイルのうちの印刷されるべき複数のページと、好ましくは更に前記複数のページが印刷される順序とを指定するページ印刷順序の情報が与えられる。この情報に基づいて、クライアント側のＰＤＦ解析部は、ＰＤＦデータを解析して、ページ印刷順序によって指定された複数のページのデータのみをプリンタコントローラに伝送する。プリンタコントローラは、クライアントから伝送されたＰＤＦダイレクトプリントデータを保存する。【選択図】図３
2008262546.tif 000002
【特許請求の範囲】
【請求項１】
クライアントコンピュータから当該クライアントコンピュータに接続されたプリンタコントローラに対しダイレクトプリントのためにファイルのデータを伝送する方法であって、
前記ファイルは、複数ページのデータを含んでおり、
前記クライアントコンピュータにおいて、
（ａ）前記ファイルのうちの印刷されるべき複数のページを指定する情報であって、ページ印刷順序に関する情報を取得する段階と、
（ｂ）前記ページ印刷順序の範囲内の前記複数ページのデータのみを前記プリンタコントローラに選択的に伝送する段階と、を有する方法。
【請求項２】
前記（ａ）段階は、前記ページ印刷順序の情報を前記プリンタコントローラから受信する段階を含む、請求項１の方法。
【請求項３】
前記（ａ）段階は、前記ページ印刷順序の情報を前記クライアントコンピュータ上のプログラムから取得する段階を含む、請求項１の方法。
【請求項４】
さらに、前記プリンタコントローラにおいて、
（ｃ）前記ページ印刷順序に関する前記情報を取得する段階と、
（ｄ）前記ページ印刷順序に関する前記情報を前記クライアントコンピュータに送信する段階と、
（ｅ）前記クライアントから複数ページのデータを受信する段階と、
（ｆ）前記受信した複数ページのデータを保存する段階と、を有する、請求項１の方法。
【請求項５】
前記（ｂ）段階は、前記複数ページが前記ファイル中に現れる順序で当該複数ページのデータを前記プリンタコントローラに伝送する段階を有する、請求項１の方法。
【請求項６】
前記ページ印刷順序の情報は、前記複数ページが印刷されるべき順序を指定し、
前記（ｂ）段階は、前記ページ印刷順序の情報によって指定された順序で複数ページのデータを前記プリンタコントローラに伝送する段階を有する、請求項１の方法。
【請求項７】
前記ファイルの各ページのデータは、複数のデータブロックを含んでおり、
前記ページ印刷順序の情報は、前記複数ページが印刷されるべき順序を指定するものであり
前記（ｂ）段階は、
（ｂ１）レンダリング処理で次に処理されるべき次データブロックを得るべく前記ページ印刷順序の情報にしたがって前記ファイルを解析する段階と、
（ｂ２）前記プリンタへ前記次データブロックを伝送する段階と、
（ｂ３）前記（ｂ１)段階および前記（ｂ２）段階を繰り返す段階と、を含む、請求項１の方法。
【請求項８】
さらに、前記プリンタコントローラにおいて、
（ｃ）ページ印刷順序に関する情報を前記クライアントコンピュータに送信する段階と、
（ｄ）前記クライアントコンピュータから複数のデータブロックを受信する段階と、
（ｅ）受信した複数のデータブロックをメモリに保存する段階と、
（ｆ）前記複数のデータブロックが保存された記憶場所をメモリ割り当てデータベースに記録する段階と、を有する、請求項７の方法。
【請求項９】
前記（ｂ）段階は、
（ｂ１）前記ファイルを検査して、前記ページ印刷順序の情報にしたがって伝送されるべき複数のデータブロックの内容を示すメタデータを生成する段階と、
（ｂ２）前記ページ印刷順序の情報にしたがって、関連付けられたメタデータを伴った複数のデータブロックを前記プリンタコントローラへ伝送する段階と、を含む、請求項１の方法。
【請求項１０】
前記プリンタコントローラは、第１ランダムアクセスメモリ（ＲＡＭ）と、第２のメモリとを有し、
前記方法は、
さらに、プリンタコントローラにおいて、
（ｃ）ページ印刷順序に関する情報を前記クライアントコンピュータに送信する段階と、
（ｄ）前記クライアントから、関連付けられたメタデータを伴った複数のデータブロックを受信する段階と、
（ｅ）前記関連付けられたメタデータに基づいて、各データブロックを前記ＲＡＭまたは前記第２メモリのどちらかに保存する段階と、
（ｆ）各ブロックが保存された記憶場所をメモリ割り当てデータベースに記録する段階と、を含む、請求項９の方法。
【請求項１１】
前記ファイルは、ＰＤＦ（ポータブル・ドキュメント・フォーマット）ファイルである、請求項１の方法。
【請求項１２】
クライアントコンピュータとそれに接続されるプリンタコントローラとを含むデータ処理システムを制御するコンピュータプログラムであって、
前記コンピュータプログラムは、ダイレクトプリントのために前記クライアントコンピュータから前記プリンタコントローラにファイルのデータを伝送するクライアント処理を前記クライアントコンピュータに実行させるように構成されており、
前記クライアント処理は、
（ａ）前記ファイルのうちの印刷されるべき複数のページを指定する、ページ印刷順序に関する情報を取得する段階と、
（ｂ）前記ページ印刷順序の範囲内の複数ページのデータのみを前記プリンタコントローラに選択的に伝送する段階と、を有する、コンピュータプログラム。
【請求項１３】
前記（ａ）段階は、前記ページ印刷順序の情報を前記プリンタコントローラから受信する段階を含む、請求項１２のコンピュータプログラム。
【請求項１４】
前記（ａ）段階は、前記ページ印刷順序の情報を前記クライアントコンピュータ上のプログラムから取得する段階を含む、請求項１２のコンピュータプログラム。
【請求項１５】
前記（ｂ）段階は、前記複数ページが前記ファイル中に現れる順序で当該複数ページのデータを前記プリンタコントローラに伝送する段階を有する、請求項１２のコンピュータプログラム。
【請求項１６】
前記ページ印刷順序の情報は、前記複数ページが印刷されるべき順序を指定し、
前記（ｂ）段階は、前記ページ印刷順序の情報によって指定された順序で複数ページのデータを前記プリンタコントローラに伝送する段階を有する、請求項１２のコンピュータプログラム。
【請求項１７】
前記ファイルの各ページのデータは、複数のデータブロックを含んでおり、
前記（ｂ）段階は、
（ｂ１）レンダリング処理で次に処理されるべき次データブロックを得るべく前記ページ印刷順序の情報にしたがって前記ファイルを解析する段階と、
（ｂ２）前記プリンタへ前記次データブロックを伝送する段階と、
（ｂ３）前記（ｂ１)段階および前記（ｂ２）段階を繰り返す段階と、を含む、請求項１２のコンピュータプログラム。
【請求項１８】
前記（ｂ）段階は、
（ｂ１）前記ファイルを検査して、前記ページ印刷順序の情報にしたがって伝送されるべき複数のデータブロックの内容を示すメタデータを生成する段階と、
（ｂ２）前記ページ印刷順序の情報にしたがって、関連付けられたメタデータを伴った複数のデータブロックを前記プリンタコントローラへ伝送する段階と、を含む、請求項１２のコンピュータプログラム。
【請求項１９】
前記ファイルは、ＰＤＦ（ポータブル・ドキュメント・フォーマット）ファイルである、請求項１２のコンピュータプログラム。
【請求項２０】
前記請求項１２乃至請求項１９のうちのいずれか一つのコンピュータプログラムが記録されたコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の背景
本発明の分野
本発明は、ＰＤＦファイルなどの特定の記述言語のファイルのダイレクトプリントに関し、特に、ＰＤＦデータの効率的な処理のためにページ印刷順序の情報を利用したＰＤＦダイレクトプリント方法および装置に関する。
【背景技術】
【０００２】
関連技術の説明
ＰＤＦ（ポータブル・ドキュメント・フォーマット）ファイルは、コマンドまたはリソースである複数のデータブロック（複数のオブジェクト）を含んでいる。ＰＤＦファイルの最後では、このＰＤＦファイルに含まれるリソースおよびコマンドの全てを記載する相互参照テーブル（ディレクトリ情報とも称される）が、これらリソースおよびコマンドについてのＰＤＦファイル冒頭からのオフセット位置を指定しており、このオフセット位置は、ＰＤＦファイル内のリソースまたはコマンドの位置を示す。あるコマンドが、あるリソースを使用する必要がある場合、ファイル内での前記リソースの位置を求めるために、前記相互参照テーブルを参照する。一つのリソースは、異なる複数のコマンドによって複数回にわたって参照され得る。ＰＤＦファイルは、論理的には、複数ページのデータを含みうるものであって、各ページは、複数のデータブロックを含んでいる。しかしながら、他の同様の記述言語とは異なり、ＰＤＦファイル内のデータは、線形形式ではなく、無作為な形式で、物理的に編成されている（すなわち、特別な順序は要求されない）。
【０００３】
ＰＤＦダイレクトプリントとは、ＰＤＦデータからＰＤＬ（ページ記述言語）のような一般的なプリント言語へ前処理するためのアプリケーションやプリントドライバを最初に用いることなく、クライアントコンピュータによって、適合プリンタ装置に対してＰＤＦファイルが直接的に送信されるという処理である。ＰＤＦダイレクトプリントは、出力の速度および／または品質を改善するという長所を有する。一般的なＰＤＦダイレクトプリント処理においては、クライアントコンピュータは、プリンタコントローラ（プリンタに接続されているサーバ、あるいはコントローラが内蔵されたプリンタが存する）に対して、ＰＤＦファイル全体を連続的に送信する。図１は、一般的なＰＤＦダイレクトプリント方法による、クライアントコンピュータからプリンタコントローラへのデータ伝送のタイミング順序を示している。図１に示されるように、ページ１乃至ページＮ（Ｎは、ＰＤＦファイルにおける全ページ数）のそれぞれの複数のリソースは、かかる順序で伝送されるとともに、ページ１からページＮまでのそれぞれの複数の描画コマンドが、かかる順序で伝送される。この例では、複数のデータブロックの伝送順序は、ＰＤＦファイルにおいてデータが編成されている順序によって定まる。ディレクトリ情報ブロックは、ＰＤＦファイル内のその位置のために、複数のコマンドや複数のリソースのブロックにより後に伝送される。プリンタコントローラは、クライアントコンピュータに存在しているＰＤＦファイルと同一のＰＤＦファイルとしてＰＤＦデータをハードディスク上に保存する。そのＰＤＦデータがレンダリングされる場合には、プリンタコントローラは、そのＰＤＦデータを前記ディスクから不連続な方法で読み出し（すなわち、それは、複数のブロックがＰＤＦファイルに保存されている順番にしたがうのではなく、複数のブロックがレンダリング処理によって必要とされる順序にしたがって、複数のブロックのＰＤＦデータを読み出す）、ＰＤＦデータを処理して、ラスター画像データを生成する。
【０００４】
ＰＤＦダイレクトプリントのために、様々な他の方法が述べられてきた。たとえば、米国特許出願２００４／００９８４１０は、一つの方法を記載する。この方法では、クライアントが相互参照テーブル（すなわち、前記ディレクトリ情報ブロック）と、典型的にはファイルの最後に位置するＰＤＦファイルのトレーラ部分とを抽出し、まず最初に、それらをプリンタに伝送する。次いで、プリンタは、前記相互参照テーブルおよびトレーラにおける情報を解析し、次に必要になるＰＤＦファイルの部分に関してクライアントに要求する。それに応答して、クライアントは、ＰＤＦファイルのうち要求された部分をプリンタへ伝送する。
【発明の開示】
【０００５】
要約
したがって、本発明は、ＰＤＦまたは他のファイルのダイレクトプリントのための方法または装置に関し、前記関連技術の限界や不利な点に起因する１または複数の問題を実質的に解決するものである。
【０００６】
本発明の目的は、ＰＤＦデータの伝送に要する時間を削減することである。
【０００７】
本発明の他の目的は、使用しないＰＤＦデータがプリンタコントローラ上に不必要に保存されるのを防ぐことである。
【０００８】
本発明の付加的な特徴および効果は、以下の明細書中に記載され、一部においては、明細書から明らかとなり、あるいは発明の実施により知ることができる。本発明の目的および効果は、明細書、特許請求の範囲のみならず添付した図面において詳しく説明されている構成によって理解され、実現される。
【０００９】
これらおよび／または他の目的を達成するために、具現化され広範に記述されているように、本発明は、ダイレクトプリントするために、クライアントコンピュータから当該クライアントコンピュータに接続されたプリンタコントローラに対して、複数ページのデータを含むファイルのデータを伝送するものであって、本方法は、クライアントコンピュータ上で、（ａ）前記ファイルのうちの印刷されるべき複数のページを指定する情報であって、ページ印刷順序に関する情報を取得する段階と、（ｂ）前記ページ印刷順序の範囲内の複数ページのデータのみを前記プリンタコントローラに選択的に伝送する段階と、を含む。この方法は、さらに、プリンタコントローラ上で、（ｃ）前記ページ印刷順序に関する前記情報を取得する段階と、（ｄ）前記ページ印刷順序に関する前記情報を前記クライアントコンピュータに送信する段階と、（ｅ）前記クライアントから複数ページのデータを受信する段階と、（ｆ）前記受信した複数ページのデータを保存する段階と、を含む。
【００１０】
他の態様において、本発明は、クライアントコンピュータとこれに接続されるプリンタコントローラとを含むデータ処理システムを制御するコンピュータプログラムを提供するものであり、当該コンピュータプログラムは、ダイレクトプリントのために前記クライアントコンピュータから前記プリンタコントローラに対してファイルのデータを伝送するクライアント処理を前記クライアントコンピュータに実行させるように構成されており、前記クライアント処理は、（ａ）前記ファイルのうちの印刷されるべき複数のページを指定する、ページ印刷順序に関する情報を取得する段階と、（ｂ）前記ページ印刷順序の範囲内の複数ページのデータのみを前記プリンタコントローラに選択的に伝送する段階と、を含む。
【００１１】
前述した一般的な説明および後述する詳しい説明の双方とも、典型的かつ説明的なものであり、特許請求の範囲に記載された発明のさらなる説明を提供することを意図するものであると理解されるべきである。
【００１２】
図面の簡単な説明
図１は、一般的なＰＤＦダイレクトプリント方法におけるデータ伝送タイミング順序を図式的に示している。
【００１３】
図２は、本発明の一実施形態によるＰＤＦダイレクトプリント方法におけるデータ伝送タイミング順序を図式的に示している。
【００１４】
図３は、本発明の実施形態によるクライアントとプリンタを備えるシステムを図式的に示している。
【００１５】
図４は、本発明の実施形態によるクライアントコンピュータによって実行されるＰＤＦデータ伝送処理を示している。
【００１６】
図５は、本発明の実施形態によるプリンタコントローラによって実行されるデータ保存処理を示している。
【００１７】
図６は、本発明の他の実施形態によるクライアントコンピュータによって実行されるＰＤＦデータの解析および伝送の処理を示している。
【００１８】
図７は、本発明の前記他の実施形態によるプリンタコントローラによって実行されるデータ保存処理を示している。
【００１９】
図８は、本発明の前記他の実施形態によるプリンタコントローラのＰＤＦレンダリングモジュールによって実行されるレンダリング処理を示している。
【００２０】
図９は、本発明の他の実施形態によるクライアントコンピュータによって実行されるＰＤＦデータの解析および伝送の処理を示している。
【００２１】
図１０は、本発明の前記異なる他の実施形態によるプリンタコントローラによって実行されるデータ保存処理を示している。
【００２２】
図１１は、本願発明の前記異なる他の実施形態によるプリンタコントローラのＰＤＦレンダリングモジュールによって実行されるレンダリング処理を示している。
【００２３】
好ましい実施の形態の詳細な説明
図３は、本システム上で本発明の実施形態による方法が実行されるプリンタ１１０に接続されるクライアントコンピュータ１００を含むシステムを示している。このクライアントコンピュータおよびプリンタは、ネットワークまたは直接的な接続ケーブルを介して接続される。クライアントコンピュータ１００は、ＰＤＦ解析部１０２を含んでおり、プリンタ１１０は、プリンタコントローラ１２０を含んでいる。本実施形態において、ＰＤＦ解析部１０２およびプリンタコントローラ１２０のそれぞれは、全体的または部分的に、ＲＯＭやハードディスクなどの記憶装置に記憶されたコンピュータプログラムを実行するクライアントコンピュータ１００またはプリンタ１１０の中央演算処理装置（ＣＰＵ）によって実現される。図においては、プリンタコントローラ１２０が、プリンタ１１０上に存在しているように示されているが、クライアントコンピュータおよびプリンタに接続されたサーバ（不図示）上に存在していてもよい。ＲＡＭ１２５およびハードディスク１２６は、プリンタコントローラに付随する手段である。プリンタコントローラ１２０は、クライアントからのＰＤＦダイレクトプリントデータをスプールしたり、そのデータをＲＡＭ１２４またはディスク１２５に保存したりする機能を遂行することを含む印刷ジョブをを管理するための前処理（プリプロセッサ）モジュール１２４を含む。プリンタコントローラは、また、詳しくは後述するようにメモリ割り当てデータベース１２３を維持するデータベースモジュール１２１を含んでいてもよい。前処理モジュール１２４とデータベースモジュール１２１は、２つの別個のモジュールとして示されているが、当該データベースモジュールの複数の機能も、前処理モジュールによって実行し得ることに注意すべきである。プリンタコントローラのレンダリングモジュール１２２は、ＰＤＦダイレクトプリントデータをインタプリタ処理するとともに、他の画像レンダリング機能を実行する。
【００２４】
クライアントコンピュータ１００が、当該クライアントコンピュータ上に存するＰＤＦファイルからプリンタコントローラ１２０へＰＤＦダイレクトプリントデータを伝送するとともに、プリンタコントローラが、当該プリンタコントローラの一または複数の記憶装置(ディスクおよび／またはＲＡＭ）に前記ＰＤＦダイレクトプリントデータを保存し、プリンタコントローラのレンダリングモジュール１２２が、プリンタコントローラに保存された前記ＰＤＦダイレクトプリントデータからラスター画像にレンダリングすることによって、クライアントコンピュータ１００とプリンタコントローラ１２０は、ＰＤＦダイレクトプリント処理を実行するために互いに協働する。
【００２５】
本発明の実施形態は、ＰＤＦダイレクトプリント処理の際に、ページ印刷順序の情報を利用する様々な方法を提供する。ページ印刷順序は、ＰＤＦ文書のうちの複数のページ（全てのページ、またはいくつかの複数のページ）が特定の印刷ジョブでレンダリングされて印刷されるべき順序を参照する。ファイルのページ順序と異なるページ印刷順序を持つ印刷ジョブの一例は、製本（ブックレット）印刷ジョブの場合である。ある印刷ジョブが１ページから４ページまでを製本モードで印刷することを要求する場合には、第１、第２、第３、および第４ページといった通常の印刷順序とするよりも、第１ページ、第４ページ、第２ページ、および第３ページの印刷順序とすることが、より良い印刷動作を生じさせる。なぜならば、製本モードでは、第１ページと第４ページが、１枚の用紙上に一緒に印刷されるべきであり、第２ページと第３ページとが別の一枚の用紙上に一緒に印刷されるべきであるからである。他の状況において、印刷ジョブは、一つのファイルのうちの全てのページではない幾つかの複数ページが印刷されるように要求することができる。より弱い形式では、ページ印刷順序は、ページ印刷順序は、ファイルのうちのどの複数ページが印刷されるべきかを指定するが、それらが印刷される順序までは指定しない。ＰＤＦダイレクトプリント処理が、クライアントコンピュータ１００によって開始される場合、ページ印刷順序は、ＰＤＦダイレクトプリントを開始したプログラムによって提供されてもよい。ＰＤＦダイレクトプリント処理がプリンタコントローラ１２０によって開始される場合には、ＰＤＦデータがクライアントコンピュータからプリンタコントローラに伝送される前（および、あるいは、さらに、その最中）に、プリンタコントローラが、クライアントコンピュータ１００に対してページ印刷順序の情報を送信することになる。本発明の実施形態によれば、クライアントコンピュータ上のＰＤＦ解析部１０２が、前記ページ印刷順序の情報に基づいて、ＰＤＦファイルを解析し、ＰＤＦダイレクトプリントデータを選択的に送信するので、前記ページ印刷順序の範囲内の複数のページのＰＤＦデータのみがプリンタコントローラへ伝送され、前記ページ印刷順序の範囲外のＰＤＦデータは、伝送されない。
【００２６】
ここで、「ページ印刷順序の範囲内のＰＤＦデータ」とは、コマンドおよびリソースを含んでおり、印刷されるべき複数のページのレンダリングに要求されるＰＤＦデータを意味する。「ページ印刷順序の範囲外のＰＤＦデータ」は、印刷されるべき複数のページのレンダリングに要求されないＰＤＦデータを意味する。ページ印刷順序の範囲内のＰＤＦデータのみを伝送することによって、クライアントコンピュータとプリンタコントローラとを接続ｓるネットワーク上のトラフィックが軽減され、ＰＤＦデータを伝送するのに要する時間が削減される。さらに、このことは、使用しないＰＤＦデータがプリンタコントローラ上に不必要に保存されるのを防ぐ。
【００２７】
図４は、本願発明の一の実施形態によるＰＤＦ解析部１０２によって実行されるＰＤＦダイレクトプリントデータ伝送方法を説明する。ＰＤＦダイレクトプリントが、クライアントコンピュータ１００またはプリンタコントローラ１２０のとちらかによって開始された後に、ＰＤＦ解析部１０２は、ＰＤＦファイルを開き（ステップＳ４１）、ページ印刷順序に関する情報を取得する（ステップＳ４２）。先に述べたように、前記ページ印刷順序は、クライアントコンピュータ１００自身またはプリンタコントローラ１２０によって提供される。次いで、ＰＤＦ解析部１０２は、前記ページ印刷順序の情報を用いて、ＰＤＦファイルからのＰＤＦデータを解析し、プリンタコントローラに対して、前記ページ印刷順序の範囲内のＰＤＦデータのみを伝送する（ステップＳ４３）。場合によっては、ＰＤＦダイレクトプリント処理を開始したプログラムは、ＰＤＦダイレクトプリント処理の開始の時点においては、印刷ジョブ全体についての完全なページ印刷順序の情報を有していない場合もある。このような場合には、ステップＳ４２において取得した情報は、たとえば、印刷されるべき最初の数ページを指定するといったように、前記ページ印刷順序を部分的に指定するものであり、ＰＤＦダイレクトプリントを開始したプログラムは、解析部１０２によって利用可能な更なるページ印刷順序の情報を引き続き得る。したがって、解析部は、追加のページ印刷順序の情報を取得することができ（ステップＳ４２）、この追加のページ印刷順序の情報を用いてＰＤＦデータを引き続き伝送し続けることになる（ステップＳ４３）。
【００２８】
図５は、ＰＤＦダイレクトプリント処理の間、クライアントコンピュータ１００からのＰＤＦダイレクトプリントデータをスプールするプリンタコントローラ１２０によって実行される処理を示している。ＰＤＦダイレクトプリント処理の開始の時点において、前処理モジュール１２４は、前記印刷ジョブのためのページ印刷順序の情報を得る（ステップＳ５１）。たとえば、前処理モジュールは、ジョブチケット（このジョブチケットは、文書の印刷処理を規定するように印刷ジョブに付随する一組のパラメータである）を検査して、前記ページ印刷順序の情報を得ることができる。前処理モジュールは、このページ印刷順序の情報をクライアントコンピュータ１００に送信する（ステップＳ５２）。これに応えて、クライアントコンピュータは、図４に示されるようなＰＤＦデータの伝送処理を実行する。プリンタコントローラは、ＰＤＦダイレクトプリントデータをクライアントから受信し（ステップＳ５３）、そのＰＤＦデータをメモリ（ＲＡＭまたはディスク）に保存する。当該ＰＤＦデータは、それらが元々のＰＤＦファイル内で配置されていた順序になっていないので、データベースモジュール１２１は、ＰＤＦデータのうちの各部分が保存された記録場所をメモリ割り当てデータベースに記録する（ステップＳ５３）。メモリ割り当てデータベースは、レンダリングモジュール１２２が、次のレンダリングプロセスの際にＰＤＦデータを読み出すために用いられることになる。
【００２９】
ＰＤＦダイレクトプリント処理の初めにおいて、前処理モジュールが、完全な前記ページ印刷順序の情報を有していなかった場合、すなわち、ステップＳ５１およびステップＳ５２において取得され前記クライアントへ送信されるべき前記情報が、部分的なページ印刷順序の情報である場合には、印刷ジョブの全体が完了するまで、前処理モジュールは、更なるページ印刷順序の情報の取得を継続し、それを前記クライアントに対して送信することになる。
【００３０】
本発明のすべての実施形態に共通な特徴は、ページ印刷順序の範囲内のＰＤＦデータのみの選択的な伝送であるが、前記クライアント側の解析部１０２は、様々な複雑巧妙化のレベルを持つ種々のデータ伝送の処理を実行し得る。
【００３１】
第１の他実施形態では、前記クライアント側の解析部１０２は、前記ページ印刷順序の範囲内のＰＤＦダイレクトプリントデータのみを伝送するものであって、ＰＤＦファイル内で現れる順序で、複数のページを伝送する。たとえば、ページ５〜１０、およびページ３が、この並び順で印刷されることを前記ページ印刷順序が指定しているが、ページ３のＰＤＦデータが、ページ５〜１０のＰＤＦデータよりも、ＰＤＦファイル内で、より先頭側で現れる場合、解析部１０２は、ページ５〜１０のデータよりも前に、ページ３のＰＤＦデータを伝送することになる。第２の他実施形態では、前記クライアント側の解析部１０２は、前記ページ印刷順序によって指定されたとおりの順序で複数ページのＰＤＦデータを伝送する。したがって、上述した例では、クライアント側の解析部１０２は、ページ３のデータが、ＰＤＦファイル内でより先頭側で現れる場合であっても、ページ３のＰＤＦデータよりも前に、ページ５〜１０のＰＤＦデータを伝送することになる。第３の他実施形態では、クライアント側の解析部１０２は、前記プリンタコントローラによって複数のイメージをレンダリングするために使用されるブロックの順序にしたがって、ＰＤＦのブロックデータを伝送することになる。好ましくは、第２および第３の他実施形態ｎいて、クライアント側の解析部１０２は、ＰＤＦのいかなるデータブロックが伝送されるのよりも前に、前記ディレクトリ情報ブロックを伝送する。ディレクトリ情報ブロックを受信すると、プリンタコントローラのレンダリングモジュール１２２は、クライアントコンピュータから受信すべき全てのＰＤＦデータを待たなければならないのではなく、十分なＰＤＦデータ（たとえば、最初のページ、またはＰＤＦの最初のデータブロック）が受信されると直ちに、レンダリング処理を開始することができる。このことは、第１ページが印刷されるまでの時間（「第１ページ出力時間」（ｆｉｒｓｔ  ｐａｇｅ  ｏｕｔ  ｔｉｍｅ）、ＦＰＯＴ）の遅延を軽減する。
【００３２】
第４の他実施形態では、クライアント側の解析部１０２は、ＰＤＦのデータブロックを前記第３の他実施形態の場合と同様の方法で伝送するとともに、伝送されるＰＤＦの各データブロックにメタデータを付加する。第４の実施形態の更なる効果は、プリンタコントローラ１２０が、受信されたＰＤＦデータを効率的に処理することを可能にすることである。たとえば、プリンタコントローラ１２０は、ＰＤＦのデータブロックが、プリンタコントローラのＲＡＭ１２５とディスク１２６のどちらに保存されるのかを決定するために前記メタデータを使用することができる。
【００３３】
前記第３の実施形態による典型的なＰＤＦダイレクトプリントデータの伝送方法が、以下に詳細に記述される。この実施形態は、米国特許出願番号１１／６８１１３８の特許出願において十分に記述されているものである。
【００３４】
図２は、この他実施形態によるＰＤＦダイレクトプリント方法のデータ伝送のタイミング順序を示す。図２に示されるように、まず最初に、ＰＤＦファイルの中のディレクトリ情報ブロックがクライアントから伝送される。たとえば、ＰＤＦファイルの印刷される第１ページのための複数の描画コマンドおよび複数のリソースが伝送され、続いて、ＰＤＦファイルの印刷されるべき第２ページのための複数の描画コマンドおよび複数のリソースが伝送される。ＰＤＦレンダリング処理は、ディレクトリ情報ブロックが伝送された後、しばらくして、典型的には第１ページ用の全てのデータが伝送される前に、開始される。
【００３５】
図６は、第３の他実施形態によるＰＤＦ解析部１０２によって実行されるＰＤＦデータの解析および伝送の処理を示している。ＰＤＦダイレクトプリントが処理開始されると、当該解析部は、まず、ＰＤＦファイルからディレクトリ情報ブロックを解析し、それをプリンタ１００に伝送する（ステップＳ６１）。前記解析部は、ページ印刷順序の情報、あるいはＰＤＦダイレクトプリントデータの所望の伝送順序に影響を与えうる他の情報を含む、何らかの情報が、プリンタから受信されたかを継続的に監視する。このような情報の一例は、「中断ページ（ａｂｏｒｔ  ｐａｇｅ）」コマンドである。特定のページ順序情報がプリンタから受信されない場合には、解析部は、規定のページ順（すなわち、最初のページから最後のページへの順番）を仮定する（ステップＳ６２およびＳ６３）。ページ順序情報（プリンタから受信された特定のページ順序情報または規定のページ順序情報）に基づいて、解析部は、レンダリング処理に必要とされる次のＰＤＦデータブロックを解析して選び出し（ステップＳ６４）、それをプリンタコントローラに伝送する（ステップＳ６５）。解析アルゴリズムは、適切な解析ライブラリに適切な変更を加えたものを用いて実装され得る。この処理（ステップＳ６２およびＳ６３）は、前記印刷ジョブの全体が処理されるまで、すなわち、ＰＤＦファイルのうちページ印刷順序によって指定される複数のページの全てがプリンタに伝送されるまで、繰り返される。
【００３６】
クライアント側の解析部１０２によって伝送されたＰＤＦの複数のデータブロックは、図７および図８に示される処理においてプリンタコントローラによって受信されて利用される。図７は、プリンタコントローラ１２０のデータベースモジュール１２１により実行されるデータ保存処理を示している。前記クライアントからＰＤＦのデータブロックを受信した後（ステップＳ５１）、データベースモジュールは、受信されたデータブロックをメモリ（ＲＡＭ１２５またはディスク１２６）に保存し（ステップＳ７２）、データブロックが保存された記憶場所を記録することによって、メモリ割り当てデータベース１２３を更新する（ステップＳ７３）。この処理（ステップＳ７１〜ステップＳ７３）は、ＰＤＦファイルのうち印刷される全てのページが受信されるまで繰り返される。この図には示されていないが、適切な場合には、レンダリングモジュールは、上述したように、解析部１０２に対してページ順序情報を伝送する。図８は、プリンタコントローラ１２０のＰＤＦレンダリングモジュール１２２によって実行されるレンダリング処理を説明する。レンダリング処理が開始された後に（上述したように、レンダリング処理は、全てのＰＤＦデータが受信される前でも、いくつかのＰＤＦデータがクライアントから受信されるとすぐに開始することができる）、レンダリングモジュールは、レンダリングに必要となる次のＰＤＦデータブロックを決定する〔ステップＳ８１）。この決定をする上で、（既にプリンタに伝送されている）ディレクトリ情報ブロックが参照される。このレンダリングモジュールは、次いで、このＰＤＦの必要なデータブロックの記憶場所を得るために、メモリ割り当てデータベース１２３にアクセスする（ステップＳ８２）。前記クライアント上のインテリジェントＰＤＦ解析部１０２の使用により、必要なデータブロックは、既にプリンタに伝送されて、データベースモジュール１２１によってメモリ１２５／１２６に保存されている。前記記憶場所を得た後に、レンダリングモジュールは、メモリ１２５／１２６から必要とされるデータブロックを読み出す（ステップＳ８３）。次いで、レンダリングモジュールは、メモリから読み出されたデータブロックを処理して、ラスター画像にレンダリングする（ステップＳ８４）。この処理（ステップＳ８１〜Ｓ８４）は、ＰＤＦファイルのうちの印刷されるべき全てのページがレンダリングされるまで繰り返される。
【００３７】
上記の第４の他実施形態による典型的なＰＤＦダイレクトプリントデータの伝送方法が、以下に詳細に記述される。この他実施形態は、米国特許出願番号１１／６９０６４８の特許出願において十分に記述されているものである。この他実施形態においては、プリンタコントローラは、ＰＤＦダイレクトプリントデータの全部または一部を一般的なＰＤＦダイレクトプリント方法のようにディスク１２６に保存するのではなく、確保されたＲＡＭ１２５に保存する。ＲＡＭへのアクセスは、ディスクへのアクセスよりも非常に早いので、ＰＤＦダイレクトプリントデータをＲＡＭに保存することは、その分だけレンダリングの速度を高める。ある一つの印刷ジョブのためのすべてのＰＤＦデータを保存するのにＲＡＭの領域が不足する場合には、前処理モジュールは、ＰＤＦデータの分割アルゴリズムを実行して、ＰＤＦデータのうちのどの部分がＲＡＭに保存され、どの部分がディスクに保存されるかを決定する。一般的にいって、レンダリング処理で先に使用されるＰＤＦデータの部分をＲＡＭがフルになるまで保存する。ＰＤＦデータは、その使用頻度に基づいてＲＡＭに保存するようにしてもよい。様々な他のＰＤＦデータ分割アルゴリズムは、上記の特許出願において、より完全に述べられている。
【００３８】
図９は、この第４の実施形態によるＰＤＦ解析部１０２によって実行されるＰＤＦデータの解析および伝送処理を説明する。図９に示されるように、一つのＰＤＦダイレクトプリント用ファイルのデータ伝送開始時に、解析部１０２は、プリンタコントローラからページ印刷順序を受信する（ステップＳ９１）。このページ印刷順序の情報に基づいて、前記解析部は、どのデータブロックがページ印刷順序の範囲内であるか（つまり、プリンタコントローラに伝送されるか）を決定するためにＰＤＦファイルを通じて処理を繰り返し、各データブロックの使用頻度の情報を収集し、リソース使用量参照テーブルを生成する（ステップＳ９２）。このリソース使用量参照テーブルは、プリンタコントローラに伝送される（ステップＳ９３）。その後、解析部は、印刷順序にしたがって次ページ分の複数のデータブロックを取得するための解析を実行し、各データブロックのタグを生成する（ステップＳ９４）。タグはデータ形式の識別表示、バイトサイズおよびファイル先頭からのバイト単位のオフセットを含む。複数のブロックは、プリンタコントローラに伝送され、各ブロックの先頭には関連するタグが付けられている（ステップＳ９５）。各データブロックの伝送のために、解析部は、そのデータブロックに関連するＰＤＦファイルの相互参照テーブルの一部分をコピーし（ステップＳ９６）、相互参照テーブルの同部分をプリンタコントローラに伝送する（ステップＳ９７）。簡略化のため、ステップＳ９４／Ｓ９５およびＳ９６／Ｓ９７が図９のように逐次的な順番で表示されているが、複数のデータブロックおよび相互参照テーブルの関連部分の実際の伝送順番は、データブロックの各々および相互参照テーブルの各部分にその後に続く内容を表示するタグが付される限りにおいて、必ずしも重要ではない。ステップＳ９４からＳ９７までは、印刷順序の範囲内の全てのページが伝送されるまで繰り返される。
【００３９】
図１０は、クライアントコンピュータ１００から伝送されたＰＤＦダイレクトプリントデータを受信し保存するためにプリンタコントローラ１２０の前処理モジュール１２１により実行される処理を図示する。この処理は、ＰＤＦデータの分割アルゴリズムを実行する。図１０に示されるように、ＰＤＦダイレクトプリント処理の開始時に、前処理モジュール１２１は、前記ページ印刷順序に関する情報をクライアントコンピュータ側の解析部１０２に伝送する（ステップＳ１００）。図９に関連して説明したように、解析部は、印刷順序情報を用いてリソース使用量参照テーブルをプリンタコントローラに伝送し、その後には、前記印刷順序に応じて、タグ付きのＰＤＦデータブロックおよび相互参照テーブルの当該データブロックに対応する部分が続く。そのため、ステップ１０１において、前処理モジュールは、リソース使用量参照テーブルを受信し、それをデータ伝送およびレンダリングにおいて使用するために（好ましくはＲＡＭに）ローカル保存する。リソース使用量参照テーブル内の情報に基づき、前処理モジュールは、印刷順序における次ページ分の合計データサイズが、残りの利用可能なＲＡＭのサイズよりも大きいかどうかを判定する（ステップＳ１０２）。大きくない場合（ステップＳ１０２の「Ｎ」）、同ページ分の全データブロックがＲＡＭに保存される。このようにして、前処理モジュールは、クライアントコンピュータから、関連するタグ付きの次のデータブロックおよび相互参照テーブルの対応する部分を受信する（ステップＳ１０４）。ＰＤＦデータブロックはＲＡＭに保存され、相互参照テーブルの対応する部分も同様に保存される（ステップＳ１０５）。次いで、そのＰＤＦデータに関連付けられたタグは破棄される。前処理モジュールは、ＰＤＦデータブロックが保存された場所を記録するためにメモリ割り当てデータベース１２３を更新する（ステップＳ１０６）。ステップＳ１０４からＳ１０６は、ＰＤＦデータの同ページ分の全データブロックが受信されて保存されるまで繰り返される（ステップＳ１０７の「Ｙ」）。
【００４０】
他方、ステップＳ１０２において前処理モジュールが、ＰＤＦデータの次ページのサイズが残りの利用可能なＲＡＭのサイズよりも大きいと判断した場合（ステップＳ１０２の「Ｙ」）、前処理モジュールは、次ページのどのデータブロックがＲＡＭに保存され、どのデータブロックがディスクに保存されるべきかを決定するために、リソース使用量参照テーブルを検査する（ステップＳ１０３Ａ）。前処理モジュールは、クライアントコンピュータから、関係づけられたタグ付きの次のＰＤＦデータブロック、および相互参照テーブルの対応する部分を受信する（ステップＳ１０４Ａ）。そのタグに基づき、前処理モジュールは、同ブロックがＲＡＭに保存されるべきかまたはディスクに保存されるべきかを判断し、その結果に応じてデータを保存する（ステップＳ１０５Ａ）。また、ステップＳ１０５Ａにおいて、前処理モジュールは、相互参照テーブルの対応する部分を保存する。プロプロセッサモジュールは，ＰＤＦデータブロックが保存された場所を記録するため、メモリ割り当てデータベース１２３を更新する（ステップＳ１０６Ａ）。ステップＳ１０４Ａ〜Ｓ１０７Ａは、ＰＤＦデータの同ページ分の全データブロックが受信されて保存されるまで（ステップＳ１０７Ａの「Ｙ」）、繰り返される。
【００４１】
図１０には示されていないが、満杯を越えるのを防止するため、ステップＳ１０２は、確保されたＲＡＭが満杯であるかどうか（つまり、データブロックを保存するために利用可能な領域が十分でないかどうか）の判断も行う。ＲＡＭが満杯である場合、その後に受信された全データはディスクに保存されることになる。前処理モジュールは、データブロックがＲＡＭではなくディスクに保存された場合を除き、ステップＳ１０４〜ステップＳ１０７と同様のステップを繰り返す。
【００４２】
更新ステップＳ１０６およびＳ１０６Ａは、メモリ割り当てデータベースを更新するために、データブロックに関連するタグに含まれる情報を利用する。メモリ割り当てデータベース１２３は、ＰＤＦデータの各ブロックを元々のＰＤＦファイル内でのオフセット値により識別して、データブロックが保存される（ＲＡＭまたはディスク内の）記憶場所を特定する。
【００４３】
ステップＳ１０５およびＳ１０５Ａにおいて、相互参照テーブルの対応する部分は、ＲＡＭまたはディスクに保存されるが、同部分はレンダリング処理中に頻繁に参照されるためＲＡＭに保存されることが好ましい。前記印刷順序の範囲内の複数のデータブロックに対応する相互参照テーブルの複数部分のすべては、一箇所に保存されるとともに、元のＰＤＦファイル内の相互参照テーブルが前記印刷順序の範囲内の複数のデータブロックに対応する部分のみを含む場合は別として元々のＰＤＦファイル内の相互参照テーブルと同様の新たな相互参照テーブルを形成することが好ましい。新たな相互参照テーブルの記憶場所は、メモリ割り当てデータベースに記録されうる。
【００４４】
図１１は、ダイレクトプリント用ＰＤＦファイルのレンダリングのためにプリンタコントローラ１２０のレンダリングモジュール１２２により実行される処理を示す。既に、ＰＤＦデータファイルから複数ののデータブロックは、ＲＡＭおよびディスクに保存されており、メモリ割り当てデータベース１２３は、図１０に示された処理にしたがって前処理モジュールにより構築されている。また、既に、上述のように新たな相互参照テーブルが生成されている。本レンダリング処理は、ＰＤＦデータからポストスクリプト（ＰＳ）データまたは他のページ記述言語（ＰＤＬ）への変換、およびビットマップ画像を生成するためのＰＳまたはＰＤＬデータに対するラスター画像プロセシング（ＲＩＰ）の実行などの従来のＰＤＦレンダリング処理と同様の段階を含むものである。従来のレンダリング処理では、ＰＤＦのデータブロックがレンダリングに必要であるとき、レンダリングモジュールは、同データのＰＤＦファイル内の場所を特定するために相互参照テーブルを参照する。図１１に示されたレンダリング処理において、レンダリングモジュール１２２は、ＰＤＦのデータブロック、つまりリソースまたはコマンドを必要とするときは常に、必要なデータブロックのオフセット値を取得するために相互参照テーブルを参照する(ステップＳ１１１）。次いで、レンダリングモジュールはメモリ割り当てテーブルにアクセスし、そして、データブロックの特定に役立つオフセット値を用いてプリンタコントローラ側におけるデータブロックの記憶場所を取得する（ステップＳ１１２）。そして、レンダリングモジュールは、要求されるデータを適切な前記記憶場所から読み出す（ステップＳ１１３）。その後、レンダリングモジュールは、読み出されたデータブロックを処理して、ラスター画像へレンダリングする（ステップＳ１１４）。
【００４５】
上述したデータ伝送方法は、前記クライアントからのＰＤＦデータ伝送と同時にレンダリングが実行されるＰＤＦダイレクトプリント処理において、あるいは、プリンタが他の印刷ジョブのプリント処理中のときにＰＤＦダイレクト印刷ジョブをスプーリングするためのスプーリング処理において、使用することができる。スプールされたファイルは、プリンタが開放された状態になったときに印刷されるように、プリンタに保存される。スプーリングは、プリンタがビジーである場合にクライアントコンピュータがプリンタに束縛されることなきように開放するので、有益である。
【００４６】
本発明の精神または範囲から逸脱することなく、本発明のダイレクトプリント方法および装置について様々な変更および変形が実現可能であることは、当業者にとって明らかである。したがって、本発明は、添付された請求の範囲およびその均等物の範囲内に入る変更および変形に及ぶものであることが意図されている。
【図面の簡単な説明】
【００４７】
【図１】図１は、一般的なＰＤＦダイレクトプリント方法におけるデータ伝送タイミング順序を図式的に示している。
【図２】図２は、本発明の一実施形態によるＰＤＦダイレクトプリント方法におけるデータ伝送タイミング順序を図式的に示している。
【図３】図３は、本発明の実施形態によるクライアントとプリンタを備えるシステムを図式的に示している。
【図４】図４は、本発明の実施形態によるクライアントコンピュータによって実行されるＰＤＦデータ伝送処理を示している。
【図５】図５は、本発明の実施形態によるプリンタコントローラによって実行されるデータ保存処理を示している。
【図６】図６は、本発明の他の実施形態によるクライアントコンピュータによって実行されるＰＤＦデータの解析および伝送の処理を示している。
【図７】図７は、本発明の前記他の実施形態によるプリンタコントローラによって実行されるデータ保存処理を示している。
【図８】図８は、本発明の前記他の実施形態によるプリンタコントローラのＰＤＦレンダリングモジュールによって実行されるレンダリング処理を示している。
【図９】図９は、本発明の他の実施形態によるクライアントコンピュータによって実行されるＰＤＦデータの解析および伝送の処理を示している。
【図１０】図１０は、本発明の前記異なる他の実施形態によるプリンタコントローラによって実行されるデータ保存処理を示している。
【図１１】図１１は、本願発明の前記異なる他の実施形態によるプリンタコントローラのＰＤＦレンダリングモジュールによって実行されるレンダリング処理を示している。
【図１】
2008262546.tif 000003
【図２】
2008262546.tif 000004
【図３】
2008262546.tif 000005
【図４】
2008262546.tif 000006
【図５】
2008262546.tif 000007
【図６】
2008262546.tif 000008
【図７】
2008262546.tif 000009
【図８】
2008262546.tif 000010
【図９】
2008262546.tif 000011
【図１０】
2008262546.tif 000012
【図１１】
2008262546.tif 000013
【外国語明細書】
2008262546000001.pdf
2008262546000002.pdf
2008262546000003.pdf
2008262546000004.pdf