(57)【特許請求の範囲】
【請求項１】
プリンタで発生した所定種類のエラーを検出するエラー検出手段と、
前記プリンタが既に受けた印刷ジョブの中から、前記検出したエラーを発生させた印刷ジョブを特定するジョブ特定手段と、
前記特定した印刷ジョブと前記検出したエラーとを関連付ける関連付け手段と、
前記特定した印刷ジョブがキャンセルされた場合、前記関連付け手段によって前記特定した印刷ジョブに関連付けられた前記所定種類のエラーについてのエラー状態を自動的に解除するエラー解除手段と
を備えたプリンタ。
【請求項２】
前記印刷ジョブ特定手段は、前記プリンタが既に受けた印刷ジョブに含まれる印刷要求の中から、前記検出したエラーを発生させた印刷要求を特定し、
それにより実質的に、前記特定した印刷要求の含まれている印刷ジョブが、前記検出したエラーを発生させた印刷ジョブとして特定され、
前記関連付け手段は、前記特定した印刷要求と前記検出したエラーとを関連付け、
それにより実質的に、前記特定した印刷要求の含まれている印刷ジョブが、前記検出したエラーに関連付けられるようになっている請求項１記載のプリンタ。
【請求項３】
前記特定した印刷ジョブについての第１の処理と、前記特定した印刷ジョブに関連付けられたエラーについての所定の第２の処理とを、関連付けて行うエラー処理手段をさらに備えた請求項１と２のいずれか一項記載のプリンタ。
【請求項４】
前記第１の処理は、前記特定した印刷ジョブに関する情報をユーザに通知することであり、前記第２の処理は、前記特定した印刷ジョブに関連付けられたエラーに関する情報をユーザに通知することである請求項３記載のプリンタ。
【請求項５】
前記第１の処理は、前記特定した印刷ジョブ内の或る印刷要求に関する情報をユーザに通知することであり、前記第２の処理は、前記或る印刷要求に関連付けられたエラーに関する情報をユーザに通知することである請求項３記載のプリンタ。
【請求項６】
前記エラーが検出されたときに印刷が行われていた場合、前記印刷を停止する印刷停止手段と、
既に検出したエラーについてのエラー状態が印刷を行える程度まで解除されたとき、前記停止した印刷を自動的に再開する印刷再開手段と
を更に備えた請求項１記載のプリンタ。
【請求項７】
前記エラー解除手段は、前記特定した印刷ジョブに関連付けられた前記所定種類のエラーについては、前記特定した印刷ジョブのキャンセル前に発生したものかキャンセル後に発生したものかに関わらず全て、前記特定した印刷ジョブがキャンセルされた場合にエラー状態を自動的に解除するようになっている請求項１記載のプリンタ。
【請求項８】
前記特定した印刷ジョブがキャンセルされたことに応答して、前記特定した印刷ジョブについての印刷を以後行うことを禁止する手段をさらに備えた請求項１記載のプリンタ。
【請求項９】
プリンタで発生した所定種類のエラーを検出するステップと前記プリンタが既に受けた印刷ジョブの中から、前記検出したエラーを発生させた印刷ジョブを特定するステップと、
前記特定した印刷ジョブと前記検出したエラーとを関連付けるステップと、
前記特定した印刷ジョブがキャンセルされた場合、前記関連付け手段によって前記特定した印刷ジョブに関連付けられた前記所定種類のエラーについてのエラー状態を自動的に解除するステップと
を備えたプリンタのエラー処理方法。
【請求項１０】
前記エラーが検出されたときに印刷が行われていた場合、前記印刷を停止するステップと、
既に検出したエラーについてのエラー状態が印刷を行える程度まで解除されたとき、前記停止した印刷を自動的に再開するステップと
を更に備えた請求項９記載のプリンタのエラー処理方法。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
本発明は、プリンタ及びプリンタのエラー処理方法に関する。
【０００２】
【従来の技術】
プリンタにおいて、印刷中にエラーが発生すると、印刷が一時停止され、ユーザがエラー原因を直接的に除去しない限り、印刷が再開されない。例えば、カラー画像の印刷中に、イエローのトナーが不足した場合、その印刷は一時停止され、イエロートナーが補給されるまで、印刷は再開されない。
【０００３】
【発明が解決しようとする課題】
エラーの中には、そのエラーを発生させた印刷ジョブがキャンセルされたならば、そのエラーは解消されたものとみなして、他の印刷ジョブを自動的に開始してもよいと考えられる種類のものがある。その一例は、上記のカラー印刷時にイエロートナーが不足した場合であり、その場合、もし、そのカラー印刷のジョブがキャンセルされたならば、他の白黒印刷のジョブの印刷は自動的に実行されて良いはずである。
【０００４】
しかし、従来のプリンタはそのような機能をもっていない。その理由は、従来のプリンタは、エラーと、これを発生させた印刷ジョブとを関連付けて把握しておらず、その印刷ジョブがキャンセルされても、エラー状態はユーザがそのエラー原因を直接的に除去するまで解除されない。
【０００５】
従って、本発明の目的は、エラーと、そのエラーを発生させた印刷ジョブとを関連付けることができるプリンタを提供することにある。
【０００６】
本発明の別の目的は、上記関連付けの結果を利用して、ある種のエラーについては、それを発生させた印刷ジョブがキャンセルされたならば、自動的にエラー状態を解除して他の印刷ジョブの印刷を開始できるプリンタを提供することにある。
【０００７】
【課題を解決するための手段】
本発明に従うプリンタは、そのプリンタで発生した所定種類のエラーを検出するエラー検出手段と、そのプリンタが既に受けた印刷ジョブの中から、その検出したエラーを発生させた印刷ジョブを特定するジョブ特定手段と、その特定した印刷ジョブとその検出したエラーとを関連付ける関連付け手段と、前記特定した印刷ジョブがキャンセルされた場合、前記関連付け手段によって前記特定した印刷ジョブに関連付けられた所定種類のエラーについてのエラー状態を自動的に解除するエラー解除手段とを備える。
【０００８】
このプリンタによれば、所定種類のエラーが発生した場合、そのエラーと、エラーを発生させた印刷ジョブとが自動的に関連付けられる。そして、印刷ジョブがキャンセルされた場合、キャンセルされた印刷ジョブに関連付けられたエラーについてのエラー状態が自動的に解除される。
【０００９】
好適な実施形態では、上記印刷ジョブ特定手段は、プリンタが既に受けた印刷ジョブに含まれる印刷要求の中から、検出したエラーを発生させた印刷要求を特定する。そして、上記関連付け手段は、その特定した印刷要求と検出したエラーとを関連付ける。それによって、特定した印刷要求の含まれている印刷ジョブが、そのエラーを発生させた印刷ジョブとして特定されて、そのエラーに関連付けられることになる。このように、印刷ジョブ内の特定の印刷要求をエラーと関連付けた場合には、例えばジョブ情報とエラー情報を関連付けてユーザに通知するような場合、そのジョブ内のどの印刷要求でエラーが発生したかというような、よりきめの細かい情報提供を行うことが可能になり、ユーザはより精度の高いエラー対応が可能になる。
【００１０】
好適な実施形態は、エラーが検出されたときに印刷が行われていた場合、その印刷を停止する印刷停止手段と、既に検出したエラーについてのエラー状態が印刷を行える程度まで解除されたときに、停止していた印刷を自動的に再開する印刷再開手段とを更に備える。
【００１１】
この構成によれば、所定種類のエラーが発生した場合、エラー発生によって印刷が停止されるが、ジョブキャンセルによって印刷停止の原因となるエラー状態が全て解除されれば、印刷は自動的に再開される。
【００１２】
好適な実施形態では、印刷ジョブのキャンセル前に発生したエラーであっても、キャンセル後に発生したエラーであっても、そのエラーを発生させた印刷ジョブがキャンセルされれば、ジョブキャンセルで解消されたとみなせる種類のエラーのエラー状態は全て、自動的に解除されるようになっている。
【００１３】
また、好適な実施形態は、或る印刷ジョブがキャンセルされたならば、それ以後は、そのキャンセルされた印刷ジョブのデータは全て破棄するなどの方法によって、そのキャンセルされた印刷ジョブの印刷は一切行わないようになっている。
【００１４】
ところで、印刷ジョブを「キャンセル」した場合、一般には上記のようにその印刷ジョブの印刷を一切行わないことになり、好適な実施形態でもそのようにしている。しかし、必ずしもそうでなければならないわけではなく、印刷ジョブを「キャンセル」した場合に、その印刷ジョブの印刷を中断するだけで後にその印刷ジョブの未印刷部分の印刷を実行できるようにしたり、あるいは、その印刷ジョブの実行を他の印刷ジョブよりも後回しにするようにジョブの印刷順序を変更するようにしてもよい。
【００１５】
【発明の実施の形態】
図１は、本発明の一実施形態にかかるプリンタの要部の構成を示す。
【００１６】
プリンタ１は、パーソナルコンピュータやプリンタサーバのようなホスト装置３に、ＬＡＮのような通信ネットワーク又はシリアルインタフェースのような専用インタフェースを介して接続される。プリンタ１は、ホスト装置３から印刷ジョブのデータを受信するジョブ受信部５、受信された印刷ジョブデータを解釈してページ毎の印刷要求を生成するジョブ解釈部７、及びページ毎の印刷要求からページ毎のビットマップイメージデータを展開してページイメージを紙などの印刷媒体上に再生する印刷部９とを有する。さらに、プリンタ１には、ジョブ管理部１１が設けられている。ジョブ管理部１１は、ホスト装置３から新しい印刷ジョブが来たときにその印刷ジョブにジョブＩＤを付与したり、ホスト装置３から特定の印刷ジョブに対するジョブキャンセル要求が来たとき、そのジョブキャンセル要求を他の処理部５、７、９に通知したりといった、印刷ジョブの管理に関わる処理を行う。
【００１７】
プリンタ１内の上記各部の概略動作は次の通りである。
【００１８】
一般に、特にホスト装置３とプリンタ３とが通信ネットワークで接続されている場合、ホスト装置３からは一つの印刷ジョブのデータが先頭から最後まで連続したストリームで到来するよりむしろ、多数のサブストリームに分割されて間欠的に到来することが普通である。ネットワーク上には通常は複数のホスト装置が存在するから、それらのホスト装置からそれぞれ出力された複数の印刷ジョブデータのサブストリームが、交錯してプリンタ１に到来することがある。例えば、まず印刷ジョブＡの最初のデータが到来し、次に、印刷ジョブＢの最初のデータが到来し、次に印刷ジョブＡの２番目のデータが到来するというようにである。このように、各印刷ジョブのデータは多数のサブストリームに分れて間欠的にプリンタ１に到来する。
【００１９】
ホスト装置３から新しい印刷ジョブの最初のデータを受信すると、ジョブ受信部５は、ジョブ受信報告をジョブ管理部１１に送る。ジョブ管理部１１は、ジョブ受信報告を受けると、その新しい印刷ジョブに対して新しいジョブＩＤを割り当て、そのジョブＩＤをジョブ受信部５に通知する。ジョブ受信部５は、以後、ホスト装置３から当該印刷ジョブのデータを受信する都度、その受信データに当該印刷ジョブのジョブＩＤを付加していく。さらに、ジョブ受信部５は、各印刷ジョブの受信する都度、その印刷ジョブがキャンセルされているか否かをジョブ管理部１１に問い合わせる。ジョブ管理部１１は、各ジョブＩＤ毎にホスト装置３からジョブキャンセル要求が来たか否かを管理していて、特定の印刷ジョブについて上記問い合わせを受けると、その印刷ジョブについて既にジョブキャンセル要求が来ていれば「１」、来ていなければ「０」というキャンセル情報を回答する。ジョブ受信部５は、受信データに対して、ジョブＩＤの他にキャンセルフラグを付加して、そのキャンセルフラグに上記キャンセル情報をセットする。そして、ジョブ受信部５は、ジョブＩＤとキャンセルフラグを付加した受信データを、ジョブ解釈部７へ渡す。
【００２０】
図２は、ジョブ受信部５からジョブ解釈部７に渡される受信データの例を示している。
【００２１】
図２では、ハッチングされた１つのブロックが、１つのサブストリームとして到来した受信データを示している。ジョブ受信部５は、上述したように、１つのサブストリームのデータ２１を受信する都度、その受信データ２１に、ジョブＩＤ２５とキャンセルフラグ２３とを付加する。図２は、ジョブＩＤ「１０１」をもつ印刷ジョブについて、４つのサブストリームのデータがジョブ受信部５からジョブ解釈部７へ渡され、その後に、別のジョブＩＤ「１０２」をもつ印刷ジョブについて、２つのサブストリームのデータがジョブ受信部５からジョブ解釈部７に渡された例を示している。そして、ジョブＩＤ「１０１」の印刷ジョブについて４番目のサブストリームのデータが受信されたとき、そのジョブＩＤ「１０１」の印刷ジョブはキャンセルされている。
【００２２】
図２に示したジョブＩＤ「１０１」の４番目のデータのように、このデータの受信時点でその印刷ジョブがキャンセルされた場合には、データ受信部５は、そのデータより後に受信した同じ印刷ジョブのデータは、受信後に自動的に破棄してしまい、ジョブ解釈部７へは渡さない。従って、図２では、キャンセルされたジョブＩＤ「１０１」の印刷ジョブについては、４番目のデータを最後に、５番目以降のデータはジョブ解釈部７に渡されていない。
【００２３】
再び図１を参照する。ジョブ解釈部７は、図２に例示したようなジョブＩＤとキャンセルフラグの付加いた受信データを受け取り、これを順番に解釈して、ページ毎の印刷要求を生成する。ただし、キャンセルフラグが「１」である受信データについては、そのジョブはキャンセルされているから、ジョブ解釈部７は、その受信データを解釈せずに破棄する。ジョブ解釈部７は、各印刷要求の生成過程で、ジョブ管理部１１に、その印刷要求の印刷ジョブがキャンセルされているか否かを問い合わせる。ジョブ管理部１１は、ジョブ受信部５から問い合わせを受けたときと同様のやり方で、その印刷ジョブについてのキャンセル情報をジョブ解釈部７に回答する。ジョブ受信部５に受信された時点ではまだキャンセルさせていなくても、ジョブ解釈部７で解釈されている間にキャンセル要求が発された印刷ジョブについては、ジョブ解釈部７に対して「１」というキャンセル情報が回答されることになる。ジョブ解釈部７は、各印刷ジョブの各ページの印刷要求に、その印刷ジョブのジョブＩＤと、上記キャンセル情報のセットされたキャンセルフラグとを付加する。そして、ジョブ解釈部７は、ジョブＩＤとキャンセルフラグが付加された各ページの印刷要求を印刷部９に渡す。
【００２４】
ジョブ解釈７は、ある印刷要求の作成の際にその印刷ジョブについて「１」というキャンセル情報をジョブ管理部１１から受けると、その印刷ジョブはキャンセルされているので、後続の同じ印刷ジョブの受信データは破棄し、同じ印刷ジョブの印刷要求はそれ以上作成しない。
【００２５】
図３は、ジョブ解釈部７から印刷部９に渡される印刷要求の例を示している。
【００２６】
図３の例では、ジョブＩＤ「１０１」の印刷ジョブについて、３ページ分の印刷要求が作成され、その後、ジョブＩＤ「１０２」の印刷ジョブについて、２ページ分の印刷要求が作成されている。個々の印刷要求３１には、ページ情報３３の他に、ジョブＩＤ３５及びキャンセルフラグ３７が含まれている。キャンセルフラグ３７には、ジョブ解釈部７が受けたキャンセル情報がセットされている。ページ情報３３には、そのページの印刷フォーマットや印刷イメージを規定する情報、例えば、「Ａ３」や「Ａ４」などの用紙サイズ、「カラー」印刷か「モノクロ」印刷かの区別、「片面」印刷か「両面」印刷かの区別、及び図示していないがページイメージを構成する要素イメージデータへのリンクなどが含まれる。
【００２７】
再び図１を参照する。印刷部９は、各ページの印刷要求を順番に受け、それに基づいて各ページのビットマップイメージデータを作成し、印刷要求で指定されたサイズの用紙上に、印刷要求で指定されたページフォーマットでページイメージを印刷する。
【００２８】
印刷中のエラーの大部分は印刷部９で発生する。プリンタ１が複数サイズの複数の用紙ビンをもったカラープリンタであった場合、印刷部９で発生するエラーには、例えば、用紙搬送路中の用紙詰まり、特定サイズ用紙無し、特定色トナー不足、メモリ不足などがある。これらのエラーは２つの種類に大別できる。最初の種類は、ユーザが直接エラー原因を除去しない限り印刷を再開できないものであり、用紙搬送路中の用紙詰まりはこの種類に属する。他方の種類は、そのエラーを生じさせた印刷ジョブがキャンセルされれば、そのエラーは解消されたものとみなして、他の印刷ジョブの印刷を開始することができるものであり、例えば、特定サイズ用紙無し、特定色トナー不足、メモリ不足などがこの種類に属する。
【００２９】
エラーが発生した場合、印刷部９は、まず、印刷を一時停止する。次に、印刷部９は、えらが上記２種類のどちらであるか判断し、前者の種類であれば、従来のプリンタと同様にユーザがエラー原因を除去するまで待つ。一方、後者の種類のエラーが発生した場合、印刷部９は、後に詳述する方法で、そのエラーを発生させた印刷ジョブを特定する。そして、印刷部９は、その特定した印刷ジョブがキャンセルされたか否かをジョブ管理部１１に問い合わせ、ジョブ管理部１１は、前述したと同様の方法で、その印刷ジョブについてのキャンセル情報を印刷部９へ回答する。もし、そのキャンセル情報が「１」であれば、その印刷ジョブはキャンセルされているので、印刷部９は、その印刷ジョブを実際にキャンセルする処理、例えば、その印刷ジョブの全ての印刷要求を破棄し、展開中のイメージデータを消去するなどの処理を行ない、そして、その印刷ジョブによって発生した上記後者の種類のエラー状態を自動的に解除する。その結果、発生済みの全てのエラー状態がすっかり解除されていたならば、印刷部９は印刷動作を自動的に再開する。
【００３０】
以下、さらに詳細に各部の動作を説明する。
【００３１】
図４は、ジョブ受信部５の動作フローを示す。
【００３２】
図４に示すように、ジョブ受信部５は、新しい印刷ジョブデータの着信を待つ状態から動作をスタートし（ステップＳ１）、新しい印刷ジョブデータが着信すると、ジョブ管理部１１にジョブ受信報告を送って、ジョブ管理部１１からその新しい印刷ジョブについてのジョブＩＤを取得する（Ｓ２）。そして、ジョブ受信部５は、受信データを格納するメモリを確保し（Ｓ３）、その受信データにジョブＩＤを付加してメモリに格納する（Ｓ４）。続いて、ジョブ受信部５は、その受信データの印刷ジョブがキャンセルされているか否かをジョブ管理部１１に問い合わせ、ジョブ管理部１１から回答されたキャンセル情報を、キャンセルフラグとしてその受信データに付加する（Ｓ５）。そして、ジョブ受信部５は、そのジョブＩＤとキャンセルフラグを付加した受信データをジョブ解釈部７に渡す（Ｓ６）。
【００３３】
続いて、ジョブ受信部５は、ステップＳ５で受けたキャンセル情報からその印刷ジョブがキャンセルされているか否かを確認し（Ｓ７）、もしキャンセルされている場合には、それ以後に着信する当該印刷ジョブのデータは受信したら直ちに破棄する（Ｓ８）。当該印刷ジョブの最後までデータを受信し終えるまで、ステップＳ３〜Ｓ８を繰り返す（Ｓ９）。当該印刷ジョブの最後までデータを受信し終わったならば、最初の着信待ち（Ｓ１）に戻る。
【００３４】
図５は、ジョブ解釈部７の動作フローを示す。
【００３５】
図５に示すように、ジョブ解釈部７は、ジョブ受信部５から新しい受信ジョブデータの到着を待つ状態から動作をスタートし（ステップＳ１１）、新しい受信データが到着すると、まず、その受信データのキャンセルフラグをチェックする（Ｓ１２）。キャンセルフラグが「１」の場合、その印刷ジョブはキャンセルされているので、ジョブ解釈部７は、その受信データを解釈せずに破棄して、ステップＳ１１の次の受信データ待ち状態に戻る。
【００３６】
キャンセルフラグが「０」の場合には、ジョブ解釈部７は、その受信データを解釈し（Ｓ１３）、ページ単位の印刷要求を作成し（Ｓ１４）、作成した各印刷要求に、元の受信データに付加されていたジョブＩＤをセットする（Ｓ１５）。続いて、ジョブ解釈部７は、その印刷要求の印刷ジョブがキャンセルされているか否かをジョブ管理部１１に問い合わせ、ジョブ管理部１１から回答されたキャンセル情報を、キャンセルフラグとしてその印刷要求にセットする（Ｓ１６）。そして、ジョブ解釈部７は、そのジョブＩＤとキャンセルフラグをセットした印刷要求を印刷部９に渡す（Ｓ１７）。
【００３７】
続いて、ジョブ解釈部７は、ステップＳ１６で受けたキャンセル情報からその印刷ジョブがキャンセルされているか否かを確認し（Ｓ１８）、もしキャンセルされている場合には、それ以後に到着する当該印刷ジョブの受信データは解釈せずに破棄する（Ｓ１９）。今回到着した受信データの最後まで、ステップＳ１３〜Ｓ１９を繰り返す（Ｓ２０）。今回到着した受信データの最後まで処理し終わったならば、最初の受信データ到着待ち（Ｓ１１）に戻る。
【００３８】
図６〜図８は、これらを繋げることで、印刷部９のエラー処理のフローを示す。
【００３９】
図６に示すように、印刷部９のエラー処理は、エラーの発生を監視する動作から開始する（Ｓ３１）。エラーが発生すると、印刷部９は、まず、そのエラーの内容の詳細を記述したエラー情報を作成してメモリに書き込むとともに、現在実行中の印刷を停止する（Ｓ３２）。続いて、印刷部９は、その発生したエラーが、そのエラーを発生させた印刷ジョブがキャンセルされれば解消されたとみなして良い種類のもの（例えば、特定サイズ用紙無し、特定色トナー不足、メモリ不足など）であるか、否かをチェックする（Ｓ３３）。
【００４０】
ステップＳ３３のチェック結果が「Ｎｏ」の場合、つまり、ユーザにエラー原因を直接除去してもらわないと解除できない種類のエラー（例えば、用紙搬送路での用紙詰まりなど）が発生した場合には、印刷部９は、そのエラー発生を示すメッセージをプリンタのフロントパネル（又は、ホスト装置のディスプレイ画面）に表示し（Ｓ３４）、続いてそのエラー原因がユーザによって解消されかチェックし、解消されたならそのエラーメッセージの表示を消し（Ｓ３５）、また解消されてなけば、エラーメッセージを表示したままにして、そして、図７のフローへ進む。
【００４１】
一方、ステップＳ３３のチェック結果が「Ｙｅｓ」の場合には、印刷部９は、次に、そのエラーを発生させた印刷要求がどれであるかを特定して、そのエラーのエラー情報とその印刷要求とを関連付ける（Ｓ３６）（このエラーと印刷要求の関連付け処理の詳細は後に図９〜図１１を参照して説明する。）。エラーを発生させた印刷要求が特定できたなら、印刷部９は、次に、その特定した印刷要求がどの印刷ジョブのものであるかを特定する（Ｓ３７）。こうして特定された印刷ジョブが、エラーを発生させた印刷ジョブということになる。エラーを発生させた印刷ジョブが特定されたなら、印刷部９は、次に、その特定した印刷ジョブがキャンセルされているか否かをジョブ管理部１１に問い合わせてチェックする（Ｓ３８）。その結果、まだキャンセルされていなければ、上述したステップＳ３４、Ｓ３５へ進むが、キャンセルされていれば、印刷部９は、そのエラーは解消されたとみなして、直ちに（又は、そのエラーのエラーメッセージを例えば５秒間のような適当時間表示してエラー発生の事実をユーザに知らせた後に）、プリンタが認識している当該エラーのエラー状態を自動的に解除する（Ｓ３９）。これにより、キャンセルされた印刷ジョブについては、キャンセル後にエラーが発生しても、そのエラーがユーザが直接介入しなければ解消されない種類ではない限り、そのエラーについてのエラー状態は自動的に解除される。
【００４２】
ステップＳ３９の後、印刷部９は、発生済みのエラーは全部解消されたか否かをチェックする（Ｓ４０）。全エラーが既に解消されていれば、印刷部９は、印刷動作を自動的に再開し他の印刷ジョブの印刷を開始し（Ｓ４１）、そして、図７のフローへ進む。まだ解消されていないエラーが一つでも残っていれば、印刷部９は、図７のフローへ進む。
【００４３】
図７のフローに入ると、印刷部９は、再び、ジョブ管理部１１にキャンセル情報を問い合わせることで、図６のステップＳ３８のチェックで分ったもの以外に現在までにキャンセルされた印刷ジョブが無いかどうかをチェックする（Ｓ４２）。その結果、キャンセルされた印刷ジョブが無ければ、印刷部９は図８のフローへ進むが、キャンセルされた印刷ジョブが有れば、印刷部９は、そのキャンセルされた印刷ジョブの全ての印刷要求について、以下のステップＳ４４〜４８を繰り返す（Ｓ４３とＳ４９で囲むループ）。
【００４４】
すなわち、そのキャンセルされたジョブに含まれる各印刷要求について、ステップＳ４４にて、残り印刷枚数カウント（つまり、同ページを複数枚印刷することが指定されているときの未印刷で残っている枚数であり、各印刷要求のページ情報に記述されている）をゼロにして、これ以上印刷をしないようにする。続いて、ステップＳ４５とＳ４８で囲むループにて、各印刷要求に関連付けられた全てのエラー（各エラーはその発生時に図６のＳ３６で印刷要求と関連付けられている）について、ステップＳ４６とＳ４７を繰り返す。ステップＳ４６では、各エラーについて、それがジョブキャンセルで解消される種類のものか否かをチェックし、そうであるならステップＳ４７でそのエラー状態を自動的に解除する。
【００４５】
このようなステップＳ４３とＳ４９で囲むループの処理を行うことで、印刷ジョブのキャンセルが何時行われても、そのジョブキャンセルによって解消することのできる全てのエラーについて、プリンタが認識しているエラー状態が自動的に解除される。こうしてジョブキャンセルで解消されたエラーを全てについてエラー状態を解除した後、印刷部９は、プリンタは印刷可能状態になったか（つまり、エラー状態は皆無になったか）否かをチェックし（Ｓ５０）、まだ印刷可能状態になっていなければ（つまり、まだエラー状態が１つ以上残っていれば）図８のフローへ進み、印刷可能状態になっていれば、残っている印刷ジョブの印刷を自動的に再開し（Ｓ５１）、そして、図８のフローへ進む。
【００４６】
図８のフローに入ると、印刷部９は、新しい印刷要求が到着したかをチェックし（Ｓ５２）、到着してなければ図６の最初のステップＳ３１に戻り、また、新しい印刷要求が届いていれば、その印刷要求のジョブＩＤについてキャンセル情報をジョブ管理部１１へ問い合わせる（Ｓ５３）。この問い合わせの結果、その新しい印刷要求の印刷ジョブがキャンセルされていなければ、図６の最初のステップＳ３１に戻り、また、キャンセルされていれば、その印刷要求の印刷は全く行わずに、その印刷要求の残り印刷枚数カウントをゼロにして（つまり、既に印刷が完了したと同じ状態にして）（Ｓ５６）、印刷終了報告をジョブ管理部１１に送り（Ｓ５７）、そして、図６の最初のステップＳ３１に戻る。これにより、キャンセルされた印刷ジョブについては、キャンセル後に印刷要求が印刷部９に届けられても、印刷部９はその印刷要求を実質的に破棄してしまい印刷を行なわない。
【００４７】
以上の図６〜８に示したエラー処理によって、ジョブキャンセルによって解消されたとみなして良い種類のエラーについては、そのエラーを発生させた印刷ジョブがキャンセルされることで自動的にプリンタが認識しているエラー状態が解除されて、他の印刷ジョブの印刷が自動的に再開される。故に、その種のエラーについては、ユーザがジョブキャンセルを行った場合には、そのエラーの原因を直接除去する作業を行う必要は無い。例えば、Ａ３用紙を使用する印刷ジョブの印刷中にＡ３用紙が無くなった場合、その印刷ジョブがキャンセルされれば、印刷動作が自動的に再開されるので、（Ａ４用紙が有れば）Ａ４サイズの用紙を使用する印刷ジョブは印刷される。或いは、カラーの印刷ジョブの印刷中にイエロートナーが不足した場合、その印刷ジョブがキャンセルされれば、印刷動作が自動的に再開されるので、（黒トナーが不足してなければ）白黒の印刷ジョブは印刷される。
【００４８】
図９は、図６のステップＳ３６のエラーを発生させた印刷要求を特定する処理のフローを示す。図１０は、この処理を分り易くするための説明図である。
【００４９】
図９に示すように、印刷部９は、ステップＳ６１にて、エラー発生でまず印刷動作を停止した後に、その停止時点で、現存する印刷要求のどの部分（つまり、どの印刷要求のどの印刷枚数）までが正常に印刷終了したを確認し、該当する印刷要求内の残り印刷枚数カウンとから、その印刷終了した枚数を減じる。その結果、例えば図１０に示すように、４つの印刷要求１００Ａ〜１００Ｄが存在していたところ、最初と２番目の印刷要求１００Ａ、１００Ｂの残り印刷枚数カウント１０１Ａ、１０１Ｂがゼロになり、３番目と４番目の印刷要求１００Ｃ、１００Ｄの残り印刷枚数カウント１０１Ｃ、１０１Ｄが１になったとする。次に、印刷部９は、ステップＳ６２で、現存する印刷要求（図１０では、１００Ａ〜１００Ｄ）を印刷順に見ていって、残り印刷枚数カウントが１以上である印刷要求の中で先頭のもの（図１０では、１００Ｃ）を選び出す。そして、ステップＳ６３にて、この選び出した印刷要求（図１０では、１００Ｃ）を、その発生したエラーと関連付ける。要するに、エラー発生により印刷を停止した時点において、まだ印刷の完了していない先頭の印刷要求がそのエラーに関連付けられる。
【００５０】
図１１は、印刷要求とエラーとが関連付けられた具体的な状態を例示する。
【００５１】
図１１に示すように、印刷順に、例えばジョブＩＤ「１０１」の２ページ目からｎページまでの印刷要求２００Ａ〜２００Ｄが並び、その後に、ジョブＩＤ「１０２」の１ページ目と２ページ目の印刷要求３００Ａ，３００Ｂが並んでいたとする。ジョブＩＤ「１０１」のジョブはＡ３用紙を使用し、カラー印刷である。次のジョブＩＤ「１０２」のジョブはＡ４用紙を使用し、白黒印刷である。ここで、先頭の印刷要求２００Ａの印刷が正常完了し、２番目の印刷要求２００Ｂを印刷するときに、Ａ３用紙無しエラーと、イエロートナー不足エラーが発生したとする。すると、図９に示した処理によって、未印刷の印刷要求のキューの先頭に位置するこの２番目の印刷要求２００Ｂと、その発生した２つのエラーとが関連付けられる。
【００５２】
この関連付けは、具体的には、メモリに上に置かれた２番目の印刷要求２００Ｂと、やはりメモリに上に置かれたその２つのエラーの詳細を示すエラー情報４００Ａ、４００Ｂとの間に、論理的なリンクを形成することによって作られる。例えば、図示のように、２番目の印刷要求２００Ｂに、１つ目のエラー情報４００Ａへの論理的なリンク（エラー情報４００Ａの先頭アドレスを指すポインタ）がセットされ、１つ目のエラー情報４００Ａには、２つ目のエラー情報４００Ｂへの論理的なリンク（エラー情報４００Ｂの先頭アドレスを指すポインタ）がセットされる。これらのリンクは、印刷要求２００Ｂからエラー情報４００Ａ、４００Ｂへ向かうものである。さらに、エラー情報４００Ａ、４００Ｂから印刷要求２００Ｂへ向かうリンクも形成される。すなわち、エラー情報４００Ａ、４００Ｂの各々に、印刷要求２００Ｂへの論理的なリンク（印刷要求２００Ｂの先頭アドレスを指すポインタ）がセットされる。
【００５３】
こうして、双方向のリンクが印刷要求とエラー情報との間に形成されるので、印刷要求を指定してそれに関連付けられたエラー情報を検索することも、逆にエラー情報を指定してそれに関連付けられた印刷要求を検索することも可能である。
【００５４】
図１１の例の場合、ジョブＩＤ「１０１」のジョブがキャンセルされれば、Ａ３用紙無しエラーのエラー状態もイエロートナー無しエラーのエラー状態も共に解除される。その結果、ユーザがＡ３用紙やイエロートナーを補給しなくても、後続のジョブＩＤ「１０２」のジョブの印刷（Ａ４用紙、白黒印刷）が自動的に開始される。
【００５５】
以上、本発明の一実施形態を説明したが、この実施形態はあくまで本発明の説明のための例示であり、本発明をこの実施形態にのみ限定する趣旨ではない。従って、本発明は、上記実施形態以外の様々な形態でも実施することができる。
【００５６】
例えば、エラーと印刷ジョブとの関連付けは、ジョブキャンセル時のエラー解除以外の用途にも利用できる。例えば、ホスト装置のディスプレイ画面に、ジョブとエラーとを関連付けて表示することで、ユーザにどのジョブが問題であるかを認識させ、どのジョブをキャンセルするべきか容易に判断させ得る。また、上記実施形態のように印刷ジョブ中のページ毎の印刷要求とエラーとの関連付けを行っている場合、関連付けたページとエラーとをディスプレイに表示すれば、ユーザは、どのジョブの何ページ目が問題であるかを認識でき、その問題ページのみを除去して再印刷をするなどの適当な対応措置を採ることが容易になる。
【図面の簡単な説明】
【図１】本発明の一実施形態にかかるプリンタの要部の構成を示すブロック図。
【図２】ジョブ受信部５からジョブ解釈部７に渡される受信データの例を示すデータ構成図。
【図３】ジョブ解釈部７から印刷部９に渡される印刷要求の例を示すデータ構成図。
【図４】ジョブ受信部５の動作フローを示すフローチャート。
【図５】ジョブ解釈部７の動作フローを示すフローチャート。
【図６】印刷部９のエラー処理のフローの第一部を示すフローチャート。
【図７】印刷部９のエラー処理のフローの第二部を示すフローチャート。
【図８】印刷部９のエラー処理のフローの第三部を示すフローチャート。
【図９】図６のステップＳ３６のエラーを発生させた印刷要求を特定する処理のフローを示すフローチャート。
【図１０】図９の処理を分り易くするために印刷要求の例を示した説明図。
【図１１】印刷要求とエラーとが関連付けられた具体的な状態を示す説明図。
【符号の説明】
１  プリンタ
３  ホスト装置
５  ジョブ受信部
７  ジョブ解釈部
９  印刷部
１１  ジョブ管理部
２１  受信データ
２５、３５  ジョブＩＤ
２３、３７  キャンセルフラグ
３１、１００、２００、３００  印刷要求
１０１  残り印刷枚数カウント
４００  エラー情報
【図１】
0003547001.tif 000002
【図２】
0003547001.tif 000003
【図３】
0003547001.tif 000004
【図４】
0003547001.tif 000005
【図５】
0003547001.tif 000006
【図６】
0003547001.tif 000007
【図７】
0003547001.tif 000008
【図８】
0003547001.tif 000009
【図９】
0003547001.tif 000010
【図１０】
0003547001.tif 000011
【図１１】
0003547001.tif 000012