説明

プリンタにドキュメントおよびリソースを送信するシステム

プリンタによる印刷ジョブの印刷を制御するシステムおよび方法。印刷要求が、クライアントからプリンタに送信される。要求は、印刷ジョブに対する固有のソース識別子、印刷ジョブを構成する1つまたは複数のドキュメントのタイプ、複数のドキュメントリソースを取り込めるソースアドレス、ならびに上記1つまたは複数のドキュメントに適用するプリンタ設定を含む。プリンタはジョブのサイズを通知されてよく、あるいは、データが利用可能であればデータがプリンタに送信されるストリーミングモードで動作してもよい。プリンタは、この初期要求に対して、印刷ジョブ要求が受入れ可能であるかどうかを示す初期応答により回答し、要求が受入れ可能である場合、クライアントが用いるためにプリンタでのジョブに対してプリンタ識別子を供給して、次いでプリンタ上のジョブを特定する。


【発明の詳細な説明】
【技術分野】
【0001】
本発明は、印刷デバイスと、個人ユーザのパーソナルコンピュータもしくは共有プリンタサーバ等のクライアントとの間で対話するためのプリンタプロトコルに関する。
【背景技術】
【0002】
コンピュータがレンダリングのためにデバイス(プリンタ等)にドキュメントを送信した際に、このデバイスがメモリに全ドキュメントを記憶するためのリソースを備えているとは限らない。このような場合、デバイスがその限られた使用可能なリソースだけを用いて全ドキュメントをレンダリングするのを可能にするある種の機構を使用しなければならない。本明細書では、用語「印刷クライアント」はパーソナルコンピュータと共有印刷サーバの両方を指すのに用いられる。
【0003】
ラスタベースのドキュメントフォーマットについては、通常これは、デバイスにドキュメントをバンドまたはタイルで送信することによって行われる。1つのバンドが処理されると、次のバンドがプリンタに送信される。
【0004】
ベクトルベースのドキュメントについては、限られたリソースを用いて印刷するという問題はさらに深刻になる。ドキュメントは、それが直線、曲線およびグリフ等の描画基本要素(drawing primitive)により表現される場合、ベクトルベースであるとみなされる。直線は、レンダリングの開始位置および修了位置、直線の幅、ならびにレンダリングの可能な色によって特徴付けられる。曲線については曲率半径という複雑さが加わる。グリフは、記号または文字の断片である。ローマ式アルファベットにおいては、文字とそのグリフとの間には、ほぼ1対1の対応がある。アラビア系または東アジア系の書記言語では、1つの文字は通常2つ以上のグリフから構成される。通常のベクトル言語には、傾き、アルファブレンド(alpha blend)、ポリンゴン等、さらなる描画基本要素もある。しばしば、フォントもしくはピクチャ、および描画基本要素等のリソースを埋め込んだベクトルベースのドキュメントは、それら追加リソースを参照するために使用することもできる。レンダリングデバイスまたは機構を用いて、全ドキュメント、または、ドキュメント内の全リソースもしくは構成要素を、メモリ内に保持することができないということもよくある。この状況は、デバイスがドキュメントを、そして基本要素でさえも、少しずつレンダリングしなければならないということを意味している。
【発明の開示】
【発明が解決しようとする課題】
【0005】
従来技術では、ページに対するドキュメントリソースをプリンタにダウンロードして、ドキュメントリソースが必要なときに確実に使用可能になるように、ドキュメントをフォーマットしている。この解決策では、印刷クライアントが制御される(is in control)。PDL(ページドキュメント言語)においては、ドキュメントリソースの寿命および可用性を管理するための精巧な機構が必要となる。
【0006】
この機構を堅牢なもの(robust)とするために、以下の3つの方策の1つが実施される。
【0007】
1)印刷クライアントが各ページにページ用ドキュメントリソースを埋め込み、これをプリンタに送信する。これは有効ではあるものの、リソース(多数のページに共通のフォントの透かしまたはグリフ)が多くのページに現れる場合、帯域幅の観点から非効率となる。1枚のページに対するリソース要件がデバイスの能力を超えた場合、ページの印刷は不可能となる。
【0008】
2)印刷クライアントは、PDLジェネレータ(印刷クライアントドライバのレンダリング部)からプリンタへの双方向通信チャネルを必要とする。これは、以下のいずれかを目的としている:
2a)消費されるプリンタリソース量を監視し、PDLストリームがリソースの一部を解放する操作を担当する場合、同操作をこのPDLストリームで行うこと;
2b)前もって送信されたドキュメントリソースが依然として利用可能であるかどうかを照会し、そうでない場合に限り、該ドキュメントリソースを再度送信すること。
【0009】
3)PDLジェネレータからの双方向通信チャネルを欠いている場合、ジェネレータはそれが消費するプリンタリソース量の推定を試み、この推定に基づいて選択肢2a)(上述)を実行することが可能である。勿論、100%信頼できるものではない。というのは、プリンタがどのようにPDLを実行するのかをドライバが確実に把握することはできないからである。
【0010】
上記第3の選択肢(この選択肢は現在Windows(登録商標)Windows(登録商標)XP(登録商標)などのWindows(登録商標)Windows(登録商標)オペレーティングシステムが実行する)の利点は、印刷クライアントとプリンタとの間の通信が一方向で十分であるということである。
【0011】
第3の方策を用いると、アプリケーションプログラムがプリンタの使用を開始したいとき、まずこのアプリケーションはプリンタデバイスコンテキストに対するハンドルを取得し、これによりプリンタデバイスドライバライブラリモジュール(DLL拡張子を有するファイルおよび他のデータファイル)がメモリにロードされ、それ自身が初期化される。印刷ドライバは、オペレーティングシステムグラフィックによる支援を受けて、PDLにレンダリングする。その結果、プリンタリソースの必要量は1枚のページに対してさえも膨大になる可能性がある。この問題を解消するため、1つの先行技術の手法では、フォントをサブセットに分け、場合により画像のサイズを小さくする。必然的に上記第3の方策がプリンタを処理できないデータで一杯にする(その結果エラーメッセージを生じ、印刷が中断する)という可能性は、クライアントとプリンタの間の簡単な基本的に一方向の通信によって相殺されるのであり、このことは、パラレルプリンタポートまたはプリンタが接続された既存ネットワークから送信する場合に有利である。
【課題を解決するための手段】
【0012】
典型的なシステムはデバイス上でのテキスト、画像等のレンダリングを制御する。クライアントとデバイスとの間に少なくとも半二重またはそれより優れた双方向通信パスを形成する通信チャネルが確立される。1つの典型的な用途では、デバイスはテキスト画像等を紙に転写するためのプリンタである。クライアントは、クライアントとして構成されたコンピュータすなわち、ネットワーク上でクライアントソフトウェアを実行するノードであってよく、あるいは、いくつかの可能な通信プロトコルのうちの1つを用いて通信する単一のコンピュータであってよい。印刷デバイスは、印刷データを記憶し、双方向通信パスを介して印刷クライアントから印刷デバイスに送信されたデータに基づく画像をレンダリングするための印刷リソースを含む。
【0013】
クライアントは、印刷ジョブに関係する印刷サービスを求める初期要求を送信することによって、印刷デバイスによるレンダリングを開始する。一実施形態によると、この初期要求は、印刷ジョブのデータ量およびこのデータの特徴を示している。この初期要求は、印刷デバイスによって応答され、初期量のデータが要求される。印刷クライアントはそれに応じて初期量のデータを送信し、さらなるデータを求める追加の要求を待つ、または、初期の要求に応答して印刷ジョブの印刷データすべてが送信された場合、その印刷ジョブの印刷が終了したという指示を待つ。
【0014】
代替実施形態では、ジョブのイニシエータはジョブ開始の時点で送信されたデータ量を知らされていない。それにもかかわらず、これ以上印刷するデータがなくなるまでイニシエータがプリンタにデータ要求を続けるよう通知する「ストリーム」モードでプリンタが動作できることが必要となる。この前提は上記の実施形態と類似しているが、これ以上送信するものがなくなるまでプリンタがページレベルのデータを要求し続け、クライアントがノーモアデータ(no more data)(NAK)メッセージで応答する点が異なる。
【0015】
本発明に関する上記および他の目的、利点および特徴を添付の図面を参照しながら説明する。
【発明を実施するための最良の形態】
【0016】
図面を参照すると、本発明の例示的な実施形態が示されている。本発明の対象となるタスクは、レンダリングするドキュメントをプリンタ等のデバイスに転送する処理である。図2は、典型的な印刷シナリオを示す。印刷クライアント102は通信パス106を用いてプリンタ104と通信する。コンピュータとプリンタの間の通信セッションは、照会/応答形式の通信をサポートできる任意の通信チャネルを介して実行される。例としては、TCP、USB、1394、ブルートゥース、HTTP、SSLがある。半二重またはそれより優れたチャネルを使用してよい。HTTPは、本発明のこの例示的実施形態のキャリアとして特に適している。印刷クライアント102のさらなる詳細は、図1を参照して説明される。
【0017】
ドキュメントを印刷したいデバイス(たいていは印刷クライアントまたはPC102であり、以後クライアントと称す)とプリンタとの間で行き来する通信(図3)により印刷タスクが実行される。印刷クライアントは、初期要求110をプリンタ104に送信する。1つの例示的実施形態では、初期要求は、a)印刷ジョブに対する固有の識別子、b)ドキュメントのタイプ、および、c)ドキュメントリソースが検索されるアドレス(たいていクライアントのアドレス)を含む。これは上記のコンピュータのアドレスとしてよいが、アドレスは、プリンタ104と通信する別の通信チャネルを介して利用可能な他のコンピュータのアドレスであってもよいことに留意されたい。
【0018】
初期要求110は、印刷するページ範囲、コピーの部数など、ドキュメントに適用するプリンタ設定も含む。文書に関するメタデータ、たとえば総サイズもプリンタに送られる。最後に、初期要求はタイムアウトプリンタハートビートを含む。ハートビートは、プリンタがジョブをキューに入れている、または実施にジョブを印刷していることをクライアントに知らせる。プリンタは、メッセージを周期的に(タイムアウトで指定されるように)クライアントに送信し、印刷ジョブ要求が依然として引受け中であることをクライアントに通知する。このことにより、プリンタの電力供給が停止する等の予見できない理由により、ジョブが放棄されたかどうかをクライアントが知ることができる。
【0019】
プリンタ104は、ドキュメント印刷要求が受入れ可能であるかどうかを示す応答112と共に、クライアントからの要求に回答する。印刷ジョブが受け入れられた場合、応答112はプリンタ104での印刷ジョブに対する固有識別子も含む。印刷ジョブが受け入れられた場合、クライアントは、プリンタが将来要求を引き受ける意志があるものとみなす。プリンタは、複数のジョブをキューに入れることも可能である。クライアント102は上記の識別子を用いて、管理プロトコルによりプリンタ上のドキュメントを後で操作することも可能である。プリンタ104はネットワークと結合してもよく、他のソースから多数の印刷ジョブを印刷する要求を受信してもよく、したがって、各ジョブにはプリンタにより固有のジョブ識別子が割当てられ、次いでクライアントにより上記ジョブに割当てられた固有の印刷ジョブ識別子(print job designator)がプリンタに知らされる。
【0020】
図4Aおよび図4Bに示した2つのプリンタ130、132のリソースについて検討する。各プリンタは、印刷ヘッド134、135を含み、印刷ヘッド134、135は同ヘッドに送信されたデータに基づいて各プリンタにより画像をレンダリングするためのものである。代表的な印刷ヘッドは、レーザまたはインクジェット印刷ヘッドを含んでよい。2つのプリンタ130、132はまた、印刷ジョブのドキュメントのページをフォーマットするためのメモリ領域136、138を含む。両プリンタでは、メモリ136、138はほぼ同じサイズであり、典型的なプリンタでは数メガバイトのRAMを含んでよい。
【0021】
プリンタ130は、追加の高速メモリと、ハードドライブと、場合により特殊なグラフィックプロセッサとを含む追加のプリンタリソース140を有する。またプリンタ130は、クライアントから受信したデータを操作し、このデータをメモリ136に転送できるようにフォーマットするコンピュテーションハードウェア(computational hardware)144を含む。プリンタ132は、場合により小容量の付加メモリを含むより制限されたリソース150を有する。第2のプリンタ132内のコンピュテーションハードウェア154もクライアントからデータを受信し、このデータをメモリ138で記憶するためのフォーマットで体系化する。
【0022】
プリンタ130は、より多くのリソースを有しているという点で、プリンタ132よりも強力である。たとえば、これは複数のソースからの複数の印刷ジョブに関するリソースすべてを完全に記憶する容量を有する。プリンタ132は、より制約されている。これは、1ページ超のテキストを占める印刷ジョブのごく一部に対するリソースを有する。ある種のラスタプリンタについては、プリンタは、1ページのコンテンツを記憶するのに十分なリソースさえも持たない場合がある。このようなプリンタは、各ページを印刷する際にコンテンツのページを、バンド/タイル処理(band/tile)しなければならない。
【0023】
プリンタがドキュメントをレンダリングする準備が済むと、プリンタは、クライアントが指定したアドレスにドキュメントデータを求める要求114を送信する。図3に示したデータの交換では、クライアントと、データを見出すアドレスとは同一である。要求114は、クライアントから送信された情報に基づいてドキュメントを識別する。例示的システムの一実施形態によると、データ要求114は、3タプル(x,y,z)であり、ただし、xは検索するドキュメント内のリソースを特定し、yはリソースデータに対するオフセットであり、zはyで開始する検索データの量である。本発明の範囲から逸脱することなく、要求の他のフォーマットも可能である。たとえば、グリフの範囲をプリンタが要求してもよい。2つのプリンタ130、132間の能力に差があるために、この要求はプリンタが異なると全く異なるものである。プリンタは、URI(Universal Resource Indicator)により印刷に必要なリソースを参照してもよい。プリンタのコンピュテーションハードウェアは、クライアントからの戻りデータが従うべき、要求に含まれた調査および属性情報(長さ、データフォーマット、圧縮レベル、画像解像度、等)を具備するリソースを要求してよい。
【0024】
ドキュメントリソースの記述xは、ドキュメントフォーマットに関連付けられる。プリンタは、初期要求110でフォーマットについて通知されているので、フォーマットを知っていることになる。プリンタはドキュメントフォーマットを理解する必要がある。印刷ジョブが開始すると、たとえば、プリンタはオフセットがゼロで印刷されるべき最初のページのページ記述を求め、検索されるデータに対するある好都合なサイズを指定する。プリンタは後で、ドキュメント中の他のリソースを求めてもよい。
【0025】
図5は、複数のページを各ドキュメントが含んでよい複数のドキュメントからなる印刷ジョブ160を例示している。ドキュメントの1つの例は、XMLマークアップ言語によりフォーマットされたドキュメントである。各ドキュメントページは、埋め込まれたアスキーテキストならびにテキストフォント、ピッチ等の詳細を含んで良い。さらに、ページは、ドキュメントの一部ではないがリソース162のカタログまたはフォルダでクライアントに記憶されたドキュメント中のXMLタグで定義された位置で画像(jpeg、bmp等)に対する参照を含んでよい。クライアントまたはデータソース上にドキュメントファイルが存在すること、ならびにアスキーまたは他のリソースが様々なデータストリームで単一のドキュメントファイルに記憶されることも可能である。
【0026】
この要求に対するクライアント応答116は、プリンタ104が要求したデータを含む。ジョブを完了するために必要な残りのデータが要求された量よりも自然に(naturally)少ない場合、要求されたよりも少ないデータが返される。ある状況においては、プリンタは要求110の開始時にジョブサイズを知らないことになる。したがって、プリンタおよびクライアントが、送信すべきデータがこれ以上なくなるまでプリンタがページレベルでデータをさらに求めるストリーミングモードを実行できる必要がある。そのような必要性の一例は、数千のエントリを有するペイロールジョブに対するバッチランである。印刷ジョブに対するデータの全長は、ジョブが開始した際にクライアントに知らされる。この代替実施形態では、クライアントは、特定のサイズをジョブに対して指定することなく初期要求110を送信できることが必要である。
【0027】
受信すると、プリンタはデータを処理し、このデータが何を含んでいるかに基づいて追加のデータを求める別のまたは追加の要求118を、クライアント104に対して発行する。ページがピクチャを、または場合によりフォントを含む場合は、プリンタ要求はそのピクチャまたはフォントを要求してもよい。これは、プリンタでリソースが不足しているために以前そのデータがあるページをフォーマットするために使用されたものの他ページのフォーマットが必要なため(場合により他ソースからの他の印刷ジョブが必要なため)該データが廃棄された場合に行うことができる。
【0028】
一般に、プリンタおよびクライアントは、データをページに編成する。限られたリソースを有するプリンタ132があるページを印刷した場合、プリンタ132は次のページのデータを取り込む要求を発行する。この要求も複雑になる可能性がある、というのも、プリンタ132等リソースが限られたプリンタにおいては、該要求はたとえばテキストおよび画像データをインターリーブし、このデータを一度に1つのバンドで専用ページメモリ138にロードするからである。プリンタからのデータ要求、およびクライアントからプリンタへのデータを伴う応答は、要求されたジョブすべてが印刷されるまで繰り返される。プリンタ130は、他のジョブで過負荷状態でなければ、データ114を求める要求の中でジョブ160に関するリソースすべてを求める。プリンタ130はデータを記憶する大量のリソースを有しているので、フォントまたは画像であってもその詳細がプリンタ130のリソース領域140に既に記憶されていてもよい。
【0029】
動作の一形態によると、プリンタは初期要求110でドキュメントサイズが送信されており、そのため、(ドキュメントのサイズおよびパージ範囲に基づいて)図3に示す対話のやり取りをショートサーキット化(short circuit)する十分なリソースがあるかどうかを判定できる。プリンタは、1つの要求114ですべてのリソースを求めてよい。これは、大量のリソースを有するプリンタに対する最適化となる。こうすることが最も効率的である、というのも、クライアントがドキュメントすべてを印刷したくて、かつプリンタがリソースを有している場合、最も速い方法は一度にドキュメントリソースすべてを受信することであるからである。
【0030】
他の動作形態では、初期要求110はジョブまたはドキュメントサイズを知らない。プリンタは、データの要求を続ける全ドキュメント印刷モードに加えて、送信すべきものがなくなるまでオープンエンド要求または「ストリーム」モードに応答する必要がある。クライアントは、ページに対するデータすべてが利用可能な場合のみ新しいページの送信を開始することになる。利用可能なページがない場合、クライアントは「ノーモアデータ」メッセージを送信し、プリンタは印刷動作を終了する。
【0031】
第1の実施形態では、基本的な前提は、プリンタが印刷開始を求められたときドキュメントが既に完全であること、または、プリンタが消費できるよりも迅速にドキュメント(サイズは既知)のコンテンツが生成されることである。この前提は通常は成立するが、常に成り立つというわけではない。この起こり得る問題を解消するため、2つの概念を導入する。
【0032】
プリンタがリソース114を求める要求を送信すると、クライアントからの応答116がリソースは利用可能でないことを提示してよい。この応答はタイムアウトを含む。プリンタは、この時点でジョブの処理を停止する。次いで印刷クライアントは、要求データが利用可能になったとき、別の要求をプリンタに送信しなければならない。プリンタはリソース利用可能メッセージ(resource available message)に対して承認(acknowledgement)で応答する。プリンタは、リソースを求める要求を再送することによりジョブを再開する。リソースがタイムアウト内に利用可能にならず、かつコンテンツがドキュメントに対して依然として追加中であれば、クライアントは他リソース利用不可能要求(another resource not available request)を送信することにより、タイムアウトを新タイムアウトによってリセットする。プリンタは待機し続ける。
【0033】
リソース要求に対する各応答116は、コンテンツが依然としてドキュメントに追加中であるか否かを示すフラグを有する。これは、プリンタがドキュメント全体を印刷することを求められ、かつプリンタがドキュメントをその作成よりも速く消費する場合に重要となる。プリンタは次のページを求め続けることが可能である。ページが存在しない場合、クライアントはコンテンツ利用不可能メッセージ(content unavailable message)で応答する。プリンタは、コンテンツにフラグセットが追加されていない応答を見ると、すべてのページが印刷されたことを知る。リソース要求に対するすべての応答パケットは適切にフラグセットを有するべきである。
【0034】
プリンタは様々なリソースを有し、本発明の1つの特徴は、一度に1つずつドキュメントまたはジョブのリソースをプリンタが求める場合に対処できることである。単純な例では、プリンタは、ページ1の最後に到達するまでに、ドキュメントの最初のページの1000バイト分を求め、次いで次の1000バイト分を求め、以下同様にする。より現実的なシナリオでは、ドキュメントフォーマットは、クライアントとプリンタとの間の通信を効率的にするために、リソース参照に対する埋込みリソースサイズを含むページサイズ、および、ページ記述を有するページインデックスを含む。
【0035】
プリンタは、ジョブが完了したことを判定する要求118をクライアントに送信する。クライアントがプリンタからの要求への応答に失敗した、もしくは、ドキュメントが存在しない(ドキュメントが削除された可能性があることを示す)場合、プリンタはジョブを削除しなければならない。プリンタは、適切とみなされる場合に、要求を再び試みてよい。
【0036】
図3の一連の通信対話は、印刷ドキュメントの基本フォーマットを示す。基本的概念に追加された特徴を実現するいくつかの改善が企図される。プリンタ104がクライアント102により送信されたメタデータから、ドキュメント全体に対処する十分なリソースを有すると判定された場合、プリンタはドキュメント全体を転送する要求を行ってもよい。
【0037】
プリンタ130等の強力なプリンタはリソースまたはリソースの一部をダウンロードすると、それをヒットキャッシュ(hit cache)に記憶できる。リソースは、利用されていない場合、または、新たなリソースがキャッシュに追加された場合、キャッシュから経時的に除かれる(age out)。このシナリオでは、プリンタはまず、リソースを求める要求を発行する必要がある場合、キャッシュを確認する。これにより通信量が軽減され、プロトコルの騒然な行き交い(chattiness)が低減され、レンダリングの性能が改善される。
【0038】
コンピュータシステム
図1は、例示的な処理デバイスを示す。図1に示した処理デバイスはクライアント102として機能できる。図1に示したようなデバイスは、プリンタ130等より強力なプリンタ向けのコンピュテーションハードウェアとしても機能できる。システムは従来型のコンピュータ20の形態の汎用コンピューティングデバイスを含み、コンピュータ20は、1つもしくは複数の処理ユニット21、システムメモリ22、ならびに該システムメモリを処理ユニット21に対して接続することも含めて、各種のシステム構成部品を互いに接続するシステムバス23を含む。システムバス23は、メモリバスもしくはメモリコントローラと、周辺バスと、各種バスアーキテクチャのいずれかを用いたローカルバスを含む数種のバス構造のうちのいずれであってもよい。
【0039】
システムメモリは、読出専用メモリ(ROM)24、ランダムアクセスメモリ(RAM)25を含む。起動時等にコンピュータ20内の各要素間で情報の伝達を助ける基本ルーチンを含む基本入出力システム26(BIOS)は、ROM24に記憶されている。
【0040】
コンピュータ20は、ハードディスクからの読取りおよびそれに対する書込みをするためのハードディスクドライブ27(不図示)、取外し可能磁気ディスク29からの読取りまたはそれに対する書込みをするための磁気ディスクドライブ28、ならびに、CD ROMまたは他の光メディア等の取外し可能光ディスク31からの読取りまたはそれに対する書込みをするための光ディスクドライブ30をさらに含む。ハードディスクドライブ27、磁気ディスクドライブ28、および光ディスクドライブ30は、それぞれ、ハードディスクドライブインターフェース32、磁気ディスクドライブインターフェース33、および光ディスクドライブインターフェース34を介してシステムバス23に接続されている。上記ドライバおよび上記ドライバに関連するコンピュータ読取り可能メディアは、コンピュータ20用のコンピュータ読取り可能な命令、データ構造、プログラムモジュールおよび他のデータのための不揮発性ストレージを形成する。本明細書で説明する例示的環境ではハードディスク、取外し可能磁気ディスク29、および取外し可能光ディスク31を使用するが、コンピュータがアクセス可能なデータ記憶可能な他の種類のコンピュータ読取り可能メディア、たとえば磁気カセット、フラッシュメモリカード、デジタルビデオディスク、Bernoulliカートリッジ、ランダムアクセスメモリ(RAM)、読出専用メモリ(ROM)等も例示的動作環境で使用可能であることを当業者は理解されよう。
【0041】
オペレーティングシステム35、1つまたは複数のアプリケーションプログラム36、他のプログラムモジュール37、およびプログラムデータ38を含め、いくつかのプログラムモジュールをハードディスク、磁気ディスク29、光ディスク31、ROM 24またはRAM 25に記憶してよい。ユーザは、キーボード40およびポインティングデバイス42等の入力デバイスを介してコンピュータ20にコマンドおよび情報を入力できる。他のデバイス(不図示)は、マイクロフォン、ジョイスティック、ゲームパッド、パラボラアンテナ、スキャナ等を含む。上記および他の入力デバイスはしばしばシステムバスに結合されたシリアルポートインターフェース46を介して処理ユニット21に接続されるが、他のインターフェース、たとえばパラレルポート、ゲームポートまたはユニバーサルシリアルバス(USB)を介して接続されてもよい。モニタ47または他の種類の表示デバイスも、ビデオアダプタ48等のインターフェースを介してシステムバス23に接続される。モニタに加えて、パーソナルコンピュータは典型的には、スピーカおよびプリンタ等の他の周辺出力デバイス(不図示)を含む。
【0042】
コンピュータ20は、遠隔コンピュータ49等の1つまたは複数の遠隔コンピュータに対する論理接続を用いたネットワーク環境で動作してもよい。遠隔コンピュータ49は、他のパーソナルコンピュータ、クライアント、ルータ、ネットワークPC、ピアデバイスまたは他の共通ネットワークノードであってよく、典型的にはコンピュータ20に関する上述の要素の多くまたは全てを含むが、ただし図1では1つのメモリストレージデバイス50しか示さない。図1に示した論理接続は、ローカルエリアネットワーク(LAN)51および広域ネットワーク(WAN)52を含む。このようなネットワーク環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットで一般的なものである。
【0043】
LANネットワーク環境で使用する場合、コンピュータ20は、ネットワークインターフェースまたはアダプタ53を介してローカルネットワーク51に接続される。WANネットワーク環境で使用する場合、コンピュータ20は典型的には、インターネット等の広域ネットワーク52上の通信を確立するためのモデム54または他の手段を含む。モデム54は内部的でも外部的でもよいが、シリアルポートインターフェース46を介してシステムバス23に接続されている。ネットワーク環境では、コンピュータ20に関連して示したプログラムモジュール、またはその一部は遠隔メモリストレージデバイスに記憶されてよい。図示のネットワーク接続は例示的なものであり、構成要素間で通信リンクを確立する他の手段も使用できることが理解されよう。
【0044】
本発明の例示的な実施形態をある程度具体的に説明したが、本発明は特許請求の精神と範囲にある開示構成からのすべての変更および改変を含むことが意図される。
【図面の簡単な説明】
【0045】
【図1】例示的なコンピュータシステムの概略図である。
【図2】通信パスを用いて通信するプリンタと印刷クライアントの概略図である。
【図3】印刷ジョブを印刷する際のプリンタと印刷クライアントとの間の通信シーケンスの概略図である。
【図4A】印刷ジョブを印刷する異なるリソースを有するプリンタを示す図である。
【図4B】印刷ジョブを印刷する異なるリソースを有するプリンタを示す図である。
【図5】印刷クライアントに記憶された印刷ジョブの概略図である。

【特許請求の範囲】
【請求項1】
デバイスによりレンダリングを制御する方法であって、
a)クライアントとレンダリングデバイスの間に少なくとも半二重またはそれより優れた双方向通信パスを形成するステップであって、前記デバイスは、データを記憶し、前記双方向通信パスを介してクライアントから前記デバイスに送信されたデータに基づいて画像をレンダリングするためのリソースを含むことと、
b)前記デバイスによるレンダリングを、
i)ジョブの特徴を示す、前記ジョブに関するサービスを求める初期要求を前記デバイスに送信し、
ii)初期要求に応答し、送信されるべきレンダリングデータを要求し、
iii)レンダリングデータを求める前記要求に応答して、レンダリングデータを送信し、さらなるデータを求める追加要求を待つ、またはジョブのデータすべてが前記レンダリングデバイスに送信された場合は前記ジョブのレンダリングが完了したという指示を待つ
ことにより、総合調整するステップと、
を備えることを特徴とする方法。
【請求項2】
前記初期要求と共に送信された前記特徴は前記ジョブのデータ量を含むことを特徴とする請求項1に記載の方法。
【請求項3】
前記初期要求は前記ジョブのデータ量が未知であることを示すことを特徴とする請求項1に記載の方法。
【請求項4】
前記デバイスに送信された前記データは、前記ジョブに対するデータが現在利用不可能であることを前記デバイスに示すデータ利用不可能インジケータを含み、さらに、前記データが利用可能になるまで前記デバイスが前記ジョブの処理をその間中断するタイムアウトを含むことを特徴とする請求項1に記載の方法。
【請求項5】
前記クライアントはデータを、前記データが前記クライアントに利用可能になった場合に前記レンダリングデバイスに送信し、前記レンダリングデバイスはさらなるデータの受信またはデータインジケータの終了を待つことを特徴とする請求項1に記載の方法。
【請求項6】
前記デバイスは、既に前記デバイスに送信されたデータを廃棄して、印刷クライアントからの追加データを収容することを特徴とする請求項1に記載の方法。
【請求項7】
前記デバイスは、後続のレンダリングで使用するために、前記ジョブのレンダリング中に以前廃棄したデータの再送信を求める要求を行うことを特徴とする請求項6に記載の方法。
【請求項8】
前記レンダリングデバイスはプリンタであり、前記データは前記クライアントにより複数のページに編成されており、前記プリンタから前記クライアントに送信されたデータを求める前記要求は、1つまたは複数のページを印刷する必要を満足することを特徴とする請求項1に記載の方法。
【請求項9】
前記初期要求は前記ジョブのデータ量を含み、前記クライアントから送信された前記初期要求から前記プリンタが、ドキュメントすべてに対処する十分なリソースを有すると判断した場合、前記プリンタはドキュメントすべてを印刷するためのデータ転送を要求することを特徴とする請求項8に記載の方法。
【請求項10】
前記レンダリングデバイスはプリンタであり、前記プリンタは、ドキュメントリソースまたはドキュメントリソースの一部を記憶するメモリを備え、前記プリンタはヒットキャッシュを保持し、新たなリソースが前記キャッシュに加えられた場合に、前記リソースが最近使用されていない場合、前記キャッシュからリソースを削除することを特徴とする請求項1に記載の方法。
【請求項11】
前記プリンタは、リソースを求める要求を発行する必要がある場合、まず前記キャッシュを確認することを特徴とする請求項10に記載の方法。
【請求項12】
前記初期要求に応答してデータのレンダリングを求めることが、実質的に直ちに、または、他のクライアントからのデータをレンダリングするためにリソースを利用することによる遅延の後に行われることを特徴とする請求項1に記載の方法。
【請求項13】
プリンタによる印刷ジョブの印刷を制御する方法であって、
クライアントから前記プリンタに印刷ジョブ要求を送信するステップであって、前記要求は、ジョブに対する固有ソース識別子、前記印刷ジョブを構成する1つもしくは複数のドキュメントのタイプ、複数のドキュメントリソースを取り込めるソースアドレス、前記1つまたは複数のドキュメントに適用する印刷設定、前記1つまたは複数のドキュメントに関するメタデータ、およびプリンタタイムアウトを含むことと、
前記要求に対して、前記ドキュメント印刷要求が受入れ可能であるかどうかを示す初期応答によって回答し、前記要求が受入れ可能である場合、前記クライアントが次いで前記プリンタ上の前記印刷ジョブを特定するのに使用するために、前記プリンタでの前記印刷ジョブに対してプリンタ識別子を供給するステップと、
前記ソースアドレスでのドキュメントデータを求めるデータ要求を提出するステップであって、前記データ要求は、取り込むべき前記ドキュメント内のリソース、および取り込むべきリソースデータの量を特定することと、
前記要求されたドキュメントデータを前記プリンタに送信するステップと、
前記データを前記プリンタにおいて処理し、前記ドキュメントデータのコンテンツに基づいて、追加のドキュメントデータを求める前記クライアントに向けた追加要求を発行するステップと、
を備えることを特徴とする方法。
【請求項14】
前記メタデータは前記1つまたは複数のドキュメントのサイズおよびタイプを含むことを特徴とする請求項13に記載の方法。
【請求項15】
前記データ要求はリソースデータ集合に対するオフセットを含むことを特徴とする請求項13に記載の方法。
【請求項16】
前記リソースデータ集合はグリフまたはグリフの範囲であることを特徴とする請求項15に記載の方法。
【請求項17】
前記リソースはピクチャまたはフォントを含み、前記プリンタは前記フォントまたはピクチャ用のデータを取り込むための新たな要求を発行することを特徴とする請求項13に記載の方法。
【請求項18】
前記プリンタはページを1つずつフォーマットし、各ページの後に前記プリンタは次のページのデータを取り込むための要求を発行することを特徴とする請求項13に記載の方法。
【請求項19】
印刷リソースを求める要求はジョブのすべてが印刷されるまで繰り返されることを特徴とする請求項13に記載の方法。
【請求項20】
前記プリンタは、前記ジョブが完了したことを示すメッセージを前記クライアントに送信することを特徴とする請求項13に記載の方法。
【請求項21】
前記印刷ジョブ要求は、前記プリンタが前記印刷ジョブを受け入れると、それが前記クライアントに利用可能になったときデータが前記クライアントから前記プリンタに送信されるストリーミングモードを示すことを特徴とする請求項13に記載の方法。
【請求項22】
前記初期要求はジョブのデータ量が未知であることを示すことを特徴とする請求項13に記載の方法。
【請求項23】
前記プリンタに送信された前記データは、前記ジョブのデータは現在利用不可能であることを前記プリンタに示すデータ利用不可能インジケータを含み、さらに、前記データが利用可能になるまで前記デバイスが前記ジョブの処理をその間中断するタイムアウトを含むことを特徴とする請求項13に記載の方法。
【請求項24】
データが前記クライアントに利用可能な場合に前記クライアントは前記データを前記プリンタに送信し、前記プリンタはさらなるデータまたはデータ終了インジケータの受信を待つことを特徴とする請求項13に記載の方法。
【請求項25】
a)送信するために印刷データを複数のページにフォーマットするクライアントと、
b)前記クライアントから前記印刷データを受信し、前記印刷データに基づいて画像をレンダリングするプリンタと、
c)クライアントと前記プリンタの間に少なくとも半二重またはそれより優れた双方向通信パスを形成する通信チャネルであって、前記プリンタは、印刷データを記憶し、前記双方向通信パスを介してクライアントから前記プリンタに送信されたデータに基づいて画像をレンダリングするための印刷リソースを含ことと、
d)前記プリンタによる画像レンダリングの総合調整を、
i)ジョブの特徴を示す、前記ジョブに関するサービスを求める初期要求を前記プリンタに送信し、
ii)初期要求に応答し、送信されるべき印刷データを要求し、
iii)印刷データを求める前記要求に応答して、印刷データを送信し、さらなるデータを求める追加要求を待つ、またはジョブのデータすべてが前記プリンタに送信された場合は前記ジョブの印刷が完了したという指示を待つ
ことによって行う、前記プリンタまたは前記クライアントに含まれる構成要素と、
を備えることを特徴とするドキュメント印刷システム。
【請求項26】
前記プリンタは1ページ分のデータを記憶するページメモリを備え、前記ページメモリのコンテンツに基づいて画像をレンダリングするために前記ページメモリと通信する印刷ヘッドをさらに備えることを特徴とする請求項25に記載のシステム。
【請求項27】
前記プリンタは、前記印刷クライアントから印刷データを求める要求を繰り返すことを回避するために、印刷データを記憶するリソースを含むことを特徴とする請求項25に記載のシステム。
【請求項28】
前記プリンタはドキュメントリソースまたはドキュメントリソースの一部を保持するメモリを備え、前記プリンタは、ヒットキャッシュを保持し、新たなリソースが前記キャッシュに加えられた場合に前記リソースが最近使用されていない場合、前記キャッシュからのリソースを削除するコンピュテーションデバイスを備えることを特徴とする請求項25に記載のシステム。
【請求項29】
前記プリンタのコンピュテーションデバイスは、リソースを求める要求を発行する必要がある場合、まず前記キャッシュを確認することを特徴とする請求項28に記載のシステム。
【請求項30】
a)クライアントとデバイスの間に少なくとも半二重またはそれより優れた双方向通信パスを形成する手段であって、前記デバイスは、データを記憶し、前記双方向通信パスを介してクライアントから前記デバイスに送信されたデータに基づいて画像をレンダリングするためのリソースを含むことと、
b)前記デバイスによるレンダリングを、
i)ジョブの特徴を示す、前記ジョブに関するサービスを求める初期要求を前記デバイスに送信し、
ii)初期要求に応答し、送信されるべきレンダリングデータを要求し、
iii)レンダリングデータを求める前記要求に応答して、レンダリングデータを送信し、さらなるデータを求める追加要求を待つ、またはジョブのデータすべてが前記レンダリングデバイスに送信された場合は前記ジョブのレンダリングが完了したという指示を待つ
ことにより、総合調整する手段と、
を備えることを特徴とするデバイスによるレンダリングを制御する装置。
【請求項31】
プリンタによる印刷を制御するための命令を含むコンピュータ読取り可能媒体であって、前記命令は、
a)クライアントと、データを記憶するリソースを含むプリンタとの間に半二重またはそれより優れた双方向通信パスを形成し、前記双方向通信パスを介してクライアントから前記プリンタに送信されたデータに基づいて画像をレンダリングすることと、
b)前記デバイスによる印刷を、
i)印刷ジョブの特徴を示す、ジョブに関するサービスを求める初期要求を前記プリンタに送信し、
ii)初期要求に応答し、送信されるべきレンダリングデータを要求し、
iii)レンダリングデータを求める前記要求に応答して、レンダリングデータを送信し、さらなるデータを求める追加要求を待つ、またはジョブのデータすべてが前記レンダリングデバイスに送信された場合は前記ジョブのレンダリングが完了したという指示を待つことにより、総合調整することと、
を備えることを特徴とするコンピュータ読取り可能媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4A】
image rotate

【図4B】
image rotate

【図5】
image rotate


【公表番号】特表2007−514236(P2007−514236A)
【公表日】平成19年5月31日(2007.5.31)
【国際特許分類】
【出願番号】特願2006−543797(P2006−543797)
【出願日】平成16年7月30日(2004.7.30)
【国際出願番号】PCT/US2004/024698
【国際公開番号】WO2005/060390
【国際公開日】平成17年7月7日(2005.7.7)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】