(57)【要約】【課題】  ホストベースプリンタにおいて、当該プリンタからホスト装置へエラー通知を送信できない状況下であっても、エラー状態の解除指示を受け付けることによって自動的に印刷を続行できる枠組みを提供する。【解決手段】  アンダーランエラーが生じた場合に受信バッファに格納できる範囲でホスト装置からのデータ受信を継続する機能と、ユーザからアンダーランに対するエラー状態の解除指示を受け付けた場合に、アンダーランエラーが生じた印刷イメージの印刷に必要なデータが受信バッファに格納されていることを条件に、該印刷イメージの印刷を実行する機能と、を備えることを特徴とする。【選択図】  図４
2005271326.tif 000002
【特許請求の範囲】
【請求項１】
エラーが生じた場合に受信バッファに格納できる範囲でホスト装置からのデータ受信を継続する機能と、ユーザからエラー状態の解除指示を受け付けた場合に、エラーが生じた印刷イメージの印刷に必要なデータが受信バッファに格納されていることを条件に、該印刷イメージの印刷を実行する機能と、を備えることを特徴とするホストベースプリンタ。
【請求項２】
前記エラーがアンダーランエラーであることを特徴とする請求項１記載のホストベースプリンタ。
【請求項３】
ホスト装置から印刷イメージの印刷データを受信しつつ、該印刷イメージについて印刷動作を行うホストベースプリンタにおけるエラーのリカバリ方法であって、
印刷動作中にエラーが生じた場合に、該エラーが生じた印刷イメージの印刷データについてホスト装置からのデータ受信を継続する工程と、
ユーザからエラー状態の解除指示を受け付けたかどうかを判定し、受け付けた場合にリカバリ工程へ移行する工程と、
エラーが生じた印刷イメージについて印刷データの受信が終了している場合に該印刷データに基づいて印刷を実行するリカバリ工程と、を備えることを特徴とするリカバリ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストベースプリンタにおけるエラーのリカバリ技術に関し、特に、プリンタからホスト装置へエラー通知を送信できない場合に好適なエラーリカバリ技術に関する。
【背景技術】
【０００２】
従来より、ホストベースプリンタシステムにおいて、アンダーランエラー（１ページ分の印刷データを受信し終わる前に印刷を開始した場合に、データ受信が間に合わずに印刷エンジンへ転送するデータが無くなってしまい、印刷を続けられなくなるエラー）が生じた場合、以下の手順により自動的にエラーをリカバリする枠組みが知られている（特許文献１、特許文献２参照）。
【０００３】
（１）プリンタは、アンダーランエラーが生じた場合、ホスト装置に対してエラー通知を送信する。
【０００４】
（２）ホスト装置は、プリンタから受け付けたエラー通知に基づいてアンダーランエラーの発生を認識し、プリンタに対してエラー状態の解除及び受信済みの印刷データの破棄を指示するとともに、給紙タイミングやデータサイズを調節した上で、印刷に失敗したページから順次、印刷データの送信をやり直す。
【０００５】
（３）プリンタは、ホスト装置からのエラー状態の解除指示によりエラー状態から復帰し、受信済みの印刷データを破棄することで受信バッファの格納領域を確保するとともに、再送信される印刷データに基づいて印刷を続行する。
【特許文献１】特開平９−２３７１６８号公報
【特許文献２】特開２００１−９２６０４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ホスト装置／ホストベースプリンタ間のネットワークプロトコルや、ホストベースプリンタ等のインタフェースの構成によっては、ホスト装置がホストベースプリンタからエラー通知を受け取れない状況が起こり得る。例えば、両者間のネットワークがＮｅｔＢＥＵＩ（NetBIOS Extended User Interface）やＮｅｔｗａｒｅ等の双方向通信に対応していないプロトコルを利用している場合、ホストベースプリンタはホスト装置へエラー通知を送ることができない。また、ホストベースプリンタのインタフェースが複数のプロトコル（ＴＣＰ／ＩＰとＵＳＢなど）について同時に通信できない構成となっている場合、ホスト装置からステータスの問い合わせがあった際にインタフェースが他のプロトコルの通信によって占有されていると、やはりホストベースプリンタはホスト装置へエラー通知を送ることができない。
【０００７】
このような状況下では、ホストベースプリンタにおいてエラーが発生したとしても、ホスト装置はエラーの発生を認識できず、上述した従来の枠組みを利用して自動的にプリンタをエラー状態から復帰させることはできないため、ユーザが直接、ホストベースプリンタに対してエラー状態の解除指示を入力し、プリンタをエラー状態から復帰させる必要がある。
【０００８】
ここで、ユーザがエラー状態の解除指示を直接入力した場合、従来のホストベースプリンタは、その時点で印刷続行に必要な印刷データが受信済みであれば印刷を続行するが、そうでない場合は印刷の続行不可と判断し、印刷動作を終了するのが普通である。
【０００９】
しかし、ホストベースプリンタが受信する印刷データは、展開済みの印刷イメージに基づいて生成され、そのデータサイズが大きくなる可能性が高いことから、ユーザが解除指示を入力するまでに印刷続行に必要な印刷データの受信できるとは必ずしも限らない。その結果、上述した状況下でアンダーランエラーが発生した多くのケースにおいて、プリンタに対してエラー状態の解除指示を入力しただけでは自動的に印刷が続行されない（ホスト装置に対しても何らかの指示しなければ再印刷されない）という問題が生じていた。
【００１０】
そこで、本発明は、ホストベースプリンタにおいて、当該プリンタからホスト装置へエラー通知を送信できない状況下であっても、エラー状態の解除指示を受け付けることによって自動的に印刷を続行できる枠組みを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明のホストベースプリンタは、エラーが生じた場合に受信バッファに格納できる範囲でホスト装置からのデータ受信を継続する機能と、ユーザからエラー状態の解除指示を受け付けた場合に、エラーが生じた印刷イメージの印刷に必要なデータが受信バッファに格納されていることを条件に、該印刷イメージの印刷を実行する機能と、を備えることを特徴とする。好適には、前記エラーはアンダーランエラーである。
【００１２】
かかる構成によれば、ホスト装置を介在させることなくホストベースプリンタ単体でリカバリ処理を実行して再印刷を行うことができる。その結果、従来の枠組み（ホスト装置がエラー発生を認識した場合に、プリンタに対してエラー状態の解除や印刷データの破棄を指示し、印刷データを再送信して印刷をやり直すという枠組み）が利用できない場合でも、ホスト装置に対して再印刷の指示を入力する必要はなく、アンダーランエラーが生じて印刷に失敗した印刷イメージをより簡易に再印刷することができる。
【００１３】
本発明のエラーのリカバリ方法は、ホスト装置から印刷イメージの印刷データを受信しつつ、該印刷イメージについて印刷動作を行うホストベースプリンタにおけるエラーのリカバリ方法であって、印刷動作中にエラーが生じた場合に、該エラーが生じた印刷イメージの印刷データについてホスト装置からのデータ受信を継続する工程と、ユーザからエラー状態の解除指示を受け付けたかどうかを判定し、受け付けた場合にリカバリ工程へ移行する工程と、エラーが生じた印刷イメージについて印刷データの受信が終了している場合に該印刷データに基づいて印刷を実行するリカバリ工程と、を備えることを特徴とする。
【００１４】
本発明のリカバリ方法は、ホストベースプリンタが備えるＣＰＵにより実施することができるが、そのためのコンピュータプログラムは、ＣＤ−ＲＯＭ、磁気ディスク、半導体メモリ及び通信ネットワークなどの各種の媒体を通じてホスト装置及びホストベースプリンタにインストールまたはロードすることができる。また、コンピュータプログラムが、プリンタ用カードやプリンタ用オプションボードに記録されて流通する場合も含む。
【発明の効果】
【００１５】
本発明によれば、ホストベースプリンタにおいて、当該プリンタからホスト装置へエラー通知を送信できない状況下であっても、エラー状態の解除指示を受け付けることによって自動的に印刷を続行することができる。
【発明を実施するための最良の形態】
【００１６】
図１は、本発明の実施形態のプリンタシステム１のハードウェア構成を示すブロック図である。図１に示すように、プリンタシステム１は、ホスト装置１０と、通信ネットワーク（ＬＡＮ、インターネット、専用線、パケット通信網、それらの組み合わせ等のいずれであってもよく、有線、無線の両方を含む）を介して該ホスト装置１０と通信可能に構成されるホストベースプリンタ（画像形成装置）２０とを含んでいる。
【００１７】
ホスト装置１０は、ハードウェアとして、ＣＰＵ、ＲＯＭ、ＲＡＭ、ＨＤＤ、ユーザインタフェース、通信インタフェース等を備えている。
【００１８】
また、ホスト装置１０は、プリンタ２０に印刷を実行させるため必要な通常の制御機能として、プリンタドライバ手段１１を備えている。
【００１９】
プリンタドライバ手段１１は、通常のプリンタドライバと同様の機能構成であり、例えば、ホスト装置１０上で動作するアプリケーションプログラムからの印刷要求に応じて、ポストスクリプト等の所定のプリンタ制御言語により記述された印刷データ（テキスト、図形、画像などを含む）に基づいてラスタライズ処理を実行して印刷イメージを生成するＲＩＰ手段１２、印刷イメージに対して所定の画像処理（スクリーン処理など）を施す画像処理手段１３、印刷イメージに対して圧縮処理を実行し、圧縮データを生成する圧縮手段１４、圧縮データにヘッダ情報等を付加して印刷データを生成し、これをホストベースプリンタ２０に対して送信する印刷データ生成／送信手段１５などを備える（図２参照）。これらの各機能は、ホスト装置１０内のＨＤＤ、ＲＯＭやＲＡＭ、外部の記憶媒体等に格納されるプログラムをＣＰＵが実行することにより、又は専用のハードウェアを用いて、機能手段として実現される。
【００２０】
ホストベースプリンタ２０は、動力機構部２１とプリンタコントローラ２２を備えている。
【００２１】
動力機構部２１は、用紙をプリンタ内に供給する給紙機構、印刷イメージに基づいて印刷を実行する印刷エンジン、及び用紙をプリンタ機外に排出する排紙機構等により構成される。印刷エンジンは、例えば、インクジェットプリンタや熱転写プリンタのように１文字単位で印刷するシリアルプリンタ、１行単位で印刷するラインプリンタ、ページ単位で印刷するページプリンタ等に対応する各種印刷エンジンを用いることができる。
【００２２】
プリンタコントローラ２２は、ハードウェアとして、ＣＰＵ、ＲＯＭ、ＲＡＭ、ユーザインタフェース、通信インタフェース等を備えている。
【００２３】
プリンタコントローラ２２は、通常のホストベースプリンタにおけるプリンタコントローラと同様の機能を備えており、例えば、ホスト装置１０からコマンドや印刷データ等を受信して受信バッファ（図示せず）に格納する受信手段２３、印刷データに含まれる圧縮データを伸長して印刷イメージを復元し、かかる復元された印刷イメージを印刷エンジンに転送する伸長／転送手段２４、伸長／転送手段２４や動力機構部２１（印刷エンジン）の印刷動作を制御する印刷制御手段２５などを備える。
【００２４】
ただし、本実施形態の受信手段２３は、アンダーランエラーが生じた場合にホスト装置１０からのデータ受信を継続するデータ受信継続機能、アンダーランエラーが生じた印刷イメージについてデータ受信が終了しているかどうかを判定するデータ受信終了判定機能を備えており、また印刷制御手段２５は、ユーザからエラー状態の解除指示を受け付けた場合に、アンダーランエラーが生じた印刷イメージの印刷に必要なデータが受信バッファに格納されていることを条件に、該印刷イメージの印刷を実行するように制御するホスト非介在リカバリ機能を備えており、ホストベースプリンタ２０からホスト装置１０に対してエラー通知を送信できない状況下においてもアンダーランエラーに対するリカバリ処理を実行可能に構成されている点で、従来の構成と異なっている（図２参照）。
【００２５】
なお、上記の各手段、各機能は、ホストベースプリンタ２０内のＲＡＭやＲＯＭ、外部の記憶媒体等に記憶されるプログラムをＣＰＵが実行することにより、又は専用のハードウェアを用いて、機能手段として実現される。
【００２６】
以下、プリンタシステム１の印刷処理について説明する。
【００２７】
（ホスト装置１０における印刷処理）
プリンタドライバ手段１１は、外部又はホスト装置１０上で動作しているアプリケーションプログラムから印刷要求を受け付けると、ホストベースプリンタ（プリンタコントローラ２２）に対して印刷指示コマンドを送信するとともに、ＲＩＰ手段１２などに対して処理の開始を指示する。
【００２８】
ＲＩＰ手段１２は、処理開始の指示を受け付けると、アプリケーションプログラムから受け取った印刷対象データ（ポストスクリプト等の所定のプリンタ制御言語により記述された印刷対象データ）に基づいて印刷イメージを生成し、ＲＡＭの所定領域に格納する。なお、アプリケーションプログラム等からラスタイメージの形式で印刷対象データを受け取ることができる場合は、ＲＩＰ手段１２による処理は省略できる。
【００２９】
画像処理手段１３は、必要に応じて前記生成された印刷イメージに対して所定の画像処理（スクリーン処理など）を施す。
【００３０】
圧縮手段１４は、所定数の走査ライン（例えば６４ライン）から構成されるバンド単位で印刷イメージに対して所定の圧縮処理を実行して圧縮データを生成し、ＲＡＭの所定領域に格納する。なお、所定の圧縮処理としては、ＪＰＥＧ（Joint Photographic Coding Experts Group）方式、ＪＢＩＧ（Joint Bi−level Image Experts Group）方式など、設計に応じて従来の種々の圧縮アルゴリズムを採用することができる。
【００３１】
印刷データ生成／送信手段１５は、バンド単位の圧縮データごとに所定のヘッダ情報を付加して印刷データを生成し、ホストベースプリンタ２０に対して順次送信する。なお、印刷データ生成／送信手段１５は、圧縮手段１４による印刷イメージの圧縮処理と並列に動作してもよく、又は、例えば１ページ分について圧縮処理が終了するのを待って動作してもよい。
【００３２】
（ホストベースプリンタ２０における印刷処理）
受信手段２３は、ホスト装置１０からコマンドや印刷データ等を受信して受信バッファに格納する。
【００３３】
印刷制御手段２５は、受信バッファから順次コマンドを読み出して解釈する。そして、前記解釈したコマンドが印刷指示コマンドである場合、動力機構部２１を制御して印刷の準備を整えるとともに、ホスト装置１０又はホストベースプリンタ２０において設定した給紙タイミングになった時点で、印刷動作を開始する。具体的には、給紙機構を制御して用紙を印刷開始位置に待機させる（給紙する）。また、伸長／転送手段２４を制御して、受信バッファに格納される圧縮データを順次伸長して印刷イメージを復元し、前記復元した印刷イメージを印刷エンジンに転送させる。また、印刷エンジンを制御して印刷イメージに基づき印刷を実行させる。
【００３４】
ここで、本実施形態では、印刷の指示を受けてから実際に印刷を開始するまでの待ち時間を短くするために、ホスト装置から印刷イメージの印刷データを受信しつつ該印刷イメージについて印刷動作を行うように（１ページ分の印刷イメージを受信し終わる前に印刷を開始するように）前記給紙タイミングを設定する。この場合、データ転送速度が遅かったり、圧縮率が十分でなく圧縮データのデータ量が多くなってしまったりすると、印刷データの受信が間に合わずに伸長／転送するデータが無くなってしまい、印刷を続けられなくなるアンダーランエラーが生じる可能性がある。
【００３５】
本実施形態のプリンタコントローラ２２は、印刷動作の実行中、受信バッファにおける印刷データ格納状況、伸長／転送手段２４の処理状況、印刷エンジンの動作状況等を監視しており、アンダーランエラーが生じた場合、従来と同様の枠組み（ホスト装置がエラー発生を認識した場合に、プリンタに対してエラー状態の解除や印刷データの破棄を指示し、印刷データを再送信して印刷をやり直すという枠組み）によるエラーリカバリ処理に加えて、ホストベースプリンタ２０からホスト装置１０に対してエラー通知を送信できない状況下におけるエラーリカバリ処理（ホスト非介在エラーリカバリ処理）をも実行可能に構成されている
なお、２タイプのエラーリカバリ処理の切り替えは、例えばユーザがいずれかの処理を指定して設定できるように構成してもよいし、又はホストベースプリンタ２０がホスト装置１０に対して信号を送信し、その応答の有無によって処理を切り替える構成としてもよい。
【００３６】
以下、図３及び図４を参照して、本発明の特徴的な処理であるホスト非介在エラーリカバリ処理について説明する。なお、各工程（符号が付与されていない部分的な工程を含む）は処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。
【００３７】
（受信手段２３におけるホスト非介在エラーリカバリ処理）
受信手段２３は、印刷処理中にアンダーランエラーが発生した場合、以下のホスト非介在エラーリカバリ処理を実行する（Ｓ１００〜Ｓ１０５：図３）。
【００３８】
まず、受信手段２３は、アンダーランエラーが生じた印刷イメージについて印刷データの受信を継続しつつ（Ｓ１００）、受信バッファの空き状況を監視する（Ｓ１０１）。
【００３９】
そして、印刷データを格納する十分な空きがないと判断した場合、受信手段２３は、リカバリ動作中止フラグを立てて（Ｓ１０２）、ホスト非介在エラーリカバリ処理を終了する。
【００４０】
一方、受信バッファに十分に空きがあると判断した場合、受信手段２３は、タイムアウトの判断をする（Ｓ１０３）。例えば、ホスト非介在エラーリカバリ処理を開始してから一定の時間が経過した場合や、直近に受信した印刷データの受信時から一定の時間が経過した場合に、タイムアウトと判断することが考えられる。
【００４１】
受信手段２３は、タイムアウトと判断した場合、リカバリ動作中止フラグを立てて（Ｓ１０２）、ホスト非介在エラーリカバリ処理を終了する。
【００４２】
一方、タイムアウトでないと判断した場合、受信手段２３は、アンダーランエラーが生じた印刷イメージについて、印刷に必要な印刷データを確保できているかどうか（印刷データを受信し終わったかどうか）を判断する（Ｓ１０４）。例えば、印刷データがバンド単位で送られてくる場合、印刷データのヘッダ等に含まれるイメージサイズやバンド総数の情報を利用して、１ページ分の全バンドについて印刷データを受信し終わった場合に、印刷に必要な印刷データを確保できていると判断することが考えられる。
【００４３】
受信手段２３は、受信し終わっていないと判断した場合、Ｓ１０１に再帰し、受信し終わっていると判断した場合、リカバリ動作開始フラグを立てて（Ｓ１０５）、ホスト非介在エラーリカバリ処理を終了する。
【００４４】
なお、図示していないが、アンダーランエラーが生じた時点で、該エラーが生じた印刷イメージの受信済みの印刷データの一部が既に受信バッファから破棄されている場合は、その部分について印刷データを再び受信しなければ再印刷を行うことはできないため、リカバリ動作中止フラグを立てるように処理を構成する。
【００４５】
（印刷制御手段２５におけるホスト非介在エラーリカバリ処理）
印刷制御手段２５は、印刷処理中にアンダーランエラーが発生した場合、以下のホスト非介在エラーリカバリ処理を実行する（Ｓ２００〜Ｓ２０４：図４）。
【００４６】
まず、印刷制御手段２５は、ユーザインタフェースを介してエラー発生をユーザに通知するとともに、印刷動作を停止し、印刷に失敗した用紙を排紙するなどして印刷の準備を再び整える（Ｓ２００）。
【００４７】
次に、印刷制御手段２５は、ユーザインタフェースを介してユーザからアンダーランエラーに関するエラー状態の解除指示が入力されるまで待機する（Ｓ２０１）。
【００４８】
ユーザから解除指示が入力された場合、印刷制御手段２５は、リカバリ動作中止フラグが立っているかどうかを判断し（Ｓ２０２）、立っている場合はホスト非介在エラーリカバリ処理を終了する。
【００４９】
一方、リカバリ動作中止フラグが立っていない場合、印刷制御手段２５は、リカバリ動作開始フラグが立っているかどうかを判断する（Ｓ２０３）。
【００５０】
そして、印刷制御手段２５は、リカバリ動作開始フラグが立っていない場合はＳ２０２に再帰し、リカバリ動作開始フラグが立っている場合は、受信バッファに格納されている印刷データに基づき、アンダーランエラーが生じた印刷イメージについて印刷動作を再び開始する（Ｓ２０４）。
【００５１】
このように、本実施形態のホスト非介在エラーリカバリ処理によれば、アンダーランエラーが生じた場合に、受信バッファに格納できる範囲でデータ受信を継続し、ユーザからエラー状態の解除指示を受け付けた場合に、アンダーランエラーが生じた印刷イメージの印刷に必要なデータが受信バッファに格納されていることを条件に、該印刷イメージの印刷を実行するように構成しているため、ホスト装置を介在させることなく、ホストベースプリンタ単体でリカバリ処理を実行して再印刷を行うことができる。
【００５２】
特に、印刷に必要なデータが受信バッファに格納されている（印刷データが全て確保できている）ことを条件として再印刷する構成としているため、再びアンダーランエラーを起こすことなく確実に再印刷することが可能となる。
【００５３】
その結果、従来の枠組み（ホスト装置がエラー発生を認識した場合に、プリンタに対してエラー状態の解除や印刷データの破棄を指示し、印刷データを再送信して印刷をやり直すという枠組み）が利用できない場合でも、ホスト装置に対して再印刷の指示を入力する必要が無くなり、アンダーランエラーが生じて印刷に失敗した印刷イメージをより簡易に再印刷することができる。
【００５４】
（その他）
本発明は上記実施形態に限定されることなく、種々に変形して適用することが可能である。例えば、ホスト装置がホストベースプリンタからエラー通知を受け取ることができる場合であっても、本発明の枠組みを利用してホストベースプリンタ単体でリカバリ処理を実行して再印刷を行えるように構成してもよい。かかる構成によれば、従来の枠組みを利用する場合に比べてデータの再送信に要する時間を省略することができ、迅速に再印刷を行うことができる。
【００５５】
また例えば、アンダーランエラーが生じた印刷イメージについて、１ページ分の印刷データを確保する前に該印刷イメージの印刷に必要なデータが確保できたと判断して、リカバリ動作を行う（印刷を開始する）ように構成してもよい。このような構成でも、リカバリ動作の開始時にアンダーランエラーが生じた時点より多くの印刷データが確保できていれば、リカバリ動作においてアンダーランエラーを回避することが可能となる。
【００５６】
なお、本発明は、アンダーランエラー以外のエラー（紙詰まりなど）に対しても適用可能である。すなわち、ホスト装置がホストベースプリンタからエラー通知を受け取ることができない状況下において紙詰まり等のエラーが生じた場合、ユーザから該エラーに対するエラー状態の解除指示を受け付けることによって、本発明の枠組みに基づいて自動的に印刷を続行することができる。
【図面の簡単な説明】
【００５７】
【図１】本発明の実施形態におけるプリンタシステムのハードウェア構成を示すブロック図である。
【図２】プリンタドライバ手段１１、プリンタコントローラ２２の機能構成図を示すブロック図である。
【図３】受信手段２３におけるホスト非介在エラーリカバリ処理の流れを示すフローチャートである。
【図４】印刷制御手段２５におけるホスト非介在エラーリカバリ処理の流れを示すフローチャートである。
【符号の説明】
【００５８】
１  プリンタシステム、１０  ホスト装置、１１  プリンタドライバ手段、１２  ＲＩＰ手段、１３  画像処理手段、１４  圧縮手段、１５  印刷データ生成／送信手段、２０  ホストベースプリンタ、２１  動力機構部、２２  プリンタコントローラ、２３  受信手段、２４  伸長／転送手段、２５  印刷制御手段
【図１】
2005271326.tif 000003
【図２】
2005271326.tif 000004
【図３】
2005271326.tif 000005
【図４】
2005271326.tif 000006