説明

印刷装置の制御方法、印刷装置の制御プログラム、および印刷装置

【課題】ユーザの回復作業が必要な印刷エラーが発生し該回復作業が実施されるまでの間に他の印刷ジョブが蓄積された後、回復作業によりエラーが解消された場合、柔軟に印刷ジョブの印刷処理順序を制御できるようにする。
【解決手段】印刷部(8)でユーザの回復作業が必要なエラーが発生(S218)し回復作業が実施されるまでの間に他の印刷ジョブがHDD(7)に蓄積された後、回復作業によりエラーが解消された(S221〜S223)場合、ユーザの指定操作に応じて指定された印刷ジョブの印刷処理を他の印刷ジョブよりも優先して印刷部に実行させる(S228〜S232)。印刷処理順序を制御する指定操作はエラー発生時からエラー解消時までの経過時間が一定時間を過ぎた場合(S226)にのみ行なわせる。上記一定時間や該指定操作を行なうか否かもユーザ設定可とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、入力された印刷ジョブの印刷データを印刷する印刷部と、印刷処理すべき印刷ジョブを蓄積する不揮発性記憶部を有する印刷装置の制御方法、印刷装置の制御プログラム、および印刷装置に関するものである。
【背景技術】
【0002】
近年のコンピュータ技術の進歩によるハードディスクの大容量化と低価格化は目覚ましく、それに伴い民生用の一般機器にも安価な大容量記憶装置としてハードディスクが用いられる場合が多く見られるようになった。その一例がプリンタ等の印刷機器であり、印刷ジョブをハードディスクに蓄積して記憶することにより、さまざまな利点が得られるようになった。
【0003】
ハードディスクを用いる利点の1つとしては、プリンタで印刷エラーが発生した状態でも次の印刷ジョブを送られてきた場合にそれを拒否することなく、そのデータを一旦大容量記憶装置に保存しておき、現在の印刷が完了した後でその印刷ジョブを再転送を行なう必要なしで実行することができることが挙げられる(たとえば下記の特許文献1、特許文献2)。
【0004】
ただし、単に印刷ジョブをハードディスクにスプールしただけの状態ではエラーが解消されるまで印刷処理が再開されないため、このエラーが発生した状態でも処理可能なジョブを受信した場合に印刷処理を行なうような従来技術も考案されている。たとえば、特定の用紙切れエラーにより印刷処理が停止した場合に、他の不足していない用紙での印刷要求が来た場合にその処理をエラーとなっているジョブより先に実施するものがある(たとえば下記の特許文献3)。また、単に印刷エラーが発生したジョブをHDDに格納して、エラーが解消されるまでは他のジョブを優先的に処理するようにした構成も知られている(たとえば下記の特許文献4)。
【特許文献1】特開平09−169141号公報
【特許文献2】特開平10−271300号公報
【特許文献3】特開2000−062292号公報
【特許文献4】特開2004−001320号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
上述の従来技術はプリンタで発生しているエラーにより、印刷処理の実行の有無に影響を受けないジョブを優先的に処理することにより、エラー発生時の印刷処理の停滞を回避しようとするものである。そのようなエラー例としては複数の給紙口のあるプリンタでの特定サイズ(種類)の用紙切れの場合などがある。
【0006】
しかし、一般的には使用頻度の高い用紙が用紙切れになる可能性が高いのは当然で、使用頻度が高いわけであるからそのエラーにより多くのジョブは処理の継続が不可能である場合が多い。またインクやトナー切れなどのエラーの場合もほとんどのジョブは印刷処理が不可能となるが従来技術では対応できないため、結局はユーザによる用紙の補充やインクの補充などの作業によりエラー状態を解消するのを待つ場合がほとんどである。
【0007】
また、このようなエラー状態で複数のジョブが受信されると、それらは通常ハードディスクに次々と溜まっていくが、これらのユーザの誰かがエラーを解消しない限りこの状態は改善されない。ところが用紙切れまたはインク切れエラーを発生させたユーザがその状態に気付かず、その解消作業を行わないと後からジョブを送信したユーザが解消作業を行わなくてはならなくなる。
【0008】
ここでユーザの誰かが解消作業を行なった場合、その直後に印刷されるのはエラーを発生させたジョブである。つまり、誰が解消作業を行っても問題を発生させたジョブが再優先で印刷されてしまうことになる。したがって、エラーを発生させたユーザ以外の人は解消作業を行っても自分のジョブが印刷されるまで待っていなくてはならない。ところが多くの場合用紙切れやインク切れを起こすようなジョブはデータ量が大きな場合が多く、その印刷時間が長くかかる傾向にある。また、そのようなジョブはエラーを解消しても再度エラーを発生させる場合もあり、該ジョブを送信したユーザ以外に迷惑がかかる場合が多い。
【0009】
本発明の課題は、上記の問題に鑑み、印刷ジョブの印刷処理中にユーザの回復作業が必要なエラーが発生した後、回復作業によりエラーが解消された場合、ユーザの指定操作に応じて柔軟に印刷ジョブの印刷処理順序を制御できるようにすることにある。
【課題を解決するための手段】
【0010】
上記課題を解決するため、本発明においては、入力された印刷ジョブの印刷データを印刷する印刷部と、印刷処理すべき印刷ジョブを蓄積する不揮発性記憶部を有する印刷装置の制御方法、印刷装置の制御プログラム、および印刷装置において、前記印刷部でユーザの回復作業が必要なエラーが発生し回復作業が実施されるまでの間に他の印刷ジョブが前記不揮発性記憶部に蓄積された後、回復作業によりエラーが解消された際、ユーザの指定操作に応じて指定された印刷ジョブの印刷処理を他の印刷ジョブよりも優先して前記印刷部に実行させる構成を採用した。
【0011】
あるいはさらに、前記指定操作を行なうか否かをユーザに設定または選択させる制御過程を含む構成を採用した。
【0012】
あるいはさらに、前記指定操作をエラー発生時からエラー解消時までの経過時間が一定時間を過ぎた場合にのみユーザに行なわせる制御過程を含む構成を採用した。
【0013】
あるいはさらに、前記の一定時間をユーザに設定させる制御過程を含む構成を採用した。
【発明の効果】
【0014】
以上の構成によれば、印刷ジョブの印刷処理中にユーザの回復作業が必要なエラーが発生した後、回復作業によりエラーが解消された場合に、ユーザの指定操作に応じて柔軟に印刷ジョブの印刷処理順序を制御できる。たとえば、用紙切れやインク切れ等の印刷エラーを発生させてプリンタを動作不能の状態におきながら印刷エラーの回復をしようとしないユーザがいても、回復作業を怠ったユーザより回復作業を行ったユーザの印刷ジョブを優先的に印刷処理することが可能になる。
【0015】
あるいはさらに、前記指定操作を行なうか否かをユーザに設定または選択させる制御過程を含む構成、前記指定操作をエラー発生時からエラー解消時までの経過時間が一定時間を過ぎた場合にのみユーザに行なわせる制御過程を含む構成、前記の一定時間をユーザに設定させる制御過程を含む構成などを採用すれば、ユーザ環境やユーザの好みなどに応じてよりきめ細かく印刷エラー発生〜回復作業実施後の印刷処理を制御することができる。
【発明を実施するための最良の形態】
【0016】
以下、発明を実施するための最良の形態の一例として、ホスト装置からの指令に応じて印刷処理を行なうとともに、印刷処理すべき印刷ジョブを蓄積する不揮発性記憶部を有するプリンタ機器に関する実施例を例示する。
【実施例】
【0017】
以下に図面に基づいて本発明の実施例を具体的に説明する。
【0018】
図1は本発明に係わるプリンタの基本的構成を示している。図1において符号1は印刷指示などの機器の各種の機能の実行指示を行なうための操作部である。この操作部1は複数個のキー、ボタン、スイッチなどから構成される。
【0019】
符号2は、機器の状態や各種の操作結果をユーザーに通知するための表示部である。この表示部2は液晶パネル、LEDなどで構成され、操作部1とともにユーザーインターフェース手段を構成する。
【0020】
符号3は外部の機器との通信を行なう通信部である。この通信部3はパラレルポート(IEEE1284など)、ネットワークインターフェース(CSMA/CDなど)、USB、IEEE1394など各種のインタフェースの一つまたは複数から構成される。通信部3は印刷データを機器に入力する場合や、操作部1を使用しないで印刷などの各種操作を行なう場合に使用される。なお、通信部3がUSB、IEEE1394などから構成される場合には、通信部3を後述のHDD7の接続にも用いることができる。
【0021】
符号4は機器の各機能の実行を行なう制御部で、マイクロプロセッサ、システムバス、入出力チップセットなどの部材から構成される。制御部4は操作部1や通信部3からの各種の入力動作に対応して各種の出力動作の制御を行なうとともに、後述の印刷部8の印刷出力処理を制御する。
【0022】
符号5は記憶装置としてのROMである。ROM5はリードオンリーメモリの略語であり不揮発性の記憶装置である。制御部4が実行する後述の制御手順は、たとえばこのROM5に制御プログラムとして記憶されている。
【0023】
符号6は記憶装置の一種であるRAMである。RAMはランダムアクセスメモリの略語であり、揮発性の記憶装置である。特に、RAM6内には印刷データなどの大量のデータを扱う場合に使用されるバッファ61、制御部4が各種制御を行なう際に必要となる変数などを一時的に記憶するワークエリア62などが画成される。
【0024】
符号7は記憶装置の一種であるHDDである。HDDとはハードディスクドライブの略語で、不揮発性の記憶装置であるハードディスクとそれを駆動する機構から構成される。HDD7内には通信部3を介して入力された印刷データを蓄積して記憶する印刷データ記憶部71や、印刷データ記憶部71に記憶されている内容の管理情報を記憶するデータ管理記憶部72などが割り付けられる。
【0025】
符号8は印刷を実行する印刷部である。この印刷部8は紙送り機構や描画機構などから構成され制御部4により処理されたデータの印刷を実行する。印刷部8の各部を構成する機構には各種の検知装置が備わっており、紙なし、紙づまり、インク切れやカバーオープン等のさまざまな動作エラーを検出することができる。印刷部8の印刷方式は任意であるが、たとえばインクジェット方式や電子写真方式などのプリンタエンジンを用いて印刷部8を構成することができる。
【0026】
図2は、図1のプリンタ装置において、本発明で解決すべきエラー発生までの流れと、その対策としての処理の流れの一例を示している。
【0027】
通常、この種のプリンタは、電源投入後、通信部3(たとえばネットワークなど)を介して接続された単数あるいは複数のホストコンピュータからの印刷指示待ちの状態で待機する(ステップS101)。この状態において、ユーザAからの印刷指示が発行されたとする。ユーザAからの指示は複数ページで構成される比較的量の多い印刷ジョブ”A1.DOC”を印刷することである。
【0028】
プリンタ装置はその指示にしたがい、印刷ジョブ”A1.DOC”の印刷処理を開始する(ステップS102)。この時の印刷ジョブはHDD7には記憶されず、RAM6内のバッファ61内で処理されていく。
【0029】
ここで、この印刷処理中に印刷用紙がなくなってしまったとする(ステップS103)。そうなると印刷が続行できないのでプリンタ装置は用紙切れのエラー表示を行った後、印刷ジョブの残りのデータを受信してHDD7内に記憶しておく(ステップS104)。その後プリンタ装置は用紙が補充されるのを待ち続けるが、ユーザAが用紙切れエラーに気付かないために、補充が行われないまま数十分が経過したとする(ステップS105)。
【0030】
さらに、この状態において、別のユーザBからの印刷指示が発行されたとする。このユーザBからの指示は比較的量の少ない印刷ジョブ”B2.TXT”を印刷することである(ステップS106)。プリンタ装置はその指示を受信するが、印刷が開始できないので受信した印刷ジョブ”B2.TXT”は全てHDD7内に記憶し、印刷予約状態に設定しておく(ステップS107)。
【0031】
さらに、この状態において、別のユーザCからの印刷指示が発行されたとする。ユーザCからの指示は印刷ジョブ”C3.TIF”を印刷することである(ステップS108)。
【0032】
プリンタ装置はその指示を受信するが、印刷が開始できないので受信した印刷ジョブ”C3.TIF”は全てHDD7内に記憶し、印刷予約状態に設定しておく(ステップS109)。
【0033】
この時点でユーザCが用紙切れエラーが発生していることに気付き、ユーザCが用紙を補充したとする(ステップS110)。
【0034】
これにより、従来技術の場合、プリンタ装置は印刷予約状態となっている最も古いジョブである”A1.DOC”の印刷処理を開始するが、本発明ではここでユーザにより次に印刷するジョブを操作パネルから選択可能とする。
【0035】
たとえばここでユーザCが自分の送信した印刷ジョブである”C3.TIF”を選択したとする(ステップS111)。プリンタ装置はステップS111で指定された通りに”C3.TIF”の印刷処理を開始して全て完了させる(ステップS112)。
【0036】
次に、プリンタ装置は印刷エラーを発生させたジョブである”A1.DOC”の印刷処理をHDD7に記憶してあるものに対して開始して全て完了させる(ステップS113)。次にプリンタ装置は次に印刷予約状態となっているジョブである”B2.TXT”の印刷処理を開始して全て完了させる(ステップS114)。全ての印刷予約状態のジョブを処理したプリンタ装置は再びホストコンピュータからの印刷指示待ちの状態で待機する(ステップS115)。
【0037】
図3は図1のHDD7の印刷データ記憶部71の状態の一例を示している。印刷データ記憶部71には通信部3を介して一回の通信処理で受信した印刷ジョブのデータを一単位としてファイルの形式で保存する。これら各ファイルには特有の名前が付けられ、その名前で管理される。
【0038】
図3は、図2のステップS109の処理が終了した時点の状態の一例である。ここでは、符号21がユーザAからのジョブのデータファイル”A1.DOC”、22がユーザBからのジョブのデータファイル”B2.TXT”、23がユーザCからのジョブデータファイル”C3.TIF”である。このように印刷データ記憶部71には各印刷ジョブの印刷データの内容がファイル形式で記憶される。これらのファイル名情報それ自体は印刷データ記憶部71ではなく、データ管理記憶部72内に記憶されている(図4参照)。図3の各ファイルの内容は印刷ジョブとして受信した印刷データをそのまま記憶してもよいし、あるいは適当に加工した結果を記憶したものでもよい。
【0039】
図4は図1のデータ管理記憶部72の内部構成の一例を示している。図4では図3と同様に図2のステップS109の処理が終了した時点での状態を表現している。
【0040】
図4において、データ管理記憶部72には、印刷データ記憶部71に記憶している印刷データファイルの記憶内容を示す管理情報を記憶している。管理情報は1ファイルにつき31〜35に示す5つの項目(フィールド)から構成され、その5つの項目をまとめてレコードと呼ぶ。ここで符号31は各ファイルの識別子であるファイル名を記憶している「ファイル名」項目で、図3の例では”A1.DOC”、”B2.TXT”、”C3.TIF”の3つのファイル名が記憶されている。
【0041】
符号32は印刷データ記憶部71において各ファイルが記憶されている場所を示すアドレス情報を記憶している「開始アドレス」項目である。アドレス情報を現す数値の単位も一定の基準で決められている。符号33は各ファイルのデータサイズを記憶している「データサイズ」項目である。サイズを現す数値の単位は一定の基準で決められている。
【0042】
符号34は各ファイルの印刷処理の優先順位を記憶している「印刷順番」項目である。数値の小さいレコードほど先に印刷処理される。また印刷処理が不要であるデータや印刷処理が完了しているデータには”0”が記憶され、印刷処理の対象外であると認識される。図4の例ではレコード36、レコード37、レコード38の順番で印刷が実行されるように設定されている。
【0043】
符号35は各データの印刷処理を行なう開始位置を記憶している「印刷中断位置」項目である。本発明により発生しうる印刷処理の部分的延期状態の場合に、どの部分からが印刷されていないかを記憶する。この数値はデータ内のアドレス、印刷カラム数、印刷ページ数、印刷部数などの各種情報またはその組み合わせで構成可能である。これらの値が”0”でないデータは全て部分的延期状態であるが、値が”0”であるデータは部分的延期状態にあるものとそうでないものがある。図4の例ではレコード36は部分的延期状態であるが、値は”0”である。図4に符号31〜33に示す3つの管理情報から特定の印刷データの記憶場所とその記憶容量が判別でき、また、34〜35に示す2つの管理情報から次に処理すべき印刷データの記憶場所が判別できる。これらの管理情報は一つのファイルにつき1レコードが割り当てられ、全てのファイルについて各レコードが記憶されている。
【0044】
図4の場合、レコード36は、図3の例に示す21のファイル”A1.DOC”について記憶し、レコード37は図3の例に示す22のファイル”B2.TXT”について記憶し、レコード38は図3の例に示す23のファイル”C3.TIF”について記憶している。また全レコードの最後には最後であることを示す空白レコードが存在する。空白レコードの内容は39に示すように全ての項目の内容が0である。この空白レコードを検出することにより全てのデータファイルの数を検知することができる。
【0045】
図5は図4と同様に本発明に係わる装置でのデータ管理記憶部72の内部構成の一例を示す図である。図5では図2のステップS111の処理でユーザCにより次に印刷するジョブとして”C3.TIF”を選択した直後のデータ管理記憶部72の構成を示しており、印刷順番項目34の設定値が変化して、項目41に示す状態になっている。
【0046】
ここではステップS111で選択されたレコード38の印刷順番項目41の値が”3”から”1”に変化して、全レコード中で処理の優先順位が最も高くなっている。その他のレコードの印刷順番項目41の値は、値がレコード38の元の値”3”より小さい値を有するレコードに関してそれぞれの値が全て1つずつ増えている。具体的にはレコード36の印刷順番項目41は値が”1”から”2”、レコード37の印刷順番項目41は値が”2”から”3”にそれぞれ変化している。これによりレコード38の印刷が最優先で実施される。またレコード36の印刷中断位置項目35は値が”0”で、図4の状態から変わっていないが、これはレコード36はステップS104に示すように、元々エラー発生以後のデータだけを保存しているため、全データとも今後の印刷処理の対象であるからである。
【0047】
これがレコード37やレコード38のようにHDD7に記憶された印刷データを印刷処理中に印刷エラーが発生した場合は、保存されているデータの全てが以後の印刷対象ではないために、多くの場合に印刷中断位置項目35は”0”以外の値になる。
【0048】
図6は本発明に係わるプリンタ装置での電源投入後の制御手順を示すフローチャートである。図6の制御手順はROM5内の制御プログラム記憶部に記憶されており、ユーザがプリンタの電源スイッチをオンにした場合にこのフローチャートが開始する。
【0049】
ステップS201では機器の各種の初期化を実施する。初期化処理は制御プログラムなどのソフトウェア的な処理や、機器内の各種の装置のハードウェア的な処理からなり、通信部3や印刷部7などの機構を使用可能になるように処理する。また同時に変数fの値を0に設定する。変数fはRAM6内のワークエリア62に存在しており、印刷中にエラーが発生したかどうかを示す変数として用いられる。値が0ということはエラーが発生していない状態であることを示す。
【0050】
ステップS202ではイベントが発生するのを一定の時間だけ待つ。イベントとは機器の状態の変化を引き起こす事象であり、ユーザによる機器の操作、機器の動作による機器の状態の変化などのことを指す。具体的にはユーザによるものでは操作部1の操作を行った場合や、通信部3を介して機器へ指示を送った場合などが挙げられ、機器の状態の変化ではプリンタのインク切れを検知した場合であったり、紙が詰まってしまった場合などが挙げられる。本装置ではこれらのイベントに応じて各種の処理を実施する。
【0051】
ステップS203ではステップS202で何らかのイベントが発生したかどうかを調べ、イベントが発生したならばステップS204へ進み、そうでなければステップS221へ進む。
【0052】
ステップS204では通信部3が通信によりデータを受信したことで発生したイベントであるかを調べ、ここでデータ受信があればステップS206へ進み、データ受信がなければステップS205へ進む。
【0053】
ステップS205ではステップS203で発生したイベントに応じて各種の処理を実施する。ステップS204で判定されたように通信部3によるデータの受信イベント以外のイベントの処理はここで処理される。このようなイベントの一例としては内部データの印刷指示などの操作部1の操作、機器の設定処理指示などで、それぞれの指示に応じて処理を実行する。また他の例としてはプリンタのインク切れや紙詰まりなどの現象発生が挙げられ、これらの場合には印刷の中断や中止を行い、ユーザに対して表示部2で警告を発生するなどの処理を実施する。
【0054】
各イベントの処理を実施した後はステップS202へ戻り、次のイベントの発生を待つ。機器は電源をオフするまではステップS202〜ステップS236の処理を繰り返し続ける。ステップS206〜ステップS220では、ステップS204で判定されたように通信部3によるデータの受信イベントに対する処理を実施する。ステップS206では通信部3を介して送信されてきたデータを受信してバッファ61に保存する。ここでの処理はバッファの容量などによりある一定量だけのデータを受信して保存する。
【0055】
ステップS207ではステップS206で受信したデータが全データの先頭にあたるものかを調べ、そうであればステップS208へ進み、そうでなければステップS213へ進む。一般的に通信されるデータにはコマンドが付加されており、そのコマンドによりデータの先頭部分であるかが判定できる。
【0056】
ステップS208〜ステップS212では、受信したデータが全データの先頭にあたるものである場合のみ処理が実行される。ステップS208では現在機器が印刷処理中であるかどうかを調べ、印刷処理中でないならばステップS209へ進み、印刷処理中であればステップS211へ進む。
【0057】
ステップS209では現在機器で印刷エラーが発生中であるかどうかを調べ、印刷エラーが発生中でないならばステップS210へ進み、発生中であればステップS211へ進む。印刷エラーの発生中は印刷処理が実施できないため、受信したデータをHDD7に記憶するように制御する。
【0058】
ステップS210では変数sの値を0に設定する。変数sはRAM6内のワークエリア62に存在しており、これ以降は受信したデータを印刷データ記憶部71に記憶するかどうかを示す変数として用いられる。ここで変数sの値が0であるということは受信したデータを印刷データ記憶部71に記憶する必要がないことを示す。
【0059】
一方、ステップS211では変数sの値を1に設定する。この変数sの値が1であるということは、受信したデータを印刷データ記憶部71に記憶することを示す。ステップS212では新規にファイルを作成する。ファイルを新規に作成する場合にはデータ管理記憶部72にはレコードを作成せずに、ファイル名を受信データのコマンドから決定してワークエリア62に一時的に保存するとともに、印刷データ記憶部71の空き領域を求め、その先頭アドレスをワークエリア62に保存することを行なう。
【0060】
ステップS213では変数sの値を調べ、値が0であればステップS217へ進み、値が0でないならばステップS214へ進む。変数sの値はデータの先頭部分を受信した場合にステップS210あるいはステップS211で設定され、データの先頭部分以外を受信した場合にはその部分がスキップされるために、その設定を保持した状態で通信を継続する。
【0061】
ステップS214ではステップS206でバッファ61に受信したデータを解析し、それを印刷データ記憶部71に記憶する。これは変数sの値が0でないことから、データ受信が開始された時に印刷中であったか、印刷エラー発生中であったと判断されるため、受信データを通常通りに印刷処理を実施しないで、ステップS206で取得した印刷データ記憶部71での空き領域に対しデータを追加しながら保存する。
【0062】
ステップS215ではステップS206で受信したデータが全データの最終のものであるかを調べ、そうであればステップS216へ進む。受信したデータが全データの最終のものでなければステップS202に戻り、残りのデータを受信して保存処理を継続して実行する。
【0063】
ステップS216ではステップS212で作成した一時ファイルに対するレコードをデータ管理記憶部72に追加登録する。データ管理記憶部72に新規レコードを追加してレコード内の各項目の内容を設定することにより、一時ファイルは通常ファイルとして確定する。ここで各項目に関し、ファイル名項目31にはステップS212でワークエリア62に保存したファイル名を保存し、開始アドレス項目32にはステップS212でワークエリア62に保存したアドレスを保存し、データサイズ項目33にはステップS214で追加保存したデータの総量を保存する。印刷順番項目34にはデータ管理記憶部72内の印刷処理待ちである全てのレコードの印刷順番項目34の内容を調べ、その最大値に1を加えた値を設定する。この結果、印刷待ちの優先順位が最下位のレコードとして登録される。印刷中断位置項目35には既定の初期値”0”を設定する。ここで登録した内容は後でステップS221〜ステップS236で参照され、実行される。
【0064】
ステップS217ではバッファ61に保存されたデータを解析し、印刷部8を介して印刷処理を実行する。バッファ61にはステップS206で通信部3を介して受信された印刷データが保存されている。
【0065】
ステップS218では機器に印刷エラーが発生したかどうかを調べ、印刷エラーが発生したならばステップS219へ進み、そうでなければステップS202に戻り、残りのデータを受信してバッファ61への保存処理を継続して実行する。なお、本実施例において、印刷エラーとは、紙なし、紙づまり、インク切れやカバーオープン等の検知により、印刷処理の続行が不可能であるがユーザの作業により回復可能である状態のことを指す。
【0066】
ステップS219では印刷エラーが発生したことをユーザに通知する。具体的には表示部2上のLEDを点灯したり、発生したエラーの内容やそれに対する操作ガイドのメッセージ等を表示部2上の液晶パネルに文字表示したりする。ステップS220では印刷エラーが発生したことを示す変数fの値に1を設定する。また同時にエラーが発生した時刻を取得してワークエリア62に記憶する。その後はステップS202に戻り、エラー状態が回復されるのを待ち続ける。
【0067】
ステップS221〜ステップS236ではステップS203で現在処理すべきイベントがないと判断されたことから、HDD7内に印刷処理すべきデータがあるならばその印刷処理を開始するように制御する。ステップS221では現在機器が印刷処理中であるかどうかを調べ、印刷処理中でないならばステップS222へ進み、印刷処理中であればステップS202へ戻る。この場合は印刷処理を開始できないので次の機会を待つ。ステップS222では、現在、機器で印刷エラーが発生中であるかどうかを調べ、印刷エラーが発生中でないならばステップS223へ進み、発生中であればステップS202へ戻る。この場合も印刷処理を開始できないので次の機会を待つ。
【0068】
ステップS223では、現在、印刷待ちのデータがあるかどうかを調べ、そのような処理があるならばステップS224へ進み、そうでなければステップS202へ戻る。印刷待ちのデータの有無は、データ管理記憶部72の全レコードを調べ、印刷順番項目34の値が”0”でないレコードが印刷待ちのデータであるので該当するレコードがあるかないかを調べることにより判定する。
【0069】
ステップS224では変数fの値を調べ、値が0でなければステップS225へ進み、値が0ならばステップS231へ進む。変数fの値が0の場合は印刷エラーが発生していなかったことになるので、本発明の特徴である優先順位の変更を実施せずに、通常の順番のままにステップS231以降の印刷予約されたデータの印刷処理を実施する。
【0070】
ステップS225では変数fの値を0に設定する。ステップS224で変数fの役目が完了したため、この変数fの値を通常状態値である0に戻す。
【0071】
ステップS226では印刷エラーが発生してから現在までの経過時間を調べ、ある一定時間を超えていたならばステップS227へ進み、そうでなければステップS231へ進む。現在はステップS222で判定された通り印刷エラーから回復している状態であるので、現在の時刻とステップS220でワークエリア62に記憶したエラー発生時刻の値を比べることにより経過時間を算出することができる。
【0072】
ステップS226で経過時間と比較する「一定時間」は、本機能を作動させる閾値時間としてユーザにより操作部1などから設定できるようにしておく。この「一定時間」の設定値は機器内の不揮発性記憶装置、たとえばHDD7内に記憶されており、操作部1の入力パネルのキー入力によるメニュー操作や、通信部3を介しての設定変更手段などによりユーザによる変更ができるようにしておく。
【0073】
ステップS227では、現在印刷待ちのデータが複数個あるかどうかを調べ、複数個あるならばステップS228へ進み、そうでなければステップS231へ進む。ここでの調査方法はステップS223と同様に、データ管理記憶部72の全レコードを調べ、印刷順番項目34の値が”0”でないレコードが複数個あるかないかを調べることにより判定する。複数個ない場合は優先順位の変更は不要なため、通常の順番のままにステップS231以降の印刷予約されたデータの印刷処理を実施する。
【0074】
ステップS228では最優先して処理する印刷ジョブをユーザにより選択する機会を与える。ステップS225以降の処理が行われるのは印刷エラーの発生により印刷処理ができなかった状態が解消されて印刷可能な状態になった場合であり、その時点で本発明の特徴であるユーザによる任意のジョブの選択操作が可能になる。選択操作の一例としては、現在印刷待ちであるジョブのリストを表示部2の液晶パネルに表示し、ユーザはそれを参照しながら操作部1の操作キーの押下により所望のジョブを選択後、決定するキーを押して決定する。
【0075】
なお、ステップS228で特定ジョブを選択しない、すなわち上記ジョブ選択操作をキャンセルすることも可能であり、その場合は中止するキーを押すと現在の優先順位のままで処理を継続する。
【0076】
あるいは、ユーザ設定に応じて、上記特定ジョブの選択操作(S226〜下記のS230まで)を実行しないようにする、すなわち、上記指定操作を行なうか否かをユーザに設定または選択させることもできる。このようなユーザ設定のために特別の変数を設けておいてもよいが、たとえばステップS226で経過時間と比較する「一定時間」値として無効な内容(たとえば負の数値など)が設定された場合に、特定ジョブの選択操作(S226〜下記のS230まで)を実行しないよう制御する構成も考えられる。
【0077】
ステップS229ではステップS228でユーザが最優先ジョブを別のものに変更したかどうかを調べ、別のジョブに変更していたらステップS230へ進む。また、そうでなければステップS231へ進み、そのままの順番で印刷予約されたデータの印刷処理を再開する。
【0078】
ステップS230ではステップS228での操作の結果をデータ管理記憶部72の優先順位項目34に反映する。具体的にはステップS228でユーザが選択したジョブに対応するレコードの印刷順番項目34の値を最小にし、その他のレコードの印刷順番項目34の値は、ユーザが選択したジョブに対応するレコードの印刷順番項目34の元の値より小さい値を有するレコードに関してそれぞれの値を1つずつ増やす処理を行なう。図4の例でレコード38が選択された場合は、その結果は図5の状態のようになる。
【0079】
ステップS231では全ての印刷待ちデータから最優先データを検出し、そのデータの一部を印刷可能な形態に変換してバッファ61に保存する。最優先データはデータ管理記憶部72の全レコードの印刷順番項目34の値が0以外の最小のレコードを検出することにより判明する。データの読み出し位置は初回の処理時にはデータ管理記憶部72の該当するレコードの印刷中断位置項目35の値により判明し、2回目以降の処理時には前回の処理分の続きのデータから決定される。またデータの読み出し量はバッファの容量などにより決定する。
【0080】
ステップS232ではステップS231でバッファ61に設定された印刷データの印刷処理を実施する。制御部4から印刷部8にバッファ61のデータを転送することにより印刷処理が実施される。ステップS233では印刷部8で何らかのエラーが発生したかを調べ、エラーが発生したならばステップS234へ進み、そうでなければステップS235へ進む。
【0081】
ステップS234では現在印刷処理中のデータの処理状況を調べ、印刷処理済みの部分を示す情報を保存する。ここではステップS233で既に印刷エラーを検出しているので、現在処理中のデータに関して処理の再開に備えて未印刷部分を示す情報をデータ管理記憶部72の該当レコードの印刷中断位置項目35に設定する。ここで、未印刷部分は、発生したエラーの内容により判定することができるから、エラーの内容に応じて印刷中断位置項目35の設定を行なえば未印刷部分から確実に印刷を再開することができる。
【0082】
たとえば用紙詰まりが発生した場合は印刷中のページは全て再印刷が必要になるため、現在処理中のページの先頭を示すデータの情報を記憶し、印刷後の用紙切れが発生した場合は次のページの先頭を示すデータの情報を記憶する、などの制御をステップS234で行なう。そして、その後はステップS219へ進み、エラー表示等の処理を実行する。
【0083】
ステップS235ではステップS233で印刷したデータが現在処理中のレコードの最後の部分であるかを調べ、そうであるならばステップS236へ進み、そうでなければステップS202に戻り現在のレコードの印刷処理を継続する。ステップS236では現在処理中のレコードを機器内のHDD7から削除する。ここで現在処理中のレコードは、ステップS233およびステップS235の判定で正常完了したことがわかったため、印刷データ記憶部71からその記憶内容を削除し、関連するレコード情報をデータ管理記憶部72から削除する処理を実施する。その後はステップS202に戻り、次の処理を実施する。
【0084】
以上のようにして、本実施例によれば、印刷ジョブの印刷処理中にユーザの回復作業が必要なエラーが発生した後、回復作業によりエラーが解消された場合に、ユーザの指定操作に応じて柔軟に印刷ジョブの印刷処理順序を制御できる。たとえば、用紙切れやインク切れ等の印刷エラーを発生させてプリンタを動作不能の状態におきながら印刷エラーの回復をしようとしないユーザがいても、その後から緊急で印刷しようとしてジョブを送信したが印刷できないのでプリンタのエラーの回復作業を行なったユーザがいた場合などにおいて、回復作業を怠ったユーザより回復作業を行ったユーザの印刷ジョブを優先的に印刷処理することができる。
【0085】
あるいはさらに、印刷ジョブの印刷処理順序を制御する指定操作をエラー発生時からエラー解消時までの経過時間が一定時間を過ぎた場合にのみユーザに行なわせる構成、上記一定時間をユーザに設定させる構成、あるいはさらに該指定操作を行なうか否かをユーザに設定させる構成を採用すれば、ユーザ環境やユーザの好みなどに応じてよりきめ細かく印刷エラー発生〜回復作業実施後の印刷処理を制御することができる。
【産業上の利用可能性】
【0086】
本発明は、プリンタエンジンの印刷方式などに限定されることなく、印刷データの印刷を行なう印刷部と、印刷処理すべき印刷ジョブを蓄積する不揮発性記憶部を有する各種のプリンタ、すなわち印刷装置において実施することができる。本発明を実施する制御プログラムは、あらかじめ印刷装置のROMなどの記憶媒体に格納しておくことができる。また、HDD、あるいはさらにMOやCD−ROMなどの記憶メディアからインストール/アップデートすることができる。また、上述の通信部(3)がネットワークインターフェースである場合は、任意のサーバからネットワーク経由で供給することもできる。
【図面の簡単な説明】
【0087】
【図1】本発明を採用したプリンタの基本構成を示したブロック図である。
【図2】本発明を採用したプリンタにおけるエラー発生時と、その対策の流れを示した説明図である。
【図3】本発明を採用したプリンタにおける印刷データ記憶部の内部構成例を示した説明図である。
【図4】本発明を採用したプリンタにおけるデータ管理記憶部の内部構成例を示した説明図である。
【図5】図4のデータ管理記憶部の制御例を示す説明図である。
【図6】本発明を採用したプリンタにおける電源投入後の制御手順を示すフローチャート図である。
【符号の説明】
【0088】
1 操作部
2 表示部
3 通信部
4 制御部
5 ROM
6 RAM
61 バッファ
62 ワークエリア
7 HDD
71 印刷データ記憶部
72 データ管理記憶部
8 印刷部

【特許請求の範囲】
【請求項1】
入力された印刷ジョブの印刷データを印刷する印刷部と、印刷処理すべき印刷ジョブを蓄積する不揮発性記憶部を有する印刷装置の制御方法において、
前記印刷部でユーザの回復作業が必要なエラーが発生した後、回復作業によりエラーが解消された際、ユーザの指定操作に応じて指定された印刷ジョブの印刷処理を他の印刷ジョブよりも優先して前記印刷部に実行させる制御過程を含むことを特徴とする印刷装置の制御方法。
【請求項2】
請求項1に記載の印刷装置の制御方法において、前記指定操作を行なうか否かをユーザに設定または選択させる制御過程を含むことを特徴とする印刷装置の制御方法。
【請求項3】
請求項1に記載の印刷装置の制御方法において、前記指定操作をエラー発生時からエラー解消時までの経過時間が一定時間を過ぎた場合にのみユーザに行なわせる制御過程を含むことを特徴とする印刷装置の制御方法。
【請求項4】
請求項3に記載の印刷装置の制御方法において、前記の一定時間をユーザに設定させる制御過程を含むことを特徴とする印刷装置の制御方法。
【請求項5】
請求項1〜4のいずれか1項に記載の印刷装置の制御方法を実施すべく印刷装置の構成部材を制御することを特徴とする印刷装置の制御プログラム。
【請求項6】
請求項1〜4のいずれか1項に記載の印刷装置の制御方法を実施すべく動作する構成部材を含むことを特徴とする印刷装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2008−87385(P2008−87385A)
【公開日】平成20年4月17日(2008.4.17)
【国際特許分類】
【出願番号】特願2006−272405(P2006−272405)
【出願日】平成18年10月4日(2006.10.4)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】