JP5014461B2 - ジョブ状態監視システム、ジョブ状態監視方法、プログラム及び記憶媒体 - Google Patents

ジョブ状態監視システム、ジョブ状態監視方法、プログラム及び記憶媒体 Download PDF

Info

Publication number
JP5014461B2
JP5014461B2 JP2010107702A JP2010107702A JP5014461B2 JP 5014461 B2 JP5014461 B2 JP 5014461B2 JP 2010107702 A JP2010107702 A JP 2010107702A JP 2010107702 A JP2010107702 A JP 2010107702A JP 5014461 B2 JP5014461 B2 JP 5014461B2
Authority
JP
Japan
Prior art keywords
job
printer
print
spooler
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010107702A
Other languages
English (en)
Other versions
JP2010191994A (ja
Inventor
敬二 川嵜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2010107702A priority Critical patent/JP5014461B2/ja
Publication of JP2010191994A publication Critical patent/JP2010191994A/ja
Application granted granted Critical
Publication of JP5014461B2 publication Critical patent/JP5014461B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、プリンタにおいて実行されるジョブの監視技術に関する。
従来からホストコンピュータにおいて印刷ジョブを作成し、該作成した印刷ジョブをプリンタに出力し、プリンタによって紙媒体への記録を行わせる印刷システムが知られている。
そのような印刷システムにおいて、例えばユーザは、マイクロソフト社のWindows(登録商標)におけるプリントキューのグラフィカルユーザインタフェースで閲覧すれば、生成された印刷ジョブがプリンタに転送されたか否かを知ることが出来る。
しかし、印刷キュー内でのジョブに係わる情報の監視による方法では、上位モジュール(例えばアプリケーション)にとって簡易にジョブ状態の監視を行えるものの、正確さという観点では不十分であった。例えば、上記のように、オペレーティングシステム上の印刷キュー内でのジョブの終了と、印刷装置の実際の処理の終了とが一致しないことがある。一方、この問題に対する1つの解決方法として、特許文献1には、ランゲージモニタを用いたジョブの監視技術が開示されている。
図13のフローチャートは、そのランゲージモニタを利用したジョブの監視処理を示す。まずS1301でジョブを発行する。そしてステータス表示アプリケーションを起動する(S1302)。無論、S1301の前に事前に起動しても良い。ランゲージモニタは、プリンタ本体の状態を監視し、監視結果をステータ表示アプリケーションに伝達する。そして、ステータス表示アプリケーションは伝達された情報を入力し(S1303)、該入力情報に基づき表示内容を決定する(S1304)。
特開2000−242443号公報
しかし、ランゲージモニタのような監視手段とアプリケーションとのやり取りをもってジョブの監視を行う場合、以下の不都合がある。例えば、アプリケーションに、ランゲージモニタのような監視手段の様々な出力結果を識別する仕組みを取り入れる必要があり、アプリケーションプログラムが複雑化してしまう。
本願発明は、簡易な仕組みにより適確にジョブの状態を監視できる仕組を提供することを目的とする。
本発明のジョブ状態監視システムは、プリンタと通信可能なジョブ状態監視システムであって、ジョブ発行要求に応じて発行される第1のジョブをオペレーティングシステムのスプーラへ出力し、該第1のジョブに続いて、印刷出力処理に影響しないダミーデータからなるダミージョブを生成して前記スプーラへ出力する出力手段を有し、上位アプリケーションが前記スプーラを参照し、前記スプーラに前記ダミージョブが存在するか否かを調べることによって、前記第1のジョブの状態を認識可能にしたことを特徴とする。
本願発明によれば、簡易な仕組みにより適確にジョブの状態を監視できる。
実施形態におけるシステムの全体図である。 コンピュータにおけるハードウェア構成例を示す図である。 クライアント装置におけるソフトウェアモジュール構成例を示す図である。 メンテナンスジョブの終了を認識する処理のフローチャートである。 ジョブ実行中に表示されるダイアログの一例を示す図である。 監視手段によるジョブ状態監視処理のフローチャートである。 監視手段によるジョブ状態監視処理のフローチャートである。 監視手段によるジョブ状態監視処理のフローチャートである。 印刷ジョブの終了を認識する処理のフローチャートである。 終了検知用ジョブを利用したジョブの終了認識のフローチャートである。 ジョブ実行中に表示されるダイアログの一例を示す図である。 出力手段により出力されるダミー部を付加したジョブの一例を示す図である。 従来のジョブ監視処理を示すフローチャートである。
〔第1の実施形態〕
以下、本発明の発明を実施するための最良の形態について図面を用いて説明する。
図1は、本実施例のプリントシステムのシステム構成図の一例である。図1において、クライアント装置は、複数台接続されている。
107、108はクライアント装置であり、ネットワークケーブルによりネットワークに接続され、アプリケーションプログラム等の各種のプログラムを実行可能である。
プリントサーバは、接続されたプリンタをネットワーク上の他のコンピュータと共有し、外部から利用できるようにすることができる。なおこのプリントサーバが無くても、ネットワークプリンタや、クライアントに接続されたプリンタに対して、ネットワークを介して印刷することも通常可能である。
クライアント装置は、情報処理装置の好適な一例であるPCにより構成されている。ネットワークは、クライアント装置、ネットワークプリンタ等と接続している。
102、104、105はネットワークプリンタであり、103はローカルプリンタである。あるクライアントから、ネットワークを介して、ネットワークプリンタ102、104,105、及びネットワーク中に存在する別のクライアントに接続された、または自身に接続されたローカルプリンタに対して印刷を行うことが可能である。本発明は、図1中のどのクライアントとプリンタの組み合わせにおいても適用可能である。
<ネットワークコンピュータのハードウェア構成例>
図2は、プリントサーバ101、クライアント装置107、108の構成例を説明するブロック図である。
図2において、200は装置全体の制御を行うCPUを示す。そして、ハードディスク(HD)205に格納されているアプリケーションプログラム、プリンタドライバプログラム、OSや、本実施の形態のネットワークプリンタ制御プログラム等を実行する。また、RAM202にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
201は記憶手段としてのROMであり、内部には、基本I/Oプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。202は一時記憶手段としてのRAMであり、CPU200の主メモリ、ワークエリア等として機能する。
203は記憶媒体読み込み手段としてのフレキシブルディスクドライブであり、記憶媒体としてのフレキシブルディスク204に記憶されたプログラム等を本コンピュータにロードすることができる。204は記憶媒体であるフレキシブルディスク(FD)であり、コンピュータが読み取り可能にプログラムが格納された記憶媒体である。なお、記憶媒体はフレキシブルディスクに限らず、CD−ROM、CDR、CDRW、PCカード、DVD、ICメモリカード、MO、メモリスティック等、任意である。
205は外部記憶手段の一つであり、大容量メモリとして機能するハードディスク(HD)であり、アプリケーションプログラム、プリンタドライバプログラム、OS、ネットワークプリンタ制御プログラム、関連プログラム等を格納している。
206は指示入力手段であるキーボードであり、ユーザがクライアントコンピュータに対して、また、オペレータや管理者がプリントサーバに対して、デバイスの制御コマンドの命令等を入力指示するものである。207は表示手段であるディスプレイであり、キーボード206から入力したコマンドや、プリンタの状態等を表示したりするものである。
208はシステムバスであり、コンピュータ内のデータの流れを司るものである。209は入出力手段であるインタフェースであり、該インタフェース209を介してコンピュータは外部装置とのデータのやり取りを行う。
図3は、クライアント装置におけるソフトウェアブロック図、及び、プリンタの概略構成を示す図である。
なお、この図3で例示では、パーソナルコンピュータ(本発明の情報処理装置に相当する)にMicrosoft社のWindows(登録商標)をオペレーティングシステム(以下、OSと呼ぶ)として使用している。また、印刷処理機能を有する任意のアプリケーション301がクライアント装置内にインストールされており、更に、このコンピュータにプリンタ309を接続した形態を想定している。プリンタ309には、図1で説明したネットワークプリンタ102、105、ローカルプリンタ103を該当させることができる。図中の310はプリンタ又は投入されたジョブの状態を検出し、且つ、外部装置に出力する状態管理部であり、状態検知センサ及びメモリ及び状態解析部及び通信部などから構成される。
以下、各々のソフトウェアブロックについて説明する。
アプリケーション301を介して印刷要求された描画データ(文書データ、画像データ等の印刷データ)は、OSの描画モジュールであるグラフィックデバイス・インターフェース(Graphics Device Interface:以下、「GDI」)302経由でジョブ出力手段としてのプリンタグラフィックドライバ303に渡される。プリンタグラフィックドライバ303は渡されたデータに基づき印刷ジョブを生成する。この生成された印刷ジョブはプリンタ309へ印刷要求として出力される。
本実施形態におけるGDI302は、出力データを一旦EMF(Enhanced Meta File)データとしてスプールする。スプールされたデータは、OSのモジュールで構成されるジョブ管理機能を備えたスプーラ304に渡される。スプーラ304は渡されたジョブに関する情報をジョブが終了するまで保持し管理する。具体的な管理としては、例えば、プリンタ毎に、印刷ジョブのサイズ、ジョブ名等が管理され、印刷キュー305に表示される。また、紙ジャムなどのエラー発生時に備え、描画データを含むジョブそのものをジョブ終了まで保持するようにしても良い。
なお、スプーラがスプールデータを受け取った以後の処理は、アプリケーションの処理とは別プロセスとして動作する。スプールが終了すると、プリントプロセッサ306に印刷要求を発行する。
印刷要求の発行に基づき、プリントプロセッサ306は、スプーラ304から印刷出力情報と描画データをページ単位で読み込み、1ページずつGDI302を介してプリンタグラフィックドライバ303に出力して印刷するように要求する。このプリントプロセッサ306は、OSのモジュールとして用意されているが、プリンタベンダー等がカスタマイズしたものを用いても良い。
プリントプロセッサ306から印刷が要求されたプリンタグラフィックドライバ303は、GDI303が持つ描画機能であるGDIレンダリングエンジンを用いて、その描画データをプリンタの印刷解像度に合わせてラスタイメージデータにレンダリングする。その後、色処理、プリンタコマンドの付加などを行い、印刷ジョブとして生成し、プリンタ309に出力する。
実際にはグラフィックドライバ303から出力されたデータは、GDI302経由でランゲージモニタ308に送信依頼という形で出力される。
ランゲージモニタ308は印刷ジョブを特定サイズのパケットに区切り、プリンタ309へ向け逐一出力する。
他方、ランゲージモニタ308の機能として、プリンタ又はプリンタに投入されたジョブの各種状態情報を取得する機能がある。ここでのジョブとしては、印刷ジョブや、メンテナンスジョブが含まれる。
メンテナンスジョブには、プリンタにおけるノズルの目詰まりを改善する為のプリントヘッドのクリーニング処理や、プリントヘッドの状態を確認する為のプリントヘッドのノズルチェックパターン印刷処理が含まれる。また、プリントヘッドの正常な位置に対する誤差を補正する為のプリントヘッドの位置調整処理も含まれる。また、プリンタの電源のON又はOFFをクライアント装置から指示する電源制御処理、又は、プリンタの動作音モード等のプリンタ本体の各種動作モード設定処理プリンタの動作モード変更処理もメンテナンスジョブに含まれる。
ドライバUI307は、主に印刷ジョブに係わる各種設定を行えるアプリケーション又はユーティリティーである。また、プリンタ309に対して、上に説明したメンテナンスジョブを発行するジョブ出力手段としも機能し、発行したジョブの各種情報の取得も行う。ここで発行されたメンテナンスジョブもスプーラ304により管理される。なお、ドライバUI307は一例であり、ジョブを発行でき、且つ、スプーラ304からジョブの状態情報を取得できるアプリケーション又はユーティリティーであれば、適宜ドライバUI307の替わりに適用できる。
<印刷キュー305、スプーラ304、ランゲージモニタ308との関係>
ここで、上に説明した印刷キュー305、スプーラ304、ランゲージモニタ308の関係についてより具体的に説明する。印刷キュー305はスプーラ304が現在保持しているスプールデータの状態を表示する役割を担う。
スプーラ以後の処理は1つのプロセスとして実行されるため、スプーラ304に対して処理を返さなかったり、エラーを返したりすることにより、スプーラ304の処理を意図的に実質中断している状態とするなど制御できる。これにより、ランゲージモニタ308から印刷キュー305の状態を間接的に制御することが可能である。
印刷キュー305はWindows(登録商標)OSが持つ標準的な機能であり、例えばグラフィックドライバ303やドライバUI307、アプリケーション301などから所定のインタフェース関数を用いて参照できる。参照を行った主体は、現在印刷キュー305において管理されているジョブの情報(キューの情報)を取得できる。
以下、上に説明した印刷システムを基に、各種処理を説明する。なお、各フローチャートの各ステップの処理は、特に断りが無い限り、ROM201又はHD205に格納されたプログラムに基づく処理をCPU200が実行することにより実現されるものとする。
<ジョブの見届け処理>
まず、図4のフローチャートの各ステップについて説明を行う。図4は、ドライバUI307がメンテナンスジョブを発行し、メンテナンス処理中にダイアログを表示する際の処理を示す。
まずドライバUI307は、ドライバUI307を通してユーザからメンテナンスジョブを発行依頼があった場合に、メンテナンスジョブを発行する(S401)。
次にメンテナンス中であることを示すダイアログをOSを介して表示させるよう指示する(S402)。
S402において表示部に表示されるダイアログ例を図5に示す。ダイアログ501中には、メンテナンス中であり、他の動作を行わないようユーザに促すようなメッセージ502が含まれている。後述の処理によりメンテナンス終了に応じてダイアログ501を自動的に閉じることも可能であるが、ユーザによるOKボタン503への押下指示に応じて閉じることもできる。
そして、ドライバUI307はS401で発行したメンテナンスジョブのジョブIDを印刷キュー内とは別の記憶領域に保存する(S403)。また、ジョブIDの保存期間は例えばジョブの発行からジョブの終了までの間とすることができる。また、ジョブの履歴を保存するという意味で、ジョブが終了した後もジョブIDを保存しても良い。
本実施形態では、ランゲージモニタ308のスプーラ304に対する制御処理により、印刷キュー305内でのジョブの終了と、プリンタ309の実際の処理の終了とを概ね一致することができる。従って、ドライバUI307はS401で発行したメンテナンスジョブのジョブIDが印刷キュー305内に存在するかどうかを調べる(S404)。より具体的には、アプリケーション又はユーティリティーとしてのドライバUI307は、所定の関数を用いたり、予め定められた記憶領域を参照することにより、ジョブ管理手段としてのスプーラ304が管理している情報を取得する。そして取得したジョブ情報と、S403で保存したジョブ情報(ジョブID)を比較し調査を実行する。このS404の処理に基づき、メンテナンスジョブの終了を容易に検知できる。なお、ランゲージモニタ308のスプーラ304に対する制御処理については後述の図6乃至図8を用いて詳しく説明することとする。
印刷キュー305内に、S403で保存したジョブIDが存在していた場合(S405でNo)、一定時間間隔で再びS404からの処理を行う。S405で保存したジョブIDがまだ存在するということは、ランゲージモニタ308の指示によりスプーラ304が管理下のジョブ状態を未だ終了と識別していることに対応する。
一方、印刷キュー305内に、S403で保存したジョブIDが存在しなかった場合(S405でYes)、処理をS406に移行する。S405でS403で保存したジョブIDが無いということは、ランゲージモニタ308の指示によりスプーラ304が管理下の印刷ジョブの状態を終了と識別したことに対応する。
S402で表示した、メンテナンス中であることを示す図5のダイアログ501を閉じるようOSを介して表示制御の指示を行う(S406)。該指示により適切なタイミングでメンテナンスジョブのダイアログが表示から消去されることとなる。
<ランゲージモニタの詳細な処理>
以下、図6乃至8を用いて、監視手段の一例としてのランゲージモニタ308のスプーラ304に対する制御処理について説明する。以下では、このランゲージモニタ308によるスプーラ304に対する制御処理を、ランゲージモニタがプリンタに投入されたジョブの情報を最後まで見届け監視し、該監視結果をスプーラ304に反映させることを見届け処理と呼ぶ。
まず、S301では各種コマンドの呼び出しが発生する。
アプリケーション301やドライバUI307からジョブの開始の指示を表すコマンドが出力され、ランゲージモニタ308がその出力を受信すると、初期化処理を行い(S602)、処理を返す(S603)。その後は、実際の印刷データやメンテナンスコマンドなどのデータがランゲージモニタに対して出力されることとなる。
一方、通常のデータを受信すると(S601でWriteと判定)、ランゲージモニタ308は受信したコマンドを解析する(S604)。次に、ジョブの種類によって見届けの手法が異なるため、ジョブの種類を認識する(S605)。ジョブの種類についての情報が無ければ、解析したコマンドから判断し、ジョブの種類を保存しておく(S606)。
S607で、ランゲージモニタ308はジョブ種類を識別する。ランゲージモニタ308が識別するジョブは主に3種類に分けられる。
1つ目は見届け処理を行わないようなメンテナンスジョブであり、特別な理由により見届け処理が好ましくないようなメンテナンスジョブが該当する。この場合、ランゲージモニタ308はプリンタ309にデータを出力し、処理を最初に戻す。例えば、プリンタの電源のON又はOFFをクライアント装置から指示する電源制御処理、プリンタの動作音モード等のプリンタ本体の各種動作モード設定処理などを例としてあげることが出来る。
2つ目は見届け処理を行うようなメンテナンスジョブで、これは先ほどの未届けをしないメンテナンスジョブ以外のメンテナンスジョブが当てはまる。ノズルの目詰まりを改善する為のクリーニング処理、プリントヘッドの状態を確認する為のノズルチェックパターンの印刷処理、プリントヘッドの正常な位置に対する誤差を補正する為のヘッドの位置調整処理などを例として挙げることが出来る。
3つ目は、メンテナンスなどのコマンドによって行われる特殊な動作ではない、通常の印刷である。これは、ビットマップ画像や、ページ記述言語や、マークアップ言語等の描画データを含む印刷データ出力手段(例えばプリンタグラフィックドライバ303)により生成された印刷ジョブを指す。
このように、S607の判別処理に基づき、S604の処理でメンテナンスジョブであると解析した場合には、メンテナンスジョブに対応した図7の処理を行える。一方、通常の印刷ジョブと解析した場合には、通常印刷ジョブに対応した図8の処理を切替行うことができる。
次に、見届け処理を行うようなメンテナンスジョブの図6以後のフローについて、図7を用いて説明する。ランゲージモニタ308はS604で既にコマンドを解析しており、その内容によって、今回のジョブ中の最後のWriteを示すものであるかどうかを判別することができる(S701)。
最後のWriteでなかった場合、まだ見届けを行う必要は無いため、プリンタに通常通りデータを送信し(S702)、処理を返す。
通常図7から図8にかけての処理が複数回呼ばれ、最後のWriteとなった場合、まずプリンタ本体に対して、指定されたサイズのデータを出力する(S704)。その後、プリンタ本体からステータス(ジョブの状態)を取得する(S705)。例えばプリンタ309が何らかの処理中であることを示すBusyのステータスが返ってきた場合(S706)、処理を返す時の戻り値として、指定されWriteできたサイズ未満のバイトの値をスプーラ304に対して返す(S707)。このS707の処理により、ランゲージモニタのジョブ状態の監視に基づき、スプーラ304により管理されるジョブのプリンタへの転送が終了していても、スプーラ304にジョブの状態を終了と管理(識別)させないようにできる。
通常戻り値には、プリンタへ正常に出力できたバイト数を返すことで、スプーラ304は正しく送信が行われたことを確認する。しかしここではWriteできたサイズ未満のバイトを返すことで、スプーラ304はデータが全て正しく出力されなかったと認識し、最後の未出力バイトのデータを再び出力してくる。ランゲージモニタ308は既に全データ送信済みである場合(S703でYes)、実際のプリンタへのデータ出力処理は行わず、再びプリンタ本体のステータスを取得し調べる(S705)。
S701乃至S706の処理を繰り返し、プリンタ本体から取得されるステータスがBusyで無くなったことに応じて(S706でNo)、スプーラ304への戻り値として指定されたサイズを返す(S708)。このS708の処理によりスプーラ304は全てのデータが正常に出力できたと判定し、対象とするジョブを管理外とする。即ち、印刷キュー305から対象とするジョブそのもの又はジョブの情報を削除/無効化する。
このように、図7のフローチャートの処理は、スプーラ304がランゲージモニタ308に依頼した送信データを全て送信できない場合に依頼のリトライを試みる仕組みを利用している。そして、ランゲージモニタ308は全てのプリンタへ出力すべきデータを出力しているにも関わらず出力できない旨をスプーラ304に返すことで、スプーラ304に擬似的にジョブ終了を認識させないよう制御できる。
また、ランゲージモニタ308は処理を返さないままで見届け処理を行っているのではなく、スプーラ304に処理を返しながら見届け処理を行っているため、同じプロセスの全ての処理を止めることなく見届けを可能としている。
次に、図6のS607でジョブの種類が通常印刷であると識別された場合に実行される処理を図8のフローチャートを用いて説明する。
まず、S801乃至805においては基本的には図7のメンテナンスジョブにおけるフローチャート処理と同様であり詳しい説明は省略する。
S805でプリンタ本体から通信回線を介して状態を取得する。S806では、文書アプリケーションデータに基づく印刷ジョブを受けた場合に対応して、S805で取得した結果を、ステータス表示アプリケーションに伝達するべく、ランゲージモニタにより所定の記憶領域に書き込む。ステータスアプリケーションは、印刷要求元のアプリケーション301を該当させても良いし、印刷要求元のアプリケーション301とは別のアプリケーションを該当させても良い。また、必要であれば、ドライバUI307を該当させても良い。
書き込まれた結果は、ステータス表示アプリケーションにより読み込まれ、ステータス表示アプリケーションは読み込んだ結果を解釈し、該解釈に基づきジョブの状態に係わる表示制御を行う。但し、この場合にステータス表示アプリケーションにはランゲージモニタ308の出力結果を解析する機能を含める必要がある。
尚、上の説明では、ランゲージモニタは、取得したステータスの解析結果を所定の記憶領域に書き込み、それをステータス表示アプリケーションに読み込ませるよう説明したが、他の形態も考えられる。例えば、ステータス表示アプリケーションからの問合せがある度に、ランゲージモニタが応答するようにして、ジョブの状態をランゲージモニタからステータス表示アプリケーションに読み込ませるようにしても良い。
そして、S806を経由した後にS807では、プリンタ本体から通信回線を介して取得される印刷中のページ番号を示すステータスを取得することによって検知する。
このステータスは、印刷を行っていない間は値を持たない(例えば零)ため、それにより印刷中であるかどうかを検知できる。
ノズルチェックパターン印刷をプリンタに実行させる場合、印刷出力するパターンをプリンタ309内部に保持している場合と、プリンタドライバやユーティリティー側で保持し、印刷ジョブとしてプリンタに送信する場合がある。前者の場合、ノズルチェックパターンの印刷指示はコマンドの送信によってクライアント側からプリンタに対して行われるため、図7に示されるフローチャートの処理を実行する。また、後者の場合、ノズルチェックパターンの印刷は通常の印刷ジョブとして実行されるため、図8に示されるフローチャートの処理を実行する。
このようにランゲージモニタ308による見届け処理を行う事により、印刷キュー305のジョブの終了と、プリンタ309の実際の処理の終了をほぼ一致させることが可能である。
ここで、図8のフローチャートに対応して、アプリケーション又はユーティリティー又はプリンタドライバにより実行される処理を図9に示す。以下、図4と異なる点について詳しく説明する。
S901では、アプリケーション301からの印刷要求に応じて印刷ジョブが発行される。例えばプリンタグラフィックドライバ303により印刷ジョブが生成される。
S902では、印刷ジョブの発行に伴い、印刷中のダイアログが表示される。
S903乃至904では、発行された印刷ジョブに対して、メンテナンスジョブの場合と同様の処理が行われる。そしてランゲージモニタ308はS903で保存したジョブIDが、スプーラ304の管理下にあるジョブの情報に含まれるかを調査する。S905の処理と図8との対応関係について説明すると、図8のS809の処理が、ランゲージモニタにより実行されることに応じてS905でNoと判定される。また、図8の808が実行されることに応じてS905でYesと判定される。
そして、S902で表示した印刷中のダイアログを閉じるようOSを介して表示制御の指示を行う(S906)。
このように、図6乃至8、9のフローチャートを実行し、メンテナンスジョブのみではなく、印刷出力を伴う印刷ジョブに対しても、図7と同様の処理を行える。つまり、所定のアプリケーション又はユーティリティーにより、スプーラ304に管理されるジョブの状態の認識を行わせるという簡易な仕組みでジョブ状態を識別させることができる。結果、アプリケーション又はユーティリティーは、ランゲージモニタと直接的に対話しなくとも、ジョブの状態を適確に判断でき、且つ、その判断結果を例えばメッセージダイアログの表示制御に結びつけることができる。
以上説明してきたように、上述の実施形態によれば、アプリケーション又はユーティリティーなどの上位手段は、スプーラ304によって管理されるジョブの状態を監視するという簡易な仕組みで、実際のジョブ終了を適確に判定できる。
特に、メンテナンスジョブの発行に際しては、クライアント装置は短時間にメンテナンスコマンドの出力を終え、一方、プリンタ本体ではメンテナンス処理中の状態が長く続く。つまり、クライアント装置からのコマンド出力終了のタイミングと、プリンタにおけるメンテナンス処理終了のタイミングとが一致しない。しかし、上述の実施形態によれば、そのような事態を防ぐことが出来る。例えば、上位手段側に、プリンタのメンテナンス処理に要する時間を保持し、その時間経過に応じて、メンテナンス処理が終了したと見なす方法もあるが、上述の仕組によれば、より正確なジョブの状態を監視できる。
さらに、上位手段側は、ランゲージモニタのような監視手段の出力仕様を考慮せずとも、ジョブ状態の監視をでき、監視手段の出力結果の解析処理を軽減できたり、また、上位手段の開発を容易にする。
〔第2の実施形態〕
上に説明した実施形態では、クライアント装置側とプリンタ側とが、ランゲージモニタによる双方向通信を行えるという前提であった。しかしクライアント装置とプリンタとの通信インターフェースの種類によっては、双方向通信をサポートしない場合がある。また、インタフェースが双方向通信をサポートしていたとしてもOSの設定により双方向通信が禁止されていたり、プリンタを特定のプリントサーバに接続して用いている場合などクライアント側からプリンタ側への片方向通信に限定される場合がある。
そして、双方向通信が行えないとクライアント装置側でプリンタからの各種状態情報を取得できない。本実施形態では双方向通信が行えない場合でも、アプリケーションが、簡易且つ適確にジョブの状態を監視できる仕組を説明する。
図10は、各種アプリケーションや各種ユーティリティーなどの上位手段がジョブを発行し、発行したジョブの終了を検知する場合の、上位手段による処理を示す。尚、図10のフローチャートは、第1の実施形態で説明したメンテナンスジョブに適用できるが、ジョブとして印刷ジョブを例に説明する。また上位手段としてアプリケーションを例に説明する。
まず、上位手段は印刷ジョブを発行する(S1001)。
その後、印刷中にアプリケーションが独自で通知ダイアログを表示する(S1002)。ここで、表示するダイアログの一例を図11に示す。次にアプリケーションは、S1001で発行した印刷ジョブの終了を検知するための、プリンタが印刷処理をしないようなダミー印刷ジョブを発行する(S1003)。
S1003で発行されるジョブは、ユーザが印刷毎に特に意識することなく自動的に発行される。ここでプリンタが印刷処理をしない印刷ジョブとは、先に発行した印刷出力処理に影響せず、且つ、プリンタが随時破棄できるようなデータを適用できる。
アプリケーションは、S1003で発行したダミー印刷ジョブジョブIDを保存しておく(S1004)。当然のことながら、ダミー印刷ジョブのジョブIDはスプーラ304でも管理される。
ここで、留意する点として、プリンタ309は、ある印刷ジョブを処理中に、次の印刷ジョブを受け付けない機能を備える。つまりプリンタは、ある印刷ジョブにかかる印刷データを全て受け取った後も、プリンタのインターフェースをビジーの状態にし、印刷処理が全て終了してから、ビジーを解除し、次のデータを受信する。そのためプリンタ309は、S1001で発行した印刷ジョブによる印刷を終了したことに応じて、S1003で発行したジョブを受け付けることとなる。
次に、アプリケーションは一定間隔でOSの持つ印刷キュー205を調べ、S1004で保存したジョブIDを持つジョブが存在するかどうかを調べる(S1005)。
S100で存在しないと判定した場合、アプリケーションは、S1001で発行したジョブが終了したと判定する。そして、該判定に応じてS1002で表示した印刷中に表示するためのダイアログを閉じる(S100)。
S1003で発行したジョブは、プリンタ309が印刷出力しないジョブであるため、プリンタ309が受信後、すぐに処理が終了となる。
これにより、S1003で発行したジョブの終了と、S1001で発行したジョブ処理の終了タイミングが概ね一致する。
〔第3の実施形態〕
第3の実施形態では、第2の実施形態の仕組みを更に発展させた、ジョブ状態の監視について説明する。
例えばプリンタ309をネットワークプリンタとして利用し、複数のPCから参照可能であるような形態をとる場合、S1003で発行する終了検知用ジョブが、印刷キュー305中においてS1001で発行するジョブの次に来ることが保証されない。つまり、他のジョブに割り込まれたり、優先的に追い抜かれる可能性がある。
このため、S1003で発行されるダミー印刷ジョブの終了を適確に検知できず、S1001で発行された印刷ジョブの処理が実際に終了してしばらく経過した後、ダミー印刷ジョブの終了を検知してしまう場合もある。第3の実施形態この問題をも解決できるジョブ状態の監視に関する。
図12は、第3の実施形態で送信するジョブデータの内容例である。この図12には、ジョブ開始コマンド1201、印刷データ1202、ジョブ終了コマンド1203に加えて、プリンタ309が持つバッファよりも大きなサイズでプリンタ309による印刷処理が行われないデータ1204が含まれている。
この図12の印刷ジョブは、アプリケーション301を介して印刷が行われた場合に、アプリケーション301が特に指定することなくグラフィックドライバ303によって作成される。
図12のような印刷ジョブによれば、OSにしてみれば一つのジョブとして識別するので、1203と1204の間に、他の印刷ジョブが割り込まれるようなことはなく、第2の実施形態で想定されるような問題は解決される。
プリンタ309はクライアント装置側から出力される受信データを解析し、印刷等の処理を行うが、その際ジョブの終了を示すコマンド1203が検出されると、一旦データ受信処理を中止する。データ受信処理の中止は、プリンタのインターフェースをビジーとし、ランゲージモニタ208から出力されるデータを受け付けなくすることにより行う。また、データの解析処理を一時中止することによって行っても良い。
図12の場合には、ジョブ終了コマンド1203の後に、プリンタ309が持つバッファよりも大きなサイズのデータ1204が存在するため、印刷キュー305には、データの送信が完了していないままの状態となる。
プリンタ309は、先に受信した印刷ジョブ(1201乃至1203)の実際の印刷処理が終了したことに応じて、中断していたデータ受信処理を再開すると共に受信したデータ解析も再開する。この時解析されるデータ1204はプリンタ209が解析しても印刷出力には影響を持たない為、印刷出力処理を行う場合と比較し、非常に短い時間で全て処理される。そして、1201乃至1204のデータに対する処理が終了することに応じて、印刷キュー305から発行された印刷ジョブの情報が削除される。
よって、アプリケーションやユーティリティーは、図12のようなジョブに対して、スプーラ304により管理されるジョブの情報を監視するという簡易な仕組みにより、ジョブの状態を監視できる。また、第3の実施形態に説明した仕組みによれば例えランゲージモニタ308とプリンタ309との通信が片方向であっても、印刷キュー305におけるジョブの終了認識とプリンタ309の実際の印刷処理終了のタイミングとを概ね一致させることができる。
また、さらなる応用例として、1202に印刷データではなくメンテナンスコマンドを適用することにより、第3の実施形態にメンテナンスジョブを適用することもできる。
〔第4の実施形態〕
上に説明した第1乃至第3の実施形態では、図3に示されるような、クライアント装置にインストールされる各ソフトウェアモジュールが協働したジョブ状態監視システム、及び、ジョブ状態監視方法を説明してきたが、これを応用した形態も想定される。
例えば、図3中のランゲージモニタ308を別のコンピュータにインストールしジョブ状態監視システムを構築するようにしても良い。この場合には、ランゲージモニタ308とスプーラ304とがプロセス間通信を行うことにより、上記各実施例と同様の効果を得ることが出来る。
また、図3においては、ランゲージモニタ308や、スプーラ304の各々のソフトウェアモジュールを別々に示したが、例えば、1プロセスで実行される1ソフトウェアモジュールによって、ジョブ状態監視システムを構築するようにしても良い。
このように、本発明は、ユーザのシステム環境に従って、様々なシステム形態をとり、ジョブ状態監視システムを構築することが出来る。
〔その他の実施の形態〕
本発明の目的は前述したように、各実施形態の機能を実現するプログラムコードを記録した記憶媒体をシステムあるいは装置に提供し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フロッピィディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM,CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれている。
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含む。

Claims (5)

  1. プリンタと通信可能なジョブ状態監視システムであって、
    ジョブ発行要求に応じて発行される第1のジョブをオペレーティングシステムのスプーラへ出力し、該第1のジョブに続いて、印刷出力処理に影響しないダミーデータからなるダミージョブを生成して前記スプーラへ出力する出力手段を有し、
    上位アプリケーションが前記スプーラを参照し、前記スプーラに前記ダミージョブが存在するか否かを調べることによって、前記第1のジョブの状態を認識可能にしたことを特徴とするジョブ状態監視システム。
  2. 前記ダミーデータを前記プリンタが持つバッファよりも大きいサイズとしたことを特徴とする請求項に記載のジョブ状態監視システム。
  3. プリンタと通信可能なジョブ情報処理装置におけるジョブ状態監視方法であって、
    ジョブ発行要求に応じて発行される第1のジョブをオペレーティングシステムのスプーラへ出力し、該第1のジョブに続いて、印刷出力処理に影響しないダミーデータからなるダミージョブを生成して前記スプーラへ出力する出力工程を有し、
    上位アプリケーションが前記スプーラを参照し、前記スプーラに前記ダミージョブが存在するか否かを調べることによって、前記第1のジョブの状態を認識可能にすることを特徴とするジョブ状態監視方法。
  4. 請求項に記載のジョブ状態監視方法をコンピュータに実行させるためのコンピュータプログラム。
  5. 請求項に記載のコンピュータプログラムを記憶したコンピュータ読取可能な記憶媒体。
JP2010107702A 2010-05-07 2010-05-07 ジョブ状態監視システム、ジョブ状態監視方法、プログラム及び記憶媒体 Expired - Fee Related JP5014461B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010107702A JP5014461B2 (ja) 2010-05-07 2010-05-07 ジョブ状態監視システム、ジョブ状態監視方法、プログラム及び記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010107702A JP5014461B2 (ja) 2010-05-07 2010-05-07 ジョブ状態監視システム、ジョブ状態監視方法、プログラム及び記憶媒体

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2005188290A Division JP4659531B2 (ja) 2005-06-28 2005-06-28 ジョブ状態監視システム、ジョブ状態監視方法、プログラム及び記憶媒体

Publications (2)

Publication Number Publication Date
JP2010191994A JP2010191994A (ja) 2010-09-02
JP5014461B2 true JP5014461B2 (ja) 2012-08-29

Family

ID=42817896

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010107702A Expired - Fee Related JP5014461B2 (ja) 2010-05-07 2010-05-07 ジョブ状態監視システム、ジョブ状態監視方法、プログラム及び記憶媒体

Country Status (1)

Country Link
JP (1) JP5014461B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5748557B2 (ja) * 2011-05-18 2015-07-15 キヤノン株式会社 情報処理装置及びプログラム、制御方法
JP6115340B2 (ja) 2012-08-29 2017-04-19 株式会社リコー 情報処理装置、プリントシステムおよびプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05224836A (ja) * 1992-02-14 1993-09-03 Canon Inc 印刷装置及びデータ通信方法
JP3624019B2 (ja) * 1995-06-30 2005-02-23 キヤノン株式会社 情報処理装置および情報処理方法
JP2000203124A (ja) * 1999-01-14 2000-07-25 Star Micronics Co Ltd プリンタおよび印刷システム

Also Published As

Publication number Publication date
JP2010191994A (ja) 2010-09-02

Similar Documents

Publication Publication Date Title
JP4659531B2 (ja) ジョブ状態監視システム、ジョブ状態監視方法、プログラム及び記憶媒体
US7907313B2 (en) Management of multiple printer drivers
US20040160613A1 (en) Print control program and medium and information processing apparatus
JP2002163086A (ja) 情報処理装置及び分散印刷制御方法及び記憶媒体並びにプログラム
JPH11327856A (ja) 印刷制御装置および印刷制御装置のデ―タ処理方法およびコンピュ―タが読み出し可能なプログラムを格納した記憶媒体
JP6292009B2 (ja) システム、及び方法
JP2006209309A (ja) 印刷システム
JP4817968B2 (ja) 帳票処理装置及び方法
JP2009129015A (ja) 画像処理装置及び情報処理装置及び画像処理方法及び情報処理方法及び画像処理システム及び情報処理システム
JP5014461B2 (ja) ジョブ状態監視システム、ジョブ状態監視方法、プログラム及び記憶媒体
JP5807460B2 (ja) 情報処理装置、プログラム、記憶媒体
JP2012146240A (ja) アプリケーションプログラムとプリンタードライバー間のデータ通信方法およびプログラム
US11775236B2 (en) Information processing apparatus, processing method of information processing apparatus, and storage medium
US9354834B2 (en) Printing with virtual printer
JP5961937B2 (ja) 情報処理システム
US10437527B2 (en) System and method for pre-generation of page description language (PDL) for printing
JP4143469B2 (ja) 印刷装置、印刷処理方法、プログラムおよび記憶媒体
JP3962720B2 (ja) 情報処理装置、情報処理方法、及びコンピュータプログラム、並びにコンピュータ読み取り可能な記憶媒体
JP4110021B2 (ja) 部門管理を伴う印刷処理を行う印刷処理プログラム及び情報処理装置及び情報処理方法並びに記憶媒体
JP2006209308A (ja) 印刷システム
JP4143598B2 (ja) 情報処理装置における管理方法、情報処理装置、プログラム及び記憶媒体
JP2006155311A (ja) 情報処理装置、情報処理方法及びプログラム
JP2006056072A (ja) 印刷システム及び印刷ジョブの制御方法
JP2006244278A (ja) データ処理装置および印刷制御方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム
JP2006163796A (ja) 印刷制御装置、印刷制御プログラム及び記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100527

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20100630

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120409

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120529

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120605

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150615

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 5014461

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150615

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees