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