(57)【特許請求の範囲】
【請求項１】
印刷指定時刻が設定された印刷ジョブデータを受信し，印刷指定時刻に基づいて印刷ジョブを実行する印刷装置において，
印刷ジョブデータを記憶するバッファ部と，
印刷指定時刻が設定された印刷ジョブデータを受信可能な受信手段と，
前記バッファ部の空き領域に，前記受信手段にて受信される印刷ジョブデータである受信印刷ジョブデータが格納可能であるか否かを判断する判断手段と，
前記判断手段により，前記バッファ部の空き領域に前記受信印刷ジョブデータの格納が不可であると判断された場合に，前記バッファ部に記憶されている印刷ジョブデータのうち，前記受信印刷ジョブデータの印刷指定時刻よりも印刷指定時刻が遅い印刷ジョブデータを削除し，前記バッファ部に前記受信印刷ジョブデータを格納可能な空き領域が確保されたことを条件として，前記受信印刷ジョブデータを前記バッファ部に記憶するバッファ制御手段とを有することを特徴とする印刷装置。
【請求項２】
請求項１に記載する印刷装置において，
印刷ジョブデータごとに当該印刷ジョブデータを当該印刷ジョブデータの送信元から再読み込み可能か否かが記憶された再読込記憶手段を有し，
前記バッファ制御手段は，前記再読込記憶手段にて再読み込み可能と記憶された印刷ジョブデータを削除対象とすることを特徴とする印刷装置。
【請求項３】
請求項２に記載する印刷装置において，
前記受信手段にて受信される受信印刷ジョブデータが再読み込み不可の印刷ジョブデータの場合，
前記判断手段は，前記バッファ部の空き領域に，その再読み込み不可の受信印刷ジョブデータが格納可能であるか否かを判断し，
前記バッファ制御手段は，その再読み込み不可の受信印刷ジョブデータが格納不可の場合には，前記再読込記憶手段にて再読み込み可能と記憶された印刷ジョブデータを削除し，前記バッファ部にその再読み込み不可の受信印刷ジョブデータを格納可能な空き領域が確保されたことを条件として，その再読み込み不可の受信印刷ジョブデータを前記バッファ部に記憶することを特徴とする印刷装置。
【請求項４】
請求項２または請求項３に記載する印刷装置において，
前記受信手段にて受信される受信印刷ジョブデータに印刷指定時刻が設定されていない場合，
前記判断手段は，前記バッファ部の空き領域に，その印刷指定時刻が設定されていない受信印刷ジョブデータが格納可能であるか否かを判断し，
前記バッファ制御手段は，その印刷指定時刻が設定されていない受信印刷ジョブデータが格納不可の場合には，印刷指定時刻が設定されておりかつ前記再読込記憶手段にて再読み込み可能と記憶された印刷ジョブデータを削除し，前記バッファ部にその印刷指定時刻が設定されていない受信印刷ジョブデータを格納可能な空き領域が確保されたことを条件として，その印刷指定時刻が設定されていない受信印刷ジョブデータを前記バッファ部に記憶することを特徴とする印刷装置。
【請求項５】
請求項１から請求項４のいずれか１つに記載する印刷装置において，
印刷ジョブデータに係る印刷が終了したことを条件に，当該印刷ジョブデータの送信元に，当該送信元が記憶する当該印刷ジョブデータの削除指示を送信する削除指示手段を有することを特徴とする印刷装置。
【請求項６】
印刷指定時刻が設定された印刷ジョブデータを受信し，印刷指定時刻に基づいて印刷ジョブを実行する印刷装置のプログラムにおいて，
前記印刷装置を，
印刷指定時刻が設定された印刷ジョブデータを受信可能な受信手段と，
印刷ジョブデータを記憶するバッファ部の空き領域に，前記受信手段にて受信される印刷ジョブデータである受信印刷ジョブデータが格納可能か否かを判断する判断手段と，
前記判断手段により，前記バッファ部の空き領域に前記受信印刷ジョブデータの格納が不可であると判断された場合に，前記バッファ部に記憶されている印刷ジョブデータのうち，前記受信印刷ジョブデータの印刷指定時刻よりも印刷指定時刻が遅い印刷ジョブデータを削除し，前記バッファ部に前記受信印刷ジョブデータを格納可能な空き領域が確保されたことを条件として，前記受信印刷ジョブデータを前記バッファ部に記憶させるバッファ制御手段として動作させることを特徴とする印刷装置のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，指定された印刷時刻に印刷ジョブを実行する予約印刷機能を有する印刷装置およびプログラムに関する。さらに詳細には，印刷ジョブデータを記憶するバッファの有効利用が図られた印刷装置およびプログラムに関するものである。
【背景技術】
【０００２】
従来から，ネットワークに接続された情報端末装置から，同じくネットワークに接続された印刷装置に対して印刷ジョブを出力する印刷システムであって，情報端末装置にて印刷ジョブデータに印刷指定時刻を設定することが可能であり，印刷装置では印刷指定時刻になったときに当該印刷ジョブデータの印刷を実行する，いわゆる予約印刷機能を備えるものがある（例えば，特許文献１）。
【０００３】
予約印刷機能を有する印刷装置には，印刷ジョブデータを一時的に記憶する記憶領域である印刷データバッファを備えている。そして，印刷装置では，印刷指定時刻となるまで印刷ジョブデータを印刷データバッファに記憶しておき，印刷指定時刻となった場合に該当印刷ジョブデータを印刷処理し，印刷処理完了後に，その印刷ジョブデータを印刷データバッファから削除する。
【特許文献１】特開２００１−２３６１１８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら，前記した従来の予約印刷機能を有する印刷装置には，次のような問題があった。すなわち，予約印刷では，例えば１週間先，１ヶ月先，１年先といったように，かなり先の日時が指定されることも考えられる。かかる場合に，かなり先の日時が指定された印刷ジョブデータは，その指定日時が来るまでいつまでも印刷データバッファに記憶され続ける。印刷データバッファの記憶領域は有限領域であり，そのような印刷ジョブデータが数多く記憶された場合に，印刷データバッファの空き容量がなくなることも考えられる。
【０００５】
印刷データバッファの空き容量がなくなってしまうと，新たに目前の日時が指定された印刷ジョブデータが送られて来た場合に，当該印刷ジョブデータを受け入れられないことになる。このような不具合は，印刷データバッファの容量が小さい場合や，印刷ジョブデータのサイズが大きい場合などに生じることが考えられ，予約印刷機能の円滑な運用を妨げる。
【０００６】
本発明は，前記した従来の印刷装置が有する問題点を解決するためになされたものである。すなわちその課題とするところは，印刷データバッファを有効に利用し，予約印刷機能の円滑な運用が図られた印刷装置および印刷装置のプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
この課題の解決を目的としてなされた印刷装置は，印刷指定時刻が設定された印刷ジョブデータを受信し，印刷指定時刻に基づいて印刷ジョブを実行する印刷装置であって，印刷ジョブデータを記憶するバッファ部と，印刷指定時刻が設定された印刷ジョブデータを受信可能な受信手段と，バッファ部の空き領域に，受信手段にて受信される印刷ジョブデータである受信印刷ジョブデータが格納可能であるか否かを判断する判断手段と，判断手段により，バッファ部の空き領域に受信印刷ジョブデータの格納が不可であると判断された場合に，バッファ部に記憶されている印刷ジョブデータのうち，受信印刷ジョブデータの印刷指定時刻よりも印刷指定時刻が遅い印刷ジョブデータを削除し，バッファ部に受信印刷ジョブデータを格納可能な空き領域が確保されたことを条件として，受信印刷ジョブデータをバッファ部に記憶するバッファ制御手段とを有することを特徴としている。
【０００８】
本発明の印刷装置は，印刷指定時刻に基づいて印刷ジョブを実行する，いわゆる予約印刷機能を備えるものである。本発明の印刷装置では，印刷ジョブデータはバッファ部に記憶される。そして，バッファ部に記憶するにあたって，判断手段によって，バッファ部の空き領域に受信印刷ジョブデータが格納可能であるか否かが判断される。
【０００９】
そして，バッファ部の空き領域に受信印刷ジョブデータの格納が不可であると判断された場合には，バッファ制御手段により，バッファ部に記憶されている印刷ジョブデータのうち，受信印刷ジョブデータの印刷指定時刻よりも印刷指定時刻が遅い印刷ジョブデータが削除される。これにより，バッファ部の空き領域が拡大し，受信印刷ジョブデータのバッファ部への記憶が可能になる。
【００１０】
判断手段としては，例えば，受信印刷ジョブデータのサイズとバッファ部の空き容量とを比較し，受信印刷ジョブデータのサイズがバッファ部の空き容量よりも大きい場合には，受信印刷ジョブデータのバッファ部への格納は不可と判断する。一方，受信印刷ジョブデータのサイズがバッファ部の空き容量よりも小さい場合には，受信印刷ジョブデータのバッファ部への格納は可能と判断する。また，バッファ部の空き領域がない状態であれば受信印刷ジョブデータの格納不可と判断してもよい。
【００１１】
すなわち，本発明の印刷装置では，バッファ部に十分な空きが無い場合に，バッファ制御手段にて，既にバッファ部に記憶されている印刷ジョブデータのうち，受信印刷ジョブデータよりも後に印刷される印刷ジョブデータを削除し，受信印刷ジョブデータを記憶する領域を確保している。これにより，バッファ部の空きが足らなくても，印刷ジョブデータの入れ替えを行うことで印刷指定時刻が早い印刷ジョブデータを優先的に印刷でき，直ぐに実行が望まれる印刷ジョブに係る印刷ジョブデータの受信が，バッファ部の空き容量不足により拒否されてしまうことを防止できる。また，この印刷ジョブデータの入れ替えは自動的に行われる。従って，予約印刷機能の円滑な運用を妨げない。
【００１２】
また，本発明の印刷装置は，印刷ジョブデータに係る印刷が終了したことを条件に，当該印刷ジョブデータの送信元に，当該送信元が記憶する当該印刷ジョブデータの削除指示を送信する削除指示手段を有することとするとよりよい。
【００１３】
すなわち，削除指示手段によって，印刷ジョブデータの送信元に記憶されている印刷ジョブデータを削除できる。これにより，印刷が終わった後に，その印刷ジョブデータを再取得してしまうおそれがない。
【００１４】
また，本発明の印刷装置は，印刷ジョブデータごとに当該印刷ジョブデータを当該印刷ジョブデータの送信元から再読み込み可能か否かが記憶された再読込記憶手段を有し，バッファ制御手段は，再読込記憶手段にて再読み込み可能と記憶された印刷ジョブデータを削除対象とすることとするとよりよい。
【００１５】
すなわち，再読込記憶手段によって，印刷ジョブデータごとに印刷ジョブデータの送信元から再読み込みが可能か否かを記憶する。そして，バッファ制御手段が再読み込み可能な印刷ジョブデータのみを削除対象とすることにより，再読み込みできない印刷ジョブデータの削除が回避される。なお，印刷ジョブデータが再読み込みできない場合とは，送信元から直接印刷装置に印刷ジョブデータが送信され，送信が完了したことを条件に送信元に記憶されているその印刷ジョブデータが削除される場合などである。よって，再読み込みできる印刷ジョブデータと再読み込みできない印刷ジョブデータとがバッファ部に混在していたとしても，再読み込み可能な印刷ジョブデータが削除されるので，再読み込みできない印刷ジョブデータが削除されるといった不具合は生じない。
【００１６】
また，前述の印刷装置は，受信手段にて受信される受信印刷ジョブデータが再読み込み不可の印刷ジョブデータの場合，判断手段は，バッファ部の空き領域に，その再読み込み不可の受信印刷ジョブデータが格納可能であるか否かを判断し，バッファ制御手段は，その再読み込み不可の受信印刷ジョブデータが格納不可の場合には，再読込記憶手段にて再読み込み可能と記憶された印刷ジョブデータを削除し，バッファ部にその再読み込み不可の受信印刷ジョブデータを格納可能な空き領域が確保されたことを条件として，その再読み込み不可の受信印刷ジョブデータを前記バッファ部に記憶することとするとよりよい。
【００１７】
すなわち，バッファ制御手段では，既にバッファ部に記憶されている印刷ジョブデータのうち，再読み込みが可能な印刷ジョブデータを削除し，受信印刷ジョブデータを記憶する領域を確保している。これにより，バッファ部の空きが十分でないときに，再読み込みができない印刷ジョブデータが送られて来た場合であっても，当該印刷ジョブデータの受信及び処理は中止されない。よって，再読み込みできない印刷ジョブデータは確実に印刷され，当該印刷ジョブデータが混在したとしても信頼性は低下しない。
【００１８】
また，受信手段にて受信される受信印刷ジョブデータに印刷指定時刻が設定されていない場合，判断手段は，バッファ部の空き領域に，その印刷指定時刻が設定されていない受信印刷ジョブデータが格納可能であるか否かを判断し，バッファ制御手段は，その印刷指定時刻が設定されていない受信印刷ジョブデータが格納不可の場合には，印刷指定時刻が設定されておりかつ再読込記憶手段にて再読み込み可能と記憶された印刷ジョブデータを削除し，バッファ部にその印刷指定時刻が設定されていない受信印刷ジョブデータを格納可能な空き領域が確保されたことを条件として，その印刷指定時刻が設定されていない受信印刷ジョブデータを前記バッファ部に記憶することとするとよりよい。
【００１９】
すなわち，バッファ制御手段では，既にバッファ部に記憶されている印刷ジョブデータのうち，再読み込みが可能であって印刷時間までにまだ余裕がある印刷ジョブデータを削除し，受信印刷ジョブデータを記憶する領域を確保している。これにより，バッファ部の空きが十分でないときに，印刷指定時刻の設定が無い印刷ジョブデータが送られて来た場合であっても，当該印刷ジョブデータの受信および処理は中止されない。よって，印刷指定時刻が無い印刷ジョブデータは確実に印刷され，当該印刷ジョブデータが混在したとしても信頼性は低下しない。
【００２０】
また，本発明は，印刷指定時刻が設定された印刷ジョブデータを受信し，印刷指定時刻に基づいて印刷ジョブを実行する印刷装置のプログラムであって，印刷装置を，印刷指定時刻が設定された印刷ジョブデータを受信可能な受信手段と，印刷ジョブデータを記憶するバッファ部の空き領域に，受信手段にて受信される印刷ジョブデータである受信印刷ジョブデータが格納可能か否かを判断する判断手段と，判断手段により，バッファ部の空き領域に受信印刷ジョブデータの格納が不可であると判断された場合に，バッファ部に記憶されている印刷ジョブデータのうち，受信印刷ジョブデータの印刷指定時刻よりも印刷指定時刻が遅い印刷ジョブデータを削除し，バッファ部に前記受信印刷ジョブデータを格納可能な空き領域が確保されたことを条件として，受信印刷ジョブデータをバッファ部に記憶させるバッファ制御手段として動作させることを特徴とする印刷装置のプログラムを含んでいる。
【発明の効果】
【００２１】
本発明によれば，印刷データバッファを有効に利用し，予約印刷機能の円滑な運用が図られた印刷装置および印刷装置のプログラムが実現している。
【発明を実施するための最良の形態】
【００２２】
以下，本発明にかかる印刷装置を具体化した実施の形態について，添付図面を参照しつつ詳細に説明する。本形態は，印刷指定時刻の設定が可能な印刷装置を含む印刷システムに本発明を適用したものである。
【００２３】
［印刷システムの構成］
本形態の印刷システム１００は，図１に示すように，印刷ジョブを管理するプリンタサーバ１と，印刷ジョブを作成する情報処理端末としてのパーソナルコンピュータ（ＰＣ）２，３と，印刷ジョブの印刷処理を行うプリンタ４とを備えている。印刷システム１００では，プリンタサーバ１，ＰＣ２，ＰＣ３，プリンタ４がネットワークを介して接続されている。
【００２４】
具体的に，ＰＣ２は，インターネットを介してプリンタサーバ１に接続されている。ＰＣ２から送信される印刷ジョブは，一旦，プリンタサーバ１に登録され，プリンタサーバ１からプリンタ４に送られる。一方，ＰＣ３はＬＡＮを介して直接プリンタ４に接続されている。プリンタ３から送信される印刷ジョブは，プリンタサーバ１を介さずにプリンタ４に送られる。なお，プリンタサーバ１に接続するＰＣは１台に限定するものではなく，複数台接続してもよい。また，プリンタ４に接続するＰＣも１台に限定するものではなく，複数台接続してもよい。
【００２５】
プリンタ４は，印刷機能の他，印刷ジョブデータの配信を要求する機能と，印刷ジョブデータを受信する機能とを有している。プリンタ４は，定期的（本形態では，１０分間隔）にプリンタサーバ１に対して印刷ジョブデータの配信を要求する。すなわち，プリンタ４では，プリンタサーバ１に対して配信要求を所定間隔でポーリングする。プリンタサーバが複数台あればそれぞれのプリンタサーバに対してポーリングする。そして，プリンタサーバ１から印刷ジョブデータが配信された際には，その印刷ジョブデータの印刷を行う。
【００２６】
また，プリンタサーバ１から配信される印刷ジョブデータには，印刷指定時刻が設定されるものがある。プリンタ４では，印刷指定時刻が指定された印刷ジョブデータを受信すると，その印刷指定時刻となるまで後述する先読みバッファにデータを蓄積し，印刷指定時刻となった段階で印刷処理を開始する。すなわち，本形態のプリンタ４は，予約印刷機能を有している。
【００２７】
また，プリンタ４は，プリンタサーバ１からの印刷ジョブデータの配信の他，ＬＡＮを介して接続されているＰＣ３から直接印刷ジョブデータが送られる。その場合にも，その印刷ジョブデータの印刷を行う。
【００２８】
プリンタ４は，図２に示すように，各種演算処理を実行するＣＰＵ４１と，当該プリンタ４の起動時にＣＰＵ４１が行う起動処理のプログラム（ＢＩＯＳ）等を記憶したＲＯＭ４２と，ＣＰＵ４１が各種処理を行う際に一時的な記憶領域として利用されるＲＡＭ４３と，各種のプログラムやデータを記憶したハードディスクドライブ（ＨＤＤ）４４とを有している。さらに，プリンタ４のＨＤＤ４４には，オペレーティングシステム（ＯＳ）や，印刷ジョブのデータ管理を行うアプリケーションが組み込まれている。
【００２９】
また，プリンタ４は，操作ボタンやタッチパネル等からなる操作部４５と，液晶ディスプレイ等からなる表示部４６と，他の情報機器との間で信号のやりとりを行うシリアルポートインターフェース４７と，ＬＡＮ，インターネット等のネットワークを介して信号のやりとりを行うネットワークインターフェース４８とを有している。
【００３０】
また，プリンタ４は，印刷処理を行う画像形成部４９を有している。画像形成部４９は，電子写真方式やインクジェット方式等の周知の画像形成技術を利用するものであればよい。また，画像形成部の一部としてスキャナ部を有し，コピー機能を具備しているものであってもよい。
【００３１】
また，プリンタ４は，図３に示すように，印刷ジョブのデータ管理を行うアプリケーション５と，印刷ジョブデータを記憶する先読みバッファ５１と，印刷ジョブの登録リストであるジョブリスト５２とを有している。アプリケーション５は，先読みバッファ５１およびジョブリスト５２へのデータの読み書きが可能である。また，アプリケーション５は，プリンタサーバ１から送られて来る印刷ジョブデータを受信し，先読みバッファ５１およびジョブリスト５２を更新する。また，アプリケーション５は，ＰＣ３から直接送られて来る印刷ジョブデータを受信し，先読みバッファ５１およびジョブリスト５２を更新する。
【００３２】
先読みバッファ５１は，印刷処理を行うための記憶領域であるとともに，予約印刷に先立って印刷ジョブデータをあらかじめ記憶するための記憶領域でもある。先読みバッファ５１は，ＲＡＭ４３あるいはＨＤＤ４４に一定容量の記憶領域として確保される。
【００３３】
先読みバッファ５１には，通常，ジョブリスト５２の登録順に印刷ジョブデータが蓄積される。そして，印刷ジョブが終了すると，終了した印刷ジョブデータが先読みバッファ５１から削除される。先読みバッファ５１が印刷ジョブデータで満杯になった場合には，先読みバッファ５１内の印刷ジョブデータの入れ替え処理が行われる。この入れ替え処理については後述する。
【００３４】
ジョブリスト５２は，図４に示すように，印刷ジョブを識別するためのジョブＩＤと，印刷対象となるデータの参照先であるＵＲＬと，先読みバッファ５１に記憶したバッファサイズと，印刷ジョブデータのデータサイズと，印刷指定時刻と，再読み込みが可能であるか否かを記憶する再読み込みフラグと，印刷ジョブデータの削除リストとして一時的に利用される削除フラグとが，１つのレコードとして記憶される。さらに，ジョブリスト５２は，印刷処理が行われる順にレコードが並べられている。
【００３５】
ジョブリスト５２に記憶されるデータの中のバッファサイズには，先読みバッファ５１に当該印刷ジョブデータが記憶されていればそのデータサイズと同じ値が書き込まれ，先読みバッファ５１に記憶されていなければ０が書き込まれる。
【００３６】
例えば，先読みバッファ５１の全容量を８Ｍバイトとし，図４に示したような印刷ジョブデータがジョブＩＤでＡＡＡ，ＢＢＢ，ＣＣＣの順にジョブリスト５２に登録されるとする。この場合，図５に示すように，ＡＡＡ，ＢＢＢの印刷ジョブデータが先読みバッファ５１に記憶され，先読みバッファ５１の空き容量が３Ｍバイトとなる。次に送り込まれるＣＣＣの印刷ジョブデータは，データサイズが５Ｍバイトあるため，先読みバッファ５１に記憶されない。そして，ＡＡＡが印刷処理され，先読みバッファ５１から削除されると，空き容量が７Ｍバイトとなり，ＣＣＣが記憶される。
【００３７】
プリンタサーバ１は，印刷ジョブデータを管理するとともに，プリンタ４に対して印刷ジョブデータを配信する機能を有している。プリンタサーバ１は，印刷ジョブデータの管理用に，図６に示すようにジョブリストを備えている。そのジョブリストには，印刷ジョブを識別するためのジョブＩＤと，印刷ジョブデータの参照先であるＵＲＬ（プリンタサーバ１内での印刷データの参照先）と，印刷指定時刻と，印刷ジョブデータのデータサイズとが１つのレコードとして記憶される。
【００３８】
ＰＣ２は，プリンタサーバ１に登録する印刷ジョブデータを作成する機能を有している。すなわち，ＰＣ２は，図７に示すようにジョブ名，登録先のＵＲＬ，印刷指定時刻，印刷データからなる印刷ジョブデータを作成し，プリンタサーバ１に送信する。なお，印刷指定時刻はＰＣ２のユーザによって設定される。また，印刷指定時刻の指定は任意であり，印刷指定時刻が設定されていない印刷ジョブデータがプリンタサーバ１に送信される場合もある。
【００３９】
ＰＣ３は，ＰＣ２と同様に，印刷ジョブデータを作成する機能を有している。ただし，ＰＣ３は，プリンタサーバ１とのデータのやりとりは行わず，直接プリンタ４に印刷ジョブデータを送信する。ＰＣ３から送られる印刷ジョブデータは，プリンタサーバ１に蓄積されない。そのため，ＰＣ３から送られた印刷ジョブデータは，プリンタ４による再読み込みを不可として，プリンタ４のジョブリスト５２のレコードに登録される。また，ＰＣ３から送られる印刷ジョブデータは，必ずしも印刷指定時刻が設定されているとは限らない。すなわち，プリンタ４には，印刷設定時刻の設定が無い印刷ジョブデータも送信される。
【００４０】
［プリンタの動作］
続いて，印刷システム１００の予約印刷動作を実現するプリンタ４の動作を詳細に説明する。はじめに，プリンタ４のメイン動作について，図８のフローチャートを参照しつつ説明する。
【００４１】
プリンタ４のメイン処理としては，まず，印刷ジョブデータを受信したか否かを判断する（Ｓ１０１）。プリンタ４では，プリンタサーバ１へのポーリングによる印刷ジョブデータの取得のほか，ＰＣ３等のＬＡＮに接続されている情報処理装置から不定期に印刷ジョブデータが送られて来る。Ｓ１０１の処理では，この不定期に送信される印刷ジョブデータを確認する。なお，このメイン処理は，プリンタ４の電源が入れられることで開始される。
【００４２】
印刷ジョブデータを受信した場合には（Ｓ１０１：ＹＥＳ），先読みバッファ５１およびジョブリスト５２を更新するジョブ受信処理を行う（Ｓ１０２）。Ｓ１０２の処理後は，Ｓ１０１の処理に戻る。Ｓ１０２の処理の詳細については後述する。印刷ジョブデータを受信していない場合には（Ｓ１０１：ＮＯ），Ｓ１０３の処理に移行する。
【００４３】
次に，ジョブリスト５２に登録されている印刷ジョブデータの印刷指定時刻を取得する（Ｓ１０３）。そして，その印刷指定時刻が現在時刻を過ぎてきる印刷ジョブデータがあるか否かを判断する（Ｓ１０４）。印刷時刻となった印刷ジョブデータがある場合には（Ｓ１０４：ＹＥＳ），当該印刷ジョブデータのジョブ印刷処理を行う（Ｓ１０５）。これにより，指定時刻に印刷を行う予約印刷が実現する。Ｓ１０５の処理の詳細については後述する。印刷処理後は，Ｓ１０７の処理に移行し，プリンタサーバ１等のインターネット上のプリンタサーバに対するポーリングによって印刷ジョブデータの取得を行う。ポーリング先のプリンタサーバ（本形態ではプリンタサーバ１）についてはプリンタ４にあらかじめ登録されている。印刷時刻となった印刷ジョブデータがない場合には（Ｓ１０４：ＮＯ），Ｓ１０６の処理に移行する。
【００４４】
次に，前回印刷ジョブ配信要求を送信してから所定時間経過したか否かを判断する（Ｓ１０６）。すなわち，プリンタサーバ１へのポーリングのタイミングであるか否かを判断する。所定時間経過後であれば（Ｓ１０６：ＹＥＳ），印刷ジョブ配信要求をプリンタサーバ１に送信し，印刷ジョブデータを取得する（Ｓ１０７）。Ｓ１０７の処理の詳細については後述する。Ｓ１０７の処理後，あるいは所定時間経過後でなければ（Ｓ１０６：ＮＯ），Ｓ１０１の処理に戻り，本メイン動作を繰り返す。
【００４５】
なお，Ｓ１０５の処理で印刷処理が完了した印刷ジョブデータは，先読みバッファ５１から削除される。そのため，先読みバッファ５１には空き容量が確保される。そして，Ｓ１０５の処理に続くＳ１０７の処理でプリンタサーバ１に印刷ジョブ配信要求を出力する構成であることから，先読みバッファ５１には空き容量が確保される度に，新たな印刷ジョブデータがプリンタサーバ１に登録されていないかを確認できるとともに，新たな印刷ジョブデータがあればその印刷ジョブデータを取得することが可能になる。
【００４６】
続いて，Ｓ１０２のジョブ受信処理について，図９のフローチャートを参照しつつ説明する。
【００４７】
まず，受信した印刷ジョブデータに印刷指定時刻があるか否かを判断する（Ｓ２０１）。印刷指定時刻が無い場合には（Ｓ２０１：ＮＯ），当該印刷ジョブデータを受信しつつ当該印刷ジョブデータを優先して印刷する（Ｓ２０２）。印刷の際，印刷ジョブデータの一時的な保存先として先読みバッファ５１の空き領域を利用する。一方，印刷指定時刻がある場合には（Ｓ２０１：ＹＥＳ），当該印刷ジョブデータを受信しつつ当該印刷ジョブデータを先読みバッファ５１に保存する（Ｓ２０３）。
【００４８】
Ｓ２０２ないしＳ２０３の処理では，印刷ジョブデータの先読みバッファ５１への書き込み中に先読みバッファ５１の空き領域が足りなくなることがある。すなわち，受信される印刷ジョブデータのサイズと先読みバッファ５１の空き領域を比較し，受信される印刷ジョブデータのサイズの方が大きいと判断される場合である。その際には，印刷ジョブデータの保存先を確保するために，図１０のフローチャートに示すような，バッファ確保処理が行われる。
【００４９】
すなわち，まず，ジョブリスト５２に登録されているすべての印刷ジョブのレコードの削除フラグをリセットする（Ｓ２１１）。そして，ジョブリスト５２に登録されている印刷ジョブの印刷設定時刻が遅い印刷ジョブから順に抽出（以下，抽出された印刷ジョブを「検査ジョブ」とする）し，以下の処理を行う（Ｓ２１２）。
【００５０】
まず，検査ジョブに対応した印刷ジョブデータが再読み込みが可能であるか否かを判断する（Ｓ２１３）。再読み込み可能な印刷ジョブデータでなければ（Ｓ２１３：ＮＯ），Ｓ２１４以下の処理をバイパスして次の検査ジョブを抽出する。一方，再読み込み可能な印刷ジョブデータであれば（Ｓ２１３：ＹＥＳ），検査ジョブに対応した印刷ジョブデータの削除フラグをセットする（Ｓ２１４）。
【００５１】
次に，受信する印刷ジョブデータを保存可能な空き領域が先読みバッファ５１に確保可能か否かを判断する（Ｓ２１５）。具体的には，印刷ジョブデータの保存先を確保するために必要な空き容量として，次の式（１）を満たしているか否かを判断する。
必要な空き容量≦削除フラグがセットされている全ての印刷ジョブデータの合計データサイズ＋先読みバッファ５１の空き容量      （１）
【００５２】
空き領域が確保可能な場合には（Ｓ２１５：ＹＥＳ），Ｓ２１２のループ処理から脱出し，削除フラグがセットされている全ての印刷ジョブデータを先読みバッファ５１から削除する（Ｓ２１６）。そして，削除された印刷ジョブデータに対応するレコードをジョブリスト５２から削除する。これにより，先読みバッファ５１に，受信した印刷ジョブデータを保存する領域が確保される。Ｓ２１６の処理後，バッファ確保処理を終了する。
【００５３】
一方，受信する印刷ジョブデータを保存可能な空き領域が確保できない場合には（Ｓ２１５：ＮＯ），Ｓ２１２の処理に戻って，次の検査ジョブを抽出する。全ての印刷ジョブについて抽出しても空き領域が確保されないと（Ｓ２１２のループ処理終了），空き無しとしてバッファ確保処理を終了する。
【００５４】
図９のジョブ受信処理の説明に戻り，Ｓ２０２の処理では，先読みバッファ５１の空き領域が足らなくなると，前述したバッファ確保処理を実行し，空き領域を確保しつつ印刷を行う。印刷処理終了後，ジョブ受信処理を終了する。
【００５５】
Ｓ２０３の処理でも同様に，先読みバッファ５１の空き領域が足らなくなると，前述したバッファ確保処理を実行する。そして，空き領域を確保しながら印刷ジョブデータの保存を行う。
【００５６】
また，Ｓ２０３の処理後，受信した印刷ジョブデータの保存が完了したか否かを判断する（Ｓ２０４）。印刷ジョブデータの保存が完了した場合には（Ｓ２０４：ＹＥＳ），ジョブリスト５２に当該印刷ジョブデータのレコードを追加する（Ｓ２０５）。なお，印刷ジョブデータをレコードとして追加するにあたり，レコード内の再読み込みフラグを不可にセットする。ＰＣ３では，プリンタ４に印刷ジョブデータを送信すると，ＰＣ３で作成したその印刷ジョブデータを削除してしまう可能性があるからである。また，レコード内のＵＲＬの項目は，印刷対象となるデータの参照先は存在しないので，空欄となる。
【００５７】
一方，印刷ジョブデータの保存が完了していない場合には（Ｓ２０４：ＮＯ），保存途中の印刷ジョブデータを先読みバッファ５１から削除し，表示部４６に空き容量が不足していることを通知する（Ｓ２０６）。Ｓ２０５あるいはＳ２０６の処理終了後，ジョブ受信処理を終了する。
【００５８】
続いて，Ｓ１０５のジョブ印刷処理について，図１１のフローチャートを参照しつつ説明する。
【００５９】
まず，印刷指定時刻となった印刷ジョブデータが先読みバッファ５１に保存されているか否かを，ジョブリスト５２を参照することによって判断する（Ｓ３０１）。先読みバッファ５１に保存されている場合には（Ｓ３０１：ＹＥＳ），先読みバッファ５１に保存されている印刷ジョブデータを印刷する（Ｓ３０２）。
【００６０】
一方，先読みバッファ５１に保存されていない場合には（Ｓ３０１：ＮＯ），プリンタサーバ１から印刷ジョブデータを取得しつつ印刷する（Ｓ３０３）。印刷処理中に先読みバッファ５１が足らなくなれば，その都度バッファ確保処理（図１０）を呼び，先読みバッファ５１上の保存データを削除しながら印刷処理を続行する。
【００６１】
Ｓ３０２あるいはＳ３０３の印刷処理後，印刷処理が完了した印刷ジョブデータを先読みバッファ５１から削除する。次いで，プリンタサーバ１に対して印刷の終了を通知する。すなわち，印刷が終了した印刷ジョブデータに対応するプリンタサーバ１に登録されている印刷ジョブデータを削除する指示をプリンタサーバ１に通知する（Ｓ３０４）。プリンタサーバ１がこの削除指示を受けて印刷が終了した自身が記憶する印刷ジョブデータを削除する。これにより，印刷が終わった後に印刷が終了した印刷ジョブデータを再取得してしまうことが回避される。そのため，当該印刷ジョブデータによる先読みバッファ５１の占有や，当該印刷ジョブデータの再印刷が抑制される。
【００６２】
その後，印刷が終了した印刷ジョブデータに対応するジョブリスト５２に登録されているレコードを削除する（Ｓ３０５）。これにより，ジョブ印刷処理を終了する。
【００６３】
続いて，Ｓ１０７のジョブ取得処理について，図１２のフローチャートを参照しつつ説明する。
【００６４】
まず，登録されたプリンタサーバ（本形態ではプリンタサーバ１）に対して印刷ジョブ配信要求を送信し，印刷ジョブデータの取得を開始する（Ｓ４０１）。プリンタサーバ１では，印刷ジョブ配信要求を受信すると，プリンタサーバ１のジョブリストに登録されている印刷ジョブデータを要求元のプリンタ（本形態ではプリンタ４）に送信する。
【００６５】
次に，取得した印刷ジョブデータのうち，印刷指定時刻が経過している印刷ジョブデータを抽出する。そして，当該印刷ジョブデータを取得しつつ印刷する（Ｓ４０２）。なお，印刷指定時刻が設定されていない印刷ジョブデータを取得した際にも，当該印刷ジョブデータを取得しつつ印刷処理を行う。印刷処理中に先読みバッファ５１が足らなくなれば，その都度バッファ確保処理（図１０）を呼び，先読みバッファ５１上の保存データを削除しながら印刷処理を続行する。
【００６６】
次に，取得した印刷ジョブデータをジョブリスト５２の各レコードとマージする（Ｓ４０３）。具体的に，取得した印刷ジョブデータがジョブリスト５２に登録されていなければ，当該印刷ジョブデータをジョブリスト５２に登録するとともに，当該印刷ジョブデータのレコードの再読み込みフラグを可としてセットする。取得した印刷ジョブデータがジョブリスト５２に登録済みであれば何もしない。また一方で，ジョブリスト５２には登録されているが印刷ジョブデータとして送られてこなかった場合には，当該印刷ジョブデータのレコードの再読み込みフラグを不可にする。
【００６７】
次に，ジョブリスト５２に登録されている印刷ジョブの印刷設定時刻が早い印刷ジョブから順に抽出（以下，抽出された印刷ジョブを「処理ジョブ」とする）し，以下の処理を行う（Ｓ４０４）。
【００６８】
まず，処理ジョブに対応した印刷ジョブデータが先読みバッファ５１に保存済みであるか否かを判断する（Ｓ４０５）。保存済みであれば（Ｓ４０５：ＹＥＳ），Ｓ４０６の処理をバイパスして次の処理ジョブを抽出する。一方，保存済みでなければ（Ｓ４０５：ＮＯ），先読みバッファ５１の保存状態を更新するバッファ更新処理を行う（Ｓ４０６）。Ｓ４０６の詳細については後述する。ジョブリスト５２に登録されている全ての印刷ジョブについて抽出すると（Ｓ４０４のループ処理終了），ジョブ取得処理を終了する。
【００６９】
続いて，Ｓ４０６のバッファ更新処理について，図１３のフローチャートを参照しつつ説明する。
【００７０】
まず，処理ジョブのデータサイズが先読みバッファ５１の空き容量以下であるか否かを判断する（Ｓ４１１）。処理ジョブのデータサイズが先読みバッファ５１の空き容量以下であれば（Ｓ４１１：ＹＥＳ），処理ジョブを先読みバッファ５１に保存し（Ｓ４１８），バッファ更新処理を終了する。
【００７１】
処理ジョブのデータサイズが先読みバッファ５１の空き容量以下でなければ（Ｓ４１１：ＮＯ），ジョブリスト５２に登録されているすべての印刷ジョブのレコードの削除フラグをリセットする（Ｓ４１２）。そして，ジョブリスト５２に登録されている印刷ジョブの印刷設定時刻が遅い印刷ジョブから順に抽出（以下，抽出された印刷ジョブを「検査ジョブ」とする）し，以下の処理を行う（Ｓ４１３）。
【００７２】
まず，検査ジョブに対応した印刷ジョブデータについて再読み込みが可能であるか否かを判断する（Ｓ４１４）。再読み込み可能な印刷ジョブデータでなければ（Ｓ４１４：ＮＯ），Ｓ４１５以下の処理をバイパスして次の検査ジョブを抽出する。一方，再読み込み可能な印刷ジョブデータであれば（Ｓ４１４：ＹＥＳ），検査ジョブに対応した印刷ジョブデータの削除フラグをセットする（Ｓ４１５）。そして，受信する印刷ジョブデータを保存可能な空き領域が先読みバッファ５１に確保可能か否かを判断する（Ｓ４１６）。具体的には，印刷ジョブデータの保存先を確保するために必要な空き容量として，前述した式（１）を満たしているか否かを判断する。
【００７３】
空き領域が確保可能な場合には（Ｓ４１６：ＹＥＳ），Ｓ４１３のループ処理から脱出し，削除フラグがセットされている全ての印刷ジョブデータを先読みバッファ５１から削除する（Ｓ４１７）。そして，削除された印刷ジョブデータに対応するレコードをジョブリスト５２から削除する。これにより，先読みバッファ５１に，受信した印刷ジョブデータを保存する領域が確保される。
【００７４】
次に，処理ジョブを先読みバッファ５１に保存する（Ｓ４１８）。このとき，あらかじめ先読みバッファ５１に保存する領域が確保されているため，容量不足なく確実に保存される。
【００７５】
一方，空き領域が確保できない場合には（Ｓ４１６：ＮＯ），Ｓ４１３の処理に戻って，次の検査ジョブを抽出する。処理ジョブの１つ手前の印刷ジョブまで抽出しても，すなわち処理ジョブよりも印刷指定時間が遅い印刷ジョブをすべて抽出しても空き領域が確保されないと，Ｓ４１３のループ処理を終了するとともにバッファ更新処理を終了する。
【００７６】
このバッファ更新処理により，常に印刷指定時間が近いもの（早いもの）の印刷ジョブデータが優先的に先読みバッファ５１に保存されるので，予約印刷機能の円滑な運用が可能となる。
【００７７】
以上詳細に説明したように本形態のプリンタ４は，印刷指定時刻に基づいて印刷ジョブを実行する，いわゆる予約印刷機能を備えるものであり，印刷ジョブデータが先読みバッファ５１に保存される。そして，印刷ジョブデータを先読みバッファ５１に保存するにあたって，先読みバッファ５１の空き領域に印刷ジョブデータが格納可能であるか否かを判断する。そして，印刷ジョブデータの格納が不可の場合（すなわち，印刷ジョブデータのサイズが先読みバッファ５１の空き容量よりも大きい場合）には，先読みバッファ５１に記憶されている印刷ジョブデータのうち，保存対象の印刷ジョブデータの印刷指定時刻よりも印刷指定時刻が遅い印刷ジョブデータを削除する。これにより，保存対象の印刷ジョブデータの先読みバッファ５１への記憶が可能になる。
【００７８】
すなわち，プリンタ４では，先読みバッファ５１に十分な空きが無い場合に，既に先読みバッファ５１に記憶されている印刷ジョブデータのうち，保存対象の印刷ジョブデータよりも後に印刷される印刷ジョブデータを削除し，保存対象のジョブデータを保存する領域を確保している。これにより，先読みバッファ５１の空きが足らなくても印刷ジョブデータの入れ替えが行われ，印刷指定時刻が早い印刷ジョブデータが優先的に印刷される。そして，直ぐに実行が望まれる印刷ジョブに係る印刷ジョブデータの受信が，先読みバッファ５１の空き容量不足によって拒否されることを防止できる。また，印刷ジョブデータの入れ替えは自動的に行われる。従って，印刷データバッファを有効に利用し，予約印刷機能の円滑な運用が図られた印刷装置が実現している。
【００７９】
また，プリンタ４のジョブリスト５２に，印刷ジョブデータごとにプリンタサーバ１から再読み込みが可能か否かを記憶する。そして，プリンタ４では，印刷ジョブデータを入れ替える際，再読み込み可能な印刷ジョブデータのみを削除対象としている。これにより，再読み込みできない印刷ジョブデータの削除が回避される。よって，再読み込みできる印刷ジョブデータと再読み込みできない印刷ジョブデータとが先読みバッファ５１に混在していたとしても，再読み込み可能な印刷ジョブデータが削除されるので，再読み込みできない印刷ジョブデータが削除されるといった不具合は生じない。さらに，先読みバッファ５１の空きが十分でなく，再読み込みができない印刷ジョブデータを受信した場合であっても，当該印刷ジョブデータの受信および処理は中止されない。よって，再読み込みできない印刷ジョブデータは確実に印刷され，当該印刷ジョブデータが混在したとしても信頼性は低下しない。
【００８０】
また，プリンタ４では，既に先読みバッファ５１に記憶されている印刷ジョブデータのうち，印刷指定時刻が無い受信印刷ジョブデータよりも印刷指定時刻が有る印刷ジョブデータ（すなわち，印刷時間までにまだ余裕がある印刷ジョブデータ）を削除している。これにより，印刷指定時刻の設定が無い印刷ジョブデータであっても，当該印刷ジョブデータの印刷処理は中止されない。よって，印刷指定時刻が無い印刷ジョブデータは確実に印刷され，当該印刷ジョブデータが混在したとしても信頼性は低下しない。
【００８１】
なお，本実施の形態は単なる例示にすぎず，本発明を何ら限定するものではない。したがって本発明は当然に，その要旨を逸脱しない範囲内で種々の改良，変形が可能である。例えば，実施の形態では，印刷を行う手段としてプリンタを適用しているが，これに限るものではない。例えば，ＦＡＸや複合機（ＭＦＰ）であってもよい。また，印刷ジョブ登録を行う手段としてＰＣを適用しているが，これに限るものではない。例えば，携帯電話であってもよい。
【００８２】
また，実施の形態では，プリンタ４からのポーリングによって印刷ジョブデータを配信しているが，これに限るものではない。例えば，プリンタサーバ１に配信先のＥメールアドレスを登録し，プリンタサーバ１主動でメール送信によって印刷ジョブデータを配信してもよい。
【００８３】
さらに，図１２のＳ４０１の処理において，印刷ジョブデータを取得するに際し，先にプリントサーバ１が備えるジョブリストを取得し，プリンタ４自身が備えるジョブリスト５２と照合して，プリンタ４が備えていないと判断される印刷ジョブデータのみを取得するようにしてもよい。これにより，既に記憶している印刷ジョブデータの再取得に係るネットワークのトラフィックを軽減できるとともに，再取得した既に記憶している印刷ジョブデータの破棄に伴う処理負担を軽減できる。
【００８４】
また，ＰＣ２がプリンタサーバ１に送信する印刷ジョブデータに，ＰＣ２のユーザによって印刷指定時刻の設定がなされていない場合には，ＰＣ２は，印刷指定時刻としてプリンタサーバ１に送信する現在時刻を設定するように構成されていてもよい。そのような印刷ジョブデータは，プリンタサーバ１に到達した段階で印刷指定時刻に達していることとなる。そのため，プリンタ４にその印刷ジョブデータが送信されると，直ちにその印刷ジョブデータの印刷処理が開始されることになる。よって，印刷指定時刻の設定がなされていない印刷ジョブデータは，ＰＣ２のユーザにとって直ぐに印刷処理の実行が所望されているものとして取り扱われる。従って，予約印刷機能を備えた印刷装置のユーザにとって使い勝手がよい。
【図面の簡単な説明】
【００８５】
【図１】実施の形態に係る印刷システムの構成を示すブロック図である。
【図２】実施の形態に係る印刷システム構成するプリンタの詳細構成を示すブロック図である。
【図３】プリンタに組み込まれたアプリケーションの機能構成を示すブロック図である。
【図４】ジョブリスト（プリンタ）の構成および登録データの例を示す図である。
【図５】先読みバッファにおける印刷ジョブデータの蓄積例を示す概念図である。
【図６】ジョブリスト（プリンタサーバ）の構成および登録データの例を示す図である。
【図７】ＰＣから送られる印刷ジョブデータの構成およびデータの例を示す図である。
【図８】実施の形態に係るプリンタの動作（メイン処理）を示すフローチャートである。
【図９】実施の形態に係るプリンタの動作（ジョブ受信処理）を示すフローチャートである。
【図１０】実施の形態に係るプリンタの動作（バッファ確保処理）を示すフローチャートである。
【図１１】実施の形態に係るプリンタの動作（ジョブ印刷処理）を示すフローチャートである。
【図１２】実施の形態に係るプリンタの動作（ジョブ取得処理）を示すフローチャートである。
【図１３】実施の形態に係るプリンタの動作（バッファ更新処理）を示すフローチャートである。
【符号の説明】
【００８６】
１      プリンタサーバ
２      ＰＣ
３      ＰＣ
４      プリンタ
５      アプリケーション
５１    先読みバッファ
５２    ジョブリスト
１００  印刷システム
【図１】
0004978407.tif 000002
【図２】
0004978407.tif 000003
【図３】
0004978407.tif 000004
【図４】
0004978407.tif 000005
【図５】
0004978407.tif 000006
【図６】
0004978407.tif 000007
【図７】
0004978407.tif 000008
【図８】
0004978407.tif 000009
【図９】
0004978407.tif 000010
【図１０】
0004978407.tif 000011
【図１１】
0004978407.tif 000012
【図１２】
0004978407.tif 000013
【図１３】
0004978407.tif 000014