説明

印刷装置および印刷システム

【課題】印刷データに基づいて印刷を行う印刷装置において、エラーが発生し電源を再投入したときにエラー発生前に印刷が終了していたページを重複して印刷しないようにする。
【解決手段】第1の印刷データに基づき印刷した範囲を記憶する印刷範囲記憶部308と、第1の印刷データの印刷が完了したか否か判断する印刷完了判断部304と、第1の印刷データと第2の印刷データの異同を判断する印刷ジョブ判断部303と、印刷ジョブ判断部303により第1の印刷データと第2の印刷データとが同じ印刷ジョブであると判断された場合に印刷範囲記憶部308に記憶された印刷した範囲から印刷未完のページか否か判断する印刷未完ページ判断部306とを設け、第1の印刷データの印刷を完了していないと判断し、かつ第1の印刷データと第2の印刷データが同じ印刷ジョブであると判断したときは、印刷未完のページから第2の印刷データを印刷するようにした。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、受信した印刷データを印刷する印刷装置および印刷システムに関するものである。
【背景技術】
【0002】
従来、プリンタ等の印刷装置において、受信した印刷データに基づき印刷を行っているときに給紙ジャムなどのエラーが発生すると印刷処理が一旦中断され、電源がオフされると印刷装置内の印刷データが消失するため、電源再投入により上位装置から印刷データが再送され最初からすべての印刷データを再印刷していた(例えば、特許文献1参照)。
【0003】
なお、上記再印刷は、上位装置が、印刷装置で管理するジョブログを取得し、取得したジョブログの内容に基づき印刷データの再送信を行うと、印刷装置にて最初からすべての印刷データを再印刷するようになっている。
【特許文献1】特開2003−323276号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、上記従来の印刷装置では、エラー発生後に上位装置から印刷データが再送され、再送された印刷データを最初からすべて印刷するようになっているため、エラー発生前に印刷が正常に終了していたページが重複して印刷され、用紙が無駄に使用されてしまうという問題があった。
【課題を解決するための手段】
【0005】
本発明は、前述の課題を解決するため次の方法を採用する。すなわち、受信した第1の印刷データと第2の印刷データに基づいて印刷する印刷装置において、前記第1の印刷データに基づき印刷した範囲を記憶する印刷範囲記憶部と、前記第1の印刷データの印刷が完了したか否か判断する印刷完了判断部と、前記第1の印刷データと前記第2の印刷データの異同を判断する印刷ジョブ判断部と、前記印刷ジョブ判断部により前記第1の印刷データと前記第2の印刷データとが同じ印刷ジョブであると判断された場合に、前記印刷範囲記憶部に記憶された印刷した範囲から印刷未完のページか否か判断する印刷未完ページ判断部と、前記印刷完了判断部により前記第1の印刷データの印刷が完了していないと判断され、かつ前記印刷ジョブ判断部により前記第1の印刷データと前記第2の印刷データが同じ印刷ジョブであると判断されたときは、前記印刷未完ページ判断部の判断と前記第2の印刷データとに基づいて印刷する印刷制御部とを設けた。
【発明の効果】
【0006】
本発明の印刷装置によれば、受信した第1の印刷データと第2の印刷データに基づいて印刷する印刷装置において、前記第1の印刷データに基づき印刷した範囲を記憶する印刷範囲記憶部と、前記第1の印刷データの印刷が完了したか否か判断する印刷完了判断部と、前記第1の印刷データと前記第2の印刷データの異同を判断する印刷ジョブ判断部と、前記印刷ジョブ判断部により前記第1の印刷データと前記第2の印刷データとが同じ印刷ジョブであると判断された場合に、前記印刷範囲記憶部に記憶された印刷した範囲から印刷未完のページか否か判断する印刷未完ページ判断部と、前記印刷完了判断部により前記第1の印刷データの印刷が完了していないと判断され、かつ前記印刷ジョブ判断部により前記第1の印刷データと前記第2の印刷データが同じ印刷ジョブであると判断されたときは、前記印刷未完ページ判断部の判断と前記第2の印刷データとに基づいて印刷するようにしたので、ジャムなどでプリンタの電源が再投入されても、すでに印刷したページと重複することなく、印刷未完のページだけを印刷することができ、用紙が無駄に使用されないようにすることができる。
【発明を実施するための最良の形態】
【0007】
以下、本発明に係わる実施の形態例を、図面を用いて説明する。図面に共通する要素には同一の符号を付す。なお、以下の実施例の説明ではプリンタを例として説明するが、印刷機能を有する複写機、ファクシミリ等の他の印刷装置であってもよい。
【実施例1】
【0008】
(構成)
実施例1の印刷装置の構成について、図1の印刷装置の機能ブロック図および印刷システムの構成図、図2のジョブログテーブルの構成図を用いて以下説明する。
【0009】
実施例1の印刷装置は、図1に示したように、ネットワーク200を介して、パーソナルコンピュータ100、印刷装置の1つであるプリンタ300が接続されており、相互にネットワーク200を介して通信できるようになっている。
【0010】
パーソナルコンピュータ100は、図示しないアプリケーションから印刷が指示されると、属性情報としてジョブ名、ホスト名、印刷実行時間が含まれる第1の印刷データとしての印刷データを生成し、プリンタ300に送信し、ジャム等が発生しプリンタ300の電源がオフされたなどのエラーが発生して印刷データをすべて送信できなかった場合は、第2の印刷データとして印刷データをプリンタに再送するものである。
【0011】
プリンタ300は、受信した印刷データに基づき用紙に印刷を行うもので、受信部301、抽出部302、印刷ジョブ判断部303、印刷完了判断部304、印刷制御部305、印刷未完ページ判断部306、印刷部307、印刷範囲記憶部308、印刷完了フラグ記憶部309、ハードディスク310、RAM320とから構成される。
【0012】
ハードディスク310は、不揮発性記憶装置でありジョブログテーブル311が格納される。ジョブログテーブル311は、図2に示したように、1つのエントリにログ番号311A、ジョブ名311B、ホスト名311C、印刷実行時間311D、印刷範囲311E、印刷完了フラグ311Fを記憶する。
【0013】
ログ番号311Aにはジョブログテーブルのエントリを示す一意の番号を記憶し、ジョブ名311B、ホスト名311C、印刷実行時間311Dには印刷データから抽出したジョブ名、ホスト名、印刷実行時間を記憶する。印刷範囲311Eには印刷データの先頭ページから印刷したページまでのページ数を記憶する。印刷完了フラグ311Fには印刷が完了している場合には"1"を、印刷が完了していない場合には"0"を記憶する。
【0014】
再び図1に戻って、RAM320は、揮発性記憶装置で、印刷データ、ログ番号、再送フラグ、完了フラグを記憶する。印刷データは受信部301が受信した印刷データを記憶する。ログ番号には、現在処理している印刷データと一致するジョブログテーブル311のログ番号を記憶する。
【0015】
再送フラグには、現在処理している印刷データが再送のときは"1"を、再送でないときは"0"を記憶する。完了フラグは、現在処理している印刷データの印刷が完了しているときは"1"を、完了していないときは"0"を記憶する。
【0016】
受信部301は、パーソナルコンピュータ100から印刷データを受信し、RAM320に記憶して、最初の受信では抽出部302に、その後の受信では印刷制御部305に通知する。特定のサイズを超える場合は、パーソナルコンピュータ100からの受信を一時停止し、印刷制御部305からの要求により、再開する。
【0017】
抽出部302は、受け取った印刷データから属性情報であるジョブ名、ホスト名、印刷実行時間を抽出し、印刷ジョブ判断部303に渡す。
【0018】
印刷ジョブ判断部303は、受け取ったジョブ名、ホスト名、印刷実行時間とすべて一致するエントリがジョブログテーブル311に存在する場合は、同じ印刷データが再送されたと判断し、一致するエントリのジョブ番号および再送フラグ1をRAM320に記憶し、印刷完了判断部304に通知する。
【0019】
一方、一致するエントリが存在しない場合は、再送ではないと判断し、ジョブログテーブル311にエントリを追加し、最新ログの次のログ番号をログ番号311Aに、ジョブ名をジョブ名311Bに、ホスト名をホスト名311Cに、印刷実行時間を印刷実行時間311Dに、印刷範囲311Eに"0"を、印刷完了フラグ311Fに"0"を書き込み、追加したエントリのログ番号および再送フラグ0をRAM320に記憶し、印刷完了判断部304に通知する。
【0020】
印刷完了判断部304は、RAM320のログ番号と一致するジョブログテーブル311内のエントリの印刷完了フラグ311Fを読み出し、RAM320の完了フラグに記憶し、印刷制御部305に通知する。
【0021】
印刷制御部305は、RAM320に次のページの印刷データが存在し、RAM320の完了フラグが"1"の場合は、すべてのページの印刷データを印刷しない。RAMの完了フラグが"0"で、再送フラグが"0"の場合は、すべてのページの印刷データを印刷部307に渡す。
【0022】
RAMの完了フラグが"0"で、再送フラグが"1"の場合は、印刷データのページごとに印刷未完ページ判断部306にページ数を渡し、印刷未完ページ判断部306から印刷未完ページではないと通知された場合は、そのページは印刷せず、印刷未完ページであると通知された場合は、そのページの印刷データを印刷部307に渡す。
【0023】
RAM320に次のページの印刷データが存在しない場合は、RAM320の不要な印刷データをクリアし、未受信の印刷データが存在すれば、受信部301に受信の再開を要求する。未受信の印刷データが存在せず、未排出の用紙があれば、印刷部307に用紙の排出を要求する。未排出の用紙がなければ、印刷完了フラグ記憶部309に通知する。
【0024】
印刷未完ページ判断部306は、RAM320のログ番号と一致するジョブログテーブル311内のエントリの印刷範囲311Eのページ数が受け取ったページ数よりも小さい場合は印刷未完ページであると判断し、等しいか大きい場合は印刷未完ページではないと判断し、印刷制御部305に通知する。
【0025】
印刷部307は、印刷制御部305から受け取った印刷データのページを印刷する。両面印刷の表面印刷後は、次は裏面に印刷を行うため用紙を反転させる。用紙を排出したら、印刷範囲記憶部308に印刷したページ数を渡す。
【0026】
印刷範囲記憶部308は、RAM320のログ番号と一致するジョブログテーブル311内のエントリの印刷範囲311Eに受け取った印刷ページ数を書き込む。
【0027】
印刷完了フラグ記憶部309は、RAM320のログ番号と一致するジョブログテーブル311内のエントリの印刷完了フラグ311Fに"1"を書き込み、RAM320のログ番号、再送フラグ、完了フラグをクリアして、終了する。
【0028】
(動作)
以上の構成により、実施例1の印刷装置は以下のように動作する。この動作を図3および図4の動作フローチャート図を用いて以下詳細に説明する。なお、図3および図4は実施例1の印刷装置の動作フローチャート図を便宜上2つに分割し連結子A、Bにより連結して表わしたものである。
【0029】
以下の説明では、ホスト名が、"PC−1"のパーソナルコンピュータ100で、ジョブ名が"DOC1"で、5ページを両面印刷する印刷データが"2008年7月18日15時45分30秒"に生成され、プリンタ300に受信バッファの容量以内である4ページ分の印刷データが最初に送信され、プリンタ300で3ページ印刷されたあと、4ページ目でジャムが発生し、プリンタ300の電源が再投入され、プリンタ300が再起動後、パーソナルコンピュータ100から同じ印刷データが再送信されるときの動作を一例として、図1ないし図4を用いて説明する。
【0030】
まず、パーソナルコンピュータ100にて、"ホスト名PC−1"、"ジョブ名DOC1"、"印刷実行時間20080718154530"が含まれる印刷データが生成され、プリンタ300に送信されると、受信部301は受信した印刷データをRAM320に記憶し(ステップS01)、すべての印刷データを受信しておらず(ステップS02)受信バッファに余裕があるときはステップS01に戻り次の印刷データを受信する。
【0031】
本例では、4ページ分を受信すると受信バッファの容量を超え特定のサイズ以上となるので(ステップS03)、受信を一時停止し(ステップS04)、最初の受信であるため(ステップS05)、抽出部302に通知する(ステップS06)。
【0032】
抽出部302は印刷データから属性情報であるホスト名、ジョブ名、印刷実行時間を抽出し、印刷ジョブ判断部303に渡す(ステップS07)。
【0033】
最初の受信であるので、印刷ジョブ判断部303はジョブログテーブル311に受け取ったジョブ名、ホスト名、印刷実行時間と一致するエントリが存在しないため(ステップS08)、再送ではないと判断して、ジョブログテーブル311にエントリを追加し、ログ番号311Aに"1"、ジョブ名311Bに"DOC1"、ホスト名311Cに"PC−1"を、印刷実行時間311Dに"20080718154530"を、印刷範囲311Eに"0"を、印刷完了フラグ311Fに"0"を書き込み(ステップS09)、追加したエントリのログ番号"1"、再送フラグ"0"をRAM320に記憶し、印刷完了判断部304に通知する(ステップS10)。
【0034】
すると、印刷完了判断部304は、RAM320のログ番号"1"に一致するジョブログテーブル311のエントリの印刷完了フラグ"0"をRAM320の完了フラグに記憶し、印刷制御部305に通知し(ステップS12)、連結子Bを経由し図4のステップS13に進む。
【0035】
印刷制御部305は、RAM320に次のページの印刷データが有り(ステップS13)、RAM320の完了フラグが"0"であり(ステップS14)、再送フラグが"0"のため(ステップS15)、1ページ目の印刷データを印刷部307に渡す(ステップS20)。
【0036】
印刷部307は1ページ目を印刷し(ステップS21)、両面印刷で、表面の印刷であり(ステップS22)、次は裏面への印刷となるので用紙を反転し(ステップS23)、ステップS13に戻る。
【0037】
印刷制御部305は、RAM320に次のページの印刷データが有り(ステップS13)、RAM320の完了フラグが"0"で(ステップS14)、再送フラグが"0"のため(ステップS15)、2ページ目の印刷データを印刷部307に渡す(ステップS20)。
【0038】
印刷部307は2ページ目を印刷し(ステップS21)、裏面の印刷であるので(ステップS22)、用紙を排出し(ステップS24)、印刷範囲記憶部308に印刷ページ"2"を渡す(ステップS25)。
【0039】
印刷範囲記憶部308は、両面分である2ページ分の印刷を完了したので、RAM320のログ番号"1"に一致するジョブログテーブル311のエントリの印刷範囲311Eに"2"を書き込み(ステップS26)、ステップS13に戻る。
【0040】
印刷制御部305は、RAM320に次のページの印刷データが有り(ステップS13)、RAM320の完了フラグが"0"で(ステップS14)、再送フラグが"0"のため(ステップS15)、3ページ目の印刷データを印刷部307に渡す(ステップS20)。
【0041】
印刷部307は3ページ目を印刷し(ステップS21)、両面印刷で、表面の印刷であり(ステップS22)、次は裏面への印刷となるので用紙を反転し(ステップS23)、ステップS13に戻る。
【0042】
印刷制御部305は、RAM320に次のページの印刷データが有り(ステップS13)、RAM320の完了フラグが"0"で(ステップS14)、再送フラグが"0"のため(ステップS15)、4ページ目の印刷データを印刷部307に渡す(ステップS20)。
【0043】
本例では印刷部307にて4ページ目を印刷中にジャムが発生し、用紙を取り出し、ジャム復旧後、プリンタ300の電源が再投入される。
【0044】
このとき、両面印刷した1枚目の用紙については正常に印刷を終了し、ジョブログテーブル311のログ番号311Aが"1"の印刷範囲311EにはステップS26にて2"が書き込まれており、印刷完了フラッグ311Fには印刷が完了していない旨を示す"0"が書き込まれた状態となっている。
【0045】
そして、プリンタ300が再起動されると、パーソナルコンピュータ100は、すべての印刷データを送信していないため、"ホスト名PC−1"、"ジョブ名DOC1"、"印刷実行時間20080718154530"が含まれる印刷データが再度プリンタ300に送信されると、受信部301は受信した印刷データをRAM320に記憶し(ステップS01)、すべての印刷データを受信しておらず(ステップS02)受信バッファに余裕があるときはステップS01に戻り次の印刷データを受信する。
【0046】
本例では、4ページ分を受信すると受信バッファの容量を超え特定のサイズ以上となるので(ステップS03)、受信を一時停止し(ステップS04)、最初の受信であるため(ステップS05)、抽出部302に通知する(ステップS06)。
【0047】
抽出部302は印刷データから属性情報であるホスト名、ジョブ名、印刷実行時間を抽出し、印刷ジョブ判断部303に渡す(ステップS07)。
【0048】
印刷ジョブ判断部303は、ジョブログテーブル311に受け取ったジョブ名、ホスト名、印刷実行時間と一致するエントリが存在するため(ステップS08)、再送であると判断して、一致するエントリのログ番号"1"、再送フラグ1をRAM320に記憶し、印刷完了判断部304に通知する(ステップS11)。
【0049】
印刷完了判断部304は、RAM320のログ番号"1"に一致するジョブログテーブル311のエントリの印刷完了フラグ"0"をRAM320の完了フラグに記憶し、印刷制御部305に通知し(ステップS12)、連結子Bを経由し図4のステップS13に進む。
【0050】
印刷制御部305は、RAM320に次のページの印刷データが有り(ステップS13)、RAM320の完了フラグが"0"で(ステップS14)、再送フラグが"1"のため(ステップS15)、ページ数"1"を印刷未完ページ判断部306に渡す(ステップS16)。
【0051】
印刷未完ページ判断部306は、RAM320のログ番号"1"に一致するジョブログテーブル311のエントリの印刷範囲311Eから取得した印刷ページ"2"が、受け取ったページ数"1"よりも小さくないため(ステップS17)、印刷完了のページであることを、印刷制御部305に通知し(ステップS18)、ステップS13に戻る。
【0052】
印刷制御部305は、RAM320に次のページの印刷データが有り(ステップS13)、RAM320の完了フラグが"0"で(ステップS14)、再送フラグが"1"のため(ステップS15)、ページ数"2"を印刷未完ページ判断部306に渡す(ステップS16)。
【0053】
印刷未完ページ判断部306は、RAM320のログ番号"1"に一致するジョブログテーブル311のエントリの印刷範囲311Eから取得した印刷ページ"2"が受け取ったページ数"2"より小さくないため(ステップS17)、印刷完了のページであることを、印刷制御部305に通知し(ステップS18)、ステップS13に戻る。
【0054】
印刷制御部305は、RAM320に次のページの印刷データが有り(ステップS13)、RAM320の完了フラグが"0"で(ステップS14)、再送フラグが"1"のため(ステップS15)、ページ数"3"を印刷未完ページ判断部306に渡す(ステップS16)。
【0055】
印刷未完ページ判断部306は、RAM320のログ番号"1"に一致するジョブログテーブル311のエントリの印刷範囲311Eから取得した印刷ページ"2"が受け取ったページ数"3"よりも小さいため(ステップS17)、印刷未完のページであることを、印刷制御部305に通知する(ステップS19)。
【0056】
印刷制御部305は3ページ目の印刷データを印刷部307に渡す(ステップS20)。印刷部307は3ページ目を印刷し(ステップS21)、両面印刷で、表面の印刷であり(ステップS22)、次は裏面への印刷となるので用紙を反転する(ステップS23)。
【0057】
印刷制御部305は、RAM320に次のページの印刷データが有り(ステップS13)、RAM320の完了フラグが"0"で(ステップS14)、再送フラグが"1"のため(ステップS15)、ページ数"4"を印刷未完ページ判断部306に渡す(ステップS16)。
【0058】
印刷未完ページ判断部306は、RAM320のログ番号"1"に一致するジョブログテーブル311のエントリの印刷範囲311Eから取得した印刷ページ"2"が受け取ったページ数"4"よりも小さいため(ステップS17)、印刷未完のページであることを、印刷制御部305に通知する(ステップS19)。
【0059】
印刷制御部305は、4ページ目の印刷データを印刷部307に渡す(ステップS20)。印刷部307は4ページ目を印刷し(ステップS21)、裏面の印刷のため(ステップS22)、用紙を排出し(ステップS24)、印刷範囲記憶部308に印刷ページ"4"を渡す(ステップS25)。印刷範囲記憶部308は、RAM320のログ番号"1"に一致するジョブログテーブル311のエントリの印刷範囲311Eに"4"を書き込む(ステップS26)。
【0060】
印刷制御部305は、RAM320に次のページの印刷データがないため(ステップS13)、RAMの不要な印刷データをクリアし(ステップS27)、未受信の印刷データがあるため(ステップS28)、受信部301に通知する(ステップS29)。
【0061】
受信部301は受信を再開し(ステップS30)、連結子Aを経由し図3のステップS01に戻り、残りの1ページ分を受信し、印刷データをRAM320に記憶して(ステップS01)、すべての印刷データを受信し(ステップS02)、最初の受信ではないため(ステップS05)、印刷制御部305に通知し(ステップS35)、連結子Bを経由し図4のステップS13に進む。
【0062】
印刷制御部305は、RAM320に次のページの印刷データが有り(ステップS13)、RAM320の完了フラグが"0"で(ステップS14)、再送フラグが"1"のため(ステップS15)、ページ数"5"を印刷未完ページ判断部306に渡す(ステップS16)。
【0063】
印刷未完ページ判断部306は、RAM320のログ番号"1"に一致するジョブログテーブル311のエントリの印刷範囲311Eから取得した印刷ページには上記ステップS26にて"4"が書込まれており、受け取ったページ数"5"よりも小さいので(ステップS17)、印刷未完のページであることを、印刷制御部305に通知する(ステップS19)。
【0064】
印刷制御部305は、5ページ目の印刷データを印刷部307に渡す(ステップS20)。印刷部307は5ページ目を印刷し(ステップS21)、両面印刷で、表面の印刷であり(ステップS22)、次は裏面への印刷であるので用紙を反転し(ステップS23)、ステップS13に戻る。
【0065】
印刷制御部305は、RAM320に次のページの印刷データがないため(ステップS13)、RAM320の不要な印刷データをクリアし(ステップS27)、未受信の印刷データがなく(ステップS28)、未排出の用紙があるため(ステップS31)、ステップS24に進み用紙を排出し(ステップS24)、印刷範囲記憶部308に印刷ページ5を渡す(ステップS25)。印刷範囲記憶部308は、RAM320のログ番号"1"に一致するジョブログテーブル311のエントリの印刷範囲311Eに"5"を書き込み(ステップS26)、ステップS13に戻る。
【0066】
印刷制御部305は、RAM320に次のページの印刷データがないため(ステップS13)、RAMの不要な印刷データをクリアし(ステップS27)、未受信の印刷データがなく(ステップS28)、未排出の用紙もないため(ステップS31)、印刷完了フラグ記憶部309に通知する(ステップS32)。
【0067】
印刷完了フラグ記憶部309は、RAM320のログ番号"1"に一致するジョブログテーブル311のエントリの印刷完了フラグ311Fに"1"を書き込んで(ステップS33)、RAM320のログ番号、再送フラグ、完了フラグをクリアして(ステップS34)、終了する。
【0068】
(実施例1の効果)
以上詳細に述べたように、実施例1のプリンタによれば、受信した第1の印刷データと第2の印刷データに基づいて印刷する印刷装置において、第1の印刷データに基づき印刷した範囲を記憶する印刷範囲記憶部と、第1の印刷データの印刷が完了したか否か判断する印刷完了判断部と、第1の印刷データと第2の印刷データの異同を判断する印刷ジョブ判断部と、印刷ジョブ判断部により第1の印刷データと第2の印刷データとが同じ印刷ジョブであると判断された場合に、印刷範囲記憶部に記憶された印刷した範囲から印刷未完のページか否か判断する印刷未完ページ判断部と、印刷完了判断部により第1の印刷データの印刷が完了していないと判断され、かつ印刷ジョブ判断部により第1の印刷データと第2の印刷データが同じ印刷ジョブであると判断されたときは、印刷未完ページ判断部の判断と第2の印刷データとに基づいて印刷するようにしたので、ジャムなどでプリンタの電源が再投入されても、すでに印刷したページと重複することなく、印刷未完のページだけを印刷することができ、用紙が無駄に使用されないようにすることができる。
【実施例2】
【0069】
(構成)
本発明の実施例2の印刷装置の構成について、図5の実施例2の印刷装置、パーソナルコンピュータの機能ブロック図を用いて以下詳細に説明する。
【0070】
まず、図5に示したように、ネットワーク200を介して、上位装置としてのパーソナルコンピュータ400A、パーソナルコンピュータ400B、印刷装置の1つであるプリンタ300が接続されており、それぞれネットワーク200を介して通信できるようになっている。
【0071】
パーソナルコンピュータ400Aは、アプリケーション401から印刷が指示されると、プリンタ300に印刷させるための印刷データを生成し、プリンタ300に送信するもので、アプリケーション401、データ生成部402、ジョブ管理部403、送信部404、印刷完了判断部405、ハードディスク410、RAM420から構成される。なお、パーソナルコンピュータ400Bの内部の構成は図示していないが、パーソナルコンピュータ400Aと同様の構成である。
【0072】
ハードディスク410は、不揮発性記憶装置で、ジョブログテーブル411、スプールファイル412から構成される。スプールファイル412はデータ生成部402が生成した印刷データを保存する。
【0073】
ジョブログテーブル411は、図6に示したように、1つのエントリにログ番号411A、ジョブ名411B、ホスト名411C、印刷実行時間411D、スルールファイル名411E、送信完了フラグ411F、印刷完了フラグ411Gを記憶する。ログ番号411Aにはジョブログテーブル411のエントリを示す一意の番号を記憶する。
【0074】
ジョブ名411B、ホスト名411C、印刷実行時間411Dには印刷データに含められるジョブ名、ホスト名、印刷実行時間を記憶する。スルールファイル名411Eには、スプールファイル412の名前を記憶する。
【0075】
送信完了フラグ411Fには送信が完了している場合には"1"を、完了していない場合には"0"を記憶する。印刷完了フラグ411Gにはプリンタ300で印刷が完了している場合には"1"を、印刷が完了していない場合には"0"を記憶する。
【0076】
再び図5に戻って、RAM420は、揮発性記憶装置であり、ログ番号を記憶する。ログ番号には、現在送信している印刷データと一致するジョブログテーブル411のログ番号を記憶する。
【0077】
アプリケーション401は、文書の作成や印刷行うもので、印刷が指示されると、データ生成部402に印刷用のデータを生成させる。
【0078】
データ生成部402は、属性情報としてジョブ名、ホスト名、印刷実行時間が含まれる第1の印刷データとしての印刷データを生成し、スプールファイル412に保存し、ジョブログテーブル411にエントリを追加し、ログ番号411Aに最新ログの次のログ番号を、ジョブ名411B、ホスト名411C、印刷実行時間411Dに印刷データに含めたジョブ名、ホスト名、印刷実行時間を、スルールファイル名411Eに保存したスプールファイル名を、送信完了フラグ411Fに"0"を、印刷完了フラグ411Gに"0"を書き込み、ジョブ管理部403に通知する。
【0079】
ジョブ管理部403は、データ生成部402からの通知および定期的にジョブログテーブル411のエントリを読み込み、送信完了フラグ411Fが"0"のエントリが見つかったら、そのエントリのログ番号411AをRAM420のログ番号に記憶し、送信部404にスプールファイル名411Eを通知する。
【0080】
送信完了フラグ411Fが"1"で、印刷完了フラグ411Gが"0"のジョブが見つかったら、印刷完了判断部405にそのエントリのジョブ名411B、ホスト名411C、印刷実行時間411Dを渡し、印刷完了と通知された場合は、そのエントリの印刷完了フラグ411Gに"1"を書き込む。
【0081】
印刷未完了と通知された場合は、そのエントリの送信完了フラグ411Fに"0"を書き込み、そのエントリのログ番号411AをRAM420のログ番号に記憶し、送信部404に送信させる、第2の印刷データとしての印刷データが保存されたスプールファイル名411Eを通知する。印刷中と通知された場合は、次のエントリを読み込む。
【0082】
送信部404は、受け取ったスプールファイル名のスプールファイル412の印刷データをプリンタ300に送信する。
【0083】
印刷完了判断部405は、ジョブ管理部403から渡されたジョブ名、ホスト名、印刷実行時間をプリンタ300のジョブログ問い合わせ部330に渡し、結果をジョブ管理部403に通知する。
【0084】
プリンタ300は、実施例1の構成に、ジョブログ問い合わせ部330が付加されている。その他の構成は、実施例1と同様であるので、簡略化のためにその説明を省略する。
【0085】
ジョブログ問い合わせ部330は、パーソナルコンピュータ400Aもしくはパーソナルコンピュータ400Bから受け取ったジョブ名、ホスト名、印刷実行時間とすべて一致するエントリがジョブログテーブル311に存在しない場合は、印刷未完了をパーソナルコンピュータ400Aもしくはパーソナルコンピュータ400Bに通知する。
【0086】
ジョブログ問い合わせ部330は、パーソナルコンピュータ400Aもしくはパーソナルコンピュータ400Bから受け取ったジョブ名、ホスト名、印刷実行時間とすべて一致するエントリがジョブログテーブル311に存在し、一致するエントリのジョブ完了フラグが"1"の場合は、印刷完了をパーソナルコンピュータ400Aもしくはパーソナルコンピュータ400Bに通知する。
【0087】
一致するエントリのジョブ完了フラグが"0"で、一致するエントリのジョブ番号とRAM320のジョブ番号が一致する場合は、印刷中をパーソナルコンピュータ400Aもしくはパーソナルコンピュータ400Bに通知する。ジョブ番号が一致しない場合は、印刷未完了をパーソナルコンピュータ400Aもしくはパーソナルコンピュータ400Bに通知する。
【0088】
(動作)
以上の構成により、実施例2の印刷装置は以下のように動作する。図7のデータ生成部402の処理を説明するフローチャート、図8および図9のパーソナルコンピュータ400Aやパーソナルコンピュータ400Bにて印刷データをプリンタに送信するときの処理を説明するフローチャート、図10のジョブログ問い合わせ部330の処理を説明するフローチャートを用いて以下詳細に説明する。なお、図8および図9は実施例2のパーソナルコンピュータ側の動作フローチャート図を便宜上2つに分割し連結子C、Dにより連結して表わしたものである。
【0089】
以下の説明では、ホスト名が"PC−1"のパーソナルコンピュータ400Aで、ジョブ名が"DOC1で"、4ページを両面印刷する印刷データが"2008年7月18日15時45分30秒"に生成され、プリンタ300に印刷データが4ページ分送信され、プリンタ300で3ページ印刷されたあと、4ページ目でジャムが発生し、プリンタ300の電源が再投入され、プリンタ300が再起動後、ホスト名が"PC−2"のパーソナルコンピュータ400Bで、ジョブ名が"DOC2"で、1ページを片面印刷する印刷データが"2008年7月18日15時46分15秒"に生成され、プリンタ300に印刷データが"1"ページ分送信され、プリンタ300で1ページ印刷されたあと、パーソナルコンピュータ400Aから同じ印刷データが再送信されるときの動作を詳細に説明する。
【0090】
まず、パーソナルコンピュータ400Aで、アプリケーション401で印刷が指示されると、データ生成部402は、"ホスト名PC−1"、"ジョブ名DOC1"、"印刷実行時間20080718154530"が含まれる印刷データを生成し、印刷データをスプールファイル412に"spool001"という名前で保存する(ステップS41)。
【0091】
そして、ジョブログテーブル411にエントリを追加して、ログ番号411Aに"1"、ジョブ名411Bに"DOC1"、ホスト名411Cに"PC−1"を、印刷実行時間411Dに"20080718154530"を、スプールファイル名411Eに"spool001"を、送信完了フラグ411Fに"0"を、印刷完了フラグ411Gに"0"を書き込み(ステップS42)、ジョブ管理部403に通知する(ステップS43)。
【0092】
ジョブ管理部403は、ジョブログテーブル411にエントリが存在するため(ステップS51)、1つ目のエントリを読み込み(ステップS52)、送信完了フラグ411Fが"0"のため(ステップS53、S54)、ステップS63に進み、RAM420のログ番号にログ番号411Aの"1"を記憶し(ステップS63)、送信部404にスプールファイル名411Eのファイル名"spool001"を通知する(ステップS64)。
【0093】
送信部404はスプールファイル412のファイル"spool001"の印刷データをプリンタ300に送信し(ステップS65)、すべての送信が終了したら(ステップS66)、ジョブ管理部403に通知する(ステップS67)。
【0094】
ジョブ管理部403はジョブログテーブル411のRAM420のログ番号に一致するエントリの送信完了フラグ411Fに"1"を書き込み(ステップS68)、RAM420のログ番号をクリアし(ステップS69)、連結子Dを経由し図8のステップS51に戻り、ジョブログテーブル411に次のエントリが無いため(ステップS51)、終了する。
【0095】
前記ステップS65にてプリンタ300に送信された印刷データに基づき印刷を行う動作は、図3および図4を用いて説明した実施例1の印刷装置の動作と同様であるので、簡略化のためにその詳細な説明は省略する。
【0096】
再び図8に戻って、パーソナルコンピュータ400Aで、一定時間が経過すると、ジョブ管理部403は、ジョブログテーブル411にエントリが存在するため(ステップS51)、1つ目のエントリを読み込み(ステップS52)、送信完了フラグ411Fが"1"で、印刷完了フラグ411Gが"0"のため(ステップS53、S54)、印刷完了判断部405に"ジョブ名DOC1"、"ホスト名PC−1"、"印刷実行時間20080718154530"を渡す(ステップS55)。印刷完了判断部405は、プリンタ300のジョブログ問い合わせ部330に"ジョブ名DOC1"、"ホスト名PC−1"、"印刷実行時間20080718154530"を渡す(ステップS56)。
【0097】
プリンタ300のジョブログ問い合わせ部330は、図10に示したように、受け取った"ジョブ名DOC1"、"ホスト名PC−1"、"印刷実行時間20080718154530"とすべて一致するエントリがジョブログテーブル311に存在し(ステップS81)、そのエントリのジョブ完了フラグが"0"で(ステップS82)、そのエントリのログ番号"1"とRAM320のログ番号と一致しないため(ステップS85)、ステップS84に進み、印刷未完了をパーソナルコンピュータ400Aの印刷完了判断部405に通知する(ステップS84)。
【0098】
再び図8に戻って、プリンタ300から通知されると(ステップS57)、印刷完了判断部405は、印刷未完了をジョブ管理部403に通知する(ステップS58)。ジョブ管理部403は、印刷未完了と通知されたため(ステップS59、S60)、ジョブログテーブル311の読み込んだエントリの送信完了フラグ411Fに"0"を書き込み(ステップS62)、連結子Cを経由し、図9のステップS63に進み、ログ番号"1"をRAM420のログ番号に記憶し(ステップS63)、スプールファイル名"spool001"を送信部404に通知する(ステップS64)。
【0099】
送信部404はスプールファイル412のファイルspool001の印刷データをプリンタ300に送信する(ステップS65)。すべての送信が終了したら(ステップS66)、ジョブ管理部403に通知する(ステップS67)。ジョブ管理部403はジョブログテーブル411のRAM420のログ番号に一致するエントリの送信完了フラグ411Fに"1"を書き込み(ステップS68)、RAM420のログ番号をクリアし(ステップS69)、連結子Dを経由し図8のステップS51に戻り、ジョブログテーブル411に次のエントリが無いため(ステップS51)、終了する。
【0100】
前記ステップS65にてプリンタ300に送信された印刷データに基づき印刷を行う動作は、図3および図4を用いて説明した実施例1の印刷装置の動作と同様であるので、簡略化のためにその詳細な説明は省略する。
【0101】
そして、パーソナルコンピュータ400Aで、一定時間が経過すると、ジョブ管理部403は、ジョブログテーブル411にエントリが存在するため(ステップS51)、1つ目のエントリを読み込み(ステップS52)、送信完了フラグ411Fが"1"で、印刷完了フラグ411Gが"0"のため(ステップS53、S54)、印刷完了判断部405に"ジョブ名DOC1"、"ホスト名PC−1"、"印刷実行時間20080718154530"を渡す(ステップS55)。
【0102】
印刷完了判断部405は、プリンタ300のジョブログ問い合わせ部330に"ジョブ名DOC1"、"ホスト名PC−1"、"印刷実行時間20080718154530"を渡す(ステップS56)。
【0103】
プリンタ300のジョブログ問い合わせ部330は、図10に示したように、受け取った"ジョブ名DOC1"、"ホスト名PC−1"、"印刷実行時間20080718154530"とすべて一致するエントリがジョブログテーブル311に存在し(ステップS81)、そのエントリのジョブ完了フラグが"1"のため(ステップS82)、印刷完了をパーソナルコンピュータ400Aの印刷完了判断部405に通知する(ステップS83)。
【0104】
再び図8に戻って、プリンタ300から通知されると(ステップS57)、印刷完了判断部405は、印刷完了をジョブ管理部403に通知する(ステップS58)。ジョブ管理部403は、印刷完了と通知されたため(ステップS59、S60)、ジョブログテーブル311の読み込んだエントリの印刷完了フラグ411Gに1を書き込み(ステップS61)、連結子Dを経由しステップS51に戻って、ジョブログテーブル411に次のエントリが無いため(ステップS51)、終了する。
【0105】
(実施例2の効果)
以上詳細に述べたように、実施例2の印刷システムによれば、印刷データを作成するパーソナルコンピュータと受信した第1の印刷データと第2の印刷データに基づいて印刷するプリンタとを備えた印刷システムにおいて、パーソナルコンピュータは、第1の印刷データの印刷が完了したか否か判断する第1の印刷完了判断部と、第1の印刷データ及び第2の印刷データを送信する送信部とを備え、第1の印刷データが送信された後、第1の印刷完了判断部により第1の印刷データの印刷が完了していないと判断された場合に、第2の印刷データを送信し、プリンタは、第1の印刷データに基づき印刷した範囲を記憶する印刷範囲記憶部と、第1の印刷データの印刷が完了したか否か判断する第2の印刷完了判断部と、第1の印刷データと第2の印刷データの異同を判断する印刷ジョブ判断部と、印刷ジョブ判断部により第1の印刷データと第2の印刷データとが同じ印刷ジョブであると判断された場合に、印刷範囲記憶部に記憶された印刷した範囲から印刷未完のページか否か判断する印刷未完ページ判断部と、第2の印刷完了判断部により第1の印刷データの印刷が完了していないと判断され、かつ印刷ジョブ判断部により第1の印刷データと第2の印刷データが同じ印刷ジョブであると判断されたときは、印刷未完ページ判断部の判断と第2の印刷データとに基づいて印刷するようにしたので、印刷装置に全ての印刷データが送信された後に、ジャムなどでプリンタの電源がオフされても、電源オフ前に印刷されていたページと重複することなく、プリンタ再起動後に残りのページが印刷され、用紙が無駄に使用されない。
【0106】
《その他の変形例》
以上の実施例の説明では、両面印刷を行う例を説明したが、両面印刷ではなくマルチページ印刷等の割り付け印刷を行う場合にも、本発明を適用することができる。
【0107】
また、以上の実施例の説明では、ジャムの発生を原因として電源を再投入する例として説明したが、ジャム以外の原因、例えば、通信状態が不安定となり、印刷が開始されない状態となったことを原因として電源を再投入する場合であっても本発明を適用することができる。
【0108】
また、以上の実施例の説明では、プリンタ側の電源が再投入され、パーソナルコンピュータが再度プリンタに対し印刷データを送信する例を示したが、印刷データのヘッダに総ページ数を記録しておき、当該印刷データを受信したプリンタは総ページ数と印刷済みのページを不揮発性記憶装置に記憶しておき、パーソナルコンピュータ側の内部処理にて異常が生じ、印刷データが途中までしか送信されず、アプリケーションの再起動若しくはパーソナルコンピュータの再起動が生じたときなど、パーソナルコンピュータの再起動後にプリンタ側からパーソナルコンピュータに対して印刷途中のジョブ名と未印刷ページを通知する構成としてもよい。
【産業上の利用可能性】
【0109】
以上述べたように、本発明は、プリンタ、コピー機、多機能周辺装置(Multifunction Peripheral)等の印刷装置に広く用いることができる。
【図面の簡単な説明】
【0110】
【図1】実施例1の印刷装置の機能ブロック図である。
【図2】実施例1の印刷装置のジョブログテーブルの構成図である。
【図3】実施例1の印刷装置の動作フローチャート図(a)である。
【図4】実施例1の印刷装置の動作フローチャート図(b)である。
【図5】実施例2の印刷装置の機能ブロック図である。
【図6】実施例2の印刷装置のジョブログテーブルの構成図である。
【図7】実施例2の印刷装置のデータ生成部の動作フローチャート図である。
【図8】実施例2の印刷装置のパーソナルコンピュータ側の動作フローチャート図(a)である。
【図9】実施例2の印刷装置のパーソナルコンピュータ側の動作フローチャート図(b)である。
【図10】実施例2の印刷装置のジョブログ問合せ部の動作フローチャート図である。
【符号の説明】
【0111】
100、400A、400B パーソナルコンピュータ
300 プリンタ
301 受信部
303 印刷ジョブ判断部
304、405 印刷完了判断部
305 印刷制御部
306 印刷未完ページ判断部
308 印刷範囲記憶部
311、411 ジョブログテーブル
330 ジョブログ問合せ部
404 送信部

【特許請求の範囲】
【請求項1】
受信した第1の印刷データと第2の印刷データに基づいて印刷する印刷装置であって、
前記第1の印刷データに基づき印刷した範囲を記憶する印刷範囲記憶部と、
前記第1の印刷データの印刷が完了したか否か判断する印刷完了判断部と、
前記第1の印刷データと前記第2の印刷データの異同を判断する印刷ジョブ判断部と、
前記印刷ジョブ判断部により前記第1の印刷データと前記第2の印刷データとが同じ印刷ジョブであると判断された場合に、前記印刷範囲記憶部に記憶された印刷した範囲から印刷未完のページか否か判断する印刷未完ページ判断部と、
前記印刷完了判断部により前記第1の印刷データの印刷が完了していないと判断され、かつ前記印刷ジョブ判断部により前記第1の印刷データと前記第2の印刷データが同じ印刷ジョブであると判断されたときは、前記印刷未完ページ判断部の判断と前記第2の印刷データとに基づいて印刷する印刷制御部とを有することを特徴とする印刷装置。
【請求項2】
前記印刷した範囲は先頭ページから印刷したページまでのページ数であることを特徴とする請求項1記載の印刷装置。
【請求項3】
前記印刷した範囲は印刷したページの集合であることを特徴とする請求項1記載の印刷装置。
【請求項4】
両面印刷及び集合印刷の場合には、前記印刷した範囲は印刷媒体単位で必要なページ数であることを特徴とする請求項2または請求項3記載の印刷装置。
【請求項5】
前記第1の印刷データ及び前記第2の印刷データはそれぞれ属性情報を有し、
前記印刷ジョブ判断部は、属性情報に基づいて第1の印刷データと第2の印刷データとの異同を判断することを特徴とする請求項1ないし請求項4いずれか記載の印刷装置。
【請求項6】
前記属性情報は、ジョブ名、ホスト名、印刷実行時間の組み合わせであることを特徴とする請求項5記載の印刷装置。
【請求項7】
前記印刷完了判断部は、前記印刷した範囲と前記第2の印刷データとから印刷が完了したか否かを判断することを特徴とする請求項1ないし請求項6いずれか記載の印刷装置。
【請求項8】
前記印刷装置は、印刷が完了したか否かを示す印刷完了フラグを記憶する印刷完了フラグ記憶部を有し、
前記印刷完了判断部は、前記印刷完了フラグから印刷が完了したか否かを判断することを特徴とする請求項1ないし請求項6いずれか記載の印刷装置。
【請求項9】
印刷データを作成する上位装置と受信した第1の印刷データと第2の印刷データに基づいて印刷する印刷装置とを備えた印刷システムであって、
前記上位装置は、
前記第1の印刷データの印刷が完了したか否か判断する第1の印刷完了判断部と、
前記第1の印刷データ及び第2の印刷データを送信する送信部と、
を備え、
前記第1の印刷データが送信された後、前記第1の印刷完了判断部により前記第1の印刷データの印刷が完了していないと判断された場合に、第2の印刷データを送信し、
前記印刷装置は、
前記第1の印刷データに基づき印刷した範囲を記憶する印刷範囲記憶部と、
前記第1の印刷データの印刷が完了したか否か判断する第2の印刷完了判断部と、
前記第1の印刷データと前記第2の印刷データの異同を判断する印刷ジョブ判断部と、
前記印刷ジョブ判断部により前記第1の印刷データと前記第2の印刷データとが同じ印刷ジョブであると判断された場合に、前記印刷範囲記憶部に記憶された印刷した範囲から印刷未完のページか否か判断する印刷未完ページ判断部と、
前記第2の印刷完了判断部により前記第1の印刷データの印刷が完了していないと判断され、かつ前記印刷ジョブ判断部により前記第1の印刷データと前記第2の印刷データが同じ印刷ジョブであると判断されたときは、前記印刷未完ページ判断部の判断と前記第2の印刷データとに基づいて印刷する印刷制御部とを有することを特徴とする印刷システム。
【請求項10】
前記印刷した範囲は先頭ページから印刷したページまでのページ数であることを特徴とする請求項9記載の印刷システム。
【請求項11】
前記印刷した範囲は印刷したページの集合であることを特徴とする請求項9記載の印刷装置。
【請求項12】
両面印刷及び集合印刷の場合には、前記印刷した範囲は印刷媒体単位で必要なページ数であることを特徴とする請求項10または請求項11記載の印刷装置。
【請求項13】
前記第1の印刷データ及び前記第2の印刷データはそれぞれ属性情報を有し、
前記印刷ジョブ判断部は、属性情報に基づいて第1の印刷データと第2の印刷データとの異同を判断することを特徴とする請求項9ないし請求項12いずれか記載の印刷装置。
【請求項14】
前記属性情報は、ジョブ名、ホスト名、印刷実行時間の組み合わせであることを特徴とする請求項13記載の印刷装置。
【請求項15】
前記印刷完了判断部は、前記印刷した範囲と前記第2の印刷データとから印刷が完了したか否かを判断することを特徴とする請求項9ないし請求項14いずれか記載の印刷装置。
【請求項16】
前記印刷装置は、印刷が完了したか否かを示す印刷完了フラグを記憶する印刷完了フラグ記憶部を有し、
前記印刷完了判断部は、前記印刷完了フラグから印刷が完了したか否かを判断することを特徴とする請求項9ないし請求項14いずれか記載の印刷装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2010−131949(P2010−131949A)
【公開日】平成22年6月17日(2010.6.17)
【国際特許分類】
【出願番号】特願2008−312636(P2008−312636)
【出願日】平成20年12月8日(2008.12.8)
【出願人】(591044164)株式会社沖データ (2,444)
【Fターム(参考)】