(57)【要約】      （修正有）【課題】プリントジョブのＰＤＦダイレクトプリントデータの一部がまだクライアント側にあるにもかかわらず、プリンタ側のレンダリングモジュールが、部分的にＰＤＦデータを処理することを１パス処理で可能にする。【解決手段】ＰＤＦの複数のデータブロックを解析して、プリンタのＰＤＦレンダリング処理によってデータが使用される順番でプリンタへ転送するためにインテリジェント解析部を設ける。ＰＤＦファイルのディレクトリ情報ブロックが最初に転送され、プリンタは、ディレクトリ情報ブロックが受信された後、直ちにレンダリングプロセスを開始することができる。プリンタに記憶された複数のデータブロックのそれぞれの記憶場所は、データベースに記録される。プリンタのＰＤＦレンダリング処理は、レンダリングのために次に必要なるＰＤＦのデータブロックの記憶場所を得るために、データベースにアクセスし、処理のためにデータブロックを読み出す。【選択図】図２
2008262543.tif 000002
【特許請求の範囲】
【請求項１】
クライアントコンピュータに接続されたプリンタによるダイレクトプリントのために当該クライアントコンピュータからファイルのデータを転送する方法であって、
前記ファイルは、複数のデータブロックを含んでおり、
前記クライアントコンピュータにおいて、
（ａ）前記ファイルからディレクトリ情報ブロックを解析する段階と、
（ｂ）前記プリンタへ前記ディレクトリ情報ブロックを転送する段階と、
（ｃ）レンダリング処理で次に処理されるべき次データブロックを得るべくページ順情報にしたがって前記ファイルを解析する段階と、
（ｄ）前記プリンタへ前記次データブロックを転送する段階と、
（ｅ）前記ファイル中の全てのデータブロックが前記プリンタに転送されるまで、前記（ｃ）段階および前記（ｄ）段階を繰り返す段階と、を有する方法。
【請求項２】
さらに、前記プリンタから前記ページ順情報を受信する段階を有する、請求項１の方法。
【請求項３】
前記ページ順情報は、前記ファイルの第１ページから最終ページまでの連続的な印刷順序を示す、請求項１の方法。
【請求項４】
さらに、プリンタにおいて、
（ｆ）前記クライアントコンピュータから前記複数のデータブロックを受信する段階と、
（ｇ）受信した複数のデータブロックをメモリに格納する段階と、
（ｈ）前記複数のデータブロックが格納されたそれぞれの記憶場所をメモリ割り当てデータベースに記録する段階と、を有する、請求項１の方法。
【請求項５】
さらに、プリンタにおいて
（ｉ）レンダリングのために処理されるべき次データブロックを決定する段階と、。
（ｊ）処理されるべき前記次データブロックの記憶場所を得るために、前記メモリ割り当てデータベースにアクセスする段階と、
（ｋ）前記記憶場所から、前記処理されるべき前記次データブロックを読み出す段階と、
（ｌ）前記読み出されたデータブロックを処理する段階と、
（ｍ）前記クライアントから転送された複数のデータブロックの全てが処理されるまで、前記（ｉ）段階乃至前記（ｌ)段階を繰り返す段階と、を有する請求項４の方法。
【請求項６】
さらに、プリンタにおいて
前記ページ順情報を前記クライアントコンピュータに送る段階を有する、請求項４の方法。
【請求項７】
クライアントコンピュータとそれに接続されるプリンタとを含むデータ処理装置を制御するコンピュータプログラムであって、
前記コンピュータプログラムは、前記プリンタによるダイレクトプリントのために前記クライアントコンピュータからファイルのデータを転送するクライアント処理を前記クライアントコンピュータに実行させるように構成されており、
前記クライアント処理は、
（ａ）前記ファイルからディレクトリ情報ブロックを解析する段階と、
（ｂ）前記プリンタへ前記ディレクトリ情報ブロックを転送する段階と、
（ｃ）レンダリング処理で次に処理されるべき次データブロックを得るべくページ順情報にしたがって前記ファイルを解析する段階と、
（ｄ）前記プリンタへ前記次データブロックを転送する段階と、
（ｅ）前記ファイル中の全てのデータブロックが前記プリンタに転送されるまで、前記（ｃ）段階および前記（ｄ）段階を繰り返す段階と、を有する、コンピュータプログラム。
【請求項８】
前記クライアント処理は、さらに、前記プリンタから前記ページ順情報を受信する段階を有する、請求項７のコンピュータプログラム。
【請求項９】
前記ページ順情報は、前記ファイルの第１ページから最終ページまでの連続的な印刷順序を示す、請求項７のコンピュータプログラム。
【請求項１０】
さらに、前記コンピュータプログラムは、受信したデータを処理するためのプリンタ処理を前記プリンタに実行させるように構成されており、
前記プリンタ処理は、
（ｆ）前記クライアントコンピュータから前記複数のデータブロックを受信する段階と、
（ｇ）受信した複数のデータブロックをメモリに格納する段階と、
（ｈ）前記複数のデータブロックが格納されたそれぞれの記憶場所をメモリ割り当てデータベースに記録する段階と、を有する、請求項７のコンピュータプログラム。
【請求項１１】
前記プリンタ処理は、さらに、
（ｉ）レンダリングのために処理されるべき次データブロックを決定する段階と、。
（ｊ）処理されるべき前記次データブロックの記憶場所を得るために、前記メモリ割り当てデータベースにアクセスする段階と、
（ｋ）前記記憶場所から、前記処理されるべき前記次データブロックを読み出す段階と、
（ｌ）前記読み出されたデータブロックを処理する段階と、
（ｍ）前記クライアントから転送された複数のデータブロックの全てが処理されるまで、前記（ｉ）段階乃至前記（ｌ)段階を繰り返す段階と、を有する請求項１０のコンピュータプログラム。
【請求項１２】
前記プリンタ処理は、さらに、
前記ページ順情報を前記クライアントコンピュータに送る段階を有する、請求項１０のコンピュータプログラム。
【請求項１３】
前記請求項７乃至請求項１２のうちのいずれか一つのコンピュータプログラムが記録されたコンピュータ読取り可能な記録媒体。
【請求項１４】
クライアントコンピュータを有するデータ処理システムであって、
前記クライアントコンピュータは、複数のデータブックを含むファイルを解析するための解析部を含み、
前記解析部は、
（ａ）前記ファイルからディレクトリ情報ブロックを解析し、
（ｂ）前記プリンタへ前記ディレクトリ情報ブロックを転送し、
（ｃ）レンダリング処理で次に処理されるべき次データブロックを得るべく、少なくとも印刷されるべき前記ファイルの次のページを示すページ順情報にしたがって前記ファイルを解析し、
（ｄ）前記プリンタへ前記次データブロックを転送し、
（ｅ）前記ファイル中の全てのデータブロックが前記プリンタに転送されるまで、前記（ｃ）段階および前記（ｄ）段階を繰り返す、データ処理システム。
【請求項１５】
さらに、前記クライアントコンピュータに接続されたプリンタを有し、
前記プリンタは、
前記クライアントコンピュータから転送された複数のデータブロックを受信するとともに、受信した複数のデータブロックをメモリに格納するためのデータベースモジュールと、
前記複数のデータブロックが格納されたそれぞれの記憶場所を記録するためのメモリ割り当てデータベースと、を含む、請求項１４のデータ処理システム。
【請求項１６】
前記プリンタは、さらに、
（ｉ）レンダリングのために処理されるべき次データブロックを決定し、
（ｊ）処理されるべき前記次データブロックの記憶場所を得るために、前記メモリ割り当てデータベースにアクセスし、
（ｋ）前記記憶場所から、前記処理されるべき前記次データブロックを読み出し、および
（ｌ）前記読み出されたデータブロックを処理する、ためのレンダリングモジュールを有する、請求項１５に記載のデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の背景
本発明の分野
本発明は、ＰＤＦファイルなどの特定の記述言語のファイルのダイレクトプリントに関し、特に、ＰＤＦダイレクトプリント方法、およびクライアントコンピュータからプリンタコントローラへのＰＤＦダイレクトプリントデータの不連続な転送を用いる装置に関する。
【背景技術】
【０００２】
関連技術の説明
ＰＤＦダイレクトプリントとは、ＰＤＬ（ページ記述言語）のような一般的なプリント言語へ前処理するためのアプリケーションやプリントドライバを最初に用いることなく、ＰＤＦ（ポータブル・ドキュメント・フォーマット）ファイルが、適合するプリンタ装置に直接的に送信されるという処理である。ＰＤＦダイレクトプリントは、出力の速度および／または品質を改善するという長所を有する。しかしながら、ＰＤＦファイル（ファイル内のデータ配列）の性質は、いずれかの画像のレンダリング（ｒｅｎｄｅｒｉｎｇ）処理が開始可能になる前に、典型的にはＰＤＦファイル全体が伝送されて、それがプリンタコントローラ上（ハードディスクやフラッシュデバイスなどのプリンタコントローラによってアクセス可能なもの上）に保存されることを要求する。ＰＤＦファイル内のコンテンツは、いずれかの順序に組織化されることが可能であるが、典型的なＰＤＦファイルは、ＰＤＦファイル内のオブジェクト（ページ、フォント、画像など）のディレクトリ情報がファイルの最後で検出されるように組織化されている。このことは、ファイルを作成するアプリケーションにとって、ＰＤＦファイルをより簡単に書くことができるようにするために、しばしば行なわれている。この組織化は、ＰＤＦダイレクトプリント処理に対し、このようなディレクトリが見い出されて処理されることを可能とするようにファイル全体がダウンロードされることを要求する。このディレクトリへアクセスすることなしでは、ＰＤＦファイルを印刷することはできない。一般的なＰＤＦダイレクトプリント方法によるデータ伝送のタイミング順序を説明する図１に示されるように、ページ１乃至ページｎ（ｎは、ＰＤＦファイルにおける全頁数）のそれぞれの複数のリソースは、かかる順序で転送されるとともに、ページ１からページｎまでのそれぞれの複数の描画コマンドは、かかる順序で転送される。ＰＤＦ内での配置に起因して、前記ディレクトリ情報ブロックは、複数のコマンド・ブロックおよび複数のリソース・ブロックの後に転送される。リソースは、ＰＤＦレンダリング（インタプリテーション：解釈）処理の際に、ＰＤＦレンダリング部（インタプリタ）によって使用されるデータであり、ＰＤＦファイルに埋め込まれたフォントデータ（ダウンロードされたフォントと称される）などである。図１に示されるように、すべての複数のリソース・ブロックおよびコマンド・ブロックのみならずディレクトリ情報ブロックをも含むＰＤＦファイル全体が伝送されて、プリンタによって受信された後になって、レンダリング処理が開始される。このことは、特に、ＰＤＦファイルが大きい場合に、第１ページが印刷されるまでの時間（「第１ページ出力時間」（ｆｉｒｓｔ  ｐａｇｅ  ｏｕｔ  ｔｉｍｅ）、ＦＰＯＴ）に遅れを生じさせるとともに、場合によっては総印刷時間の増加を生じさせる。
【０００３】
ＰＤＦダイレクトプリントのために、様々な他の方法が述べられてきた。一つの方法では、ＰＤＦの複数のリソースおよび複数のコマンドを並び替える中間の変換処理を使用し、変換されたＰＤＦファイルをプリンタへ転送する。ファイル全体がプリンタ側に転送されることを持つことなく、中間ファイルを出力することなく（オン・ザ・フライ）、それをインタプリティング（解釈）することができるように、それぞれのページごとのデータおよび複数のリソースが「線形化」されるので、変換されたＰＤＦファイルは、元々のＰＤＦファイルよりも高速に印刷することができる。この種のシステムの一例は、米国特許番号６，４０７，８２１号に記載されており、そこでは、プリントサーバに存する変換プログラムが、この種の変換を実行するために用いられている。このような方法は、多くの場合、ＰＤＦダイレクトプリント全体を改良するが、２つの不利な点を有する。第一に、それは、第１のパスで、データがクライアントからプリントサーバへ転送され、第２のパスでは、データがプリントサーバからプリンタへ転送されるといった２パス処理であることである。このことは、データ転送時間が倍増することを意味する。第二に、それは前記変換の作業を実行する付加的なハードウェア（たとえば、プリントサーバ）を含むことである。
【０００４】
米国特許公開公報２００４／００９８４１０に記載されている他のＰＤＦダイレクトプリント方法では、クライアントは、相互参照テーブル（すなわち、前記ディレクトリ情報ブロック）と、典型的にはファイルの最後に位置するＰＤＦファイルのトレーラ部分とを抽出し、まず最初に、それらをプリンタへ送信する。次いで、プリンタは、前記相互参照テーブルおよびトレーラにおける情報を解析し、次に必要になるＰＤＦファイルの部分に関してクライアントに要求する。それに応答して、クライアントは、ＰＤＦファイルのうち要求された部分をプリンタへ転送する。
【発明の開示】
【０００５】
要約
本発明は、ＰＤＦまたは他のファイルのダイレクトプリントのための方法または装置に関し、前記関連技術の限界や不利な点に起因する１まはた複数の問題を実質的に解決するものである。
【０００６】
本発明の目的は、ＰＤＦダイレクトプリントの性能を向上させることである。
【０００７】
本発明の付加的な特徴および利点は、以下の明細書中に記載され、一部においては、明細書から明らかとなり、あるいは発明の実施により知ることができる。
【０００８】
本発明の目的と他の利点は、明細書、特許請求の範囲のみならず添付した図面において詳しく説明されている構成によって、理解され、実現される。これらおよび／または他の目的を達成するために、具現化され広範に記述されているように、本願発明は、クライアントコンピュータに接続されたプリンタによってダリレクトプリントするために、クライアントコンピュータから複数のデータブロックを含むファイルのデータを転送する方法を提供するものであって、本方法は、クライアントコンピュータ上で、（ａ）ファイルからディレクトリ情報ブロックを解析すること、（ｂ）前記プリンタへ前記ディレクトリ情報ブロックを転送すること、（ｃ）レンダリング処理で次に処理されるべき次データブロックを得るべく、前記ファイルのうち少なくとも次に印刷すべきページを示すページ順情報にしたがって前記ファイルを解析すること、（ｄ）前記プリンタへ前記次データブロックを転送すること、および（ｅ）前記ファイル中の全てのデータブロックが前記プリンタに転送されるまで、前記（ｃ）段階および前記（ｄ）段階を繰り返すこと、を含む。この方法は、さらに、プリンタ上において、（ｆ）前記クライアントコンピュータから前記複数のデータブロックを受信すること、（ｇ）受信した複数のデータブロックをメモリに格納すること、および（ｈ）前記複数のデータブロックが格納されたそれぞれの記憶場所をメモリ割り当てデータベースに記録すること、（ｉ）レンダリングのために処理されるべき次データブロックを決定すること、（ｊ）処理されるべき前記次データブロックの記憶場所を得るために、前記メモリ割り当てデータベースにアクセスすること、（ｋ）前記記憶場所から、前記処理されるべき前記次データブロックを読み出すこと、（ｌ）前記読み出されたデータブロックを処理すること、および（ｍ）前記クライアントから転送された複数のデータブロックの全てが処理されるまで、前記（ｉ）段階乃至前記（ｌ)段階を繰り返すこと、を含む。
【０００９】
他の態様において、本発明は、データ処理装置に上記の方法を実行させるコンピュータプログラムを提供する。
【００１０】
さらに他の態様において、本発明は、クライアントコンピュータを有するデータ処理システムを提供する。ここで、前記クライアントコンピュータは、複数のデータブロックを含むファイルを解析するための解析部を含み、前記解析部は、（ａ）前記ファイルからディレクトリ情報ブロックを解析し、（ｂ）前記プリンタへ前記ディレクトリ情報ブロックを転送し、（ｃ）レンダリング処理で次に処理されるべき次データブロックを得るべく、ファイルの中で少なくとも次に印刷されるべきページを示すページ順情報にしたがって前記ファイルを解析し、（ｄ）前記プリンタへ前記次データブロックを転送し、（ｅ）前記ファイル中の全てのデータブロックが前記プリンタに転送されるまで、前記（ｃ）段階および前記（ｄ）段階を繰り返す。前記データ処理システムは、さらに、前記クライアントコンピュータに接続されたプリンタを有し、前記プリンタは、前記クライアントコンピュータから転送された複数のデータブロックを受信するとともに、受信した複数のデータブロックをメモリに格納するためのデータベースモジュールと、前記複数のデータブロックが格納されたそれぞれの記憶場所を記録するためのメモリ割り当てデータベースと、を含む。前記プリンタは、さらに、（ｉ）レンダリングのために処理されるべき次データブロックを決定し、（ｊ）処理されるべき前記次データブロックの記憶場所を得るために、前記メモリ割り当てデータベースにアクセスし、（ｋ）前記記憶場所から、前記処理されるべき前記次データブロックを読み出し、（ｌ）前記読み出されたデータブロックを処理する、ためのレンダリングモジュールを有する。前述した一般的な説明および後述する詳しい説明の双方とも、典型的かつ説明的なものであり、特許請求の範囲に記載された発明のさらなる説明を提供するためのものである。
【発明を実施するための最良の形態】
【００１１】
図面の簡単な説明
図１は、一般的なＰＤＦダイレクトプリント方法におけるデータ転送タイミング順序を図式的に示している。
【００１２】
図２は、本発明の一実施形態によるＰＤＦダイレクトプリント方法におけるデータ転送タイミング順序を図式的に示している。
【００１３】
図３は、本発明の一実施形態によるクライアントとプリンタを備えるシステムを図式的に示している。
【００１４】
図４は、本発明の一実施形態によるクライアントコンピュータ上のＰＤＦ解析部によって実行されるＰＤＦデータ解析および転送の処理を示している。
【００１５】
図５は、本発明の他の実施形態によるプリンタコントローラのデータベースモジュールによって実行されるデータ格納処理を示している。
【００１６】
図６は、本発明の他の実施形態による前記プリンタコントローラのＰＤＦレンダリングモジュールによって実行されるレンダリング処理を示している。
【００１７】
好ましい実施の形態の詳細な説明
本発明の実施形態は、レンダリングが開始できる前に、クライアントからプリンタコントローラへＰＤＦファイルが全体的に転送されることを要求しないＰＤＦダイレクトプリント方法を提供する。さらに、本方法は、プリンタへのＰＤＦデータの送信前に、ＰＤＦファイルの変換がなされることを要求しない１パス（ｏｎｅ−ｐａｓｓ）処理である。このことは、ＰＤＦファイル内の適切な複数のデータブロックを適切な順序で知的に転送するように機能するクライアント側インテリジェントＰＤＦ解析部の使用によって達成される。必ずしも必要ではないが、好ましくは、前記ファイルにおけるＰＤＦデータの最適な転送順序となることをさらに確実にすべく、プリンタコントローラおよびクライアントは、前記データ転送の間、双方向方式で通信する。
【００１８】
図２は、本発明の実施形態によるＰＤＦダイレクトプリント方法のデータ転送のタイミング順序を示す。図２に示されるように、まず最初に、ＰＤＦファイルの中のディレクトリ情報ブロックがクライアントから転送される。このディレクトリ情報ブロックは、たとえば、ＰＤＦファイル内で描画オブジェクトを表現するそれぞれのリソースまたはコマンドについてのＰＤＦファイル冒頭からのオフセット位置に関する情報を含んでいる。一つのリソースが多くの複数コマンドによって使われていても、それはディレクトリ情報ブロックに一度記録されているだけであることに注意すべきである。ＰＤＦレンダリング処理は、ディレクトリ情報ブロックが転送された後、すぐに開始する。後に詳述するように、クライアント上のＰＤＦ解析部（ｐａｒｓｅｒ）は、レンダリング処理が最初に必要とするＰＤＦデータがどれであるかを予想することができ、そのデータを最初に転送するので、十分なデータが受信されるとすぐにレンダリング処理を開始することができる。この時点は、典型的には、第１ページのためのすべてのデータが転送される前である。このことは、プリンタコントローラが、ＰＤＦレンダリング処理を開始する前に、ＰＤＦファイル全体が転送されるのを待つ図１に示される従来の技術と異なる。この結果、本発明の実施形態によるデータ転送方法を使用することによって、第１ページ出力時間が大いに低減されるとともに、総印刷時間も、低減しうる。
【００１９】
図２において、印刷ジョブの第１ページ、第２のページなどは、印刷ジョブの所望のページ順序（すなわち、ＰＤＦファイのどのページが、如何なる順序で印刷されるべきであるか）にしたがって、第１番目、第２番目などに印刷されるべきページである。このように、これらは、ドキュメント自体における１番目、２番目のページであるかもしれないし、そうでないかもしれない。
【００２０】
図３は、本発明の一実施形態による、プリンタ１１０に接続されたクライアントコンピュータ１００を含むシステムを図式的に示している。クライアントコンピュータ１００は、自身に格納されたＰＤＦファイルのダイレクトプリントを処理開始させるが、当該クライアント上のアプリケーションやプリンタドライバをＰＤＦデータのインタプリタ処理（解釈）のために使用しない。クライアントコンピュータ１００は、クライアント側のファイルのＰＤＦデータをプリンタ１１０転送するインテリジェントＰＤＦ解析部１０２を含む。ＰＤＦ解析部１０２は、ＰＤＦファイルの複数のコンテンツがそのファイル内でどのように構成されているかについての知識を有し、ＰＤＦデータ内の複数のリソースや複数のコマンドなどの複数のブロックがレンダリング処理によって必要とされる順序を予想することができる。前記解析部は、ＰＤＦデータの適切な複数のブロックを解析し、それらを適切な順序でプリンタ１１０に転送する。ＰＤＦ解析部１０２は、どのＰＤＦデータが既にプリンタへ転送されたかについても記録する。プリンタ１１０のプリンタコントローラ１２０は、たとえば、ＰＤＦからＰｏｓｔＳｃｒｉｐｔ（ポストスクリプト：登録商標）への変換処理、および／またはビットマップ画像データを生成するためのラスター処理を実行するといったようにＰＤＦデータをインタプリタ処理（レンダリング）するためのＰＤＦレンダリングモジュール１２２を含む。プリンタコントローラ１２０も、前記クライアントから受信されたＰＤＦダイレクトプリントデータの各ブロックがプリンタ上で格納された場所を記録するデータベースモジュール１２１を含む。データベースモジュール１２１は、クライアント側のＰＤＦ解析部１０２とプリンタコントローラのＰＤＦレンダリングモジュール１２２との間のブリッジとして働く。ＰＤＦダイレクトプリントデータの一のブロックがクライアント１００からプリンタコントローラ１２０へ転送されるとき、データベースモジュール１２１は、プリンタのメモリ１１４（ＲＡＭ、および／またはハードディスクなどが総括してメモリと称される）内にブロックデータを格納するとともに、前記ブロックが格納された記憶場所をメモリ割り当てデータベース１２３に格納する。ＰＤＦレンダリングモジュール１２２は、レンダリング処理のために次に必要となるのは、どのＰＤＦデータであるかを決定し、そのデータの記憶場所を得るために、前記メモリ割り当てデータベース１２３にアクセスし、当該場所でメモリ１１４から前記データを読み出す。
【００２１】
ＰＤＦファイル全体が、規定のページ順でプリント、すなわち、ドキュメント内の第１ページから最終ページへとプリントされるべき場合、ＰＤＦ解析部１０２は、プリンタ１１０から付加的な情報を受信することなく、ＰＤＦデータを解析し、それを適切な順序でプリンタへ転送することができる。このような状況においては、クライアント１００とプリンタ１１０との間の双方向通信は、レンダリング処理のために必要とされない。一方、他のいくつかの状況においては、ＰＤＦ解析部１０２は、当該解析部１０２がＰＤＦデータを最適順序で転送することを確実にするために、印刷ジョブに関してプリンタコントローラ１２０から付加的な情報を受信することができる。一例は、印刷ジョブが、プリント処理のための特定のページ順を指定する場合である。たとえば、全てのページを印刷するのに代えて、印刷ジョブが、第１〜第３ページ、第７ページ、および第１０ページが所定順番で印刷されることを指定することもできる。さらに、いくつかの場合では、ジョブが開始する前には、前記プリンタも前記クライアントも完全なページ順番の知識を有しない。このような例においては、プリンタコントローラ１２０は、ＰＤＦ解析部１０２にページ順情報を送信し、ＰＤＦ解析部１０２が、そのページ順にしたがってＰＤＦデータを解析して転送する。ページ順情報は、ファイル全体のページ順をを含んでいてもよく、あるいは、次に印刷されるべき一のページまたは複数のページを含んでいてもよい。ＰＤＦ解析部は、少なくとも印刷されるべき次ページのページ番号が知らされるものであるならば、最適な転送順序を達成する。このように、本発明の実施形態による方法は、複数のページのうちの一部が印刷される場合であってもＰＤＦファイル全体が伝送される従来のＰＤＦダイレクトプリント処理とは異なって、不必要なＰＤＦデータが転送されることを避ける。特定のページ順が指定されていない場合には、ＰＤＦ解析部１０２は、規定のページ順にしたがってＰＤＦデータを解析することになる。ページ順を確認し、ＰＤＦ解析部１０２と通信する作業は、プリンタコントローラ１２０の前処理モジュール１２４によって実行される。
【００２２】
前記クライアント上の解析部１０２は、Ａｂｏｂｅ（登録商標）ＰＤＦ解析ライブラリ、およびＸＰＤＦ（エックス・ピーディーエフ）やＧｈｏｓｔＳｃｒｉｐｔ（ゴースト・スクリプト）などオープンソースの解析ライブラリを含むいずれかの適切なＰＤＦ解析プログラムを用いて実装されることが可能である。必ずしも要求されるわけではないが好ましくは、ＰＤＦ解析部１０２が、プリンタ上のＰＤＦレンダリングモジュール１２２によって使用される解析アルゴリズムと実質的に同一の解析アルゴリズムを使用することによって、当該解析部が、前記レンダリングモジュールにより必要とされるＰＤＦデータの順序を正確に予測することができる。異なるＰＤＦ解析アルゴリズムは、各ページの複数のリソースおよび複数のコマンドの順序などについて僅かに異なる転送順序を生じさせるかもしれないが、このような相違は、典型的には、全体的なレンダリングの性能に影響を与えない。解析部１０２によるデータ転送は、典型的には、レンダリングモジュール１２２によるＰＤＦレンダリング処理より速いので、レンダリングモジュールが新たなページを処理する前に、そのページ用の複数のリソースおよび複数のコマンドは、大概、既にプリンタへ転送されることになる。
【００２３】
レンダリングモジュール１２２は、ＰＤＦダイレクトプリントデータがプリンタ上に格納されるという前記新たな方法を用いて動作するように、ＰＤＦレンダリングソフトウェアにおける既存のＰＤＦ解釈ライブラリを修正することによって実装し得る。上述したたように、メモリ割り当てデータベース１２３は、ＰＤＦデータの様々なブロックが格納された記憶場所を記録するようにプリンタコントローラ１２０によって維持される。レンダリングモジュール１２２は、レンダリング処理のために如何なるＰＤＦデータ（たとえば、特定のリソース）が必要となるかを決定し、メモリ割り当てデータベース１２３にアクセスして、そのデータの記憶場所を獲得し、その場所においてメモリ１１４から当該データを読み出す。一般的なＰＤＦレンダリング処理では、（ファイル内での元々の順序で複数のデータブロックを有する）ＰＤＦファイル全体がプリンタに格納され、レンダリングモジュールは、格納されたＰＤＦファイル内における次に必要なデータの場所を決定し、ＰＤＦファイルから当該データを読み出す。本発明の実施形態によるレンダリングモジュール１２２を実装するために、既存のＰＤＦインタプリタ処理ライブラリは、必要なソースコードの変更がされるとともに前記ＰＤＦライブラリを再コンパイルすることによって、ソースコードのレベルで変更され得る。あるいは、ＰＤＦダイレクトプリントデータを読み出す既存ＰＤＦの複数のファイルアクセス機能を遮断して、それら機能をメモリ割り当てデータベース１２３にアクセスする新たな機能に変更するとともに、適当なときにクライアント上のＰＤＦ解析部１０２に通信するようにすることにより、オブジェクトコードのレベルで変更がなされてもよい。
【００２４】
これらの処理は、解析部１０２によって実行される。データベースモジュール１２１およびレンダリングモジュール１２２は、図４〜図６のフローチャートを参照しつつ以下に説明される。図４は、クライアントコンピュータ１００上のＰＤＦ解析部１０２によって実行されるＰＤＦデータ解析および転送の処理を説明する。ＰＤＦダイレクトプリントが処理開始されると、当該解析部は、まず、ＰＤＦファイルからディレクトリ情報ブロックを解析し、それをプリンタ１００に転送する（ステップＳ４１）。前記解析部は、ページ順情報、あるいはＰＤＦダイレクトプリントデータの所望の転送順序に影響を与えうる他の情報を含む何らかの情報が、プリンタから受信されたかを継続的に監視する。このような情報の一例は、「中断ページ（ａｂｏｒｔ  ｐａｇｅ）」コマンドである。特定のページ順情報がプリンタから受信されない場合には、解析部は、規定のページ順（すなわち、最初のページから最後のページへの順番）を仮定する（ステップＳ４２およびＳ４３）。ページ順情報（プリンタから受信された特定のページ順情報または規定のページ順情報）に基づいて、解析部は、ＰＤＦデータの次のブロックを解析し（ステップＳ４４）、それをプリンタに転送する（ステップＳ４５）。上述したように、解析アルゴリズムは、いずれかの適切なＰＤＦ解析ライブラリを用いて実装され得る。この処理（ステップＳ４２〜Ｓ４５）は、ＰＤＦファイルの全体が処理されてプリンタへ転送されるまで繰り返される。
【００２５】
図５は、プリンタコントローラ１２０のデータベースモジュール１２１により実行されるデータ格納処理を示している。前記クライアントからＰＤＦのデータブロックを受信した後（ステップＳ５１）、データベースモジュールは、受信されたデータブロックをメモリ１１４に格納し（ステップＳ５２）、データブロックが格納された記憶場所を記録することによって、メモリ割り当てデータベース１２３を更新する（ステップＳ５３）。この処理（ステップＳ５１〜ステップＳ５３）は、ＰＤＦファイル全体が受信されるまで繰り返される。
【００２６】
図６は、プリンタコントローラ１２０のＰＤＦレンダリングモジュール１２２によって実行されるレンダリング処理を説明する。レンダリング処理が開始された後、レンダリングモジュールは、レンダリングに必要となる次のＰＤＦデータブロックを決定する（ステップＳ６１）。この決定をする上で、（既に、プリンタに転送されている）ディレクトリ情報ブロックが参照される。このレンダリングモジュールは、次いで、このＰＤＦの必要なデータブロックを得るために、メモリ割り当てデータベース１２３にアクセスする（ステップＳ６２）。前記クライアント上のインテリジェントＰＤＦ解析部１０２の使用により、必要なデータブロックは、恐らく既にプリンタに転送されて、データベースモジュール１２１によってメモリ１１４に格納されている。前記記憶場所を得た後に、レンダリングモジュールは、メモリ１１４から必要とされるデータブロックを読み出す（ステップＳ６３）。データがクライアントから未だに転送されていない場合（たとえば、メモリ割り当てデータベースが、このブロック用の記憶場所の情報を含んでいない場合）には、レンダリングモジュールは、そのデータが転送されるまで待機することもでき、あるいは、必要なデータについて、クライアントに対して問合せ（ポーリング）することもできる（ステップＳ６２Ａ）。レンダリングモジュールは、次いで、メモリから読み出され（あるいは、クライアントからポーリングされた）データブロックを処理（すなわち、コマンドのインタプリタ処理またはブロック内に含まれるリソースの使用）をする。この処理（ステップＳ６１〜ステップＳ６４）は、ＰＤＦファイル全体がレンダリングされるまで繰り返される。フローチャートには示されていないが、適当な場合には、レンダリングモジュールは、上述したように、解析部１０２に対してページ順情報を送信する。
【００２７】
上述したデータ転送方法は、クライアント側で元々のＰＤＦの線形化バージョンを生じさせるために適用されることもできる。線形化されたＰＤＦファイルは、ディレクトリ情報がファイルの初期に現れるように編成されたＰＤＦファイルである。ドキュメントのページ１に必要とされる描画コマンドおよび全てのリソースは、ディレクトリ情報の後であって他のページよりも前に現れる。線形化されたＰＤＦフォーマットは、ドキュメントの第１ページが、ＰＤＦファイルの全体がクライアントから転送される前に、素早くレンダリングされることを可能とする。そのフォーマットは、それがウェブ・ブラウザ内よりも高速にＰＤＦファイルをオンラインで参照できるようにすることから、「ファースト・ウェブ・ビュー（ｆａｓｔ  ｗｅｂ  ｖｉｅｗ）」とも称される。上述した本発明の実施形態によるＰＤＦダイレクトプリント方法においては、ＰＤＦファイル全体がプリンタ側に転送される後に、ＰＤＦデータが、プリンタのメモリ１１４に格納され、データベース１２３は、ＰＤＦの各データブロックの記憶場所に関する情報を含む。このように、もし所望するならば、線形化されたＰＤＦファイルを、格納されたデータから簡単に生成することができる。このようにするためには、新規なＰＤＦファイルが開かれると、プリンタコントローラ１２０のモジュールが、ＰＤＦデータの複数のコンポーネントを、線形化されたＰＤＦファイル用に定義された順序とフォーマットにしたがってファイルに書き込む。ディレクトリ情報も、同様に再び書込まれる。任意的に、このＰＤＦ線形化処理は、ＰＤＦ印刷処理と同時に生じ得る。特に、複数コアのＣＰＵシステムにおいては、一つのＣＰＵコアを、線形化作業に専従させることができる。結果として生じた線形化されたＰＤＦファイルは、プリンタコントローラによってドキュメントを再プリントするために、あるいは、プリンタコントローラに付随するモニタ上でドキュメントを高速表示するために、用いることができる。このことは、時々、ＰＤＦドキュメントを表示して編集し、それを再プリントすることが所望されるコマンドワークステーションにおいて特に有用である。
【００２８】
上述したデータ転送方法は、プリンタが他の印刷ジョブを頻繁にプリントする場合において、ＰＤＦダイレクトプリントジョブをスプーリングするのに使用することができる。スプールされたファイルは、プリンタが開放されたときにプリントされるように、プリンタに格納される。スプーリングは、プリンタがビジーである場合にクライアントコンピュータがプリンタに束縛されることなきように開放するので、有益である。上述したデータ転送方法を使用することによって、ＰＤＦの複数のデータブロックが、ＰＤＦレンダリング処理で使用される順番でクライアント（解析部）から転送される。プリンタは、ＰＤＦの複数のデータブロックを、受信した順番で格納し、データベースモジュール１２１は、複数のデータブロックが格納されたそれぞれの記憶場所をメモリ割り当てデータベース１２３に記録する。前記ＰＤＦダイレクトデータおよび前記メモリ割り当てデータベースは、プリンタが自由にデータをレンダリングすることができるようになるまで、格納される。スプールされたＰＤＦデータは、従来からされているように、すべてプリンタのハードディスクに格納されることもでき、あるいは、スプールされたＰＤＦダイレクトデータは、共に所有され同時継続している「スプールされたプリンタファイル用のＲＡＭ記憶装置を用いるダイレクトプリント方法」とう題目の米国特許出願に記述される方法を用いることによって、一部がＲＡＭに格納されてもよく、一部がハードディスクに格納されてもよい。
【００２９】
上記の記述から分かるように、前記クライアント上のインテリジェントＰＤＦ解析部１０２の提供は、プリンタコントローラのレンダリングモジュール１２２が、中間ファイルを出力することなく（オン・ザ・フライ）、ＰＤＦダイレクトプリントデータをインタプリタ処理（解釈）することを可能とする。換言すれば、本発明は、プリントジョブのＰＤＦダイレクトプリントデータの残りの部分がまだクライアント側にあるのにもかかわらず、レンダリングモジュール１２２が、コントローラ側で利用可能な部分的なＰＤＦデータを処理することを可能にする。このことは、総印刷時間のみならず第１ページ出力時間についても改善する。
【００３０】
上述の説明では、ＰＤＦドキュメントのダイレクトプリントが一例として用いられていたが、本方法は、ＰＤＦダイレクトプリントに限られない。本方法は、他の種類のドキュメント、特に、不連続な方法でドキュメントにアクセスすることをインタプリタに要求する種類のドキュメントに適用することができる。
【００３１】
本発明の精神または範囲から逸脱することなく、本発明のダイレクトプリント方法および装置について様々な変更および変形が可能であることは、当業者にとって明らかである。したがって、本発明は、添付された請求の範囲およびその均等物の範囲内に入る変更および変形に及ぶものであることが意図される。
【図面の簡単な説明】
【００３２】
【図１】本発明の一実施形態によるＰＤＦダイレクトプリント方法におけるデータ転送タイミング順序を図式的に示している。
【図２】本発明の一実施形態によるＰＤＦダイレクトプリント方法におけるデータ転送タイミング順序を図式的に示している。
【図３】本発明の一実施形態によるクライアントとプリンタを備えるシステムを図式的に示している。
【図４】本発明の一実施形態によるクライアントコンピュータ上のＰＤＦ解析部によって実行されるＰＤＦデータ解析および転送の処理を示している。
【図５】本発明の他の実施形態によるプリンタコントローラのデータベースモジュールによって実行されるデータ格納処理を示している。
【図６】本発明の他の実施形態による前記プリンタコントローラのＰＤＦレンダリングモジュールによって実行されるレンダリング処理を示している。
【図１】
2008262543.tif 000003
【図２】
2008262543.tif 000004
【図３】
2008262543.tif 000005
【図４】
2008262543.tif 000006
【図５】
2008262543.tif 000007
【図６】
2008262543.tif 000008
【外国語明細書】
2008262543000001.pdf
2008262543000002.pdf
2008262543000003.pdf
2008262543000004.pdf