(57)【要約】【課題】ユーザの回復作業が必要な印刷エラーが発生し該回復作業が実施されるまでの間に他の印刷ジョブが蓄積された後、回復作業によりエラーが解消された場合、柔軟に印刷ジョブの印刷処理順序を制御できるようにする。【解決手段】印刷部（８）でユーザの回復作業が必要なエラーが発生（Ｓ２１８）し回復作業が実施されるまでの間に他の印刷ジョブがＨＤＤ（７）に蓄積された後、回復作業によりエラーが解消された（Ｓ２２１〜Ｓ２２３）場合、ユーザの指定操作に応じて指定された印刷ジョブの印刷処理を他の印刷ジョブよりも優先して印刷部に実行させる（Ｓ２２８〜Ｓ２３２）。印刷処理順序を制御する指定操作はエラー発生時からエラー解消時までの経過時間が一定時間を過ぎた場合（Ｓ２２６）にのみ行なわせる。上記一定時間や該指定操作を行なうか否かもユーザ設定可とする。【選択図】図６
2008087385.tif 000002
【特許請求の範囲】
【請求項１】
入力された印刷ジョブの印刷データを印刷する印刷部と、印刷処理すべき印刷ジョブを蓄積する不揮発性記憶部を有する印刷装置の制御方法において、
前記印刷部でユーザの回復作業が必要なエラーが発生した後、回復作業によりエラーが解消された際、ユーザの指定操作に応じて指定された印刷ジョブの印刷処理を他の印刷ジョブよりも優先して前記印刷部に実行させる制御過程を含むことを特徴とする印刷装置の制御方法。
【請求項２】
請求項１に記載の印刷装置の制御方法において、前記指定操作を行なうか否かをユーザに設定または選択させる制御過程を含むことを特徴とする印刷装置の制御方法。
【請求項３】
請求項１に記載の印刷装置の制御方法において、前記指定操作をエラー発生時からエラー解消時までの経過時間が一定時間を過ぎた場合にのみユーザに行なわせる制御過程を含むことを特徴とする印刷装置の制御方法。
【請求項４】
請求項３に記載の印刷装置の制御方法において、前記の一定時間をユーザに設定させる制御過程を含むことを特徴とする印刷装置の制御方法。
【請求項５】
請求項１〜４のいずれか１項に記載の印刷装置の制御方法を実施すべく印刷装置の構成部材を制御することを特徴とする印刷装置の制御プログラム。
【請求項６】
請求項１〜４のいずれか１項に記載の印刷装置の制御方法を実施すべく動作する構成部材を含むことを特徴とする印刷装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力された印刷ジョブの印刷データを印刷する印刷部と、印刷処理すべき印刷ジョブを蓄積する不揮発性記憶部を有する印刷装置の制御方法、印刷装置の制御プログラム、および印刷装置に関するものである。
【背景技術】
【０００２】
近年のコンピュータ技術の進歩によるハードディスクの大容量化と低価格化は目覚ましく、それに伴い民生用の一般機器にも安価な大容量記憶装置としてハードディスクが用いられる場合が多く見られるようになった。その一例がプリンタ等の印刷機器であり、印刷ジョブをハードディスクに蓄積して記憶することにより、さまざまな利点が得られるようになった。
【０００３】
ハードディスクを用いる利点の１つとしては、プリンタで印刷エラーが発生した状態でも次の印刷ジョブを送られてきた場合にそれを拒否することなく、そのデータを一旦大容量記憶装置に保存しておき、現在の印刷が完了した後でその印刷ジョブを再転送を行なう必要なしで実行することができることが挙げられる（たとえば下記の特許文献１、特許文献２）。
【０００４】
ただし、単に印刷ジョブをハードディスクにスプールしただけの状態ではエラーが解消されるまで印刷処理が再開されないため、このエラーが発生した状態でも処理可能なジョブを受信した場合に印刷処理を行なうような従来技術も考案されている。たとえば、特定の用紙切れエラーにより印刷処理が停止した場合に、他の不足していない用紙での印刷要求が来た場合にその処理をエラーとなっているジョブより先に実施するものがある（たとえば下記の特許文献３）。また、単に印刷エラーが発生したジョブをＨＤＤに格納して、エラーが解消されるまでは他のジョブを優先的に処理するようにした構成も知られている（たとえば下記の特許文献４）。
【特許文献１】特開平０９−１６９１４１号公報
【特許文献２】特開平１０−２７１３００号公報
【特許文献３】特開２０００−０６２２９２号公報
【特許文献４】特開２００４−００１３２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述の従来技術はプリンタで発生しているエラーにより、印刷処理の実行の有無に影響を受けないジョブを優先的に処理することにより、エラー発生時の印刷処理の停滞を回避しようとするものである。そのようなエラー例としては複数の給紙口のあるプリンタでの特定サイズ（種類）の用紙切れの場合などがある。
【０００６】
しかし、一般的には使用頻度の高い用紙が用紙切れになる可能性が高いのは当然で、使用頻度が高いわけであるからそのエラーにより多くのジョブは処理の継続が不可能である場合が多い。またインクやトナー切れなどのエラーの場合もほとんどのジョブは印刷処理が不可能となるが従来技術では対応できないため、結局はユーザによる用紙の補充やインクの補充などの作業によりエラー状態を解消するのを待つ場合がほとんどである。
【０００７】
また、このようなエラー状態で複数のジョブが受信されると、それらは通常ハードディスクに次々と溜まっていくが、これらのユーザの誰かがエラーを解消しない限りこの状態は改善されない。ところが用紙切れまたはインク切れエラーを発生させたユーザがその状態に気付かず、その解消作業を行わないと後からジョブを送信したユーザが解消作業を行わなくてはならなくなる。
【０００８】
ここでユーザの誰かが解消作業を行なった場合、その直後に印刷されるのはエラーを発生させたジョブである。つまり、誰が解消作業を行っても問題を発生させたジョブが再優先で印刷されてしまうことになる。したがって、エラーを発生させたユーザ以外の人は解消作業を行っても自分のジョブが印刷されるまで待っていなくてはならない。ところが多くの場合用紙切れやインク切れを起こすようなジョブはデータ量が大きな場合が多く、その印刷時間が長くかかる傾向にある。また、そのようなジョブはエラーを解消しても再度エラーを発生させる場合もあり、該ジョブを送信したユーザ以外に迷惑がかかる場合が多い。
【０００９】
本発明の課題は、上記の問題に鑑み、印刷ジョブの印刷処理中にユーザの回復作業が必要なエラーが発生した後、回復作業によりエラーが解消された場合、ユーザの指定操作に応じて柔軟に印刷ジョブの印刷処理順序を制御できるようにすることにある。
【課題を解決するための手段】
【００１０】
上記課題を解決するため、本発明においては、入力された印刷ジョブの印刷データを印刷する印刷部と、印刷処理すべき印刷ジョブを蓄積する不揮発性記憶部を有する印刷装置の制御方法、印刷装置の制御プログラム、および印刷装置において、前記印刷部でユーザの回復作業が必要なエラーが発生し回復作業が実施されるまでの間に他の印刷ジョブが前記不揮発性記憶部に蓄積された後、回復作業によりエラーが解消された際、ユーザの指定操作に応じて指定された印刷ジョブの印刷処理を他の印刷ジョブよりも優先して前記印刷部に実行させる構成を採用した。
【００１１】
あるいはさらに、前記指定操作を行なうか否かをユーザに設定または選択させる制御過程を含む構成を採用した。
【００１２】
あるいはさらに、前記指定操作をエラー発生時からエラー解消時までの経過時間が一定時間を過ぎた場合にのみユーザに行なわせる制御過程を含む構成を採用した。
【００１３】
あるいはさらに、前記の一定時間をユーザに設定させる制御過程を含む構成を採用した。
【発明の効果】
【００１４】
以上の構成によれば、印刷ジョブの印刷処理中にユーザの回復作業が必要なエラーが発生した後、回復作業によりエラーが解消された場合に、ユーザの指定操作に応じて柔軟に印刷ジョブの印刷処理順序を制御できる。たとえば、用紙切れやインク切れ等の印刷エラーを発生させてプリンタを動作不能の状態におきながら印刷エラーの回復をしようとしないユーザがいても、回復作業を怠ったユーザより回復作業を行ったユーザの印刷ジョブを優先的に印刷処理することが可能になる。
【００１５】
あるいはさらに、前記指定操作を行なうか否かをユーザに設定または選択させる制御過程を含む構成、前記指定操作をエラー発生時からエラー解消時までの経過時間が一定時間を過ぎた場合にのみユーザに行なわせる制御過程を含む構成、前記の一定時間をユーザに設定させる制御過程を含む構成などを採用すれば、ユーザ環境やユーザの好みなどに応じてよりきめ細かく印刷エラー発生〜回復作業実施後の印刷処理を制御することができる。
【発明を実施するための最良の形態】
【００１６】
以下、発明を実施するための最良の形態の一例として、ホスト装置からの指令に応じて印刷処理を行なうとともに、印刷処理すべき印刷ジョブを蓄積する不揮発性記憶部を有するプリンタ機器に関する実施例を例示する。
【実施例】
【００１７】
以下に図面に基づいて本発明の実施例を具体的に説明する。
【００１８】
図１は本発明に係わるプリンタの基本的構成を示している。図１において符号１は印刷指示などの機器の各種の機能の実行指示を行なうための操作部である。この操作部１は複数個のキー、ボタン、スイッチなどから構成される。
【００１９】
符号２は、機器の状態や各種の操作結果をユーザーに通知するための表示部である。この表示部２は液晶パネル、ＬＥＤなどで構成され、操作部１とともにユーザーインターフェース手段を構成する。
【００２０】
符号３は外部の機器との通信を行なう通信部である。この通信部３はパラレルポート（ＩＥＥＥ１２８４など）、ネットワークインターフェース（ＣＳＭＡ／ＣＤなど）、ＵＳＢ、ＩＥＥＥ１３９４など各種のインタフェースの一つまたは複数から構成される。通信部３は印刷データを機器に入力する場合や、操作部１を使用しないで印刷などの各種操作を行なう場合に使用される。なお、通信部３がＵＳＢ、ＩＥＥＥ１３９４などから構成される場合には、通信部３を後述のＨＤＤ７の接続にも用いることができる。
【００２１】
符号４は機器の各機能の実行を行なう制御部で、マイクロプロセッサ、システムバス、入出力チップセットなどの部材から構成される。制御部４は操作部１や通信部３からの各種の入力動作に対応して各種の出力動作の制御を行なうとともに、後述の印刷部８の印刷出力処理を制御する。
【００２２】
符号５は記憶装置としてのＲＯＭである。ＲＯＭ５はリードオンリーメモリの略語であり不揮発性の記憶装置である。制御部４が実行する後述の制御手順は、たとえばこのＲＯＭ５に制御プログラムとして記憶されている。
【００２３】
符号６は記憶装置の一種であるＲＡＭである。ＲＡＭはランダムアクセスメモリの略語であり、揮発性の記憶装置である。特に、ＲＡＭ６内には印刷データなどの大量のデータを扱う場合に使用されるバッファ６１、制御部４が各種制御を行なう際に必要となる変数などを一時的に記憶するワークエリア６２などが画成される。
【００２４】
符号７は記憶装置の一種であるＨＤＤである。ＨＤＤとはハードディスクドライブの略語で、不揮発性の記憶装置であるハードディスクとそれを駆動する機構から構成される。ＨＤＤ７内には通信部３を介して入力された印刷データを蓄積して記憶する印刷データ記憶部７１や、印刷データ記憶部７１に記憶されている内容の管理情報を記憶するデータ管理記憶部７２などが割り付けられる。
【００２５】
符号８は印刷を実行する印刷部である。この印刷部８は紙送り機構や描画機構などから構成され制御部４により処理されたデータの印刷を実行する。印刷部８の各部を構成する機構には各種の検知装置が備わっており、紙なし、紙づまり、インク切れやカバーオープン等のさまざまな動作エラーを検出することができる。印刷部８の印刷方式は任意であるが、たとえばインクジェット方式や電子写真方式などのプリンタエンジンを用いて印刷部８を構成することができる。
【００２６】
図２は、図１のプリンタ装置において、本発明で解決すべきエラー発生までの流れと、その対策としての処理の流れの一例を示している。
【００２７】
通常、この種のプリンタは、電源投入後、通信部３（たとえばネットワークなど）を介して接続された単数あるいは複数のホストコンピュータからの印刷指示待ちの状態で待機する（ステップＳ１０１）。この状態において、ユーザＡからの印刷指示が発行されたとする。ユーザＡからの指示は複数ページで構成される比較的量の多い印刷ジョブ”Ａ１．ＤＯＣ”を印刷することである。
【００２８】
プリンタ装置はその指示にしたがい、印刷ジョブ”Ａ１．ＤＯＣ”の印刷処理を開始する（ステップＳ１０２）。この時の印刷ジョブはＨＤＤ７には記憶されず、ＲＡＭ６内のバッファ６１内で処理されていく。
【００２９】
ここで、この印刷処理中に印刷用紙がなくなってしまったとする（ステップＳ１０３）。そうなると印刷が続行できないのでプリンタ装置は用紙切れのエラー表示を行った後、印刷ジョブの残りのデータを受信してＨＤＤ７内に記憶しておく（ステップＳ１０４）。その後プリンタ装置は用紙が補充されるのを待ち続けるが、ユーザＡが用紙切れエラーに気付かないために、補充が行われないまま数十分が経過したとする（ステップＳ１０５）。
【００３０】
さらに、この状態において、別のユーザＢからの印刷指示が発行されたとする。このユーザＢからの指示は比較的量の少ない印刷ジョブ”Ｂ２．ＴＸＴ”を印刷することである（ステップＳ１０６）。プリンタ装置はその指示を受信するが、印刷が開始できないので受信した印刷ジョブ”Ｂ２．ＴＸＴ”は全てＨＤＤ７内に記憶し、印刷予約状態に設定しておく（ステップＳ１０７）。
【００３１】
さらに、この状態において、別のユーザＣからの印刷指示が発行されたとする。ユーザＣからの指示は印刷ジョブ”Ｃ３．ＴＩＦ”を印刷することである（ステップＳ１０８）。
【００３２】
プリンタ装置はその指示を受信するが、印刷が開始できないので受信した印刷ジョブ”Ｃ３．ＴＩＦ”は全てＨＤＤ７内に記憶し、印刷予約状態に設定しておく（ステップＳ１０９）。
【００３３】
この時点でユーザＣが用紙切れエラーが発生していることに気付き、ユーザＣが用紙を補充したとする（ステップＳ１１０）。
【００３４】
これにより、従来技術の場合、プリンタ装置は印刷予約状態となっている最も古いジョブである”Ａ１．ＤＯＣ”の印刷処理を開始するが、本発明ではここでユーザにより次に印刷するジョブを操作パネルから選択可能とする。
【００３５】
たとえばここでユーザＣが自分の送信した印刷ジョブである”Ｃ３．ＴＩＦ”を選択したとする（ステップＳ１１１）。プリンタ装置はステップＳ１１１で指定された通りに”Ｃ３．ＴＩＦ”の印刷処理を開始して全て完了させる（ステップＳ１１２）。
【００３６】
次に、プリンタ装置は印刷エラーを発生させたジョブである”Ａ１．ＤＯＣ”の印刷処理をＨＤＤ７に記憶してあるものに対して開始して全て完了させる（ステップＳ１１３）。次にプリンタ装置は次に印刷予約状態となっているジョブである”Ｂ２．ＴＸＴ”の印刷処理を開始して全て完了させる（ステップＳ１１４）。全ての印刷予約状態のジョブを処理したプリンタ装置は再びホストコンピュータからの印刷指示待ちの状態で待機する（ステップＳ１１５）。
【００３７】
図３は図１のＨＤＤ７の印刷データ記憶部７１の状態の一例を示している。印刷データ記憶部７１には通信部３を介して一回の通信処理で受信した印刷ジョブのデータを一単位としてファイルの形式で保存する。これら各ファイルには特有の名前が付けられ、その名前で管理される。
【００３８】
図３は、図２のステップＳ１０９の処理が終了した時点の状態の一例である。ここでは、符号２１がユーザＡからのジョブのデータファイル”Ａ１．ＤＯＣ”、２２がユーザＢからのジョブのデータファイル”Ｂ２．ＴＸＴ”、２３がユーザＣからのジョブデータファイル”Ｃ３．ＴＩＦ”である。このように印刷データ記憶部７１には各印刷ジョブの印刷データの内容がファイル形式で記憶される。これらのファイル名情報それ自体は印刷データ記憶部７１ではなく、データ管理記憶部７２内に記憶されている（図４参照）。図３の各ファイルの内容は印刷ジョブとして受信した印刷データをそのまま記憶してもよいし、あるいは適当に加工した結果を記憶したものでもよい。
【００３９】
図４は図１のデータ管理記憶部７２の内部構成の一例を示している。図４では図３と同様に図２のステップＳ１０９の処理が終了した時点での状態を表現している。
【００４０】
図４において、データ管理記憶部７２には、印刷データ記憶部７１に記憶している印刷データファイルの記憶内容を示す管理情報を記憶している。管理情報は１ファイルにつき３１〜３５に示す５つの項目（フィールド）から構成され、その５つの項目をまとめてレコードと呼ぶ。ここで符号３１は各ファイルの識別子であるファイル名を記憶している「ファイル名」項目で、図３の例では”Ａ１．ＤＯＣ”、”Ｂ２．ＴＸＴ”、”Ｃ３．ＴＩＦ”の３つのファイル名が記憶されている。
【００４１】
符号３２は印刷データ記憶部７１において各ファイルが記憶されている場所を示すアドレス情報を記憶している「開始アドレス」項目である。アドレス情報を現す数値の単位も一定の基準で決められている。符号３３は各ファイルのデータサイズを記憶している「データサイズ」項目である。サイズを現す数値の単位は一定の基準で決められている。
【００４２】
符号３４は各ファイルの印刷処理の優先順位を記憶している「印刷順番」項目である。数値の小さいレコードほど先に印刷処理される。また印刷処理が不要であるデータや印刷処理が完了しているデータには”０”が記憶され、印刷処理の対象外であると認識される。図４の例ではレコード３６、レコード３７、レコード３８の順番で印刷が実行されるように設定されている。
【００４３】
符号３５は各データの印刷処理を行なう開始位置を記憶している「印刷中断位置」項目である。本発明により発生しうる印刷処理の部分的延期状態の場合に、どの部分からが印刷されていないかを記憶する。この数値はデータ内のアドレス、印刷カラム数、印刷ページ数、印刷部数などの各種情報またはその組み合わせで構成可能である。これらの値が”０”でないデータは全て部分的延期状態であるが、値が”０”であるデータは部分的延期状態にあるものとそうでないものがある。図４の例ではレコード３６は部分的延期状態であるが、値は”０”である。図４に符号３１〜３３に示す３つの管理情報から特定の印刷データの記憶場所とその記憶容量が判別でき、また、３４〜３５に示す２つの管理情報から次に処理すべき印刷データの記憶場所が判別できる。これらの管理情報は一つのファイルにつき１レコードが割り当てられ、全てのファイルについて各レコードが記憶されている。
【００４４】
図４の場合、レコード３６は、図３の例に示す２１のファイル”Ａ１．ＤＯＣ”について記憶し、レコード３７は図３の例に示す２２のファイル”Ｂ２．ＴＸＴ”について記憶し、レコード３８は図３の例に示す２３のファイル”Ｃ３．ＴＩＦ”について記憶している。また全レコードの最後には最後であることを示す空白レコードが存在する。空白レコードの内容は３９に示すように全ての項目の内容が０である。この空白レコードを検出することにより全てのデータファイルの数を検知することができる。
【００４５】
図５は図４と同様に本発明に係わる装置でのデータ管理記憶部７２の内部構成の一例を示す図である。図５では図２のステップＳ１１１の処理でユーザＣにより次に印刷するジョブとして”Ｃ３．ＴＩＦ”を選択した直後のデータ管理記憶部７２の構成を示しており、印刷順番項目３４の設定値が変化して、項目４１に示す状態になっている。
【００４６】
ここではステップＳ１１１で選択されたレコード３８の印刷順番項目４１の値が”３”から”１”に変化して、全レコード中で処理の優先順位が最も高くなっている。その他のレコードの印刷順番項目４１の値は、値がレコード３８の元の値”３”より小さい値を有するレコードに関してそれぞれの値が全て１つずつ増えている。具体的にはレコード３６の印刷順番項目４１は値が”１”から”２”、レコード３７の印刷順番項目４１は値が”２”から”３”にそれぞれ変化している。これによりレコード３８の印刷が最優先で実施される。またレコード３６の印刷中断位置項目３５は値が”０”で、図４の状態から変わっていないが、これはレコード３６はステップＳ１０４に示すように、元々エラー発生以後のデータだけを保存しているため、全データとも今後の印刷処理の対象であるからである。
【００４７】
これがレコード３７やレコード３８のようにＨＤＤ７に記憶された印刷データを印刷処理中に印刷エラーが発生した場合は、保存されているデータの全てが以後の印刷対象ではないために、多くの場合に印刷中断位置項目３５は”０”以外の値になる。
【００４８】
図６は本発明に係わるプリンタ装置での電源投入後の制御手順を示すフローチャートである。図６の制御手順はＲＯＭ５内の制御プログラム記憶部に記憶されており、ユーザがプリンタの電源スイッチをオンにした場合にこのフローチャートが開始する。
【００４９】
ステップＳ２０１では機器の各種の初期化を実施する。初期化処理は制御プログラムなどのソフトウェア的な処理や、機器内の各種の装置のハードウェア的な処理からなり、通信部３や印刷部７などの機構を使用可能になるように処理する。また同時に変数ｆの値を０に設定する。変数ｆはＲＡＭ６内のワークエリア６２に存在しており、印刷中にエラーが発生したかどうかを示す変数として用いられる。値が０ということはエラーが発生していない状態であることを示す。
【００５０】
ステップＳ２０２ではイベントが発生するのを一定の時間だけ待つ。イベントとは機器の状態の変化を引き起こす事象であり、ユーザによる機器の操作、機器の動作による機器の状態の変化などのことを指す。具体的にはユーザによるものでは操作部１の操作を行った場合や、通信部３を介して機器へ指示を送った場合などが挙げられ、機器の状態の変化ではプリンタのインク切れを検知した場合であったり、紙が詰まってしまった場合などが挙げられる。本装置ではこれらのイベントに応じて各種の処理を実施する。
【００５１】
ステップＳ２０３ではステップＳ２０２で何らかのイベントが発生したかどうかを調べ、イベントが発生したならばステップＳ２０４へ進み、そうでなければステップＳ２２１へ進む。
【００５２】
ステップＳ２０４では通信部３が通信によりデータを受信したことで発生したイベントであるかを調べ、ここでデータ受信があればステップＳ２０６へ進み、データ受信がなければステップＳ２０５へ進む。
【００５３】
ステップＳ２０５ではステップＳ２０３で発生したイベントに応じて各種の処理を実施する。ステップＳ２０４で判定されたように通信部３によるデータの受信イベント以外のイベントの処理はここで処理される。このようなイベントの一例としては内部データの印刷指示などの操作部１の操作、機器の設定処理指示などで、それぞれの指示に応じて処理を実行する。また他の例としてはプリンタのインク切れや紙詰まりなどの現象発生が挙げられ、これらの場合には印刷の中断や中止を行い、ユーザに対して表示部２で警告を発生するなどの処理を実施する。
【００５４】
各イベントの処理を実施した後はステップＳ２０２へ戻り、次のイベントの発生を待つ。機器は電源をオフするまではステップＳ２０２〜ステップＳ２３６の処理を繰り返し続ける。ステップＳ２０６〜ステップＳ２２０では、ステップＳ２０４で判定されたように通信部３によるデータの受信イベントに対する処理を実施する。ステップＳ２０６では通信部３を介して送信されてきたデータを受信してバッファ６１に保存する。ここでの処理はバッファの容量などによりある一定量だけのデータを受信して保存する。
【００５５】
ステップＳ２０７ではステップＳ２０６で受信したデータが全データの先頭にあたるものかを調べ、そうであればステップＳ２０８へ進み、そうでなければステップＳ２１３へ進む。一般的に通信されるデータにはコマンドが付加されており、そのコマンドによりデータの先頭部分であるかが判定できる。
【００５６】
ステップＳ２０８〜ステップＳ２１２では、受信したデータが全データの先頭にあたるものである場合のみ処理が実行される。ステップＳ２０８では現在機器が印刷処理中であるかどうかを調べ、印刷処理中でないならばステップＳ２０９へ進み、印刷処理中であればステップＳ２１１へ進む。
【００５７】
ステップＳ２０９では現在機器で印刷エラーが発生中であるかどうかを調べ、印刷エラーが発生中でないならばステップＳ２１０へ進み、発生中であればステップＳ２１１へ進む。印刷エラーの発生中は印刷処理が実施できないため、受信したデータをＨＤＤ７に記憶するように制御する。
【００５８】
ステップＳ２１０では変数ｓの値を０に設定する。変数ｓはＲＡＭ６内のワークエリア６２に存在しており、これ以降は受信したデータを印刷データ記憶部７１に記憶するかどうかを示す変数として用いられる。ここで変数ｓの値が０であるということは受信したデータを印刷データ記憶部７１に記憶する必要がないことを示す。
【００５９】
一方、ステップＳ２１１では変数ｓの値を１に設定する。この変数ｓの値が１であるということは、受信したデータを印刷データ記憶部７１に記憶することを示す。ステップＳ２１２では新規にファイルを作成する。ファイルを新規に作成する場合にはデータ管理記憶部７２にはレコードを作成せずに、ファイル名を受信データのコマンドから決定してワークエリア６２に一時的に保存するとともに、印刷データ記憶部７１の空き領域を求め、その先頭アドレスをワークエリア６２に保存することを行なう。
【００６０】
ステップＳ２１３では変数ｓの値を調べ、値が０であればステップＳ２１７へ進み、値が０でないならばステップＳ２１４へ進む。変数ｓの値はデータの先頭部分を受信した場合にステップＳ２１０あるいはステップＳ２１１で設定され、データの先頭部分以外を受信した場合にはその部分がスキップされるために、その設定を保持した状態で通信を継続する。
【００６１】
ステップＳ２１４ではステップＳ２０６でバッファ６１に受信したデータを解析し、それを印刷データ記憶部７１に記憶する。これは変数ｓの値が０でないことから、データ受信が開始された時に印刷中であったか、印刷エラー発生中であったと判断されるため、受信データを通常通りに印刷処理を実施しないで、ステップＳ２０６で取得した印刷データ記憶部７１での空き領域に対しデータを追加しながら保存する。
【００６２】
ステップＳ２１５ではステップＳ２０６で受信したデータが全データの最終のものであるかを調べ、そうであればステップＳ２１６へ進む。受信したデータが全データの最終のものでなければステップＳ２０２に戻り、残りのデータを受信して保存処理を継続して実行する。
【００６３】
ステップＳ２１６ではステップＳ２１２で作成した一時ファイルに対するレコードをデータ管理記憶部７２に追加登録する。データ管理記憶部７２に新規レコードを追加してレコード内の各項目の内容を設定することにより、一時ファイルは通常ファイルとして確定する。ここで各項目に関し、ファイル名項目３１にはステップＳ２１２でワークエリア６２に保存したファイル名を保存し、開始アドレス項目３２にはステップＳ２１２でワークエリア６２に保存したアドレスを保存し、データサイズ項目３３にはステップＳ２１４で追加保存したデータの総量を保存する。印刷順番項目３４にはデータ管理記憶部７２内の印刷処理待ちである全てのレコードの印刷順番項目３４の内容を調べ、その最大値に１を加えた値を設定する。この結果、印刷待ちの優先順位が最下位のレコードとして登録される。印刷中断位置項目３５には既定の初期値”０”を設定する。ここで登録した内容は後でステップＳ２２１〜ステップＳ２３６で参照され、実行される。
【００６４】
ステップＳ２１７ではバッファ６１に保存されたデータを解析し、印刷部８を介して印刷処理を実行する。バッファ６１にはステップＳ２０６で通信部３を介して受信された印刷データが保存されている。
【００６５】
ステップＳ２１８では機器に印刷エラーが発生したかどうかを調べ、印刷エラーが発生したならばステップＳ２１９へ進み、そうでなければステップＳ２０２に戻り、残りのデータを受信してバッファ６１への保存処理を継続して実行する。なお、本実施例において、印刷エラーとは、紙なし、紙づまり、インク切れやカバーオープン等の検知により、印刷処理の続行が不可能であるがユーザの作業により回復可能である状態のことを指す。
【００６６】
ステップＳ２１９では印刷エラーが発生したことをユーザに通知する。具体的には表示部２上のＬＥＤを点灯したり、発生したエラーの内容やそれに対する操作ガイドのメッセージ等を表示部２上の液晶パネルに文字表示したりする。ステップＳ２２０では印刷エラーが発生したことを示す変数ｆの値に１を設定する。また同時にエラーが発生した時刻を取得してワークエリア６２に記憶する。その後はステップＳ２０２に戻り、エラー状態が回復されるのを待ち続ける。
【００６７】
ステップＳ２２１〜ステップＳ２３６ではステップＳ２０３で現在処理すべきイベントがないと判断されたことから、ＨＤＤ７内に印刷処理すべきデータがあるならばその印刷処理を開始するように制御する。ステップＳ２２１では現在機器が印刷処理中であるかどうかを調べ、印刷処理中でないならばステップＳ２２２へ進み、印刷処理中であればステップＳ２０２へ戻る。この場合は印刷処理を開始できないので次の機会を待つ。ステップＳ２２２では、現在、機器で印刷エラーが発生中であるかどうかを調べ、印刷エラーが発生中でないならばステップＳ２２３へ進み、発生中であればステップＳ２０２へ戻る。この場合も印刷処理を開始できないので次の機会を待つ。
【００６８】
ステップＳ２２３では、現在、印刷待ちのデータがあるかどうかを調べ、そのような処理があるならばステップＳ２２４へ進み、そうでなければステップＳ２０２へ戻る。印刷待ちのデータの有無は、データ管理記憶部７２の全レコードを調べ、印刷順番項目３４の値が”０”でないレコードが印刷待ちのデータであるので該当するレコードがあるかないかを調べることにより判定する。
【００６９】
ステップＳ２２４では変数ｆの値を調べ、値が０でなければステップＳ２２５へ進み、値が０ならばステップＳ２３１へ進む。変数ｆの値が０の場合は印刷エラーが発生していなかったことになるので、本発明の特徴である優先順位の変更を実施せずに、通常の順番のままにステップＳ２３１以降の印刷予約されたデータの印刷処理を実施する。
【００７０】
ステップＳ２２５では変数ｆの値を０に設定する。ステップＳ２２４で変数ｆの役目が完了したため、この変数ｆの値を通常状態値である０に戻す。
【００７１】
ステップＳ２２６では印刷エラーが発生してから現在までの経過時間を調べ、ある一定時間を超えていたならばステップＳ２２７へ進み、そうでなければステップＳ２３１へ進む。現在はステップＳ２２２で判定された通り印刷エラーから回復している状態であるので、現在の時刻とステップＳ２２０でワークエリア６２に記憶したエラー発生時刻の値を比べることにより経過時間を算出することができる。
【００７２】
ステップＳ２２６で経過時間と比較する「一定時間」は、本機能を作動させる閾値時間としてユーザにより操作部１などから設定できるようにしておく。この「一定時間」の設定値は機器内の不揮発性記憶装置、たとえばＨＤＤ７内に記憶されており、操作部１の入力パネルのキー入力によるメニュー操作や、通信部３を介しての設定変更手段などによりユーザによる変更ができるようにしておく。
【００７３】
ステップＳ２２７では、現在印刷待ちのデータが複数個あるかどうかを調べ、複数個あるならばステップＳ２２８へ進み、そうでなければステップＳ２３１へ進む。ここでの調査方法はステップＳ２２３と同様に、データ管理記憶部７２の全レコードを調べ、印刷順番項目３４の値が”０”でないレコードが複数個あるかないかを調べることにより判定する。複数個ない場合は優先順位の変更は不要なため、通常の順番のままにステップＳ２３１以降の印刷予約されたデータの印刷処理を実施する。
【００７４】
ステップＳ２２８では最優先して処理する印刷ジョブをユーザにより選択する機会を与える。ステップＳ２２５以降の処理が行われるのは印刷エラーの発生により印刷処理ができなかった状態が解消されて印刷可能な状態になった場合であり、その時点で本発明の特徴であるユーザによる任意のジョブの選択操作が可能になる。選択操作の一例としては、現在印刷待ちであるジョブのリストを表示部２の液晶パネルに表示し、ユーザはそれを参照しながら操作部１の操作キーの押下により所望のジョブを選択後、決定するキーを押して決定する。
【００７５】
なお、ステップＳ２２８で特定ジョブを選択しない、すなわち上記ジョブ選択操作をキャンセルすることも可能であり、その場合は中止するキーを押すと現在の優先順位のままで処理を継続する。
【００７６】
あるいは、ユーザ設定に応じて、上記特定ジョブの選択操作（Ｓ２２６〜下記のＳ２３０まで）を実行しないようにする、すなわち、上記指定操作を行なうか否かをユーザに設定または選択させることもできる。このようなユーザ設定のために特別の変数を設けておいてもよいが、たとえばステップＳ２２６で経過時間と比較する「一定時間」値として無効な内容（たとえば負の数値など）が設定された場合に、特定ジョブの選択操作（Ｓ２２６〜下記のＳ２３０まで）を実行しないよう制御する構成も考えられる。
【００７７】
ステップＳ２２９ではステップＳ２２８でユーザが最優先ジョブを別のものに変更したかどうかを調べ、別のジョブに変更していたらステップＳ２３０へ進む。また、そうでなければステップＳ２３１へ進み、そのままの順番で印刷予約されたデータの印刷処理を再開する。
【００７８】
ステップＳ２３０ではステップＳ２２８での操作の結果をデータ管理記憶部７２の優先順位項目３４に反映する。具体的にはステップＳ２２８でユーザが選択したジョブに対応するレコードの印刷順番項目３４の値を最小にし、その他のレコードの印刷順番項目３４の値は、ユーザが選択したジョブに対応するレコードの印刷順番項目３４の元の値より小さい値を有するレコードに関してそれぞれの値を１つずつ増やす処理を行なう。図４の例でレコード３８が選択された場合は、その結果は図５の状態のようになる。
【００７９】
ステップＳ２３１では全ての印刷待ちデータから最優先データを検出し、そのデータの一部を印刷可能な形態に変換してバッファ６１に保存する。最優先データはデータ管理記憶部７２の全レコードの印刷順番項目３４の値が０以外の最小のレコードを検出することにより判明する。データの読み出し位置は初回の処理時にはデータ管理記憶部７２の該当するレコードの印刷中断位置項目３５の値により判明し、２回目以降の処理時には前回の処理分の続きのデータから決定される。またデータの読み出し量はバッファの容量などにより決定する。
【００８０】
ステップＳ２３２ではステップＳ２３１でバッファ６１に設定された印刷データの印刷処理を実施する。制御部４から印刷部８にバッファ６１のデータを転送することにより印刷処理が実施される。ステップＳ２３３では印刷部８で何らかのエラーが発生したかを調べ、エラーが発生したならばステップＳ２３４へ進み、そうでなければステップＳ２３５へ進む。
【００８１】
ステップＳ２３４では現在印刷処理中のデータの処理状況を調べ、印刷処理済みの部分を示す情報を保存する。ここではステップＳ２３３で既に印刷エラーを検出しているので、現在処理中のデータに関して処理の再開に備えて未印刷部分を示す情報をデータ管理記憶部７２の該当レコードの印刷中断位置項目３５に設定する。ここで、未印刷部分は、発生したエラーの内容により判定することができるから、エラーの内容に応じて印刷中断位置項目３５の設定を行なえば未印刷部分から確実に印刷を再開することができる。
【００８２】
たとえば用紙詰まりが発生した場合は印刷中のページは全て再印刷が必要になるため、現在処理中のページの先頭を示すデータの情報を記憶し、印刷後の用紙切れが発生した場合は次のページの先頭を示すデータの情報を記憶する、などの制御をステップＳ２３４で行なう。そして、その後はステップＳ２１９へ進み、エラー表示等の処理を実行する。
【００８３】
ステップＳ２３５ではステップＳ２３３で印刷したデータが現在処理中のレコードの最後の部分であるかを調べ、そうであるならばステップＳ２３６へ進み、そうでなければステップＳ２０２に戻り現在のレコードの印刷処理を継続する。ステップＳ２３６では現在処理中のレコードを機器内のＨＤＤ７から削除する。ここで現在処理中のレコードは、ステップＳ２３３およびステップＳ２３５の判定で正常完了したことがわかったため、印刷データ記憶部７１からその記憶内容を削除し、関連するレコード情報をデータ管理記憶部７２から削除する処理を実施する。その後はステップＳ２０２に戻り、次の処理を実施する。
【００８４】
以上のようにして、本実施例によれば、印刷ジョブの印刷処理中にユーザの回復作業が必要なエラーが発生した後、回復作業によりエラーが解消された場合に、ユーザの指定操作に応じて柔軟に印刷ジョブの印刷処理順序を制御できる。たとえば、用紙切れやインク切れ等の印刷エラーを発生させてプリンタを動作不能の状態におきながら印刷エラーの回復をしようとしないユーザがいても、その後から緊急で印刷しようとしてジョブを送信したが印刷できないのでプリンタのエラーの回復作業を行なったユーザがいた場合などにおいて、回復作業を怠ったユーザより回復作業を行ったユーザの印刷ジョブを優先的に印刷処理することができる。
【００８５】
あるいはさらに、印刷ジョブの印刷処理順序を制御する指定操作をエラー発生時からエラー解消時までの経過時間が一定時間を過ぎた場合にのみユーザに行なわせる構成、上記一定時間をユーザに設定させる構成、あるいはさらに該指定操作を行なうか否かをユーザに設定させる構成を採用すれば、ユーザ環境やユーザの好みなどに応じてよりきめ細かく印刷エラー発生〜回復作業実施後の印刷処理を制御することができる。
【産業上の利用可能性】
【００８６】
本発明は、プリンタエンジンの印刷方式などに限定されることなく、印刷データの印刷を行なう印刷部と、印刷処理すべき印刷ジョブを蓄積する不揮発性記憶部を有する各種のプリンタ、すなわち印刷装置において実施することができる。本発明を実施する制御プログラムは、あらかじめ印刷装置のＲＯＭなどの記憶媒体に格納しておくことができる。また、ＨＤＤ、あるいはさらにＭＯやＣＤ−ＲＯＭなどの記憶メディアからインストール／アップデートすることができる。また、上述の通信部（３）がネットワークインターフェースである場合は、任意のサーバからネットワーク経由で供給することもできる。
【図面の簡単な説明】
【００８７】
【図１】本発明を採用したプリンタの基本構成を示したブロック図である。
【図２】本発明を採用したプリンタにおけるエラー発生時と、その対策の流れを示した説明図である。
【図３】本発明を採用したプリンタにおける印刷データ記憶部の内部構成例を示した説明図である。
【図４】本発明を採用したプリンタにおけるデータ管理記憶部の内部構成例を示した説明図である。
【図５】図４のデータ管理記憶部の制御例を示す説明図である。
【図６】本発明を採用したプリンタにおける電源投入後の制御手順を示すフローチャート図である。
【符号の説明】
【００８８】
１    操作部
２    表示部
３    通信部
４    制御部
５    ＲＯＭ
６    ＲＡＭ
６１  バッファ
６２  ワークエリア
７    ＨＤＤ
７１  印刷データ記憶部
７２  データ管理記憶部
８    印刷部
【図１】
2008087385.tif 000003
【図２】
2008087385.tif 000004
【図３】
2008087385.tif 000005
【図４】
2008087385.tif 000006
【図５】
2008087385.tif 000007
【図６】
2008087385.tif 000008