A.第1実施例:
A−1:システム1000の構成
次に、本発明の実施の形態を実施例に基づき説明する。図1は、本発明の一実施例としてのシステム1000の構成を示すブロック図である。システム1000は、複数個の複合機200A、200Bと、複数個の端末装置400A〜400Cと、を備えている。複数個の複合機200A、200Bと、複数個の端末装置400A〜400Cとは、LAN80(Local Area Network)を介して、通信可能に接続されている。
複合機200Aは、CPU210と、ハードディスクドライブやEEPROMなどの不揮発性記憶装置220と、RAMなどの揮発性記憶装置230と、所定の方式(例えば、レーザ方式や、インクジェット方式)で画像を印刷するプリンタ部240と、光学的に対象物(例えば、紙の文書)を読み取ることによってスキャンデータを取得するスキャナ部250と、タッチパネルやボタンなどの操作部260と、タッチパネルと重畳された液晶パネルなどの表示部270と、端末装置400Aなどの外部装置とデータ通信を行うためのインターフェースを含む通信部280と、赤外線センサ290と、を備えている。通信部280のインターフェースは、LAN80に接続するためのインターフェース(例えば、イーサネット(登録商標)規格に準拠したインターフェース)を含んでいる。赤外線センサ290は、赤外線を検出可能な受光素子を含む。赤外線センサ290は、CPU210が、複合機200Aの周囲に人がいるか否かを検出するために用いられる。
不揮発性記憶装置220は、コンピュータプログラムPG1を格納している。プログラムPG1は、複合機200の出荷時に、予め不揮発性記憶装置220に記憶される形態で提供される。プログラムPG1は、ネットワークを介して複合機200に接続されたサーバからダウンロードされる形態で提供されても良く、CD−ROMやDVD−ROMなどに格納された形態で提供されても良い。揮発性記憶装置230には、CPU210が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域231が設けられている。
CPU210は、プログラムPG1を実行することにより、プリンタ部240やスキャナ部250を制御して印刷やスキャンを実行する処理や、複合機200Aのステータスに関する処理を実行する。具体的には、CPU210は、複合機200Aのステータスを監視し、検出することができる。検出される複合機200Aのステータスは、例えば、エラーと、複合機200Aの周囲に人がいるか否かと、を含む。エラーは、例えば、印刷材がないこと(トナー切れやインク切れ)、紙詰まり、印刷用紙がないことなどを含む。検出されたステータスは、詳細は後述する処理に従って、端末装置400A、400B、400Cに通知される。
端末装置400Aは、例えば、パーソナルコンピュータなどの計算機である。端末装置400Aは、CPU410と、ハードディスクドライブなどの不揮発性記憶装置420と、RAMなどの揮発性記憶装置430と、マウスやキーボードなどの操作部460と、液晶ディスプレイなどの表示部470と、外部機器と接続するためのインターフェースを含む通信部480と、複合機200A、200Bなどの外部装置とデータ通信を行うためのインターフェースを含む通信部480と、を備えている。通信部480のインターフェースは、LAN80に接続するためのインターフェースを備えている。
不揮発性記憶装置420は、ドライバプログラムPG2と、モニタプログラムPG3と、を格納している。
CPU410は、ドライバプログラムPG2を実行することにより、プリンタドライバ60として機能する。プリンタドライバ60は、例えば、ユーザの指示に基づいて、印刷指示を送信する。プリンタドライバ60は、ユーザの指示に応じて、複数個の複合機200A、200Bのいずれにも印刷指示を送信することができる。
CPU410は、モニタプログラムPG3を実行することにより、ステータスモニタ300として機能する。ステータスモニタ300は、複数個の複合機200A、200Bからのステータスの通知に基づいて、端末装置400Aの表示部470にステータスに関する情報の表示を行う。例えば、ステータスモニタ300は、端末装置400A、400BのIPアドレスをそれぞれ記憶している。ステータスモニタ300は、ステータスの通知を受信すると、当該通知の送信元のIPアドレスに基づいて、どの複合機からの通知であるかを特定することができる。ステータスモニタ300が起動されている状態において、ステータスモニタ300は、通常時は、表示部470には何も表示しないが、ステータスの通知を受信したときに、表示部470上に、どの複合機が、どのようなステータスであるかを示すウインドウ(後述)をポップアップ表示する。
なお、複合機200Bは、複合機200Aと同一の構成を有し、端末装置400B、400Cは、端末装置400Aと同一の構成を有する。
A−2: システム1000の動作:
システム1000の動作について、複合機200Aの処理を中心に説明するが、複合機200Bは、複合機200Aと同様に動作する。図2、図3は、複合機200Aの処理のフローチャートである。この複合機200Aの処理は、複合機200Aが印刷指示を受け付け可能な状態にあるときに、常に実行されている。このフローチャートは、1個の印刷指示に着目して複合機200Aの処理フローを示している。複合機200Aは、図2、図3の処理フローを並列して複数実行することによって、複数個の印刷指示を受け付けることができる。
ステップS10では、複合機200AのCPU210は、LAN80を介して端末装置400A〜400Bから印刷指示を受信したか否かを監視している。CPU210は、印刷指示を受信していない場合には(ステップS10:NO)、印刷指示を受信するまで待機する。CPU210は、印刷指示を受信した場合には(ステップS10:YES)、受信された印刷指示に基づいて、印刷ジョブを生成する(ステップS15)。生成された印刷ジョブは、不揮発性記憶装置220あるいは揮発性記憶装置230に、生成された順に格納される。印刷ジョブは、端末装置400A〜400Bのうちの印刷指示の送信元の端末装置(以下、指示送信元端末とも呼ぶ)を示す情報(例えば、IPアドレス)、印刷対象の画像を表す画像データ、印刷条件を示す情報などを、含む。印刷ジョブの生成に必要な情報は、例えば、印刷指示ごとに指示送信元端末から取得される。本ステップで生成される印刷ジョブを処理対象の印刷ジョブとも呼ぶ。
印刷条件は、カラー/モノクロの別、印刷用紙のサイズ、印刷部数などに加えて、本実施例では、機密印刷の指定を含み得る。機密印刷の指定は、指示送信元端末のユーザの指示に基づいて、印刷指示に含められる。機密印刷が指定されている場合には、ユーザによる強制開始指示(後述)がない限り、当該印刷指示に基づく印刷は、複合機200の周囲に人がない状態で実行され、複合機200の周囲に人がいる状態では、実行されない。ユーザは、機密印刷を指定して印刷指示を行うことによって、印刷済みの用紙を他人に見られることを防止できる。
ステップS20では、CPU210は、ステップS10で受信された印刷指示に機密印刷の指定が含まれているか否かを判断する。機密印刷の指定が含まれない場合には(ステップS20:NO)、CPU210は、通常の印刷処理を行う(ステップS30〜S60)。
具体的には、ステップS30では、CPU210は、未通知の複合機200Aのエラーが検出されたか否かを判断する。未通知のエラーは、検出された後に、指示送信元端末に通知されていないエラーである。
未通知のエラーが検出された場合には(ステップS30:YES)、CPU210は、当該エラーを指示送信元端末に通知する(ステップS40)。指示送信元端末のCPU410(ステータスモニタ300)は、エラーの通知を受信すると、表示部470にエラー情報表示ウインドウを表示する。指示送信元端末への通知は、指示送信元端末のIPアドレスを宛先のIPアドレスとして指定して、通知の内容を示すデータを送信することによって行われる。エラーの通知に限らず、本実施例の指示送信元端末への全ての通知について、同様である。
図4は、指示送信元端末に表示されるウインドウの一例を示す図である。図4(A)は、エラー情報表示ウインドウの一例を示している。このエラー情報表示ウインドウPW1は、紙詰まりの通知が複合機200Aから受信された場合に表示される。エラー情報表示ウインドウPW1は、エラーが発生している複合機と発生しているエラーの内容とを示すメッセージMS1と、エラー情報表示ウインドウPW1の表示を消去する要求を受け付ける消去ボタンCBと、を含んでいる。エラー情報表示ウインドウPW1が表示部470に表示されることによって、ユーザは、複合機200Aにおいてエラーが発生したことを認識することができる。
未通知のエラーが検出されていない場合には(ステップS30:NO)、CPU210は、ステップS40をスキップして、ステップS50に処理を進める。
ステップS50では、CPU210は、先行する印刷があるか否かを判断する。先行する印刷は、未完了の印刷のうち、複合機200AにステップS10より先に受信された印刷指示に基づく印刷ジョブの印刷である。先行する印刷がある場合には(ステップS50:YES)、CPU210は、ステップS30に戻る。すなわち、CPU210は、エラーの発生を監視しながら、先行する印刷が完了するまで待機する。
先行する印刷がない場合には(ステップS50:NO)、CPU210は、処理対象の印刷ジョブの印刷を実行して(ステップS60)、処理を終了する。このように、複数個の印刷指示が受信された場合には、通常は、印刷指示が受信された順番に、これらの印刷指示に基づく印刷ジョブの印刷が実行される。
ステップS20に戻って説明を続ける。処理対象の印刷指示に機密印刷の指定が含まれている場合には(ステップS20:YES)、CPU210は、先行する印刷があるか否かを判断する(ステップS70)。先行する印刷がない場合には(ステップS70:NO)、後述する図3のステップS120に処理が進められる。
先行する印刷がある場合には(ステップS70:YES)、CPU210は、処理対象の印刷ジョブの印刷の開始時刻を算出する(ステップS80)。具体的には、CPU210は、先行する印刷に要する時間を、先行する印刷ごとに算出し、先行する印刷に要する時間の合計時間を算出する。CPU210は、現在時刻から当該合計時間だけ経過した後の時刻を、印刷開示時刻として算出する。
ステップS90では、CPU210は、現在時刻から印刷開始時刻までは、所定時間(本実施例では、1分)以内であるかを判断する。印刷開始時刻まで所定時間以内でない場合には(ステップS90:NO)、CPU210は、未通知の複合機200Aのエラーが検出されたか否かを判断する(ステップS100)。未通知のエラーが検出された場合には(ステップS100:YES)、CPU210は、当該エラーを指示送信元端末に通知する(ステップS110)。指示送信元端末のステータスモニタ300は、エラーの通知を受信すると、表示部470に、上述したエラー情報表示ウインドウ(図4(A)参照)を表示する。
未通知のエラーが検出されていない場合(ステップS100:NO)、および、エラーを指示送信元端末に通知した(ステップS110)後に、CPU210は、ステップS90に戻る。すなわち、CPU210は、エラーの発生を監視しながら、処理対象の印刷指示に基づく印刷の印刷開始時刻まで所定時間以内になるまで待機する。
印刷開始時刻まで所定時間以内である場合(ステップS90:YES)、および、先行する印刷がない場合には(ステップS70:NO)、CPU210は、複合機200Aの周囲に人が検出されているか否かを判断する(ステップS120)。すなわち、CPU210は、赤外線センサ290を用いて、複合機200Aの周囲に人がいるか否かを検出する。
周囲に人が検出されていない場合には(ステップS120:NO)、CPU410は、人検出フラグをOFFに設定する。すなわち、既に人検出フラグがOFFである場合には、人検出フラグはOFFのまま維持され、人検出フラグがONである場合には、人検出フラグはOFFに変更される。なお、人検出フラグの初期値は、OFFである。人検出フラグは、後述するように、複合機200Aの周囲に人がいる旨の通知を行うか否かの判断に用いられるフラグである。
ステップS130では、CPU210は、先行する印刷があるか否かを判断する(ステップS130)。先行する印刷がある場合には(ステップS130:YES)、後述するステップS190に処理を進める。先行する印刷がない場合には(ステップS130:NO)、CPU210は、機密印刷の印刷開始を指示送信元端末に通知する(ステップS140)。
指示送信元端末のステータスモニタ300は、機密印刷の印刷開始の通知を受信すると、表示部470に印刷開始表示ウインドウを表示する。図4(B)は、印刷開始表示ウインドウの一例を示している。この印刷開始表示ウインドウPW2は、複合機200Aにて機密印刷が開始された旨を示すメッセージMS2と、消去ボタンCBと、を含んでいる。印刷開始表示ウインドウPW2が表示部470に表示されることによって、ユーザは、複合機200Aにおいて機密印刷が開始されたことを認識することができる。
ステップS150では、CPU210は、処理対象の印刷ジョブの印刷を実行して、処理を終了する。この結果、処理対象の印刷ジョブに対応する印刷指示に機密印刷の指定が含まれる場合に、複合機200Aの周囲に人がいない状態で、印刷が実行される。
ステップS120に戻って説明を続ける。周囲に人が検出されている場合には(ステップS120:YES)、CPU210は、人検出フラグがONであるか否かを判断する(ステップS160)。人検出フラグがOFFである場合には(ステップS160:NO)、CPU210は、周囲に人がいることを指示送信元端末に通知する(ステップS165)。指示送信元端末のステータスモニタ300は、周囲に人がいることの通知を受信すると、表示部470に人検出表示ウインドウを表示する。図4(C)は、人検出表示ウインドウの一例を示している。この人検出表示ウインドウPW3は、複合機200Aの周囲に人がいることと、機密印刷を開始しないことと、を示すメッセージMS3と、消去ボタンCBと、を含んでいる。人検出表示ウインドウPW3が表示部470に表示されることによって、ユーザは、複合機200Aの周囲に人がいるので、機密印刷が開始されないことを認識することができる。
人検出表示ウインドウPW3は、さらに、強制的に印刷を開始することの要求(強制開始要求)が可能であることを示すメッセージMS4と、ユーザが強制開始要求を入力するためのボタンBT1と、を含んでいる。ユーザによって、ボタンBT1がクリックされると、ステータスモニタ300は、周囲に人がいることの通知の送信元のIPアドレスを宛先のIPアドレスとして、強制開始指示を送信する。本実施例の強制開始指示は、複合機200Aの周囲に人がいるにも拘わらずに、機密印刷が指定された印刷ジョブの印刷を開始することの指示である。この結果、強制開始指示は、周囲に人がいることの通知の送信元である複合機200Aによって受信される。
周囲に人がいることの通知の後に、CPU210は、人検出フラグをOFFからONに変更する(ステップS170)。
ステップS160にて、人検出フラグがONである場合には(ステップS160:YES)、CPU210は、ステップS165とステップS170をスキップして、処理をステップS175に進める。すなわち、周囲に人がいることの通知が行われることなく、ステップS175に処理が進められる。この結果、例えば、複合機200Aの周囲に人がいる状態が継続する場合に、周囲に人がいることの通知が無駄に繰り返されることを抑制することができる。
ステップS175では、CPU210は、指示送信元端末から、上述した強制開始指示を受信しているか否かを判断する。強制開始指示が受信されている場合には(ステップS160:YES)、CPU210は、上述したステップS130に処理を進める。この結果、先行する印刷がないことを条件に(ステップS130:NO)、複合機200Aの周囲に人が検出されていても、処理対象の印刷ジョブの機密印刷が実行される(ステップS150)。
強制開始指示が受信されていない場合には(ステップS175:NO)、CPU210は、CPU210は、後続の通常印刷はあるか否かを判断する(ステップS180)。すなわち、処理対象の印刷ジョブに関する印刷指示より後に受信された他の印刷指示であって、かつ、機密印刷の指定を含まない他の印刷指示に基づく印刷ジョブが、複合機200Aに格納されているか否かを判断する。
後続の印刷がない場合には(ステップS180:NO)、CPU210は、未通知の複合機200Aのエラーが検出されたか否かを判断する(ステップS190)。未通知のエラーが検出された場合には(ステップS190:YES)、CPU210は、当該エラーを指示送信元端末に通知する(ステップS200)。指示送信元端末のステータスモニタ300は、エラーの通知を受信すると、表示部470に、上述したエラー情報表示ウインドウ(図4(A)参照)を表示する。
未通知のエラーが検出されていない場合(ステップS190:NO)、および、エラーを指示送信元端末に通知した(ステップS200)後に、CPU210は、ステップS120に戻る。
後続の通常印刷がある場合には(ステップS190:YES)、CPU210は、後続の通常印刷を先に行うことを指示送信元端末に通知する(ステップS210)。指示送信元端末のステータスモニタ300は、後続の通常印刷を先に行うことの通知を受信すると、表示部470に、後続の通常印刷を先に行うことを表示するウインドウ(図示省略)を表示する。このウインドウは、後続の通常印刷を先に行うことを示すメッセージを含み、ユーザにその旨を認識させることができる。
ステップS220では、CPU210は、後続する通常印刷を、先行する印刷に変更する。すなわち、CPU210は、後続する通常印刷を、処理対象の印刷ジョブの印刷より先に実行するように、印刷順序を変更する。
印刷順序の変更に続いて、CPU210は、人検出フラグをONからOFFに変更して(ステップS230)、ステップS70(図2)に戻る。この結果、印刷順序が変更された後における処理対象の印刷ジョブの印刷開始時刻が算出される(ステップS80)。そして、印刷開始時刻まで所定時間以内となった時点で(ステップS90:YES)、複合機200Aの周囲に人がいる場合には(ステップS120:YES)、周囲に人がいることが、再度、指示送信元端末に通知される(ステップS165)。
以上説明した本実施例によれば、CPU210は、処理対象の印刷ジョブの印刷が機密印刷である場合に、印刷開始時刻より所定時間だけ前の特定のタイミングに到達したか否かを判断する(ステップS90)。そして、CPU210は、特定のタイミングに到達する前であっても後であっても、未通知のエラーが検出された場合には、当該エラーを指示送信元端末に通知する(ステップS110、S200)。さらに、CPU210は、特定のタイミングに到達する前には、周囲に人がいることを指示送信元端末に通知することはない。CPU210は、特定のタイミングに到達した後には、複合機200Aの周囲に人が検出された場合には、周囲に人がいることを指示送信元端末に通知する(ステップS165)。
換言すれば、複合機200AのCPU210は、(a)複合機200Aのステータスが、未通知のエラーが発生している状態であり、かつ、特定のタイミングに到達する前である場合に、未通知のエラーが発生していることを指示送信元端末に通知し、(b)複合機200Aのステータスが、周囲に人がいる状態であり、かつ、特定のタイミングに到達する前である場合に、周囲に人がいることを指示送信元端末に通知せず、(c)複合機200Aのステータスが、未通知のエラーが発生している状態であり、かつ、特定のタイミングに到達した後である場合に、未通知のエラーが発生していることを指示送信元端末に通知し、(d)複合機200Aのステータスが、周囲に人がいる状態であり、かつ、特定のタイミングに到達した後である場合に、周囲に人がいることを指示送信元端末に通知する。
トナー切れや用紙切れなどのエラーは、解消するためにはユーザによる複合機200Aに対する処置(トナーカートリッジの交換や用紙の補給)を要し、自然には解消しない。このために、これらのエラーが発生した場合には、直ちに、エラーの発生を通知することが好ましい。一方、複合機200Aの周囲に人がいる状態は、機密印刷が開始されるまでに自然に解消される可能性があるので、印刷開始時刻より過度に前のタイミングで、周囲に人がいることをユーザに知らせる必要性は低い。むしろ、このようなタイミングで、人がいることを示す表示が表示部470に表示されることは、ユーザにとって有用でなく、ユーザにとって煩わしい可能性が高い。ただし、複合機200Aの周囲に人がいる状態では、機密印刷を開始できないので、印刷開始時刻に比較的近い適切なタイミングで、周囲に人がいることが通知されることが好ましい。この通知がないと、ユーザは印刷が開始されないことを認識できないからである。本実施例によれば、エラーの発生は、特定のタイミングとは無関係に通知され、周囲に人がいることは特定のタイミングに到達した後にのみ、通知される。
この結果、複合機200Aは、通知対象のステータスの種類に応じた適切なタイミングで、ステータスを端末装置に通知することができる。この結果、複合機200Aは指示送信元端末を用いて、複合機200Aのステータスを、適切なタイミングでユーザに知らせることができる。
さらに、CPU210は、周囲に人がいることの検出に応じて、強制開始指示を指示送信元端末から受け付ける(図4(C))。CPU210は、周囲に人がいることが指示送信元端末に通知された後に、周囲に人がいる状態が継続しており、かつ、強制開始指示が受け付けられていない場合に(ステップS120:YES、かつ、ステップS175:NO)、処理対象の印刷ジョブの印刷を開始しない。CPU210は、周囲に人がいることが指示送信元端末に通知された後に、周囲に人がいる状態が解消された場合(ステップS120:NO)、および、強制開始指示が受け付けられた場合(ステップS175:YES)のいずれかの場合に、処理対象の印刷ジョブの印刷を開始する(ステップS150)。この結果、複合機200Aは、複合機200Aのステータスの変化や強制開始指示に基づいて、適切なタイミングで印刷を開始することができる。
さらに、CPU210は、周囲に人がいる状態が継続しており、かつ、強制開始指示が受け付けられていない場合(ステップS120:YES、かつ、ステップS175:NO)であって、後続の通常印刷がある場合には(ステップS180:YES)、後続の通常印刷を、処理対象の印刷ジョブの印刷より前に実行する(ステップS220)。この結果、複合機200Aは、効率良く印刷を行うことができる。
CPU210は、後続の通常印刷が、処理対象の印刷ジョブの印刷より前に実行される場合に、特定のタイミングに到達したか否かを再度判断し(ステップS90)、特定のタイミングに到達した後に、周囲に人がいることが検出される場合に(ステップS120:YES)、周囲に人がいることを指示送信元端末に再度通知する(ステップS165)。この結果、複合機200Aは、後続の通常印刷が処理対象の印刷ジョブの印刷より前に実行される場合に、周囲に人がいることを指示送信元端末に適切に通知できる。
また、CPU210は、処理対象の印刷ジョブの印刷指示が、機密印刷の指定を含む場合に(ステップS20:YES)、周囲に人がいることの通知を行い(ステップS165)、機密印刷の指定を含まない場合に(ステップS20:NO)、周囲に人がいることの通知を行わない。この結果、複合機200Aは、印刷指示が、機密印刷の指定を含むか否かに応じて、適切な通知を行うことができる。
また、本実施例によれば、端末装置400A〜400Cのステータスモニタ300は、各種の通知を受信したときに、当該通知に関する情報を表示部470に表示するだけでよいので、端末装置400A〜400Cの処理負荷を軽減できる。
以上の説明から解るように、本実施例において、未通知のエラーが発生していることは、第1のステータスの例であり、周囲に人がいることは、第2のステータスと、セキュリティに関するステータスの例である。また、処理対象の印刷ジョブは、第1の印刷ジョブの例であり、第2の印刷ジョブの例であり、後続の通常印刷に対応する印刷ジョブは、第2の印刷ジョブの例である。また、機密印刷の指定は、セキュリティに関する特定の情報の例である。
B. 第2実施例
上記第1実施例では、複合機200Aが適切なタイミングで、指示送信元端末に対して、適切な通知を行うことによって、複合機200Aの周囲に人がいることなどのステータスを適切なタイミングでユーザに知らせることができる。第2実施例では、端末装置400A〜400Bのそれぞれが、複合機200Aからの通知に応じて、適切なタイミングで、通知に関する情報を表示部470に表示することで、複合機200Aのステータスを適切なタイミングでユーザに知らせる。
B−1. 複合機の処理
まず、複合機200Aの処理を説明する。複合機200Bは、複合機200Aと同様の処理を実行する。図5、図6は、第2実施例の複合機200Aの処理のフローチャートである。図5、図6では、図2、図3と同一のステップには、同一の符号が付され、図2、図3と同一のステップには、符号の末尾に「B」の文字が付されている。
第2実施例の複合機200Aの処理について、第1実施例と異なる点を中心に説明する。第2実施例では、CPU210は、各種の通知を、指示送信元端末だけでなく、複合機200に接続されている全端末(図1の例では、端末装置400A〜400C)に送信する。例えば、各種の通知は、LAN80にブロードキャストされる。例えば、図5のステップS40B、S110B、図6のステップS200Bでは、未通知のエラーが、接続されている全端末に通知される。また、図6のステップS140Bでは、処理対象の印刷ジョブの印刷開始が、接続されている全端末に通知される。図6のステップS165Bでは、周囲に人がいることが接続されている全端末に通知される。図6のステップS210Bでは、後続の印刷を処理対象の印刷ジョブの印刷より先に行うことが接続されている全端末に通知される。
第2実施例の複合機200Aの処理では、さらに、図5のステップS75B、ステップS85B、図6のステップS122B、S124B、S155Bが追加されている。
ステップS70にて、先行する印刷がないと判断された後のステップS75Bでは、CPU210は、現在時刻を、処理対象の印刷ジョブの印刷開始時刻として、接続されている全端末に通知する。
また、印刷開始時刻の算出後のステップS85Bでは、CPU210は、処理対象の印刷ジョブの印刷開始時刻を接続されている全端末に通知する。
また、ステップS120にて、周囲に人が検出されていない場合には(ステップS120:NO)、CPU210は、人検出フラグがONであるか否かを判断する(ステップS122B)。人検出フラグがONである場合には(ステップS122B:YES)、すなわち、前回に周囲に人がいることの通知が行われている場合には、CPU210は、周囲に人がいなくなったことを、接続されている全端末に通知する(ステップS124B)。そして、周囲に人がいなくなったことの通知の後に、CPU210は、人検出フラグをONからOFFに変更する(ステップS125)。人検出フラグがOFFである場合には(ステップS122B:NO)、ステップS124B、および、ステップS125はスキップされる。
図6のステップS120〜S125の処理によって、ステップS165にて周囲に人がいることの通知が行われた後に、複合機200Aの周囲に人がいなくなった場合に、周囲に人がいなくなったことが、端末装置400A〜400Cに適切に通知される。また、複合機200Aの周囲に人がいない状態が継続する場合に、周囲に人がいないことの通知が無駄に繰り返されることも、適切に抑制される。
ステップS150にて処理対象の印刷ジョブの印刷が行われた後のステップS155Bでは、CPU210は、印刷の終了を接続されている全端末に通知する。これによって、端末装置400A〜400Cは、機密印刷が完了したことを認識できる。
なお、上述した処理対象の印刷ジョブに関する通知、すなわち、印刷開始時刻の通知(ステップS75B、S85B)、印刷開始の通知(ステップS140B)、印刷終了の通知(ステップS155B)、後続の印刷を先に行うことの通知(ステップS210B)には、処理対象の印刷ジョブを識別する情報(例えば、ジョブID)が含められる。これによって、これらの通知を受信した端末装置400A〜400Bは、これらの通知が、自身が送信した印刷指示に基づく印刷ジョブに関する通知か否かを判断することができる。ジョブIDは、例えば、印刷指示が複合機200Aに受信されたときに、複合機200AのCPU210によって生成されて、指示送信元端末に送信されても良い。また、端末装置400Aが印刷指示を複合機200Aに送信するときに、印刷指示にジョブIDの指定を含めても良い。
B−2: 端末装置400Aの処理
図7、図8は、端末装置400Aの処理のフローチャートである。端末装置400B、400Cの処理は、端末装置400Aの処理と同一である。この処理は、端末装置400Aにおいて、プリンタドライバ60とステータスモニタ300(図1)の両方が、起動された状態で実行される。このフローチャートは、1個の印刷要求に着目して端末装置400Aの処理フローを示している。端末装置400Aは、図7、図8の処理フローを並列して複数実行することによって、複数個の印刷要求をユーザから受け付けることができる。
ステップS310では、プリンタドライバ60(CPU410)は、印刷要求をユーザから受け付けたか否かを判断する。プリンタドライバ60は、表示部270に、印刷要求の受付画面(図示省略)を表示して、当該受付画面を介して印刷要求を受け付けることができる。なお、当該受付画面を介して、当該印刷要求に基づく印刷を行うべき装置(本実施例では複合機200Aまたは複合機200Bのいずれか)の指定と、当該印刷要求に基づく印刷を上述した機密印刷とするか否かと、が印刷要求と併せて受け付けられる。本ステップで受け付けられた印刷要求を処理対象の印刷要求とも呼ぶ。
プリンタドライバ60は、印刷要求を受け付けていない場合には(ステップS310:NO)、印刷要求を受け付けるまで待機する。プリンタドライバ60は、印刷要求を受け付けた場合には(ステップS310:YES)、受け付けられた印刷要求を機密印刷とする要求があったか否かを判断する(ステップS320)。
プリンタドライバ60は、機密印刷の要求があった場合には(ステップS320:YES)、人検知機能フラグをONとする(ステップS330)。人検知機能フラグは、印刷要求ごとに用意され、人検知機能フラグの初期値はOFFである。プリンタドライバ60は、機密印刷の要求がない場合には(ステップS320:NO)、ステップS330をスキップする。すなわち、人検知機能フラグは、OFFに維持される。
ステップS340では、プリンタドライバ60は、処理対象の印刷要求に基づく印刷指示(処理対象の印刷指示とも呼ぶ)を、指定印刷装置に送信する。指定印刷装置は、複合機200A、200Bのうち、ユーザによって指定された印刷を行うべき装置である。プリンタドライバ60は、予め印刷指示を送信可能な複合機200A、200BのIPアドレスを記憶している。プリンタドライバ60は、指定印刷装置のIPアドレスを宛先のIPアドレスとして指定して、印刷指示を送信する。なお、機密印刷の要求があった場合には、機密印刷の指定が印刷指示に含められる。
ステップS350以降の処理は、ステータスモニタ300によって実行される。ステップS350では、ステータスモニタ300(CPU410)は、処理対象の印刷指示に基づく印刷の印刷開始時刻の通知を指定印刷装置から受信する。印刷開始時刻の通知は、機密印刷の指定が印刷指示に含められた場合に、指定印刷装置によって、図5のステップS75B、S85Bの処理が実行されることによって、指定印刷装置から送信される。なお、図5の例では、印刷開始時刻の通知は、機密印刷の指定が印刷指示に含められない場合には送信されないので、図7のステップS350にて、ステータスモニタ300は、印刷開始時刻の通知は受信されない。機密印刷の指定が印刷指示に含められない場合であっても、印刷開始時刻の通知が、指定印刷装置から送信されても良い。
ステップS360では、ステータスモニタ300は、処理対象の印刷指示に対応する人検知機能フラグがONであるか否かを判断する。上述の説明から解るように、プリンタドライバ60は、処理対象の印刷指示に、機密印刷の指定を含める場合には、人検知機能フラグをONにし、機密印刷の指定を含めない場合には、人検知機能フラグをOFFにする。したがって、ステータスモニタ300による人検知機能フラグがONであるか否かの判断は、プリンタドライバ60によって送信された処理対象の印刷指示が、機密印刷の指定を含むか否かの判断と言うことができる。第2の判断部を人検知機能フラグがOFFである場合には(ステップS360:NO)、ステータスモニタ300は、人検出状態表示フラグをOFFに設定する(ステップS380)。人検出状態表示フラグは、印刷指示ごと用意される。
人検知機能フラグがONである場合には(ステップS360:YES)、ステータスモニタ300は、現在時刻から印刷開始時刻までは、所定時間(本実施例では、1分)以内であるかを判断する(ステップS370)。印刷開始時刻まで所定時間以内でない場合には(ステップS370:NO)、ステータスモニタ300は、人検出状態表示フラグをOFFに設定する(ステップS380)。印刷開始時刻まで所定時間以内である場合には(ステップS370:YES)、ステータスモニタ300は、人検出状態表示フラグをONに設定する(ステップS390)。
ステップS400では、ステータスモニタ300は、周囲に人がいることの通知(人検出通知)が指定印刷装置から受信され、かつ、当該人検出通知の受信後に、周囲に人がいないことの通知が指定印刷装置から受信されていないか、を判断する。
人検出通知が指定印刷装置から受信されていない、または、人検出通知が指定印刷装置から受信されているが、当該人検出通知の受信後に、周囲に人がいないことの通知が指定印刷装置から受信されている場合には(ステップS400:NO)、現在、指定印刷装置の周囲に人がいないと判断することができる。この場合には、ステータスモニタ300は、処理をステップS460に移行する。すなわち、この場合には、図4(C)の人検出表示ウインドウPW3は、表示部470に表示されない。
人検出通知が指定印刷装置から受信され、かつ、当該人検出通知の受信後に、周囲に人がいないことの通知が指定印刷装置から受信されていない場合には(ステップS400:YES)、現在、指定印刷装置の周囲に人がいると判断することができる。この場合には、ステータスモニタ300は、人検出状態表示フラグがONであるか否かを判断する(ステップS410)。そして、人検出状態表示フラグがONである場合には(ステップS410:YES)、ステータスモニタ300は、周囲に人がいることに関する情報を表示部470に表示する(ステップS420)。具体的には、図4(C)の人検出表示ウインドウPW3が、表示部470に表示される。人検出表示ウインドウPW3は、周囲に人がいることに関する情報、すなわち、図4(C)のメッセージMS3を含んでいる。
人検出状態表示フラグがOFFである場合には(ステップS410:NO)、ステータスモニタ300は、処理をステップS460に移行する。すなわち、この場合にも、人検出表示ウインドウPW3は、表示部470に表示されない。
人検出表示ウインドウPW3が表示された後のステップS430では、ステータスモニタ300は、強制開始要求を、ユーザから受け付けたか否かを判断する。強制開始要求は、第1実施例にて説明したように、人検出表示ウインドウPW3のボタンBT1(図4(C))を介して受け付けられる。
強制開始要求が受け付けられた場合には(ステップS430:YES)、ステータスモニタ300は、強制開始指示を指定印刷装置に送信し(ステップS440)、人検知機能フラグをONからOFFに変更する(ステップS450)。この結果、強制開始要求が、ユーザから受け付けられた後は、処理対象の印刷指示について、人検出表示ウインドウPW3が表示されることはなくなる。この結果、人検出表示ウインドウPW3が無駄に表示されることを抑制することができる。強制開始要求が受け付けられていない場合には(ステップS430:NO)、ステップS440、S450はスキップされる。
図8のステップS460では、ステータスモニタ300は、指定印刷装置から未表示のエラー通知を受信しているか否かを判断する。未表示のエラー通知は、受信されたエラー通知のうち、当該エラー通知によって通知されたエラーに関する情報の表示が行われていない通知である。なお、指定印刷装置以外の装置(例えば、複合機200Aが指定印刷装置である場合には、複合機200B)からの未表示のエラー通知が受信されている場合もある。指定印刷装置以外の装置から受信されたエラー通知は、無視される。これによって、エラーに関する情報が無駄に表示されることが抑制される。
未表示のエラー通知が受信されている場合には(ステップS460:YES)、ステータスモニタ300は、当該エラーに関する情報を表示部470に表示する(ステップS470)。具体的には、図4(A)のエラー情報表示ウインドウPW1が、表示部470に表示される。エラー情報表示ウインドウPW1は、エラーに関する情報、すなわち、図4(A)のメッセージMS1を含んでいる。未表示のエラー通知が受信されていない場合には(ステップS460:NO)、ステップS470の処理はスキップされる。
ステップS480では、ステータスモニタ300は、処理対象の印刷指示について、後続の通常印刷を先に行うことの通知を指定印刷装置から受信しているか否かを判断する。後続の通常印刷を先に行うことの通知を受信している場合には(ステップS480:YES)、ステータスモニタ300は、指定印刷装置から印刷開始時刻の通知を受信する(ステップS490)。印刷開始時刻の通知は、指定印刷装置によって、図6のステップS210Bにて、後続の通常印刷を先に行うことの通知が送信された後に、図5のステップS85Bの処理が実行されることによって、指定印刷装置から送信される。
ステップS500では、ステータスモニタ300は、処理対象の印刷指示について、指定印刷装置から印刷開始の通知を受信しているか否かを判断する。印刷開始の通知が受信されていない場合には(ステップS500:NO)、ステータスモニタ300は、図7のステップS360に戻る。印刷開始の通知が受信されている場合には(ステップS500:YES)、ステータスモニタ300は、処理対象の印刷指示について、指定印刷装置から印刷終了の通知を受信しているか否かを判断する(ステップS510)。
印刷終了の通知が受信されていない場合には(ステップS510:NO)、ステータスモニタ300は、指定印刷装置から未表示のエラー通知を受信しているか否かを判断する(ステップS520)。未通知のエラー通知が受信されている場合には(ステップS520:YES)、ステータスモニタ300は、当該エラーに関する情報を表示部470に表示し(ステップS530)、ステップS510に戻る。すなわち、上述したように、図4(A)のエラー情報表示ウインドウPW1が、表示部470に表示される。未表示のエラー通知が受信されていない場合には(ステップS520:NO)、ステータスモニタ300は、ステップS530の処理をスキップして、ステップS510に戻る。
印刷終了の通知を受信している場合には(ステップS510:YES)、ステータスモニタ300は、処理を終了する。
以上説明した第2実施例によれば、各端末装置400A〜400Cには、別の端末装置から送信された印刷指示に基づく複合機の処理(図5、図6)によっても、周囲に人がいることの通知やエラー通知が送信されてくる。このために、各端末装置400A〜400Cは、あらゆるタイミングで、周囲に人がいることの通知やエラー通知を受信し得る。そして、各端末装置400A〜400Cのステータスモニタ300は、処理対象の印刷指示に基づいて指定印刷装置で実行されるべき印刷が機密印刷である場合に、印刷開始時刻より所定時間だけ前の特定のタイミングに到達したか否かを判断する(ステップS370)。そして、ステータスモニタ300は、特定のタイミングに到達する前であっても後であっても、未表示のエラー通知が受信された場合には、当該エラーに関する情報を表示部470に表示する(ステップS470、S530)。さらに、ステータスモニタ300は、特定のタイミングに到達する前には、指定印刷装置の周囲に人がいることを表示部470に表示することはない。ステータスモニタ300は、特定のタイミングに到達した後には、複合機200Aの周囲に人がいることの通知が受信されている場合には、周囲に人がいることを表示部470に表示する(ステップS420)。
換言すれば、ステータスモニタ300は、(a)未表示のエラー通知が受信され、かつ、特定のタイミングに到達する前である場合に、未表示のエラーに関する情報を表示部470に表示し、(b)周囲に人がいることの通知が受信され、かつ、特定のタイミングに到達する前である場合に、周囲に人がいることに関する情報を表示部470に表示せず、(c)未表示のエラー通知が受信され、かつ、特定のタイミングに到達した後である場合に、未表示のエラーに関する情報を表示部470に表示し、(d)周囲に人がいることの通知が受信され、かつ、前記特定のタイミングに到達した後である場合に、周囲に人がいることに関する情報を表示部470に表示する。
この結果、エラーに関する情報は、特定のタイミングとは無関係に表示され、周囲に人がいることに関する情報は、特定のタイミングに到達した後にのみ表示される。したがって、端末装置400Aは、通知対象のステータスの種類に応じた適切なタイミングで、ステータスを表示部470に表示することができる。これによって、複合機200Aは指示送信元端末を用いて、複合機200Aのステータスを、適切なタイミングでユーザに知らせることができる。
さらに、ステータスモニタ300は、人検知機能フラグがONである場合には(ステップS360:YES)、特定のタイミングに到達していることを条件に、人検出状態表示フラグをONにする(ステップS390)。そして、ステータスモニタ300は、人検知機能フラグがOFFである場合には(ステップS360:NO)、人検出状態表示フラグをOFFにする(ステップS380)。そして、ステータスモニタ300は、人検出状態表示フラグがONである場合に限り(ステップS410:YES)、周囲に人がいることに関する情報の表示を行う(ステップS420)。換言すれば、ステータスモニタ300は、人検知機能フラグに基づいて、処理対象の印刷指示が、機密印刷の指定を含むか否かを判断する(ステップS360)。そして、ステータスモニタ300は、処理対象の印刷指示が機密印刷の指定を含む場合に、周囲に人がいることに関する情報の表示を行い(ステップS420)、処理対象の印刷指示が機密印刷の指定を含まない場合に、周囲に人がいることに関する情報の表示を行わない。この結果、ステータスモニタ300は、機密印刷の指定を含む印刷指示が、プリンタドライバ60から送信された場合に、適切に、周囲に人がいることに関する情報の表示を行うことができる。
また、本実施例によれば、複合機200A、200Bは、各種の通知を、送信先の1個の端末を特定することなく、全ての端末に送信すれば良いので、複合機200A、200Bの処理負荷を軽減できる。
以上の説明から解るように、本実施例において、未表示のエラー通知は、第1のステータスの通知の例であり、周囲に人がいることの通知は、第2のステータスの通知と、セキュリティに関するステータスの通知の例である。また、機密印刷の指定は、セキュリティに関する特定の情報の例である。
C.第3実施例:
第3実施例では、複合機200A、200Bは、複数個の排紙トレイ(図示省略)と、複数個の排紙トレイのそれぞれに設置された排紙センサ(図示省略)と、を備える。CPU210は、排紙センサを用いて、用紙があるか否かを排紙トレイごとに検出することができる。印刷指示には、排紙トレイの指定が含められる。そして、強制開始指示が、指示送信元端末から受信されない限り、印刷済みの用紙は、指定された排紙トレイに排出される。そして、強制開始指示が、指示送信元端末から受信されず、かつ、指定された排紙トレイに既に用紙がある場合には、指定された排紙トレイから用紙が回収されるまで、印刷は実行されない。この結果、1個の排紙トレイに、複数個の印刷指示に基づく印刷済みの用紙が混在することが防止される。以下、詳細を説明する。
図9は、第3実施例の複合機200Aの処理のフローチャートである。複合機200Bは、複合機200Aと同様に動作する。図9のフローチャートは、1個の印刷指示に着目して複合機200Aの処理フローを示している。複合機200Aは、複数の図9の処理フローを並列して実行することによって、複数個の印刷指示を受け付けることができる。
ステップS610では、複合機200AのCPU210は、LAN80を介して端末装置400A〜400Bから印刷指示を受信したか否かを監視している。CPU210は、印刷指示を受信していない場合には(ステップS610:NO)、印刷指示を受信するまで待機する。CPU210は、印刷指示を受信した場合には(ステップS610:YES)、受信された印刷指示に基づいて、印刷ジョブを生成する。
ステップS630では、CPU210は、印刷開始時刻を算出する。ステップS640では、CPU210は、先行する印刷があるか否かを判断する。先行する印刷がある場合には(ステップS640:YES)、CPU210は、図2のステップS90〜S110と同一の処理を実行する(ステップS650〜670)。すなわち、CPU210は、エラーの発生を監視しながら、先行する印刷が完了するまで待機する。
先行する印刷がない場合には(ステップS640:NO)、CPU210は、処理対象の印刷指示によって指定された排紙トレイ(指定排紙トレイとも呼ぶ)に用紙があるか否かを判断する(ステップS680)。この判断は、上述した排紙センサを用いて、指定排紙トレイに用紙があるか否かを検出することによって、実行される。
指定排紙トレイに用紙がない場合には(ステップS680:NO)、CPU210は、用紙検出フラグをOFFに設定する(ステップS685)。用紙検出フラグの初期値は、OFFである。ステップS690では、CPU210は、先行する印刷があるか否かを判断する。先行する印刷がない場合には(ステップS690:NO)、CPU210は、処理対象の印刷ジョブの印刷開始を指示送信元端末に通知し(ステップS700)、処理対象の印刷ジョブの印刷を実行して(ステップS710)、処理を終了する。これによって、用紙が無い状態の排紙トレイに、印刷済みの用紙が排出される
指定排紙トレイに用紙がある場合には(ステップS680:YES)、CPU210は、用紙検出フラグがONであるか否かを判断する(ステップS720)。ステップS720で、用紙検出フラグがOFFである場合には(ステップS720:NO)、指定排紙トレイに用紙があり、かつ、指定排紙トレイに用紙があることを指示送信元端末に通知していないと判断できる。この場合には、CPU210は、指定排紙トレイに用紙があることを指示送信元端末に通知し(ステップS725)、用紙検出フラグをONに変更する(ステップS730)。用紙検出フラグがONである場合には(ステップS720:YES)、CPU210は、ステップS725、S730の処理をスキップする。
指示送信元端末のステータスモニタ300は、指定排紙トレイに用紙があることの通知を受信すると、表示部470に、用紙有表示ウインドウ(図示省略)を表示する。用紙有表示ウインドウは、例えば、指定排紙トレイに用紙があること、および、そのために印刷を開始できないこと、を示すメッセージを含む。用紙有表示ウインドウは、さらに、図4(C)の人検出表示ウインドウPW3と同様に、強制的に印刷を開始することの要求(強制開始要求)が可能であることを示すメッセージと、ユーザが強制開始要求を入力するためのボタンと、を含んでいる。ユーザによって、強制開始要求のボタンがクリックされると、ステータスモニタ300は、指定排紙トレイに用紙があることの通知の送信元のIPアドレスを宛先のIPアドレスとして、強制開始指示を送信する。本実施例の強制開始指示は、指定排紙トレイに用紙があるにも拘わらずに、処理対象の印刷ジョブの印刷を開始することの指示である。
ステップS740では、CPU210は、指示送信元端末から、上述した強制開始指示を受信しているか否かを判断する。強制開始指示が受信されている場合には(ステップS740:YES)、CPU210は、上述したステップS690に処理を進める。この結果、先行する印刷がないことを条件に(ステップS690:NO)、指定排紙トレイに用紙があっても、処理対象の印刷ジョブの印刷が実行される(ステップS710)。
強制開始指示が受信されていない場合には(ステップS740:NO)、CPU210は、CPU210は、後続の印刷可能な印刷はあるか否かを判断する(ステップS745)。後続の印刷可能な印刷は、後続の全ての印刷のうち、指定排紙トレイが、処理対象の印刷ジョブの印刷とは異なる印刷である。後続の印刷可能な印刷がない場合には(ステップS745:NO)、CPU210は、未通知の複合機200Aのエラーが検出されたか否かを判断する(ステップS750)。未通知のエラーが検出された場合には(ステップS750:YES)、CPU210は、当該エラーを指示送信元端末に通知する(ステップS760)。指示送信元端末のステータスモニタ300は、エラーの通知を受信すると、表示部470に、上述したエラー情報表示ウインドウ(図4(A)参照)を表示する。
未通知のエラーが検出されていない場合(ステップS750:NO)、および、エラーを指示送信元端末に通知した(ステップS760)後に、CPU210は、ステップS640に戻る。
後続の印刷可能な印刷がある場合には(ステップS745:YES)、CPU210は、後続の印刷可能な印刷を先に行うことを指示送信元端末に通知する(ステップS780)。指示送信元端末のステータスモニタ300は、後続の印刷可能な印刷を先に行うことの通知を受信すると、表示部470に、後続の印刷可能な印刷を先に行うことを表示するウインドウ(図示省略)を表示する。
ステップS790では、CPU210は、後続する印刷を、先行する印刷に変更する。印刷順序の変更に続いて、CPU210は、用紙検出フラグをONからOFFに変更して(ステップS795)、ステップS630に戻る。
以上説明した第3実施例によれば、CPU210は、印刷開始時刻より所定時間だけ前の特定のタイミングに到達したか否かを判断する(ステップS650)。そして、CPU210は、特定のタイミングに到達する前であっても後であっても、未通知のエラーが検出された場合には、当該エラーを指示送信元端末に通知する(ステップS670、S760)。さらに、CPU210は、特定のタイミングに到達する前には、指定印刷装置に用紙があることを指示送信元端末に通知することはない。CPU210は、特定のタイミングに到達した後には、指定排紙トレイに用紙があることが検出された場合には、指定排紙トレイに用紙があることを指示送信元端末に通知する(ステップS725)。
換言すれば、CPU210は、(a)複合機200Aのステータスが、未通知のエラーが発生している状態であり、かつ、特定のタイミングに到達する前である場合に、未通知のエラーが発生していることを指示送信元端末に通知し、(b)複合機200Aのステータスが、指定排紙トレイに用紙がある状態であり、かつ、特定のタイミングに到達する前である場合に、指定排紙トレイに用紙があることを指示送信元端末に通知せず、(c)複合機200Aのステータスが、未通知のエラーが発生している状態であり、かつ、特定のタイミングに到達した後である場合に、未通知のエラーが発生していることを指示送信元端末に通知し、(d)複合機200Aのステータスが、指定排紙トレイに用紙がある状態であり、かつ、特定のタイミングに到達した後である場合に、指定排紙トレイに用紙があることを指示送信元端末に通知する。
トナー切れや用紙切れなどのエラーは、上述したように自然には解消しない。このために、これらのエラーが発生した場合には、直ちに、エラーの発生を通知することが好ましい。一方、複合機200Aの指定排紙トレイに用紙がある状態は、処理対象の印刷ジョブの印刷が開始されるまでに、処理対象の印刷ジョブの印刷を指示したユーザとは別のユーザによって用紙が回収されることによって、処理対象の印刷ジョブの印刷を指示したユーザとは無関係に、解消される可能性がある。したがって、印刷開始時刻より過度に前のタイミングで、指定排紙トレイに用紙があることが通知される必要性は低い。むしろ、このような通知に基づく表示が表示部470に表示されることは、ユーザにとって有用でなく、ユーザにとって煩わしい可能性が高い。ただし、指定排紙トレイに用紙がある状態では、処理対象の印刷ジョブの印刷を開始できないので、印刷開始時刻に比較的近い適切なタイミングで、指定排紙トレイに用紙があることが通知されることが好ましい。この通知がないと、ユーザは印刷が開始されないことを認識できないからである。本実施例によれば、エラーの発生は、特定のタイミングとは無関係に通知され、指定排紙トレイに用紙があることは特定のタイミングに到達した後にのみ、通知される。
この結果、複合機200Aは、通知対象のステータスの種類に応じた適切なタイミングで、ステータスを端末装置に通知することができる。具体的には、印刷装置は、排紙トレイに用紙がある場合に、適切な通知を行うことができる。この結果、複合機200Aは指示送信元端末を用いて、複合機200Aのステータスを、適切なタイミングでユーザに知らせることができる。
以上の説明から解るように、本実施例において、未通知のエラーが発生していることは、第1のステータスの例であり、排紙トレイに用紙があることは、第2のステータスの例である。
D.第4実施例:
上記第3実施例では、複合機200Aが適切なタイミングで、指示送信元端末に対して、適切な通知を行うことによって、排紙トレイに用紙があることなどのステータスを適切なタイミングでユーザに知らせることができる。第4実施例では、端末装置400A〜400Bのそれぞれが、複合機200Aからの通知に応じて、適切なタイミングで、通知に関する情報を表示部470に表示することで、複合機200Aのステータスを適切なタイミングでユーザに知らせる。
D−1. 複合機の処理
まず、複合機200Aの処理を説明する。複合機200Bは、複合機200Aと同様の処理を実行するの。第4実施例の複合機200Bの処理は、図9のフローチャートの処理と、一部を除いて同一であるので、異なる点について説明する。
第4実施例の複合機200Aの処理では、第2実施例と同様に、CPU210は、各種の通知を、指示送信元端末だけでなく、複合機200に接続されている全端末(図1の例では、端末装置400A〜400C)に送信する。例えば、図9のステップS670、SS760では、未通知のエラーが、接続されている全端末に通知される。また、ステップS700では、処理対象の印刷ジョブの印刷開始が、接続されている全端末に通知される。ステップS725では、排紙トレイに用紙があることが接続されている全端末に通知される。ステップS780では、後続の印刷可能な印刷を処理対象の印刷ジョブの印刷より先に行うことが接続されている全端末に通知される。
さらに、第4実施例では、図9のステップS630にて、印刷開始時刻が算出された後に、CPU210は、処理対象の印刷ジョブの印刷開始時刻を接続されている全端末に通知する。
さらに、第4実施例では、図9のステップS680にて、指定排紙トレイに用紙がない場合には(ステップS680:NO)、CPU210は、前回に送信された指定排紙トレイに関する通知が、指定排紙トレイに用紙があることの通知であることを条件に、指定排紙トレイに用紙がないことを、接続されている全端末に通知する。指定排紙トレイに用紙がない場合(ステップS680:NO)であっても、CPU210は、前回に送信された指定排紙トレイに関する通知が、指定排紙トレイに用紙がないことの通知であること場合には、指定排紙トレイに用紙がないことの通知は行わない。
さらに第4実施例では、ステップS710にて処理対象の印刷ジョブの印刷が行われた後に、CPU210は、印刷の終了を接続されている全端末に通知する。
なお、上述した処理対象の印刷ジョブに関する通知、すなわち、印刷開始時刻の通知、印刷開始の通知、印刷終了の通知、後続の印刷可能な印刷を先に行うことの通知には、第2実施例と同様に、処理対象の印刷ジョブを識別する情報(例えば、ジョブID)が含められる。
D−2: 端末装置400Aの処理
図10は、端末装置400Aの処理のフローチャートである。端末装置400B、400Cの処理は、端末装置400Aの処理と同一である。図10のステップS920に続く処理は、第2実施例において説明した図8に示すフローチャートと同じである。この処理は、端末装置400Aにおいて、プリンタドライバ60とステータスモニタ300(図1)の両方が、起動された状態で実行される。このフローチャートは、1個の印刷要求に着目して端末装置400Aの処理フローを示している。端末装置400Aは、図10、図8の処理フローを並列して複数実行することによって、複数個の印刷要求をユーザから受け付けることができる。
ステップS810では、プリンタドライバ60(CPU410)は、印刷要求をユーザから受け付けたか否かを判断する。印刷要求と併せて、印刷済みの用紙を排出すべき排紙トレイの指定と、印刷を行うべき印刷装置の指定と、が受け付けられる。
プリンタドライバ60は、印刷要求を受け付けていない場合には(ステップS810:NO)、印刷要求を受け付けるまで待機する。プリンタドライバ60は、印刷要求を受け付けた場合には(ステップS810:YES)、ステップS810で受け付けられた処理対象の印刷要求に基づく印刷指示(処理対象の印刷指示とも呼ぶ)を、指定印刷装置(本実施例では複合機200Aまたは複合機200Bのいずれか)に送信する(ステップS820)。なお、印刷指示には、印刷済みの用紙を排出すべき排紙トレイの指定が含められる。
ステップS830以降の処理は、ステータスモニタ300によって実行される。ステップS830では、ステータスモニタ300(CPU410)は、印刷開始時刻の通知を指定印刷装置から受信する。
ステップS840では、ステータスモニタ300は、現在時刻から印刷開始時刻までは、所定時間(本実施例では、1分)以内であるかを判断する。印刷開始時刻まで所定時間以内でない場合には(ステップS840:NO)、ステータスモニタ300は、トレイ検出状態表示フラグをOFFに設定する(ステップS850)。印刷開始時刻まで所定時間以内である場合には(ステップS840:YES)、ステータスモニタ300は、トレイ検出状態表示フラグをONに設定する(ステップS860)。
ステップS870では、ステータスモニタ300は、指定排紙トレイに用紙があることの通知が指定印刷装置から受信され、かつ、その後に、指定排紙トレイに用紙がないことの通知が指定印刷装置から受信されていないか、を判断する。
指定排紙トレイに用紙があることの通知が指定印刷装置から受信されていない、または、指定排紙トレイに用紙があることの通知が指定印刷装置から受信されているが、その後に指定排紙トレイに用紙がないことの通知が指定印刷装置から受信されていない場合には(ステップS870:NO)、現在、指定排紙トレイに用紙がないと判断することができる。この場合には、ステータスモニタ300は、図8のステップS460に移行する。
ステータスモニタ300は、指定排紙トレイに用紙があることの通知が指定印刷装置から受信され、かつ、その後に、指定排紙トレイに用紙がないことの通知が指定印刷装置から受信されていない場合には(ステップS870:YES)、現在、指定排紙トレイには用紙があると判断することができる。この場合には、ステータスモニタ300は、トレイ検出状態表示フラグがONであるか否かを判断する(ステップS880)。そして、トレイ検出状態表示フラグがONである場合には(ステップS880:YES)、ステータスモニタ300は、排紙トレイに用紙があることに関する情報を表示部470に表示する(ステップS890)。排紙トレイに用紙があることに関する情報は、例えば、排紙トレイに用紙があること、および、そのために処理対象の印刷指示に基づく印刷が実行できないこと、を含む。
トレイ検出状態表示フラグがOFFである場合には(ステップS880:NO)、ステータスモニタ300は、処理を図8のステップS460に移行する。すなわち、この場合には、排紙トレイに用紙があることに関する情報は、表示部470に表示されない。
排紙トレイに用紙があることに関する情報が表示された後のステップS900では、ステータスモニタ300は、強制開始要求を、ユーザから受け付けたか否かを判断する。
強制開始要求が受け付けられた場合には(ステップS900:YES)、ステータスモニタ300は、強制開始指示を指定印刷装置に送信し(ステップS910)、トレイ検出状態表示フラグをONからOFFに変更する(ステップS920)。この結果、強制開始要求が、ユーザから受け付けられた後は、処理対象の印刷指示について、排紙トレイに用紙があることに関する情報が、表示部470に表示されることはなくなる。この結果、排紙トレイに用紙があることに関する情報が無駄に表示されることを抑制することができる。強制開始要求が受け付けられていない場合には(ステップS900:NO)、ステップS910、S920はスキップされる。
図8のステップS460以降の処理は、説明を省略する。なお、図8のステップS500において、印刷開始の通知が受信されていない場合には(ステップS500:NO)、ステータスモニタ300は、図10のステップS840に戻る。
以上説明した第4実施例によれば、各端末装置400A〜400Cには、別の端末装置から送信された印刷指示に基づく複合機の処理によっても、排紙トレイに用紙があることの通知やエラー通知が送信されてくる。このために、各端末装置400A〜400Cは、あらゆるタイミングで、排紙トレイに用紙があることの通知やエラー通知を受信し得る。そして、各端末装置400A〜400Cのステータスモニタ300は、印刷開始時刻より所定時間だけ前の特定のタイミングに到達したか否かを判断する(ステップS840)。そして、ステータスモニタ300は、特定のタイミングに到達する前であっても後であっても、未表示のエラー通知が受信された場合には、当該エラーに関する情報を表示部470に表示する(図8のステップS470、S530)。さらに、ステータスモニタ300は、特定のタイミングに到達する前には、指定排紙トレイに用紙があることを表示部470に表示することはない。ステータスモニタ300は、特定のタイミングに到達した後には、指定排紙トレイに用紙があることの通知が受信されている場合には、指定排紙トレイに用紙があることを表示部470に表示する(ステップS890)。
換言すれば、ステータスモニタ300は、(a)未表示のエラー通知が受信され、かつ、特定のタイミングに到達する前である場合に、未表示のエラーに関する情報を表示部470に表示し、(b)指定排紙トレイに用紙があることの通知が受信され、かつ、特定のタイミングに到達する前である場合に、指定排紙トレイに用紙があることに関する情報を表示部470に表示せず、(c)未表示のエラー通知が受信され、かつ、特定のタイミングに到達した後である場合に、未表示のエラーに関する情報を表示部470に表示し、(d)指定排紙トレイに用紙があることの通知が受信され、かつ、前記特定のタイミングに到達した後である場合に、指定排紙トレイに用紙があることに関する情報を表示部470に表示する。
この結果、エラーに関する情報は、特定のタイミングとは無関係に表示され、指定排紙トレイに用紙があることに関する情報は、特定のタイミングに到達した後にのみ表示される。したがって、端末装置400Aは、通知対象のステータスの種類に応じた適切なタイミングで、ステータスを表示部470に表示することができる。これによって、複合機200Aは指示送信元端末を用いて、複合機200Aのステータスを、適切なタイミングでユーザに知らせることができる。
また、本実施例によれば、複合機200A、200Bは、各種の通知を、送信先の1個の端末を特定することなく、全ての端末に送信すれば良いので、複合機200A、200Bの処理負荷を軽減できる。
以上の説明から解るように、本実施例において、未表示のエラー通知は、第1のステータスの通知の例であり、指定排紙トレイに用紙があることの通知は、第2のステータスの通知との例である。
E.変形例:
(1)上記第1実施例および上記第2実施例において、特定のタイミングに到達した後に、機密印刷を実行すべき複合機の周囲に人がいる状態から、一旦、人がいない状態になり、さらに、人がいる状態になった場合を考える。この場合には、最初の人がいる状態のときと、2回目の人がいる状態のときと、でそれぞれ図4(C)の人検出表示ウインドウPW3が表示部470に表示されることになる。この場合には、複合機は、最初の人がいる状態のときと、2回目の人がいる状態のときとの両方で、強制開始指示が受け付けられる。
この場合には、上記実施例のように、1回でも強制開始指示が受け付けられたら、印刷の完了まで強制開始指示を有効としても良い。この場合には、複合機は、最初の人がいる状態のときに、強制開始指示が受け付けられたら、2回目の人がいる状態のときに、あらためて強制開始指示が受け付けられなくても、機密印刷を実行する。この場合には、強制開始指示が受け付けられた後に、再び人検出表示ウインドウPW3が表示部470に表示されるときには、人検出表示ウインドウPW3に、ボタンBT1図4(C)が表示されないこととしても良い。
また、最初の人がいる状態のときに、強制開始指示が受け付けられても、一旦、人がいない状態になり、さらに、人がいる状態になった場合には、最初に受け付けられた強制開始指示はキャンセルされてもよい。この場合には、複合機は、最初の人がいる状態のときに、強制開始指示が受け付けられたとしても、2回目の人がいる状態のときに、あらためて強制開始指示が受け付けられない場合には、周囲に人がいる限り、機密印刷を実行しない。
(2)上記各実施例では、エラー通知や、周囲に人がいることの通知や、指定排紙トレイに用紙があることの通知について、同じ通知が繰り返し行われないように、複合機側で、対応している。これに代えて、複合機は、これらの通知を、通知すべきステータスが継続している限り、繰り返し通知しても良い。この場合に、端末装置は、同じ通知が繰り返し受信されている間は、同じステータスが継続していると判断して、ステータスに関する情報を表示部470に表示することを1度だけに制限しても良い。そして、端末装置は、所定時間に亘って、同じ通知が受信されずに、その後に同じ通知が受信された場合には、当該通知によって通知されるステータスが、一旦解消された後に、再び発生したと判断して、再び、当該ステータスに関する情報を表示部470に表示しても良い。
(3)上記第1実施例および第2実施例では、赤外線センサ290を用いて、周囲に人がいるか否かが検出される。これに代えて、複合機が、例えば、無線LAN、赤外線通信、Bluetooth(登録商標)などの無線通信機能を備えている場合には、複合機は、当該無線通信によって通信可能な無線端末(携帯電話など)が存在するか否かによって、周囲に人がいるか否かを検出しても良い。この場合には、無線通信によって検出される無線端末が、処理対象の印刷指示の送信元の端末装置だけである場合には、周囲に人がいないと判断しても良い。複合機は、温度センサを備える場合には、温度センサを用いて、周囲に人がいるか否かを検出しても良い。複合機が、カメラを備える場合には、カメラで撮影した画像を用いて、周囲に人がいるか否かを検出してもよい。また、複合機と複合機以外の機器、例えば監視カメラや床の重量センサなどと連携して、監視カメラから人がいるか否かの検出結果を複合機が受信したり、床の重量センサから受信した重量情報に基づいて、複合機が、周囲に人がいるか否かを判断することによって、周囲に人がいるか否かを検出してもよい。
(4)上記第3実施例および第4実施例において、複合機は、指定排紙トレイに用紙があるか否かに加えて、指定排紙トレイにある用紙のサイズを検出可能なセンサを備えても良い。この場合には、指定排紙トレイにある用紙のサイズが、処理対象の印刷ジョブで印刷されるべき用紙のサイズとが異なる場合には、複合機は、指定排紙トレイに用紙があることの通知を行わなくても良い。あるいは、指定排紙トレイにある用紙のサイズが、処理対象の印刷ジョブで印刷されるべき用紙のサイズとが異なる場合には、端末装置は、指定排紙トレイに用紙があることの通知を受信しても、指定排紙トレイに用紙があることを表示部に表示しないこととしても良い。また、第3実施例では、指定排紙トレイに用紙があることの通知の通知先には、未完了の印刷の指示送信元端末だけでなく、既に完了済みの印刷の指示送信元端末が加えてられても良い。例えば、複合機のCPUは、未完了の印刷の指示送信元端末に加えて、指定排紙トレイに印刷済み用紙が排出された完了済みの印刷のうち、直近に完了した印刷の指示送信元端末に、指定排紙トレイに用紙があることを通知しても良い。完了済みの印刷の指示送信元端末のユーザが、印刷済みの用紙を回収することで、指定排紙トレイに用紙がある状態が解消される可能性が高いからである。同様に、第4実施例では、指定排紙トレイに用紙があることの通知を受信した端末装置のうち、未完了の印刷の指示送信元端末だけでなく、既に完了済みの印刷の指示送信元端末も、自身の表示部に、排紙トレイに用紙があることを表示しても良い。
(5)また、上記第3実施例および第4実施例では、排紙センサを用いて、指定排紙トレイに用紙があるか否かが検出される。これに代えて、ユーザの入力に基づいて、指定排紙トレイに用紙があるか否かが検出されても良い。例えば、複合機のCPUは、排紙トレイに印刷済みの用紙を排出した後に、複合機の操作パネルに、排紙トレイに用紙があることを示すメッセージと、用紙が回収されたことを受け付けるボタンと、を表示しても良い。この場合には、当該ボタンが押下される前は、排紙トレイに用紙があると判断され、当該ボタンが押下された後から別の印刷により排紙トレイに用紙が排出されるまでの間は、排紙トレイに用紙がないと判断されても良い。
(6)また、上記第3実施例および第4実施例は、排紙トレイに用紙があるか否かの判断や通知を、機密印刷指定がある場合のみ行うものとしてもよい。その場合、後続の印刷可能な印刷は、後続のすべての印刷のうち、機密指定がない印刷、または、機密指定があるが指定排紙トレイが処理対象の印刷ジョブの印刷と異なる印刷であるとしてもよい。
(7)上記各実施例の端末装置では、ドライバプログラムPG2とモニタプログラムPG3とは別のプログラムであるが、1個のプログラムであっても良い。
(8)上記各実施例では、処理対象の印刷ジョブの印刷開始より前の特定のタイミングは、印刷開始時刻から所定時間(例えば、1分)だけ前のタイミングである。これに代えて、特定のタイミングは、処理対象の印刷ジョブの印刷より先行する印刷ジョブの個数が、所定個数(例えば、1個)以下になったときであっても良く、処理対象の印刷ジョブの印刷より先行する印刷の枚数が所定枚数(例えば、10枚)以下になったときであっても良い。
(9)上記第1実施例および第2実施例において、赤外線センサ290は、常時動作していても良いし、特定のタイミングの後にのみ動作していても良い。特定のタイミングの前には、周囲に人がいることの通知を行う必要がないからである。上記第1実施例および第2実施例における排紙センサについても同様である。
(10)上記各実施例の複合機200A、200Bに代えて、スキャナ部250を備えない単体のプリンタが採用されても良い。
(11)上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。