図1は、本発明に係る画像データ処理システムの実施例1の構成を示すブロック図である。図1に示すように、この実施例1の画像データ処理システムは、指定時刻で印刷される画像データをユーザ端末から取得し、指定時刻を経過するとこの画像データを印刷装置2に送信する画像処理装置1と印刷装置2とが、ネットワーク、セントロニクスケーブル、USBケーブル等の接続ケーブルにより接続されたシステムである。
画像処理装置は、アプリケーション11と、入力部12と、表示部13と、プリントスプーラ14と、プリンタドライバ15と、プリントモニタ16と、計時機構部17と、出力制御部18とを備えて構成されている。
アプリケーション11は、例えばワードプロセッサ言語を処理するアプリケーションであり、自身が解釈できるアプリケーションデータ111を保有する。このアプリケーション11は、ユーザにより表示部13や入力部12から印刷指示が入力されると、アプリケーションデータ111を用いてプリントスプーラ14が処理可能な、例えばGDIコマンドでなる描画コマンドを作成し、このコマンドをプリントスプーラ14に出力する。
また、アプリケーション11は、ユーザが印刷操作を行う際に、プリンタドライバ15が保有する後述するダイアログ151を読出し、これを用いて図2に示すドキュメントのプロパティ(この画面の内容については後述する)を表示部13に表示させる。ユーザは、表示部13に表示されたドキュメントのプロパティを用いて印刷時刻の指定を行う。
入力部12は、キーボードやマウス等のポインティングデバイスを備え、画像データが印刷装置2に送信される際に必要となる処理を実行させる情報がユーザにより入力される。
表示部13は、例えば液晶表示装置からなり、画像処理を実行する再に必要となる例えばドキュメントのプロパティが表示された表示画面を表示する。
プリントスプーラ14は、アプリケーション11から描画コマンドが入力されると、このコマンドをプリンタドライバ15に出力する。また、プリントスプーラ14は、先に出力した描画コマンドに対応する印刷装置2で印刷可能な画像データがプリンタドライバ15から入力され、その画像データを蓄積する。また、プリントスプーラ14は、蓄積した画像データごとに画像データを識別する固有なジョブIDを割り当て、このジョブID及び画像データをプリントモニタ16に出力する。また、プリントスプーラ14は、プリントモニタ16を構成する時刻指定検出部161により出力制御部18に出力された画像データに割り当てられたジョブIDが時刻待ち判断部162から入力されると、このジョブIDにより示される画像データを削除する。
更に、プリントスプーラ14は、プリントモニタ16を構成する時刻到来監視部164から時刻待ち情報に記述されている後述するジョブIDに該当する画像データを、時刻指定検出部161に出力させる要求が入力されると、この要求に記述されているジョブIDにより示される画像データ及びジョブIDを時刻指定検出部161に出力する。
プリンタドライバ15は、ダイアログ151及び画像データ形成部152を有する。ダイアログ151は、図2に示すドキュメントのプロパティでなる表示画面を表示部13に表示させる。このドキュメントのプロパティでなる表示画面は、時刻指定印刷チェックボックス151a、指定時刻チェックボックス151b、OKボタン151c、キャンセルボタン151dを有する。
時刻指定印刷チェックボックス151aは、ユーザが時刻指定印刷の設定を有効にするためのチェックボックスであって、この箇所にカーソルを置いてユーザがマウスをクリックすると時刻指定印刷の設定が有効になったことを示すチェック印が表示される。指定時刻チェックボックス151bは、画像データが印刷される指定時刻が入力される。OKボタン151cは、ユーザによりこの箇所がクリックされると、ユーザにより入力された上記情報(以下、ダイアログ情報という)をアプリケーション11に出力する。キャンセルボタン151dは、ユーザによりこの箇所がクリックされると、ダイアログ情報の出力を無効とする。すなわち、キャンセルボタン151dは、ダイアログ情報を画像データ形成部152に出力せずに、次の処理待ち状態に移行させる。
図1に示す画像データ形成部152は、ダイアログ情報がアプリケーション11から入力されない場合には、プリントスプーラ14から入力された描画コマンドを印刷装置2が印刷できる形式の画像データに変換し、この画像データをプリントスプーラ14に出力する。また、画像データ形成部152は、ダイアログ情報がアプリケーション11から入力された場合には、プリントスプーラ14から入力された描画コマンドを印刷装置2が印刷できる形式の画像データに変換し、更に、指定した時刻(以下、指定時刻という)に印刷することを指示するコマンド(以下、時刻指定印刷コマンド)をこの画像データの先頭に埋め込み、この時刻指定印刷コマンドが埋め込まれた画像データをプリントスプーラ14に出力する。
プリントモニタ16は、時刻指定検出部161、時刻待ち判断部162、時刻待ち情報記憶部163、及び時刻到来監視部164を備える。
時刻指定検出部161は、プリントスプーラ14から画像データとジョブIDが入力されると、この画像データの先頭に時刻指定印刷コマンドが埋め込まれているか否かを判断し、画像データの先頭に時刻指定印刷コマンドが埋め込まれていないと判断した場合には、この画像データを出力制御部18に出力し、一方、画像データの先頭に時刻指定コマンドが埋め込まれていると判断した場合には、時刻指定印刷コマンドに記述されている指定時刻及びジョブIDを時刻待ち判断部162に出力し、時刻待ち判断部162からの指示を待つ。
また、時刻指定検出部161は、時刻待ち判断部162からの指示を待った結果、時刻待ち判断部162から出力制御部18に画像データを出力させる要求の通知(以下、出力要求通知という)が入力されると、プリントスプーラ14から入力された時刻指定印刷コマンドが埋め込まれた画像データからこのコマンドを削除した画像データを出力制御部18に出力する。
また、時刻指定検出部161は、時刻待ち判断部162からの指示を待った結果、時刻待ち判断部162から、プリントスプーラ14から入力された時刻指定印刷コマンドが埋め込まれた画像データを削除する要求の通知(以下、削除要求通知という)が入力されると、この画像データを出力制御部18に出力することなく削除する。
時刻待ち判断部162は、時刻待ち情報記憶部163に記憶されている時刻待ち情報163b(後述する)を検索し、時刻指定検出部161から入力されたジョブIDが記述された時刻待ち情報163bが記憶されているか否かを判断する。判断した結果、時刻待ち判断部162は、入力されたジョブIDが記述された時刻待ち情報163bが記憶されていると判断した場合には、時刻指定検出部161に上記出力要求通知を出力すると共に、プリントスプーラ14に対して入力されたジョブIDにより示された画像データを削除する要求の通知を出力し、その後、この時刻待ち情報163bを時刻待ち情報記憶部163から削除する。
また、時刻待ち判断部162は、入力されたジョブIDが記述された時刻待ち情報163bが記憶されていないと判断した場合には、このジョブIDが記述された新たに時刻待ち情報163bを生成し、この生成した時刻待ち情報163bを最後に登録されている時刻待ち情報163bの後に登録し、上記削除要求通知を時刻指定検出部161に出力する。
時刻待ち情報163bは、時刻待ちになっている画像データを指定時刻に印刷するために必要となる内部情報を有する。この内部情報には、図3に示すように、ジョブID163ba、指定時刻163bb、時刻監視状態163bc、前情報ポインタ163bd、及び次情報ポインタ163beを有する。
ジョブID163baは、時刻待ち判断部162が時刻指定検出部161から入力されたジョブIDが記述される。指定時刻163bbは、時刻待ち判断部162が時刻指定検出部161から入力された指定時刻が記述される。時刻監視状態163bcは、この時刻待ち情報163bが時刻の到来についての監視対象であるならば、「時刻監視中」が、また、時刻の到来が監視済みの場合には、「時刻監視済み」が記述される。
前情報ポインタ163bd及び次情報ポインタ163beは、時刻待ち情報163bが時刻待ち情報記憶部163に複数存在した場合には、これらの時刻待ち情報163b同士を互いにポインタ接続するために使用される。前情報ポインタ163bdは、現在参照している時刻待ち情報163bの前に登録された時刻待ち情報163bの先頭アドレスを指し、無い場合には無効値となる。次情報ポインタ163beは、現在参照している時刻待ち情報163bの次に登録された時刻待ち情報163bの先頭アドレスを指し、無い場合には無効値となる。ここで、無効値にはNULL(一般的には数値の0)が使用される。
時刻待ち情報記憶部163は、上記時刻待ち情報163bを記憶し、時刻待ち判断部162及び時刻到来監視部164により時刻待ち情報163bの参照、変更、削除、及び登録が行われる。この時刻待ち情報記憶部163は、図4に示すように、時刻待ち情報先頭ポインタ163a、上述した時刻待ち情報163b、及び時刻待ち情報最終ポインタ163cを有する。
時刻待ち情報先頭ポインタ163aは、時刻待ち情報163bとして一番古く(最初に)登録されたものの先頭アドレスを格納する。図4では、時刻待ち情報先頭ポインタ163aは、時刻待ち情報記憶部163に記憶されている♯1に示された時刻待ち情報163bの先頭アドレスが記述されている。また、時刻待ち情報163bが時刻待ち情報記憶部163に登録されていない場合には、時刻待ち情報先頭ポインタ163aには、無効値が記述される。
時刻待ち情報最終ポインタ163cは、時刻待ち情報163bとして一番新しく(最後に)登録されたものの先頭アドレスを格納する。図4では、時刻待ち情報最終ポインタ163cは、時刻待ち情報記憶部163に記憶されている#nに示しめされた時刻待ち情報163bの先頭アドレスが記述されている。なお、時刻待ち情報163bが時刻待ち情報記憶部163に登録されていない場合には、時刻待ち情報最終ポインタ163cには、無効値が記述される。また、上述した先頭アドレスを以下ポインタという。
図1に示す時刻到来監視部164は、時刻待ち情報記憶部163に登録されているすべての時刻待ち情報163bを、ダイアログ151で指定可能な時刻の最小単位より短い周期で監視し、計時機構部17から読み出した現在の時刻と時刻待ち情報163bに記述されている指定時刻163bbとを比較する。そして、時刻到来監視部164は、現在の時刻と指定時刻163bbとが一致する時刻待ち情報163bが時刻待ち情報記憶部163に登録されていたならば、指定時刻が到来したものと判断し、この時刻待ち情報163bに記述されているジョブID163baに該当する画像データを、時刻指定検出部161に出力させる要求の通知をプリントスプーラ14に出力する。
計時機構部17は、現在の時刻を計時し、予め決められた周期で計時した現在の時刻を時刻到来監視部164に出力する。
出力制御部18は、時刻指定検出部161から出力された画像データを印刷装置2に送信する。
印刷装置2は、出力制御部18から入力された画像データを解釈し、印刷する。
次に、この実施1の画像処装置の動作を、1)印刷開始操作が行われたのち、生成された画像データがプリントスプーラ14に蓄積されるまでの動作、2)プリントスプーラ14により蓄積された画像データが印刷装置2に送信され、または指定時刻待ちになるまでの動作、3)指定時刻が到来した画像データの出力要求を時刻到来監視部164によりプリントスプーラ14に出力されるまでの動作に分けて説明する。
1)印刷開始操作が行われたのち、生成された画像データがプリントスプーラ14に蓄積されるまの動作について
図5は、印刷開始操作が行われたのち、生成された画像データがプリントスプーラ14に蓄積されるまのでの、本発明に係る実施例1の画像データ処理システムを構築する画像処理装置の動作を示すフローチャートである。
ユーザが入力部12に設けられたキーボード又はマウスを用いて、アプリケーション11を実行させて、印刷開始操作を開始させると(ステップS11)、アプリケーション11は、プリンタドライバ15に有するダイアログ151を呼び出し、図2に示すドキュメントのプロパティを示す表示画面を表示部13に表示さる(ステップS12)。
ユーザにより、ダイアログ151に表示されている時刻指定印刷チェックボックス151aにカーソルが置かれ、マウスによりクリックされると、このチェックボックス151aがチェックされ、指定時刻チェックボックス151bに指定時刻が入力されたのち(ステップS13)、OKボタン151c又はキャンセルボタン151dがクリックされると、アプリケーション11は、クリックされたボタンがOKボタン151cであるか又はキャンセルボタン151dであるかを判断する(ステップS14)。
アプリケーション11は、キャンセルボタン151dがクリックされたと判断した場合には(ステップS14;キャンセルボタン)、ダイアログ151で行った操作を全て無効にし、ダイアログ151を表示部13から消去し、ステップS11に処理を移行し、上述した同様な処理を行う。一方、アプリケーション11は、OKボタン151cがクリックされたと判断した場合には(ステップS14;OKボタン)、表示部13からダイアログ情報を取得する。その後、アプリケーション11は、ダイアログ情報に記述されている指定時刻をプリンタドライバ15の画像データ形成部152に出力する(ステップS15)。次に、アプリケーション11は、アプリケーションデータ111を用い描画コマンドを生成し(ステップS16)、この描画コマンドをプリントスプーラ14に出力する。
プリントスプーラ14は、アプリケーション11から入力された描画コマンドをプリンタドライバ15に出力する(ステップS17)。
プリンタドライバ15の画像データ形成部152は、描画コマンドが入力されると(ステップS18)、この描画コマンドを印刷装置2で印刷可能な画像データに変換する(ステップS19)。
画像データ形成部152は、指定時刻が入力されているか否かを判定する(ステップS20)。画像データ形成部152は、アプリケーション11から指定時刻が入力されていないと判断した場合には(ステップS20;NO)、時刻指定コマンドが埋め込まれていない画像データをプリントスプーラ14に出力し(ステップS21)、ステップS25に処理を移行させる。一方、画像データ形成部152は、指定時刻が入力されていると判断した場合には(ステップS20;YES)、プリントモニタ16において解析可能な時刻指定印刷コマンドを作成する(ステップS22)。その後、画像データ形成部152は、作成した時刻指定印刷コマンドを画像データの先頭に埋め込み(ステップS23)、この画像データをプリントスプーラ14に出力する(ステップS24)。
プリントスプーラ14は、プリンタドライバ15から画像データが入力されると、この画像データの先頭に埋め込まれた時刻指定コマンドの有無を意識することなく、この画像データを蓄積し、その後、画像データを識別するジョブIDを割り当て(ステップS25)、処理を終了する。
2)プリントスプーラ14に蓄積された画像データが印刷装置2に送信され、または指定時刻まで印刷待ちになるまでの動作について
図6及び図7は、プリントスプーラ14に蓄積された画像データが印刷装置2により印刷され、または指定時刻まで印刷待ちになるまでの、本発明に係る実施例1の画像データ処理システムを構築する画像処理装置の動作を示すフローチャートである。
プリントスプーラ14は、ジョブIDにより示された画像データ及びこのジョブIDに対する出力を要求する通知が時刻到来監視部164から入力されると、この要求する画像データ及びジョブIDを時刻指定検出部161に出力する(ステップS31)。
時刻指定検出部161は、入力された画像データに時刻指定印刷コマンドが埋め込まれているか否かを判断する(ステップS32)。時刻指定検出部161は、画像データに時刻指定コマンドが埋め込まれていないと判断した場合には(ステップS32;NO)、画像データを出力制御部18に出力する(ステップS33)。
出力制御部18は、時刻指定検出部161から入力された画像データを印刷装置2に送信し、処理を終了させる。
時刻指定検出部161は、画像データに時刻指定コマンドが埋め込まれていると判断した場合には(ステップS32;YES)、画像データに埋め込まれている時刻指定印刷コマンドに記述されている指定時刻を読出し、この指定時刻と、プリントスプーラ14から入力されたジョブIDとを時刻待ち判断部162に出力する。その後、時刻指定検出部161は、時刻待ち判断部162からの指示を待つ。
時刻待ち判断部162は、時刻指定検出部161から指定時刻及びジョブIDが入力されると、時刻待ち情報記憶部163中に有する時刻待ち情報先頭ポインタ163aが有効値であるか否かを判断する(ステップS34)。時刻待ち判断部162は、時刻待ち情報先頭ポインタ163aが有効値であると判断した場合には(ステップS34;YES)、このポインタ163aが示す時刻待ち情報163bを参照する(ステップS35)。
次に、時刻待ち判断部162は、時刻待ち情報先頭ポインタ163aが示す時刻待ち情報163bに記述されているジョブID163baと、時刻指定検出部161から入力されたジョブIDとが同一であるか否かを判断する(ステップS36)。時刻待ち判断部162は、参照する時刻待ち情報163bに記述されているジョブID163bと、時刻指定検出部161から入力されたジョブIDとが同一でないと判定した場合には(ステップS36;NO)、更に、参照する時刻待ち情報163bに記述されている次情報ポインタ163beが無効値であるか否かを判断する(ステップS37)。
時刻待ち判断部162は、参照する時刻待ち情報163bに記述されている次情報ポインタ163beが無効値でないと判断した場合(ステップS37;NO)、すなわち、この次情報ポインタ163beが有効値である場合には、この次情報ポインタ163beが示す時刻待ち情報163bを参照し(ステップS38)、ステップS36に処理を移行させ、上述した同様な処理を続行させる。一方、時刻待ち判断部162は、時刻待ち情報163bに有する次情報ポインタ163beが無効値であると判断した場合には(ステップS37;YES)、時刻指定検出部161から入力されたジョブID及び指定時刻を有する画像データの時刻待ち情報163bを生成する(ステップS39)。すなわち、時刻待ち判断部162は、時刻待ち情報163bのジョブID163baに時刻指定検出部161から入力されたジョブIDを記述し、指定時刻163bbに時刻指定検出部161から入力された指定時刻を記述し、時刻監視状態163bcに「時刻監視中」を記述し、前情報ポインタ163bdに参照した時刻待ち情報163bのポインタを記述し、次情報ポインタ163beに無効値を記述した時刻待ち情報163bを生成し、時刻待ち情報記憶部163に登録されている最後の時刻待ち情報163bのあとに生成した時刻待ち情報163bを登録する(ステップS40)。
次に、時刻待ち判断部162は、先に参照した時刻待ち情報163bに記述されている無効値からなる次情報ポインタ163be及び時刻待ち情報最終ポインタ163cに、生成した時刻待ち情報163bのポインタを格納し(ステップS41)、ステップS52に処理を移行する。
ステップS36において、時刻待ち判断部162は、参照する時刻待ち情報163bに記述されているジョブID25と、時刻指定検出部161から入力されたジョブIDとが同一であると判断した場合には(ステップS36;YES)、時刻指定検出部161に出力された画像データが指定時刻を経過した画像データであると認識し、この時刻待ち情報163bを時刻待ち情報記憶部163から読出す(ステップS42)。
その後、時刻待ち判断部162は、読み出した時刻待ち情報163bに記述されている次情報ポインタ163beにより示される時刻待ち情報163bに記述されている前情報ポインタ163bdを、読み出した時刻待ち情報163bに記述されている前情報ポインタ163bdに変更し、更に、読み出した時刻待ち情報163bに記述されている前情報ポインタ163bdにより示される時刻待ち情報163bに記述されている次情報ポインタ163beを、読み出した時刻待ち情報163bに記述されている次情報ポインタ163beに変更する。次に、時刻待ち判断部162は、先に読み出した時刻待ち情報163bを時刻待ち情報記憶部163から削除する(ステップS43)。
次に、時刻待ち判断部162は、時刻待ち情報記憶部163に時刻待ち情報163bが記憶されているか否かを判断する(ステップS44)。時刻待ち判断部162は、時刻待ち情報記憶部163に時刻待ち情報163bが記憶されていると判断した場合には(ステップS44;YES)、ステップS47に処理を移行させる。一方、時刻待ち判断部162は、時刻待ち情報記憶部163に時刻待ち情報163bが記憶されていないと判断した場合には(ステップS44;NO)、時刻待ち情報先頭ポインタ163a及び時刻待ち情報最終ポインタ163cに無効値を格納し(ステップS45)、時刻到来監視部164に時刻到来の監視を終了する通知(以下、時刻到来監視終了通知)を出力し(ステップS46)、時刻到来監視部164に時刻の到来の監視を停止させる。
その後、時刻待ち判断部162は、時刻指定検出部161に対してプリントスプーラ14から入力された画像データを出力制御部18に出力する要求の通知(上記出力要求通知)を出力すると共に、プリントスプーラ14に対してジョブIDにより示された画像データを削除する要求を出力する(ステップS47)。
時刻指定検出部161は、時刻待ち判断部162から出力要求通知が入力されると、プリントスプーラ14から入力された画像データに埋め込まれた時刻指定印刷コマンドをこの画像データから削除し、この時刻指定印刷コマンドを削除した画像データを出力制御部18に出力する(ステップS48)。
出力制御部18は、時刻指定検出部161から画像データが入力されると、この画像データを印刷装置2に送信し、処理を終了する。
なお、プリントスプーラ14は、時刻待ち判断部162からジョブIDにより示された画像データを削除する要求の通知が入力されると、このジョブIDにより示された画像データを削除する。
ステップ34において、時刻待ち判断部162は、時刻待ち情報先頭ポインタ163aが有効値でないと判断した場合(ステップS34;NO)、すなわち、時刻指定検出部161から入力されたジョブIDにより示された画像データの時刻待ち情報163bが、時刻待ち情報記憶部163に登録されていないと判断した場合には、この画像データの時刻待ち情報163bを生成する(ステップS49)。すなわち、時刻待ち判断部162は、時刻待ち情報163b中のジョブID163baに時刻指定検出部161から入力されたジョブIDを記述し、指定時刻163bbに時刻指定検出部161から入力された指定時刻を記述し、時刻監視状態163bcに「時刻監視中」を記述し、前情報ポインタ163bd及び次情報ポインタ163beに無効値を記述した時刻待ち情報163bを生成し(ステップS49)、この時刻待ち情報163bを時刻待ち情報記憶部163に登録する(ステップS50)。
次に、時刻待ち判断部162は、時刻待ち情報記憶部163に有する時刻待ち情報先頭ポインタ163a及び時刻待ち情報最終ポインタ163cに生成したこの時刻待ち情報のポインタを格納する(ステップS51)。その後、時刻待ち判断部162は、時刻指定検出部161にプリントスプーラ14から入力された画像データを削除する要求の通知(上記削除要求通知)を出力する(ステップS52)。
時刻指定検出部161は、時刻待ち判断部162から削除要求通知が入力されると、プリントスプーラ14から入力された画像データを出力制御部18に出力することなく破棄し(ステップS53)、破棄が終了した旨を時刻待ち判断部162に出力する。
その後、時刻待ち判断部162は、時刻到来監視部164に時刻の到来を監視させる通知(以下、時刻到来監視通知という)を出力し(ステップS54)、時刻到来監視部164に時刻到来の監視の実行を開始させ、処理を終了する。
3)指定時刻が到来した画像データの出力要求を時刻到来監視部164によりプリントモニタ16に出力されるまでの動作について
図8は、指定時刻が到来した画像データの出力要求を時刻到来監視部164によりプリントモニタ16に出力されるまでの、本発明に係る実施例1の画像データ処理システムを構築する画像処理装置の動作を示すフローチャートである。時刻到来監視部164は、時刻到来監視通知が時刻待ち判断部162から入力されると(ステップS61)、その後、時刻到来監視終了通知が時刻待ち判断部162から入力されたか否かを判断する(ステップS62)。時刻到来監視部164は、時刻到来監視終了通知が入力されたと判断した場合には(ステップS62;YES)、ステップS61に処理を移行し、同様な処理を続行する。一方、時刻到来監視部164は、時刻到来監視終了通知が入力されていないと判断した場合には(ステップS62;NO)、時刻待ち情報163bが時刻待ち情報記憶部163に登録されているか否かを判断する(ステップS63)。
時刻到来監視部164は、時刻待ち情報163bが時刻待ち情報記憶部163に登録されていないと判断した場合には(ステップS63;NO)、すなわち、時刻待ち情報記憶部163の時刻待ち情報先頭ポインタ163a及び時刻待ち情報最終ポインタ163cが無効値である場合には、ステップS61に処理を移行し、上述したものと同様な処理を続行させる。一方、時刻到来監視部164は、時刻待ち情報163bが時刻待ち情報記憶部163に登録されていると判断した場合には(ステップS63;YES)、予め決められた周期で計時機構部17から現時刻を読出す(ステップS64)。
次に、時刻到来監視部164は、時刻待ち情報記憶部163に有する時刻待ち情報先頭ポインタ163aにより示された時刻待ち情報163bから順に時刻待ち情報163bを参照し(ステップS65)、計時機構部17から読み出した現時刻参照した時刻待ち情報163bの指定時刻163bbを経過したか否かを判断する(ステップS66)。時刻到来監視部164は、指定時刻が経過していないと判断した場合には(ステップS66;NO)、ステップS69に処理を移行させる。一方、時刻到来監視部164は、指定時刻が経過したと判断した場合には(ステップS66;YES)、この参照した時刻待ち情報163bに記述されているジョブID163baを読出す。
その後、時刻到来監視部164は、読み出したジョブID163baにより示された画像データを時刻指定検出部161に出力させる要求をプリントスプーラ14に出力する(ステップS67)と共に、先に参照した時刻待ち情報163bの時刻監視状態163bcに記述されている時刻監視中を時刻監視済みに変更する(ステップS68)。なお、プリントスプーラ14は、時刻到来監視部164から出力させる要求が入力されると、ジョブIDにより示された画像データを時刻指定検出部161に出力する。
次に、時刻到来監視部164は、参照した時刻待ち情報163bの次情報ポインタ163beが無効値であるか否かを判断する(ステップS69)。時刻到来監視部164は、参照した時刻待ち情報163bの次情報ポインタ163beが無効値であると判断した場合には(ステップS69;YES)、ステップS62に移行させ、上述した同様な処理を続行させる。一方、時刻到来監視部164は、参照した時刻待ち情報163bの次情報ポインタ163beが無効値でないと判断した場合(ステップS69;NO)、すなわち、この次情報ポインタ163beが有効値であると判断した場合には、無効値でないこの次情報ポインタ163beにより示された時刻待ち情報記憶部163に登録されている時刻待ち情報163bを参照し(ステップS70)、ステップS66に処理を移行させ、上述したものと同様な処理を続行させる。
この実施例1によれば、時刻到来監視部164により指定時刻が到来したと判断された場合には、時刻指定検出部161が、プリントスプーラ14からから画像データを取得し、取得した画像データを印刷装置2に供給するので、ネットワーク接続されたユーザ端末から時刻指定された画像データが大量に送られてきた場合でも、印刷装置が大容量のメモリを搭載せずにこれらの画像データを印刷することができる。
図9は、本発明に係る画像データ処理システムを構築する画像処理装置の構成を示すブロック図であり、図14は本発明に係る画像データ処理システムを構築する印刷装置の構成を示すブロック図である。図9及び図14に示すように、この実施例2の画像データ処理システムは、指定時刻で印刷される画像データをユーザ端末から取得し、指定時刻を経過すると当該画像データを印刷装置5に送信する画像処理装置4と、印刷装置5とが、ネットワーク、セントロニクスケーブル、USBケーブル等の接続ケーブルにより接続されたシステムである。
図9に示すように、この画像処理装置4は、アプリケーション41と、入力部42と、表示部43と、プリントスプーラ44と、プリンタドライバ45と、プリントモニタ46と、入出力制御部47とを備えて構成されている。
アプリケーション41は、例えばMicrosoft社が供給するMicrosoft Wordであり、自身が解釈できるアプリケーションデータ411を保有する。このアプリケーション41は、ユーザにより表示部43や入力部42から印刷指示が入力されると、アプリケーションデータ411を用いてプリントスプーラ44が処理可能な、例えばGDIコマンドでなる描画コマンドを作成し、このコマンドをプリントスプーラ44に出力する。また、アプリケーション41は、ユーザが印刷操作を行う際に、プリンタドライバ15が保有する後述するダイアログ451を読出し、これを用いて例えば図10の示すドキュメントのプロパティでなる表示画面を表示部13に表示させる。ユーザは、このドキュメントのプロパティでなる表示画面(この画面の内容については後述する)を用いて印刷時刻の指定を行う。
入力部42は、キーボードやマウス等のポインティングデバイスを備え、画像処理を実行する際に必要な情報を入力する。
表示部43は、例えば液晶表示装置からなり、画像処理を実行する再に必要となるモニタ等の表示画面を表示する。
プリントスプーラ44は、アプリケーション41から描画コマンドが入力されると、このコマンドをプリンタドライバ45に出力する。また、プリントスプーラ44は、先に出力した描画コマンドに対応する印刷装置5で印刷可能な画像データがプリンタドライバ45から入力され、その画像データを蓄積する。また、プリントスプーラ44は、蓄積した画像データごとに画像データを識別する固有なジョブIDを割り当て、このジョブID及び画像データをプリントモニタ46に出力する。また、プリントスプーラ44は、プリントモニタ46を構成するジョブID判断部462から、時刻指定検出部461が入出力制御部47に出力した画像データに割り当てられたジョブIDが入力されると、このジョブIDにより示される画像データを削除する。
更に、プリントスプーラ44は、プリントモニタ46を構成するジョブID照合部464からジョブID情報に記述されている後述するジョブIDに該当する画像データを、時刻指定検出部461に出力させる要求が入力されると、この要求に記述されているジョブIDにより示される画像データ及びジョブIDを時刻指定検出部461に出力する。
プリンタドライバ45は、ダイアログ451及び画像データ形成部452を有する。ダイアログ451は、図10に示すドキュメントのプロパティでなる表示画面を表示部43に表示させる。この表示画面は、ドキュメントのプロパティを示す表示画面であって、時刻指定印刷チェックボックス451a、指定時刻ボックス451b、OKボタン451c、キャンセルボタン451dを有する。
時刻指定印刷チェックボックス451aは、ユーザが時刻指定印刷の設定を有効にするためのチェックボックスであって、この箇所にカーソルを置いてユーザがマウスをクリックすると時刻指定印刷の設定が有効になったことを示すチェック印が表示される。指定時刻ボックス451bは、ユーザにより印刷する指定時刻が入力される。OKボタン451cは、ユーザによりこの箇所にカーソルを置いてクリックされると、ユーザにより入力されたダイアログ情報をアプリケーション41に出力する。キャンセルボタン451dは、ユーザによりクリックされると、ダイアログ情報を無効とする。すなわち、キャンセルボタン451dは、ダイアログ情報を画像データ形成部452に出力せずに、次の処理待ち状態移行させる。
図9に示す画像データ形成部452は、ダイアログ情報がアプリケーション41から入力されない場合には、プリントスプーラ44から入力された描画コマンドを印刷装置5が印刷できる形式の画像データに変換し、この画像データをプリントスプーラ44に出力する。また、画像データ形成部452は、ダイアログ情報がアプリケーション41から入力された場合には、プリントスプーラ44から入力された描画コマンドを印刷装置5が印刷できる形式の画像データに変換し、更に、指定時刻に印刷することを指示するコマンド(以下、時刻指定印刷コマンド)をこの画像データの先頭に埋め込み、時刻指定印刷コマンドが埋め込まれた画像データをプリントスプーラ44に出力する。
プリントモニタ46は、時刻指定検出部461、ジョブID判断部462、ジョブID情報記憶部463、ジョブID照合部464、及びジョブIDコマンド受信部465を備える。
時刻指定検出部461は、プリントスプーラ44から画像データとジョブIDが入力されると、この画像データの先頭に時刻指定コマンドが埋め込まれているか否かを判断し、画像データの先頭に時刻指定コマンドが埋め込まれていないと判断した場合には、画像データを入出力制御部47に出力し、一方、画像データの先頭に時刻指定コマンドが埋め込まれていると判断した場合には、プリントスプーラ44から入力されたジョブIDをジョブID判断部462に出力し、ジョブID判断部462から指示を待つ。
また、時刻指定検出部461は、ジョブID判断部462からの指示を待った結果、ジョブID判断部462から入出力制御部47に画像データを出力させる出力要求通知が入力されると、プリントスプーラ44から入力された時刻指定印刷コマンドが埋め込まれた画像データからこのコマンドを削除した画像データを入出力制御部47に出力する。
また、時刻指定検出部461は、ジョブID判断部462から後述するジョブID受信待ち通知が入力されると、プリントスプーラ44から入力された画像データに埋め込まれた時刻指定印刷コマンド、プリントスプーラ44から入力されたジョブIDにより生成されたジョブIDコマンド、及び印刷開始時刻コマンドを入出力制御部47に出力し、それ以外の画像データを破棄する。
図11に示すように、ジョブIDコマンドは、時刻指定印刷する画像データに割り当てられたジョブIDが記述されており、印刷開始時刻コマンドは、画像データの印刷する時刻が記述されている。
ジョブID判断部462は、時刻指定検出部461から入力されたジョブIDをキーにして、ジョブID情報記憶部463記憶されている図12に示すジョブID情報463bを検索し、このジョブIDが記述されたジョブID情報463bが記憶されているか否かを判断し、入力されたジョブIDが記述されたジョブID情報463bがジョブID情報記憶部463に記憶されていると判断した場合には、このジョブID情報463bをジョブID情報記憶部463から削除し、時刻指定検出部461に印刷要求通知を出力する。また、ジョブID判断部462は、入力されたジョブIDが記述されたジョブID情報463bが記憶されていないと判断した場合には、このジョブIDが記述された新たにジョブID情報463bを生成し、この生成したジョブID情報463bをジョブID情報記憶部463に最後に登録されたジョブID情報463bのあとに登録し、上記削除要求通知を時刻指定検出部161に出力する。
ジョブID情報463bは、印刷装置5からのジョブIDコマンド受信まちとなっている画像データを示す情報であって、図12に示すように、ジョブID463ba、前情報ポインタ463bb、及び次情報ポインタ463bcを有する。
ジョブID463baには、プリントスプーラ44から画像データとともに入力されたジョブIDが記述される。前情報ポインタ463bb及び次情報ポインタ463bcには、ジョブID情報463bが複数存在した場合には、その情報463b同士をポインタ接続する情報である。前情報ポインタ463bbは、現在参照しているジョブID情報463bの前に登録されたジョブID情報463bのジョブID情報記憶部463におけるポインタが記述され、無い場合には無効値が記述される。次情報ポインタ463bcには、現在参照しているジョブID情報463bの次に登録されたジョブID情報463bのポインタが記述され、無い場合には無効値が記述される。
ジョブID情報記憶部463は、上記ジョブID情報を記憶し、ジョブID判断部462及びジョブID照合部464によりジョブID情報463bの参照、削除、及び登録が行われ、図13に示すように、ジョブID情報先頭ポインタ463a、上述したジョブID情報463b、ジョブID情報最終ポインタ463cを有する。
ジョブID情報先頭ポインタ463aは、ジョブID情報463bとして一番古く(最初に)登録されたジョブID情報463bのポインタを格納する。図13では、ジョブID情報先頭ポインタ463aは、♯1のジョブID情報463bのポインタを指している。また、ジョブID情報463bがジョブID情報記憶部463に登録されていない場合には、ジョブID情報先頭ポインタ463aには、無効値が格納される。
ジョブID情報最終ポインタ463cは、ジョブID情報463bとして一番新しく登録されたジョブID情報463bのポインタを格納する。図13では、ジョブID情報最終ポインタ463cは、♯nのジョブID情報463bのポインタを指している。また、ジョブID情報463bがジョブID情報記憶部463に登録されていない場合には、ジョブID情報先頭ポインタ463aには、無効値が格納される。
図9に示すジョブID照合部464は、ジョブIDコマンド受信部465から印刷装置5が送信したジョブIDが入力されると、このジョブIDをキーにして、ジョブID情報記憶部463に登録されているジョブID情報463bを検索し、時刻指定検出部461から入力されたジョブIDを有するジョブID情報463bがジョブID情報記憶部463に登録されているか否かを判断する。ジョブID照合部464は、入されたジョブIDが記述されたジョブID情報463bがジョブID情報記憶部463に登録されていると判断した場合には、このジョブIDとこのジョブIDが示す画像データとを時刻指定検出部に出力させる要求の通知をプリントスプーラ44に出力する。
ジョブIDコマンド受信部465は、入出力制御部47に対してダイアログ451で指定可能な時刻の最小単位より短い周期で、印刷装置5からデータ受信を要求し、受信したデータが図11に示すジョブIDコマンド462aであったならば、その受信したジョブIDコマンド462aが示すジョブIDをジョブID照合部464に通知する。
入出力制御部47は、画像データ、又は、時刻指定印刷コマンド、ジョブIDコマンド462a、及び印刷開始時刻コマンド462bを印刷装置5に送信すると共に、ジョブIDコマンド462aを印刷装置5から受信する。
図14に示すように、この実施例2の画像データ処理システムを構成する印刷装置5は、デバイス入出力制御部51と、ジョブIDコマンド送信部52と、コマンド判定部53と、時刻待ち情報登録部54と、時刻待ち情報記憶部55と、時刻到来監視部56と、計時機構部57と、画像データ編集部58と、印刷機構部59とを備えて構成されている。
デバイス入出力制御部51は、画像処理装置4を構成する入出力制御部47から入力されたデータをコマンド判定部53に出力する。また、デバイス入出力制御部51は、ジョブIDコマンド送信部52が生成したジョブIDコマンド462aを画像処理装置4の入出力制御部47に送信する。ここで、上記データは、ジョブIDコマンド462a及び印刷開始時刻コマンド462bからなるコマンド及び画像データを含んでいる。
ジョブIDコマンド送信部52は、時刻到来監視部56からジョブIDが入力されると、このジョブIDを基にしてジョブIDコマンド462aを生成し、このデバイス入出力制御部51に出力する。
コマンド判定部53は、デバイス入出力制御部51から入力されたデータが画像データ、であるかコマンドであるかを判断する。コマンド判定部53は、入力されたデータが画像データであると判断した場合には、入力された画像データを画像データ編集部58に出力する。コマンド判定部53は、入力されたデータがジョブIDコマンド462a及び印刷開始時刻コマンド462bであると判断した場合には、印刷開始時刻コマンド462bに記述されている指定時刻とジョブIDコマンド462aに記述されているジョブIDを時刻待ち情報登録部54に出力する。また、コマンド判定部53は、入力されたデータが画像データでもなく、ジョブIDコマンド462a及び印刷開始時刻コマンド462bのうちのいずれかの場合には、このデータを破棄する。
時刻待ち情報登録部54は、コマンド判定部53から入力された指定時刻とジョブIDとに基づき後述する時刻待ち情報55b(図15参照)を生成し、この生成した時刻待ち情報55bを時刻待ち情報記憶部55の最後に登録されている時刻待ち情報55bのあとに登録する。
時刻待ち情報55bは、時刻待ちとなっている画像データの情報を保持するために利用され、時刻待ち情報登録部54の要求に応じ0個から複数個登録される。時刻待ち情報55bは、図15に示すように、ジョブID55ba、指定時刻55bb、前情報ポインタ55bc、及び次情報ポインタ55bdを有する。
ジョブID55baは、コマンド判定部53から出力されたジョブIDが記述される。指定時刻55bbは、コマンド判定部53から出力された指定時刻が記述される。前情報ポインタ55bc及び次情報ポインタ55bdは、時刻待ち情報55bが複数存在した場合には、その情報同士をポインタ接続するために使用される。前情報ポインタ55bcは、現在参照している時刻待ち情報55bの前に登録された時刻待ち情報55bのポインタを示し、無い場合には無効値となる。次情報ポインタ55bdは、現在参照している時刻待ち情報55bの次に登録された時刻待ち情報55bのポインタを示し、無い場合には無効値となる。
時刻待ち情報記憶部55は、時刻待ち情報55bを記憶し、時刻到来監視部56により時刻待ち情報55bの参照、変更、削除、及び登録が行われ、図16に示すように、時刻待ち情報先頭ポインタ55a、時刻待ち情報55b、時刻待ち情報最終ポインタ55cを有する。
時刻待ち情報先頭ポインタ55aは、時刻待ち情報記憶部55に一番古く登録された時刻待ち情報55bのポインタが格納される。図16示されている時刻待ち情報先頭ポインタ55aは、時刻待ち情報記憶部55に登録されている♯1の時刻待ち情報55bのポインタを指している。なお、時刻待ち情報記憶部55に時刻待ち情報55bの登録がない場合には、時刻待ち情報先頭ポインタ55aには、無効値が格納される。
時刻待ち情報最終ポインタ55cは、時刻待ち情報記憶部55に一番新しく登録された時刻待ち情報55bのポインタが格納される。図16示されている時刻待ち情報先頭ポインタは、時刻待ち情報記憶部55に登録されている♯nの時刻待ち情報55bのポインタを指している。なお、時刻待ち情報記憶部55に時刻待ち情報55bの登録がない場合には、時刻待ち情報最終ポインタ55cには、無効値が格納される。
図14に示す時刻到来監視部56は、時刻待ち情報記憶部55に登録されているすべての時刻待ち情報55bを、ダイアログ451で指定可能な時刻の最小単位より短い周期で監視し、計時機構部57から読み出した現在の時刻と全ての時刻待ち情報55bに記述されている指定時刻55bbとを比較する。そして、時刻到来監視部56は、現在の時刻と指定時刻55bbとが一致する時刻待ち情報55bがあったならば、指定時刻が到来したものと判断し、時間待ち情報55bに記述されているジョブID55baをジョブIDコマンド送信部52に出力する。
計時機構部57は、現在の時刻を計時し、所定の周期で計時した現在の時刻を時刻到来監視部56に出力する。
画像データ編集部58は、受信した画像データを印刷機構部59が印刷できる形成に編集し、編集した画像データを印刷機構部59に出力する。
印刷機構部59は、画像データ編集部58から入力された編集された画像データを印刷ハードウェアにより用紙に印刷する。
次に、本発明に係る画像データ処理システムの動作を、画像処理装置の動作と印刷装置の動作に分けて説明する。
画像処理装置の動作を説明する際して、1)印刷開始操作が行われたのち、生成された画像データがプリントスプーラ44に蓄積されるまでの動作、2)プリントスプーラ44により蓄積された画像データが印刷装置5により印刷され、または指定時刻待ちになるまでの動作、3)指定時刻が到来した画像データの出力要求をジョブID照合部464によりプリントモニタ46に出力されるまでの動作に分けて説明する。
1)ユーザによりプリンタドライバ45を利用して印刷開始操作が行われたのち、生成された画像データがプリントスプーラ44に蓄積されるまの動作について
図17は、ユーザによりプリンタドライバ45を利用して印刷開始操作が行われたのち、生成された画像データがプリントスプーラ44に蓄積されるまのでの、本発明に係る実施例2の画像処理装置の動作を示すフローチャートである。
ユーザが入力部42に設けられたキーボード又はマウスを用いて、アプリケーション41を実行させて、印刷開始操作を実行させると(ステップS81)、アプリケーション41は、プリンタドライバ45に有するダイアログ451を呼び出し、図10に示すドキュメントのプロパティを示す表示画面を表示部13に表示さる(ステップS82)。
ユーザにより、ダイアログ451に表示されている時刻指定印刷チェックボックス451aがチェックされ、指定時刻ボックス451bに印刷される指定時刻が入力されたのち(ステップS83)、OKボタン451c又はキャンセルボタン451dがクリックされると、アプリケーション41は、クリックされたボタンがOKボタン451cであるか又はキャンセルボタン451dであるかを判断する(ステップS84)。
アプリケーション41は、キャンセルボタン451dがクリックされたと判断した場合には(ステップS84;キャンセルボタン)、ダイアログ451で行った操作を全て無効にし、ダイアログ451を表示部13から消去し、ステップS82に処理を移行し、上述した同様な処理を行う。一方、アプリケーション41は、OKボタン451cがクリックされたと判断した場合には(ステップS84;OKボタン)、表示部43からダイアログ情報を取得する。その後、アプリケーション41は、ダイアログ情報に記述されている指定時刻得をプリンタドライバ45の画像データ形成部452に出力する(ステップS85)。次に、アプリケーション41は、アプリケーションデータ411を用い描画コマンドを生成し(ステップS86)、この描画コマンドをプリントスプーラ44に出力する。
プリントスプーラ44は、アプリケーション41から入力された描画コマンドをプリンタドライバ45に出力する(ステップS87)。
プリンタドライバ45の画像データ形成部452は、描画コマンドが入力されると(ステップS88)、入力された描画コマンドを印刷装置5で印刷可能な画像データに変換する(ステップS89)。
画像データ形成部452は、指定時刻が入力されているか否かを判定する(ステップS90)。画像データ形成部452は、ダイアログ451から指定時刻が入力されていないと判断した場合には(ステップS90;NO)、時刻指定印刷コマンドが埋め込まれていない画像データをプリントスプーラ44に出力し(ステップS91)、ステップS95に処理を移行する。一方、画像データ形成部452は、指定時刻が入力されていると判断した場合には(ステップS90;YES)、プリントモニタ46において解析可能な時刻指定印刷コマンドを作成する(ステップS92)。その後、画像データ形成部452は、作成した時刻指定印刷コマンドを画像データの先頭に埋め込み(ステップS93)、この画像データをプリントスプーラ44に出力する(ステップS94)。
プリントスプーラ44は、プリンタドライバ45から画像データが入力されると、この画像データの先頭に埋め込まれた時刻指定印刷コマンドの有無を意識することなく、この画像データを蓄積し、その後、画像データを識別するジョブIDを割り当て(ステップS95)、処理を終了する。
2)プリントスプーラ44が蓄積する画像データを印刷装置5により印刷され、または画像処理装置内で指定時刻待ちになるまでの動作について
図18及び図19は、プリントスプーラ44が蓄積する画像データを印刷装置5により印刷され、または画像処理装置内で指定時刻待ちになるまでの、本発明に係る実施例2の画像データ処理システムを構築する画像処理装置の動作を示すフローチャートである。
プリントスプーラ44は、ジョブIDにより示された画像データ及びこのジョブIDに対する出力を要求する通知がジョブID照合部464から入力されると、この要求する画像データ及びジョブIDをプリントモニタ46の時刻指定検出部461に出力する(ステップS101)。
時刻指定検出部461は、入力された画像データに埋め込まれている時刻指定印刷コマンドがあるか否かを判断する(ステップS102)。時刻指定検出部461は、画像データに時刻指定印刷コマンドが埋め込まれていないと判断した場合には(ステップS102;NO)、画像データを入出力制御部47に出力する(ステップS103)。
入出力制御部47は、時刻指定検出部461から入力された画像データを印刷装置5に送信し、処理を終了させる。
一方、時刻指定検出部461は、画像データに時刻指定印刷コマンドが埋め込まれていると判断した場合には(ステップS102;YES)、画像データに埋め込まれている時刻指定印刷コマンドに記述されている指定時刻を読出し、この指定時刻と、プリントスプーラ44から入力されたジョブIDとをジョブID判断部462に出力する。その後、時刻指定検出部461は、ジョブID判断部462からの指示を待つ。
ジョブID判断部462は、時刻指定検出部461から指定時刻及びジョブIDが入力されると、ジョブID情報記憶部463中に有するジョブID情報先頭ポインタ463aが有効値であるか否かを判断する(ステップS104)。ジョブID判断部462は、ジョブID情報先頭ポインタ463aが有効値であると判断した場合には(ステップS104;YES)、このポインタ463aが示すジョブID情報463bを参照する(ステップS105)。
次に、ジョブID判断部462は、参照するジョブID情報463bに記述されているジョブID463baと、時刻指定検出部161から入力されたジョブIDとが同一であるか否かを判断する(ステップS106)。ジョブID判断部462は、参照するジョブID情報463bに記述されているジョブID463baと、時刻指定検出部461から入力されたジョブIDとが同一でないと判定した場合には(ステップS106;NO)、この参照する次情報ポインタ463bcが無効値であるか否かを判断する(ステップS107)。
ジョブID判断部462は、この参照する次情報ポインタ463bcが無効値でない、すなわち、有効値であると判断した場合には(ステップS107;NO)、この次情報ポインタ463bcが示すジョブID情報463bを参照し(ステップS108)、ステップS106に移行し、上述した同様な処理を続行する。
一方、ジョブID判断部462は、この参照する次情報ポインタ463bcが無効値でであると判断した場合には(ステップS107;YES)、時刻指定検出部461から入力されたジョブIDを有する画像データのジョブID情報463bを生成する(ステップS109)。すなわち、ジョブID判断部462は、ジョブID463baに時刻指定検出部461から入力されたジョブIDを記述し、前情報ポインタ163bdに参照したジョブID情報463bのポインタを記述し、次情報ポインタ463bcに無効値を記述したジョブID情報463bを生成し、ジョブID情報記憶部463の最後に登録されたジョブID情報の後にこの生成したジョブID情報463bを登録する(ステップS110)。
次に、ジョブID判断部462は、ジョブID情報記憶部463に有するジョブID情報先頭ポインタ及びジョブID情報最終ポインタに、生成したジョブID情報のポインタを格納し(ステップS111)、ステップS121に処理を移行する。
ステップS106において、ジョブID判断部462は、参するジョブID情報463bに記述されているジョブID463baと、時刻指定検出部461から入力されたジョブIDとが同一であると判断した場合には(ステップS106;YES)、時刻指定検出部461に出力された画像データが指定時刻を経過した画像データであると認識し、このジョブID情報463bをジョブID情報記憶部463から読出す(ステップS112)。
その後、ジョブID判断部462は、読み出したジョブID情報463bに記述されている前情報ポインタ463bbを、次情報ポインタ163bcにより示されるジョブID情報463bに記述されている前情報ポインタ463bbに変更し、更に、読み出したジョブID情報463bに記述されている次情報ポインタ463bcを、前情報ポインタ463bbにより示されるジョブID情報463bに記述されている次情報ポインタ463bcに変更する。次に、ジョブID判断部462は、先に読み出したジョブID情報463bをジョブID情報記憶部463から削除する(ステップS113)。
その後、ジョブID判断部462は、ジョブID情報記憶部463にジョブID情報463bが記憶されているか否かを判断する(ステップS114)。ジョブID判断部462は、ジョブID情報記憶部463にジョブID情報463bが記憶されていると判断した場合には(ステップS114;YES)、ステップS116に処理を移行させる。一方、ジョブID判断部462は、ジョブID情報記憶部463にジョブID情報463bが記憶されていないと判断した場合には(ステップS114;NO)、ジョブID情報先頭ポインタ463a及びジョブID情報最終ポインタ463cに無効値を格納する(ステップS115)。
次に、ジョブID判断部462は、時刻指定検出部461に対してプリントスプーラ14から入力された画像データを入出力制御部47に出力する要求の通知(上記出力要求通知)を出力すると共に、プリントスプーラ44に対してジョブIDにより示された画像データを削除する要求を出力する(ステップS116)。
時刻指定検出部461は、ジョブID判断部462から出力要求通知が入力されると、プリントスプーラ44から入力された画像データに埋め込まれた時刻指定印刷コマンドを画像データから削除し、この時刻指定印刷コマンドを削除した画像データを入出力制御部47に出力する(ステップS117)。
入出力制御部47は、時刻指定検出部461から画像データが入力されると、このデータを印刷装置5に送信し、処理を終了する。
なお、プリントスプーラ44は、ジョブID判断部462からジョブIDにより示された画像データを削除する要求の通知が入力されると、このジョブIDにより示された画像データを削除する。
ステップ104において、ジョブID判断部462は、ジョブID情報先頭ポインタ163aが有効値でないと判断した場合(ステップS104;NO)、すなわち、ジョブID情報先頭ポインタが無効値であると判断した場合には、この画像データのジョブID情報463bを生成する(ステップS118)。すなわち、ジョブID判断部462は、ジョブID情報463b中のジョブID463baに時刻指定検出部461から入力されたジョブIDを記述し、前情報ポインタ463bb及び次情報ポインタ463bcに無効値を記述したジョブID情報463bを生成し、このジョブID情報463bをジョブID情報記憶部463に登録する(ステップS119)。
次に、ジョブID判断部462は、ジョブID情報記憶部463に有するジョブID情報先頭ポインタ463a及びジョブID情報最終ポインタ463cに生成したこのジョブID情報463bのポインタを格納する(ステップS120)。その後、ジョブID判断部462は、時刻指定検出部461に対して、プリントスプーラ44から入力された時刻指定コマンド及びジョブIDにより生成されたジョブIDコマンド、並びに印刷開始時刻コマンドを入出力制御部47に出力させる要求の通知と、この画像データを削除する要求の通知(上記削除要求通知)を時刻指定検出部461に出力する(ステップS121)。
その後、時刻指定検出部461は、時刻指定コマンド、ジョブIDコマンド、及び印刷開始時刻コマンドをプリントスプーラ14を入出力制御部47に出力すると共に、プリントスプーラ44から入力された画像データを入出力制御部47に出力することなく破棄し(ステップS122)、処理終了する。
3)指定時刻が到来した画像データの出力要求をジョブID照合部464によりプリントモニタ46に出力されるまでの動作について
図20は、指定時刻が到来した画像データの出力要求をジョブID照合部464によりプリントモニタ46に出力されるまでの、本発明に係る画像データ処理システムを構築する画像処理装置の動作を示すフローチャートである。ジョブIDコマンド受信部465は、入出力制御部47を介して印刷装置5から送信されるデータを周期的に監視し、このデータがジョブIDコマンドであるか否かを判断する(ステップS131)。
ジョブIDコマンド受信部465は、受信したデータがジョブIDコマンドでないと判断した場合には(ステップS131;NO)、ジョブIDコマンドが受信するまで同様な処理を続行する。一方、ジョブIDコマンド受信部465は、送信されてきたデータがジョブIDコマンドであると判断した場合には(ステップS131;YES)、この受信したジョブIDコマンドに記述されているジョブIDを読出し、このジョブIDをジョブID照合部464に出力する。
ジョブID照合部464は、ジョブIDコマンド受信部465からジョブIDが入力されると、ジョブID情報記憶部463に有するジョブID情報先頭ポインタ463aが示すジョブID情報463bに記述されているジョブID463baと入力されたジョブIDとが一致するか否かを判断する(ステップS133)。ジョブID照合部464は、互いに一致すると判断した場合には(ステップS133;YES)、このジョブIDに示された画像データを時刻指定検出部461に出力させる要求をプリントスプーラ44に出力し、ステップS131に処理を移行させ、上述した処理と同様な処理を続行させる。一方、ジョブID照合部464は、一致しないと判断した場合には(ステップS133;NO)、ジョブID情報先頭ポインタ463aが示すジョブID情報463bに記述されている次情報ポインタ463bcが無効値であるか否かを判断する(ステップS135)。
ジョブID照合部464は、ジョブID情報先頭ポインタ463aが示すジョブID情報463bに記述されている次情報ポインタ463bcが無効値であると判断した場合には(ステップS135;YES)、ステップS131に処理を移行させ、上述した処理と同様な処理を続行させる。一方、ジョブID照合部464は、ジョブID情報先頭ポインタ463aが示すジョブID情報463bに記述されている次情報ポインタ463bcが有効値であると判断した場合には(ステップS135;NO)、次情報ポインタ463bcに示すジョブID情報463bを参照し、ステップS133に処理を移行させ、上述したものと同様な処理を続行させる。
続いて、本発明に係る実施例2の画像データ処理システムを構築する印刷装置の動作を説明する。
印刷装置の動作を説明する際して、1)時刻待ち情報を時刻待ち情報記憶部55に登録するまでの動作と、2)時刻待ち情報の時刻到来を確認し、該当する時刻待ち情報のジョブIDコマンドを画像処理装置4に送信するまでの動作とに分けて説明する。
1)時刻待ち情報を時刻待ち情報記憶部55に登録するまでの動作について
図21は、時刻待ち情報を時刻待ち情報記憶部55に登録するまでの、本発明に係る実施例2の画像データ処理システムを構築する印刷装置の動作を示すフローチャートである。デバイス入出力制御部51は、画像処理装置4からデータを受信したか否かを判断する(ステップS141)。デバイス入出力制御部51は、画像処理装置4からデータを受信していないと判断した場合には(ステップS141;NO)、データを受信するまで同様な判断を続行する。一方、デバイス入出力制御部51は、画像処理装置4からデータを受信したと判断した場合には(ステップS141;YES)、この受信したデータをコマンド判定部53に入力する。
コマンド判定部53は、デバイス入出力制御部51からデータが入力されると、このデータがコマンドであるか画像データであるかを判断する(ステップS142)。コマンド判定部53は、コマンドであると判断した場合には(ステップS142;YES)、入力されたコマンドが、ジョブIDコマンド462a及び印刷開始時刻コマンド462bが共に入力されたか否かを判断する(ステップS143)。コマンド判定部53は、入力されたコマンドが、ジョブIDコマンド462a及び印刷開始時刻コマンド462bのうちのいずれか1つであると判断した場合には(ステップS143;NO)、入力されたコマンドを破棄し(ステップS144)、ステップ141に処理を移行させ、上述したと同様な処理を続行させる。一方、コマンド判定部53は、入力されたコマンドが、ジョブIDコマンド462a及び印刷開始時刻コマンド462bが共に入力されたと判断した場合には(ステップS143;YES)、入力されたジョブIDコマンド462aに記述されているジョブID及び印刷開始時刻コマンド462bに記述されている指定時刻を時刻待ち情報登録部54に出力する。
時刻待ち情報登録部54は、コマンド判定部53からジョブID及び指定時刻が入力され、その後、時刻待ち情報記憶部55に有する時刻待ち情報先頭ポインタ55aが無効値であるか否かを判断する(ステップS145)。時刻待ち情報登録部54は、時刻待ち情報記憶部55に有する時刻待ち情報先頭ポインタ55aが無効値であると判断した場合には(ステップS145;YES)、入力されたジョブIDをジョブID55baに記述し、かつ、入力された指定時刻を指定時刻55bbに記述し、前情報ポインタ55bc及び次情報ポインタ55bdに無効値を記述した時刻待ち情報55bを生成し(ステップS146)、この時刻待ち情報55bを時刻待ち情報記憶部55に登録する(ステップS147)。
次に、時刻待ち情報登録部54は、時刻待ち情報記憶部55に有する時刻待ち情報先頭ポインタ55a及び時刻待ち情報最終ポインタ55cに生成した時刻待ち情報55bのポインタを格納する(ステップS148)。
その後、時刻待ち情報登録部54は、時刻到来監視部56に時刻の監視を開始させる通知(時刻到来監視開始通知)出力し(ステップS149)、ステップS141に処理を移行させ、上述したものと同様な処理を続行する。
ステップS145において、時刻待ち情報登録部54は、時刻待ち情報記憶部55に有する時刻待ち情報先頭ポインタ55aが無効値でない、すなわち有効値であると判断した場合には(ステップS145;NO)、時刻待ち情報先頭ポインタ55aにより示された時刻待ち情報55bを参照し(ステップS150)、この参照する時刻待ち情報55bの次情報ポインタ55bdが無効値であるか否かを判断する(ステップS151)。
時刻待ち情報登録部54は、この参照する時刻待ち情報55bの次情報ポインタ55bdが有効値であると判断した場合には(ステップS151;NO)、この参照した時刻待ち情報bに記述されている次情報ポインタ55bdを参照し(ステップS152)、ステップS151に処理を移行させ、上述したものと同様な処理を実行させる。一方、時刻待ち情報登録部54は、この参照する時刻待ち情報55bの次情報ポインタ55bdが無効値である判断した場合には(ステップS151;YES)、先に入力されたジョブIDをジョブID55baに記述し、かつ、入力された指定時刻を指定時刻55bbに記述し、前情報ポインタ55bcに時刻待ち情報最終ポインタ55cのポインタを記述し、次情報ポインタ55bdに無効値を記述した時刻待ち情報55bを生成し(ステップS153)、この時刻待ち情報55bを時刻待ち情報記憶部55に登録する(ステップS154)。
次に、時刻待ち情報登録部54は、時刻待ち情報記憶部55に有する時刻待ち情報最終ポインタ55cに生成した時刻待ち情報55bのポインタを格納し(ステップS155)、ステップS141に処理を移行させ上述したものと同様な処理を続行させる。
ステップS142において、コマンド判定部53は、受信したデータが画像データであると判断した場合には(ステップS142;画像データ)、この画像データを画像データ編集部58に出力する。
画像データ編集部58は、受信した画像データを印刷機構部59が印刷できる形成に編集し(ステップS156)、編集した画像データを印刷機構部59に出力する。
印刷機構部59は、画像データ編集部58から入力された編集された画像データを印刷ハードウェアにより用紙に印刷し(ステップS157)、ステップS141に処理を移行し、上述したものと同様な処理を続行する。
図22は、時刻到来監視部56が時刻待ち情報55bの時刻到来を確認し、ジョブIDをジョブIDコマンドを画像処理装置4に送信するまでの、本発明に係る画像データ処理システムを構成する印刷装置の動作を示すフローチャートである。時刻到来監視部56は、時刻待ち情報登録部54から時刻到来監視通知が入力されたか否かを判断する(ステップS161)。時刻到来監視部56は、時刻到来監視通知が入力されていない判断した場合には(ステップS161;NO)、時刻到来監視通知が時刻待ち情報登録部54から入力されるのを待つ。一方、時刻到来監視部56は、時刻到来監視通知が入力されたと判断した場合には(ステップS161;YES)計時機構部57から現時刻を読み出す(ステップS162)。
次に、時刻到来監視部56は、時刻待ち情報記憶部55に有する時刻待ち情報先頭ポインタが示す時刻待ち情報55bを参照し(ステップS163)、この参照した時刻待ち情報55bに記述されている指定時刻55bbと計時機構部57から読み出した現時刻とを比較し、現時刻が指定時刻55bbを経過しているか否かを判断する(ステップS164)。時刻到来監視部56は、現時刻が指定時刻55bbを経過していないと判断した場合には(ステップS164;NO)、ステップS169に処理を移行させる。一方、時刻到来監視部56は、現時刻が指定時刻55bbを経過していると判断した場合には(ステップS164)、参照した時刻待ち情報55bに記述されているジョブID55baを読出し、読み出したジョブID55baをジョブIDコマンド送信部52に出力する。
ジョブIDコマンド送信部52は、時刻到来監視部56からジョブID55baが入力されるとこのジョブID55baが記述されたジョブIDコマンドを作成し、デバイス入出力制御部51に出力する(ステップS165)。
デバイス入出力制御部51は、入力されたジョブIDコマンドを画像処理装置4の入出力制御部47に出力する。
時刻到来監視部56は、ジョブID55baをジョブIDコマンド送信部52に出力すると、参照した時刻待ち情報55bに記述されている前情報ポインタ55bcを、次情報ポインタ55bdにより示される時刻待ち情報55bに記述されている前情報ポインタ55bcに変更し、更に、参照した時刻待ち情報55bに記述されている次情報ポインタ55bdを、前情報ポインタ55bcにより示される時刻待ち情報55bに記述されている次情報ポインタ55bdに変更する。なお、時刻到来監視部56は、参照した時刻待ち情報55bに記述されている次情報ポインタ55bdが無効値の場合には、前情報ポインタ55bcにより示される時刻待ち情報55bに記述されている次情報ポインタ55bdを無効値に変更する。次に、時刻到来監視部56は、参照した時刻待ち情報55bを時刻待ち情報記憶部55から削除する(ステップS166)。
次に、時刻到来監視部56は、時刻待ち情報55bが時刻待ち情報記憶部55に記憶されているか否かを判断する(ステップS167)。時刻到来監視部56は、時刻待ち情報55bが時刻待ち情報記憶部55に記憶されていないと判断した場合には(ステップS167;NO)、時刻待ち情報記憶部55に有する時刻待ち情報先頭ポインタ55a及び時刻待ち情報最終ポインタ55cに無効値を格納し(ステップ168)、ステップS161に処理を移行させ、上述したものと同様な処理を続行する。
一方、時刻到来監視部56は、時刻待ち情報55bが時刻待ち情報記憶部55に記憶されている判断した場合には(ステップS167;YES)、現在参照している時刻待ち情報55b、すなわち、先に削除した時刻待ち情報55bの次情報ポインタ55bdに示された時刻待ち情報55bに記述されている次情報ポインタ55bdが無効値であるか否かを判断する(ステップS169)。
時刻到来監視部56は、現在参照している時刻待ち情報55bに記述されている次情報ポインタ55bdが無効値であると判断した場合には(ステップS169;YES)、ステップS161に処理を移行し上述したと同様な処理を続行する。一方、時刻到来監視部56は、現在参照している時刻待ち情報55bに記述されている次情報ポインタ55bdが無効値でない、すなわち有効値であると判断した場合には(ステップS169;NO)、参照する時刻待ち情報55bに記述されている次情報ポインタ55bdが示す時刻待ち情報55bを参照し(ステップS170)、ステップS164に処理を移行し、上述したものと同様な処理を続行する。
この実施例2によれば、印刷装置5から受信したジョブIDコマンドに記述されているジョブIDの画像データを、時刻指定検出部461がプリントスプーラ44から取得し、この取得した画像データを印刷装置5に供給するので、ネットワーク接続されたユーザ端末から時刻指定された画像データが大量に送られてきた場合でも、印刷装置が大容量のメモリを搭載せずにこれらの画像データを印刷装置が印刷することができる。
また、この実施例2によれば、印刷装置5の時刻到来監視部56が計時機構部57から読み出した現時刻を基にして、画像データが印刷される指定時刻が到来したか否かを監視するので、画像処理装置4の処理の負荷を軽減することができると共に、装置を小型化することができる。