(57)【特許請求の範囲】
【請求項１】
印刷アプリケーションから受信した順番で印刷データを記憶領域に保持し、保持された印刷データのうち、受信した順番が先頭の印刷データから印刷装置に送信する印刷制御装置において、
前記記憶領域で受信した順番が先頭の印刷データに課金コードが設定されている場合、当該印刷データを印刷装置に送信し、前記記憶領域で受信した順番が先頭の印刷データの課金コードが設定されていない場合、当該印刷データより前記記憶領域で受信した順番が後続となる印刷データが先頭になるように印刷データの順番を制御する制御手段と、
前記印刷アプリケーションから受信した印刷データの一覧を表示するための表示制御手段と、
前記表示制御手段により表示された印刷データの一覧から、ユーザの入力に応じて、少なくとも１つ以上の印刷データを選択し、当該選択された印刷データに対して課金コードを設定する設定手段と、
前記設定手段により課金コードが設定された印刷データを優先して処理させるために、前記設定手段により課金コードが設定された印刷データの処理の優先度を高く設定する優先度設定手段とを備えることを特徴とする印刷制御装置。
【請求項２】
複数の装置からログを収集するログ収集サーバに対して、少なくとも課金コードを含む前記印刷データに関連する情報をログとして送信する送信手段を備えることを特徴とする請求項１に記載の印刷制御装置。
【請求項３】
前記記憶領域に保持された課金コードが設定されていない印刷データの記憶領域に保持されていた時間が閾値を超えると、当該印刷データを削除する削除手段を備えることを特徴とする請求項１または２に記載の印刷制御装置。
【請求項４】
前記印刷装置が備える第２の記憶領域に保持される印刷データの情報を受信する受信手段と、
前記表示制御手段は、前記受信手段で受信した情報を用いて、前記印刷装置が備える第２の記憶領域に保持される印刷データの一覧を表示することを特徴とする請求項１乃至３のいずれか１項に記載の印刷制御装置。
【請求項５】
記憶領域を備えるクライアント装置における、受信した順番で印刷データを前記記憶領域に保持し、保持された印刷データのうち、受信した順番が先頭の印刷データから印刷装置に送信するための印刷制御方法であって、
前記記憶領域で受信した順番が先頭の印刷データに課金コードが設定されている場合、当該印刷データを前記印刷装置に送信し、前記記憶領域で受信した順番が先頭の印刷データの課金コードが設定されていない場合、当該印刷データより前記記憶領域で受信した順番が後続となる印刷データが先頭になるように印刷データの順番を制御する制御工程と、
前記受信した印刷データの一覧を表示するための表示制御工程と、
前記表示制御工程により表示された印刷データの一覧から、ユーザの入力に応じて、印刷データを選択し、当該選択された印刷データに対して課金コードを設定する設定工程と、
前記設定工程により課金コードが設定された印刷データを優先して処理させるために、前記設定工程により課金コードが設定された印刷データの処理の優先度を高く設定する優先度設定工程とを備えることを特徴とする印刷制御方法。
【請求項６】
前記記憶領域に保持された課金コードが設定されていない印刷データの記憶領域に保持されていた時間が閾値を超えると、当該印刷データを削除する削除工程を備えることを特徴とする請求項５に記載の印刷制御方法。
【請求項７】
請求項１乃至４のいずれか１項に記載の手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷システムにおいて印刷ジョブに対して課金コードなどの追加情報を付加し、そのログを収集することでジョブのコストなどを管理する技術に関する。
【背景技術】
【０００２】
近年ユーザ毎に印刷文書名、印刷日時、用紙、部数、カラー／モノクロ等を集計する印刷履歴管理システムが実現している。さらに、印刷アプリケーションやプリンタドライバでは付加されない情報（例えば、顧客情報や印刷単価）を印刷ジョブに紐付け、印刷ログ（履歴）の一部として集計している。集計結果から印刷傾向を調査するなど、精度の高い課金に利用するシステムが実現されている。
【０００３】
また、無駄な印刷の抑制のため、ユーザ毎に印刷可能数を設定しておき、ユーザの印刷上限を制限するシステムが提供されている。
【０００４】
印刷ジョブに追加情報を紐付けさせる手段として、ジョブ作成時に印刷設定ダイアログから情報入力し、プリンタドライバで印字情報を格納する領域とは別の領域（例えば、ヘッダー）に書き込み、ジョブを生成する方法があった。しかしながら、ジョブを作成するドライバを変更する必要があり、既存システムへの適用ができなかった。そこで、クライアントＰＣからジョブ生成後に、スプーラに格納後、画像処理装置へジョブ送信時に情報入力ダイアログをさせる方法が考え出された。しかし、ジョブはスプールされた順に、１度に１ジョブが送信されるのが普通である。該当ジョブが先頭ジョブ以外の時は送信順番が回ってくるまでには時間がかかり、情報入力ダイアログが表示されるときにはユーザがログオフし、入力できないことがあった。そのため、先頭ジョブの情報入力待ちのために後続ジョブが止まってしまうことがあった。これを防ぐために、入力ダイアログに一定期間入力がないときは、タイムアウトとしてジョブをキャンセルしていた。それにより、印刷実行したユーザが印刷物を受け取ることができないという問題があった。
【０００５】
ここで例えば、特許文献１に開示された発明がある。この発明では、画像処理装置が、キューの先頭ジョブが資源待ち（例えば、特定用紙切れ）の場合は、該当ジョブを一時停止しておき、キューの次ジョブを実行するものである。
【特許文献１】特開２００３−１３１８３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記従来の技術によると、一般的に画像処理装置の記憶装置は情報処理装置に比べ低容量であり、大量のジョブまたは、大きなジョブを止めておくことができない。止めてしまうとシステムの停止に陥ることがある。大容量の記憶装置を持った画像処理装置があったとしても、すぐに印刷できないジョブをネットワーク経由で情報処理装置から送信することにより、非効率である。また、印刷実行したユーザが画像処理装置に出向かないと、特定条件（資源待ち）を解除することができない。
【０００７】
本発明は、上記問題に鑑みてなされたもので、ユーザの指示により生成された印刷ジョブに対して、後に印刷ログの一部として有効な追加情報を設定することをユーザに促せ得る印刷制御装置の提供を目的としている。
【課題を解決するための手段】
【０００８】
上記課題を解決するために本発明は、印刷アプリケーションから受信した順番で印刷データを記憶領域に保持し、保持された印刷データのうち、受信した順番が先頭の印刷データから印刷装置に送信する印刷制御装置において、前記記憶領域で受信した順番が先頭の印刷データに課金コードが設定されている場合、当該印刷データを印刷装置に送信し、前記記憶領域で受信した順番が先頭の印刷データの課金コードが設定されていない場合、当該印刷データより前記記憶領域で受信した順番が後続となる印刷データが先頭になるように印刷データの順番を制御する制御手段と、前記印刷アプリケーションから受信した印刷データの一覧を表示するための表示制御手段と、前記表示制御手段により表示された印刷データの一覧から、ユーザの入力に応じて、少なくとも１つ以上の印刷データを選択し、当該選択された印刷データに対して課金コードを設定する設定手段と、前記設定手段により課金コードが設定された印刷データを優先して処理させるために、前記設定手段により課金コードが設定された印刷データの処理の優先度を高く設定する優先度設定手段とを備えることを特徴とする。
【発明の効果】
【０００９】
上記構成によれば、ユーザの指示により生成された印刷ジョブに対して、後に印刷ログの一部として有効な追加情報を設定することをユーザに促せ得る印刷制御装置の提供が可能になる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照しながら本発明の実施の形態に係る印刷システムについて説明する。
【００１１】
図１は、本発明の実施の形態にかかる印刷システムの構成を示すブロック図である。１０１〜１０４は情報処理装置であり、イーサネット（登録商標）などのネットワークケーブルによって、ネットワーク１０６に接続されている。さらに、アプリケーションプログラム等の各種のプログラムを実行可能であり、印刷データをプリンタに対応するプリンタ言語に変換する機能を有するプリンタドライバを搭載している。また、ネットワーク１０６に接続されている他の機器と双方向に通信可能な通信装置を備えている。
【００１２】
プリンタドライバは複数のプリンタをサポートするものである。また、プリンタ（入出力装置）は、電子写真方式を採用したレーザービームプリンタ、インクジェット方式を採用したインクジェットプリンタ、熱転写方式を利用したプリンタ等の様々な方式のもののうち何れであってもよい。
【００１３】
本実施例における１０１、１０２はパーソナルコンピュータなどの情報処理装置であり、１０１はログ収集サーバ、１０２はプリントサーバとする。ログ収集サーバ１０１およびプリントサーバ１０２はネットワークケーブルによってネットワーク１０６に接続されており、ネットワーク１０６で使用されるファイルを蓄積したり、ネットワーク１０６の使用状態を監視したりする。また、ログ収集サーバ１０１およびプリントサーバ１０２は、ネットワーク１０６に接続されている他の機器と双方向に通信可能な通信装置を備えており、複数のプリンタの管理も行っている。
【００１４】
クライアント１０３〜１０４、ログ取得サーバ１０１、及びプリントサーバ１０２は一般的な情報処理装置である。ログ収集サーバ１０１、およびプリントサーバ１０２は、クライアント１０３〜１０４としての機能を併せて持つこともできる。クライアント、ログ収集サーバ、及びプリントサーバのＨＤやＲＯＭなどの記憶媒体には、各種制御を実現するための制御プログラムが実行可能に格納されている。
【００１５】
プリントサーバ１０２は、さらにクライアント１０３、１０４から印刷要求が出された印字データを含む印刷ジョブを格納し、画像処理装置に送信する。または、クライアント１０３、１０４から印字データを含まないジョブ情報のみを受け取ってクライアント１０３、１０４の印刷順序を管理し、印刷の順番が来たクライアントに対して印字データを含む印刷ジョブの送信許可を通知する。さらに、ネットワークプリンタ１０５のステータスや印刷ジョブの各種情報を取得してクライアント１０３、１０４に通知したりする機能を揃えている。
【００１６】
１０５は画像処理装置（プリンタ、複写機、複合機などを含む）であり、ネットワークプリンタは、図示省略したネットワークインタフェースを介してネットワーク１０６に接続されている。さらに、クライアント１０２、１０３、１０４から送信される印字データを含む印刷ジョブを受信して印刷を行う。
【００１７】
ネットワーク１０６にはクライント１０２、１０３、１０４、サーバ１０１、ネットワークプリンタ１０５等が接続されている。
【００１８】
図２において、２００はクライアント１０２、１０３、１０４の制御手段であるＣＰＵである。ＣＰＵ２００は、ハードディスク（ＨＤ）２０５に格納されているアプリケーションプログラム、プリンタドライバプログラム、ＯＳや本発明のネットワークプリンタ制御プログラム等を実行する。さらに、ＲＡＭ２０２にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
【００１９】
２０１は記憶手段であるＲＯＭであり、内部には基本Ｉ／Ｏプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データが記憶される。２０２は一時記憶手段であるＲＡＭであり、ＣＰＵ２００の主メモリ、ワークエリア等として機能する。
【００２０】
２０３は記憶媒体読み込み手段としてのフロッピー（登録商標）ディスク（ＦＤ）ドライブである。後述する図５に示すように、このＦＤドライブ２０３を介して、記憶媒体としてのフロッピー（登録商標）ディスク（ＦＤ）２０４に記憶されたプログラム等をクライアントである本コンピュータシステムにロードすることができる。なお、記憶媒体はＦＤに限らず、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＰＣカード、ＤＶＤ、ＩＣメモリカード、ＭＯ、メモリスティック等、任意である。
【００２１】
ＦＤ２０４には、コンピュータによって読み取り可能なプログラムが格納されている。
【００２２】
２０５は外部記憶手段の一つであり、大容量メモリとして機能するハードディスク（ＨＤ）であり、アプリケーションプログラム、プリンタドライバプログラム、ＯＳ、制御プログラム、関連プログラム等が格納されている。さらにスプーラがここに確保される。スプーラは、クライアントにおいてはクライアントスプーラであり、プリントサーバではサーバスプーラである。また、プリントサーバでは、クライアントから受けたジョブ情報を格納し、順序制御を行うためのテーブルもこの外部記憶手段に生成されて格納される。
【００２３】
２０６はキーボード（指示入力手段）であり、デバイスの制御コマンドの命令等を入力するものである。
【００２４】
２０７はディスプレイ（表示手段）であり、キーボード２０６から入力されたコマンドや、プリンタの状態等を表示するものである。
【００２５】
２０８はシステムバスであり、クライアントであるコンピュータ内のデータの流れを司るものである。
【００２６】
２０９はインタフェース（入出力手段）であり、該インタフェース２０９を介してクライアントは外部装置とのデータのやり取りを行う。
【００２７】
本実施の形態では、ＦＤ２０４から制御プログラム及び関連データを直接にＲＡＭ２０２にロードして実行する例を示す。これ以外にも、ＦＤ２０４から制御プログラムを動作させる度に、既にＨＤ２０５にインストールされている制御プログラムをＲＡＭ２０２にロードするようにしてもよい。
【００２８】
なお、制御プログラムを記憶する媒体は、ＦＤ以外にＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＰＣカード、ＤＶＤ、ＩＣメモリカードであってもよい。さらに、制御プログラムをＲＯＭ２０１に記憶しておき、これをメモリマップの一部となすように構成し、直接にＣＰＵ２００で実行することも可能である。
【００２９】
次に画像処理装置の詳細構成を説明する。画像処理装置２は、詳細を後述する接続部２２６、データ制御部（プリンタエンジン）２２５、操作部２２４、外部メモリ２２３、ＰＣＰＵ２２０、ＰＲＡＭ２２２、及びＰＲＯＭ２２１を主要な構成要素する。これらの構成要素がシステムバス２２７を介して互いに接続されている。
【００３０】
プリンタＣＰＵ（ＰＣＰＵ）２２０は、画像処理装置２の全体制御を司るものである。ＰＣＰＵ２２０は、後述するＰＲＯＭ２２１或いは外部メモリ２２３に記憶された制御プログラムに基づいて、接続部２２６で受信したプリンタ制御コマンド（送信データ）より、画像信号をデータ制御部２２５に送信する。
【００３１】
ＰＲＡＭ２２２は、ＰＣＰＵ２２０の主メモリとして、ＰＣＰＵ２２０による制御実行時、ワークデータエリアとして使用される各種データの一時記憶領域を備えている。外部メモリ２２３は、オプションとしても接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。ＰＲＯＭ２２１はプリンタ内部メモリであり、外部メモリと同様に、各種データや本画像処理装置を制御する制御プログラム等を記憶している。
【００３２】
データ制御部２２５はプリンタエンジンであり、ＰＣＰＵ２２０により制御され、ＰＲＯＭ２２１、或いは外部メモリ２２３に記憶された制御プログラムよりシステムバス２２７を介して出力された画像信号を受け、実際の印刷処理を行う。操作部２２４は、操作パネルや操作スイッチ等の入力部、及びＬＥＤ、液晶パネル等の表示部等から構成され、オペレータの操作を受けたり結果を表示するものである。オペレータは操作部２２４を介して画像処理装置２の設定を指示するなど、確認することが可能である。
【００３３】
２２６は接続部であり、前述の双方向インタフェース２０９を介して情報処理装置１の接続部２１０に接続し、印刷制御コマンド（送信データ）を受信する、画像処理装置内部の状態などを通知する事も可能である。
【００３４】
また、以上の各装置と同等の機能を実現するソフトウェアをもって、ハードウェア装置の代替として構成することもできる。
【００３５】
印刷ジョブを作成するクライアントコンピュータと、印刷ジョブを送信するプリントサーバ、印刷ログを収集管理するログ収集サーバは、同一の情報処理装置であっても、別の情報処理装置であっても本発明は適用される。
【００３６】
図３は、本実施の形態にかかる情報入力ＵＩ（画面）の一例である。このダイアログは、後述の図４記載のスプーラ監視モジュールによって、クライアントコンピュータの表示部２０７に表示され、ユーザからキーボード２０６等の指示装置による入力を受け付ける。課金コード入力領域３０１、入力確定ボタン３０２、ジョブ操作ボタン（一時停止３０３、再開３０４、削除３０５）、表示の更新ボタン３０６、ジョブリスト表示部３０７を持つ。ジョブリスト表示部３０７では、ジョブリストととして、１行毎にジョブＩＤ、ドキュメント名、ジョブオーナー、課金コード、状態を一覧表示することができる。ユーザの指示により、ジョブを複数選択可能である。選択されたジョブはＵＩ上で識別可能に反転表示される。ジョブが選択されると、課金コード入力領域３０１が有効になり、任意の文字列を入力すること可能になる。複数選択時には同時に課金コードの入力が可能になる。
【００３７】
図４は、実施の形態にかかる印刷システムを構成するクライアントコンピュータ上で動作するモジュール、画像処理装置の関係および、ジョブの流れの一例を示す図である。クライアントコンピュータでは、例えば一般的に普及しているパーソナルコンピュータ（本発明の情報処理装置に相当する）にＭｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）をオペレーティングシステム（以下、ＯＳと呼ぶ）として使用する。さらに、印刷処理機能を有するＭｉｃｒｏｓｏｆｔ社製Ｗｏｒｄ（登録商標）等のアプリケーション４０１（印刷アプリケーション）を起動する。
【００３８】
ここで本発明の印刷制御装置（印刷制御部）として、少なくともドライバ、スプーラ監視モジュール、ＵＩ制御部、ポートモニタを備えるものとする。また、印刷制御装置は、その処理で用いる各種情報を格納するための記憶媒体やその他、印刷アプリケーションを除く図４に図示されるモジュール全てを備えていてもよい。さらに、後述するように、印刷制御装置は、画像処理装置（印刷装置（プリンタ）、複写機など）において実装されてもよい。
【００３９】
ユーザは、キーボード２０６やポインティングデバイス２０９等の指示装置を用いて、ドキュメントを作成し、アプリケーションに用意された印刷指示手段によって、印刷指示をする。アプリケーション４０１は、印刷データをプリンタドライバ４０２に渡し、印字ジョブを作成する。プリンタドライバ４０２は作成した印字ジョブをスプーラ４０３に渡す。スプーラ４０３は複数のドライバから渡された印刷ジョブをスプールして、ユーザ指定のプリンタ毎にスケジューリングし、プリンタが接続されているポートに対応するポーモニタ４０４にジョブを渡す。ポートモニタ４０４は、ポート（例えばＵＳＢやネットワーク）に対応するデバイスドライバ４０５を適宜呼び出し、ジョブを渡す。デバイスドライバ４０５は、渡されたデータを、所定の方法に基づき、接続部２１０を介し、画像処理装置４０６に渡す。
【００４０】
画像処理装置４０６は、クライアントコンピュータから渡された印刷ジョブを順次印刷実行する。
【００４１】
スプーラ監視モジュール４０７は、クライアントコンピュータ起動時に自動的に動作開始し、ＯＳに予め備えているスプーラ機能を用い、スプーラ４０３を監視する。プリンタドライバの追加、削除、変更ならびに、プリンタドライバ毎のジョブの生成、状態を監視する。ジョブがスプールされたと場合は、予め用意されているジョブリスト４０８記憶領域に、ジョブを状態やサイズ、プリンタドライバ名、オーナー、ドキュメント名、日時等の付属情報とともに格納する。同時にＵＩ処理部４０９（表示制御部）は、図３に図示する情報入力ダイアログ（情報入力ＵＩ）を、クライアントコンピュータの表示部２０７に表示する。ＵＩ処理部４０９はユーザから情報入力ＵＩを介して入力を受け取ったら、ジョブリスト４０８に入力情報を反映する。さらに、スプーラ監視モジュール４０７は、ログをサーバ通知モジュール４１０に渡し、ログ収集サーバに通知する。
【００４２】
図５ａは、本実施の形態にかかるログを示す一例である。クライアントコンピュータで動作するスプーラ監視モジュールがＲＡＭ２０２やＨＤ２０５等の記憶装置に作成し、サーバ通知モジュールによってログ収集サーバに通知される。図５ｂは各項目の説明であり、項目には値、数値または文字列が入る。
【００４３】
図１７ａは、本実施の形態にかかるジョブリストを示す一例である。図４のジョブリスト４０８、後述の図１４のジョブリスト１４０８から確認可能なジョブ情報を示すレコードである。図１７ｂには各項目の説明を示す。クライアントコンピュータで動作するスプーラ監視モジュールが、ＲＡＭ２０２やＨＤ２０５等の記憶装置にレコード数分確保した領域に保存する。
【００４４】
以下に実施例１について図６、図７、図８、図９、図１０を用いて説明する。
【００４５】
ジョブに関する情報に対して追加情報として課金コードを加えたジョブ情報をログとして扱う。ここで課金コードは、予め課金先が決まっていてもよい。また、課金コードの利用法としては、特に課金先を決めておかず、コードとしてそれぞれクライアント（ユーザ）が一意にジョブを処理する際に費用管理に用いることもできる。また、本実施例で後述するようにジョブ生成後に、後から課金コードを設定してもよい。課金コードは、“０”１文字以外の任意の文字列コードからなり、独立した３つのコードで構成される。コードの３つ全部を指定してもいいし、どれか２つ、または、１つだけ指定してもいいものとする。ログ集計サーバは、ログに含まれる課金コードを、課金の分配先や課金額の決定に利用する。
【００４６】
本実施例において、１台のクライアンアントコンピュータにより、印刷ジョブの生成、画像処理装置への送信を行うものとする。
【００４７】
図６は、実施の形態にかかるスプーラ監視モジュールの基本動作を示すフローの１例である。
【００４８】
ステップ６０１で、ジョブ一覧を取得する。例えば、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）に用意されているＷｉｎ３２関数ＥｎｕｍＪｏｂ（）を呼び出す。そして、クライアントコンピュータのスプール領域にスプールされている印刷ジョブの一覧を取得し、予めＲＡＭ２０２、ＨＤ２０５等の記憶装置に確保されているワーク領域に保存する。
【００４９】
次にステップ６０２で、前記ステップ６０１で取得したジョブ一覧の中に、新規ジョブが発生したか判断する。すなわち、ＣＰＵ２００が、後述のジョブリスト４０８と比較し、新しいジョブＩＤのジョブが追加されている場合は、新規のジョブが発生したと判断する。
【００５０】
前記ステップ６０２で新規ジョブが発生したと判断した場合はステップ６０３で、前記ステップ６０１で新たに取得したジョブとジョブに関する属性情報をジョブリスト４０８に追加する。ジョブリスト４０８は、ジョブ１件毎に、ジョブＩＤおよび、ドキュメント名等のジョブに関する属性情報を持ち、さらに、ジョブ１件毎に、課金コード等の印刷システムが付加する追加情報を合わせて持つ。スプーラ監視モジュールが起動時にＲＡＭ２０２、ＨＤ２０５等の記憶媒体に格納される。ジョブに関する属性情報は、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）に用意されているＷｉｎ３２関数ＧｅｔＪｏｂ（）等や、印刷システム独自の手段などで取得する。
【００５１】
次に、ステップ６０４で、前記ステップ６０３で作成したジョブリスト４０８にジョブが１件以上あるか判断する。すなわち、ＣＰＵ２００が、ＲＡＭ２０２、ＨＤ２０５等の記憶媒体に格納されたジョブリスト４０８を検索し、ジョブのレコード数を計算する。ジョブが１件以上ないと判断したときは、ステップ６０１に進む。
【００５２】
ステップ６０４でジョブが１件以上あると判断したときはステップ６０５で、ＵＩ処理部４０９により情報入力ＵＩが表示済か判断する。例えば、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）に用意されているＷｉｎ３２関数ＦｉｎｄＷｉｎｄｏｗ（）を呼び出し、ＵＩ処理部４０９の処理に基づくウィンドウが存在する場合は、既に情報入力ＵＩが表示済と判断する。情報入力ＵＩが表示済の場合は、ステップ６０１以降を繰り返す。
【００５３】
ステップ６０５で情報入力ＵＩが表示していないと判断した場合はステップ６０６で、所定の手続きに基づき、ＵＩ処理部４０９により情報入力ＵＩをＣＲＴ２０７等の表示装置に表示する。
【００５４】
ステップ６０２で新規ジョブが発生しないと判断したときはステップ６０７、でジョブが終了したか判断する。すなわち、ＣＰＵ２００が、前記ステップ６０１で取得したジョブ一覧とＲＡＭ２０２、ＨＤ２０５等の記憶媒体に格納されたジョブリスト４０８を比較する。ジョブ一覧からジョブがなくなっていれば、ジョブリスト４０８に保存していたジョブが終了したと判断する。
【００５５】
ステップ６０７でジョブ終了したと判断したときはステップ６０８で、ログをログ収集サーバに通知する。すなわち、ＣＰＵ２００が、ＲＡＭ２０２、ＨＤ２０５等の記憶媒体に格納されたジョブリスト４０８から終了ジョブのレコードを取り出し、図５に示すログを作成し、サーバ通知モジュール４０１にログを渡す。ジョブリスト４０８からは該当レコードを削除し、ＲＡＭ２０２、ＨＤ２０５等の記憶媒体に格納する。サーバ通知モジュール４０１は、ネットワークなどを介して、ログをログ収集サーバに通知する。
【００５６】
図７は、実施の形態にかかるポートモニタの基本動作を示すフローの一例である。ポートモニタは、スプーラプロセスにより１ジョブ毎に呼び出され、ジョブのＩＤと印刷先を指示され、必要であれば分割されたジョブデータを渡され、画像処理装置に順次送信する。
【００５７】
ステップ７０１で、スプーラから渡されたジョブのＩＤを取得する。
【００５８】
次にステップ７０２で、ＣＰＵ２００が、前記ステップ７０１で取得したジョブＩＤを、前述のスプーラ監視モジュールにより作成され、ＲＡＭ２０２やＨＤ２０５等の記憶媒体に格納されているジョブリスト４０８から検索する。
【００５９】
ジョブリスト４０８から、該当ジョブＩＤをジョブが見つかった場合は、ステップ７０３で、ＣＰＵ２００が、見つかったジョブの付属情報を検索し、有効な課金コードが設定されているか判断する。すなわち、３つの課金コード領域のうち１つでも、“０”１文字以外の数値が設定されている場合は、有効な課金コードが設定されていると判断する。
【００６０】
ステップ７０３で有効な課金コードが入力さていると判断したときはステップ７０４で、ネットワークなどを介して、ジョブを画像処理装置に送信する。
【００６１】
ステップ７０２でリストに登録済でないと判断したとき、および、前記ステップ７０３で有効な課金コードが入力されていないと判断したときはステップ７０５で、該当ジョブの一時停止処理を行う。例えば、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）に用意されているＷｉｎ３２関数ＳｅｔＪｏｂ（）で該当ジョブを指定し、ジョブの処理に一時停止（ＪＯＢ＿ＣＯＮＴＲＯＬ＿ＲＥＳＵＭＥ）を指定する。
この処理により、該当ジョブは一時停止処理をされ、スプーラのキュー中で処理順番が来るまで、処理は停止される。
【００６２】
次に、ステップ７０８で、該当ジョブの再実行を行う。例えば、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）に用意されているＷｉｎ３２関数ＳｅｔＪｏｂ（）で該当ジョブを指定し、ジョブの処理に再実行（ＪＯＢ＿ＣＯＮＴＲＯＬ＿ＲＥＳＴＡＲＴ）を指定する。この処理により、該当ジョブは次回実行にジョブの先頭から実行される。よって、スプーラはキューの中から先頭ジョブを取り出そうとするが、先頭ジョブは前記ステップ７０５で一時停止されているため、当該ジョブを飛ばし、次の順番のジョブの処理を開始する。
【００６３】
図８は、実施の形態にかかるＵＩ制御部における、処理の基本動作を示すフローの一例である。
【００６４】
ＵＩ制御部は、前述のスプーラ監視モジュールにより起動される他、ユーザの指示により任意のタイミングで起動し、情報入力ＵＩを表示することができる。初期表示状態は、図３ジョブリスト表示部は、ジョブリスト４０８のレコードを付属情報と共に全件表示している。表示領域に収まりきれない場合は、スクロールバーを表示する。また、リスト上のジョブはすべて非選択状態であり、課金コード入力領域３０１は空欄になっている。
【００６５】
ステップ８０１で、ボタンクリック等のイベントが発生したか判断する。
【００６６】
例えば、Ｍｉｃｒｏｓｏｆｔ社のＭＳＤＮ  Ｌｉｂｒａｒｙ（登録商標）で開示されている方法では、マウスによるクリックやキーボード入力等の操作と、ウィンドウ内のボタンやリストボックス等の各リソースを一意に決定するＩＤが、イベントとして通知される。
イベントが発生するまでステップ８０１を繰り返す。
【００６７】
ステップ８０１でイベント発生したと判断した場合はステップ８０２で、イベントがジョブ選択か判断する。すなわち、ステップ８０１で取得したイベントに、図３のジョブリスト表示部３０７におけるレコードの示すＩＤのマウスボタンによる選択操作が含まれるときに、ジョブ選択と判断する。
【００６８】
ステップ８０２でジョブ選択と判断した場合はステップ８０３で、該当レコードを表示部３０７上で選択されたことを認識可能にするため、表示部３０７の表示色などを選択前後で反転表示する。
【００６９】
ステップ８０２でジョブ選択と判断しなかった場合はステップ８０４で、「入力」ボタンがクリックされたか判断する。すなわち、ステップ８０１で取得したイベントに、図３の「入力」ボタンを示すＩＤのマウスボタンによる選択操作が含まれるときに、「入力」ボタンクリックと判断する。
【００７０】
ステップ８０４で「入力」ボタンクリックと判断した場合はステップ８０５で、ジョブリスト４０８に課金コードを設定する。ＣＰＵ２００が、表示部３０７上で図３ジョブリストのうち反転表示されているレコードを検索し、見つかったレコードからジョブＩＤを取得する。ＲＡＭ２０２やＨＤ２０５等の記憶媒体に格納されているジョブリスト４０８のうち、該当ＩＤを持つレコードの課金コード領域に、図３の第一コード、第２コード、第３コードのそれぞれの値を設定する。
【００７１】
ステップ８０４で「入力」ボタンクリックと判断しなかった場合はステップ８０６で、「一時停止」ボタンがクリックされた判断する。すなわち、ステップ８０１で取得したイベントに、図３の「一時停止」ボタンを示すＩＤと、マウスボタンによる選択操作が含まれるときに、「一時停止」ボタンクリックと判断する。
【００７２】
ステップ８０６で「一時停止」ボタンクリックと判断した場合はステップ８０７で、ＣＰＵ２００が、表示部３０７上で図３ジョブリストのうち反転表示されているレコードを検索し、見つかったレコードからジョブＩＤを取得する。次に、例えば、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）に用意されているＷｉｎ３２関数ＳｅｔＪｏｂ（）で該当ジョブを指定し、ジョブの処理に一時停止（ＪＯＢ＿ＣＯＮＴＲＯＬ＿ＰＡＵＳＥ）を指定する。
【００７３】
ステップ８０６で「一時停止」ボタンクリックと判断しなかった場合はステップ８０８で、「再開」ボタンがクリックされた判断する。すなわち、ステップ８０１で取得したイベントに、図３の「再開」ボタンを示すＩＤと、マウスボタンによる選択操作が含まれるときに、「再開」ボタンクリックと判断する。
【００７４】
ステップ８０８で「再開」ボタンクリックと判断した場合はステップ８０９で、ＣＰＵ２００が、表示部３０７で図３ジョブリストのうち反転表示されているレコードを検索し、見つかったレコードからジョブＩＤを取得する。次に、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）に用意されているＷｉｎ３２関数ＳｅｔＪｏｂ（）で該当ジョブを指定し、ジョブの処理に再開（ＪＯＢ＿ＣＯＮＴＲＯＬ＿ＲＥＳＵＭＥ）を指定する。この処理により該当ジョブが一時停止状態の場合は、一時停止が解除される。既にジョブデータの一部が送信済の場合は、続きから送信を開始する。該当ジョブが一時停止状態でない場合は、状態に変化はない。
【００７５】
ステップ８０８で「再開」ボタンクリックと判断しなかった場合はステップ８１０で、「削除」ボタンがクリックされたか判断する。すなわち、ステップ８０１で取得したイベントに、図３の「削除」ボタンを示すＩＤと、マウスボタンによる選択操作が含まれるときに、「削除」ボタンクリックと判断する。
【００７６】
ステップ８１０で「削除」ボタンクリックと判断した場合はステップ８１１で、ＣＰＵ２００が、表示部３０７で図３ジョブリストのうち反転表示されているレコードを検索し、見つかったレコードからジョブＩＤを取得する。次に、例えばＭｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）に用意されているＷｉｎ３２関数ＳｅｔＪｏｂ（）で該当ジョブを指定し、ジョブの処理に削除（ＪＯＢ＿ＣＯＮＴＲＯＬ＿ＤＥＬＥＴＥ）を指定する。
【００７７】
ステップ８１０で「削除」ボタンクリックと判断しなかった場合はステップ８１２で、「更新」ボタンがクリックされた判断する。すなわち、ステップ８０１で取得したイベントに、図３の「更新」ボタンを示すＩＤと、マウスボタンによる選択操作が含まれるときに、「更新」ボタンクリックと判断する。
【００７８】
ステップ８１２で「更新」ボタンクリックと判断した場合はステップ８１３で、ジョブ一覧を再取得する。例えば、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）に用意されているＷｉｎ３２関数ＥｎｕｍＪｏｂ（）、Ｗｉｎ３２関数ＧｅｔＪｏｂ（）等や、印刷システム独自の手段を呼び出し、印刷ジョブおよび付属情報の一覧を取得する。前記取得したジョブ情報で、予めＲＡＭ２０２、ＨＤ２０５等の記憶装置に確保されているジョブリスト４０８の情報を更新する。
【００７９】
次に、ステップ８１４で、前記ステップ８１３で更新したジョブリスト４０８情報を元に、図３のジョブリスト表示部３０７の表示を更新する。
【００８０】
以上説明した方法によれば、第一の実施の形態では、複数ジョブに対し、ジョブリストから操作、追加情報入力が一度にでき、利便性が向上する。また、追加情報入力待ちで、スプーラでジョブ処理が止まることがない。そして追加情報が未入力のジョブを削除することなく、後続ジョブの処理を継続実行できる。
【００８１】
〔第２の実施の形態〕
情報入力ＵＩから情報入力したジョブから優先的に印刷する改良が考えられる。
【００８２】
例えば、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）のスプールシステムでは、キューの中の印刷ジョブに優先順位が設定されている。Ｗｉｎｄｏｗｓ（登録商標）に用意されているＷｉｎ３２関数ＧｅｔＪｏｂ（）、ＳｅｔＪｏｂ（）を用い、ジョブを指定して、該当ジョブの優先順位を、取得、設定可能である。優先順位は、最低位の１から最高位９９の範囲で設定可能である。優先順位はジョブがスプールされたときに決まり、一般的には最低位の１に設定される。
【００８３】
本実施の形態においては、第１の実施の形態と異なる点のみ説明する。図８のＵＩ処理部におけるの処理の基本フロー、ステップ８０５「課金コード設定」処理の改良に関して、図９を使って説明する。ここでは、全ジョブの優先度の初期値は１に設定されているものとする。
【００８４】
ステップ９０１で、ジョブリスト４０８に課金コードを設定する。ＣＰＵ２００が、予め用意されている方法により、図３ジョブリスト表示部３０７の反転表示されているレコードを検索し、見つかったレコードからジョブＩＤを取得する。次に、ＲＡＭ２０２やＨＤ２０５等の記憶媒体に格納されているジョブリスト４０８の該当リストの課金コード領域に、図３の第一コード、第２コード、第３コードのそれぞれの値を設定する。
【００８５】
次にステップ９０２で、前記ステップ９０１で課金コードを設定したジョブの優先順を上げる。すなわち、例えばＭｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）に用意されているＷｉｎ３２関数ＧｅｔＪｏｂ（）で該当ジョブの優先度を取得する。そして、Ｗｉｎ３２関数ＳｅｔＪｏｂ（）により、該当ジョブ情報の優先順位を前記取得した優先度に１を加算した値として優先度設定する。
【００８６】
この処理により、スプーラにおけるキューのジョブのうち課金コードが設定されたジョブは、優先度が＋１されている。よって、キューから優先順位の高いジョブ、すなわち課金コードが設定されているジョブを優先的に処理を進める。そして、課金コードが未入力のジョブがキューの前順位に位置していたとしても、キューの後ろに位置する課金コード設定済のジョブが先に処理されることになる。
【００８７】
第２の実施の形態では、追加情報が追加されたジョブから優先的に処理が実行される用に印刷ジョブに優先度設定する。具体的には、スプーラにおけるキューにおいてスプールされた順番ではなく、課金コードが設定された印刷ジョブが、設定されていない印刷ジョブを追い越して処理されることで、追加情報入力待ちにより処理が停滞しなくなる。
【００８８】
〔第３の実施の形態〕
ユーザが間違って印刷指示してしまった印刷ジョブに対して課金コードなどの追加情報入力せず放置する場合、そのジョブが処理されずにスプーラのキューから消えないということが考えられる。そこで、一定期間、追加情報が未入力のジョブをキューから自動で削除する改良が考えられる。
【００８９】
本実施例においては、第１、２の実施の形態と異なる点のみ説明する。図６のスプーラ監視モジュールにおける処理の基本フロー、ステップ６０３「ジョブリスト作成」処理の改良に関して図１０を使って説明する。
【００９０】
ステップ１００１で、図６記載のステップ６０１で取得したジョブとジョブに関する属性情報をジョブリスト４０８に追加する。ジョブリスト４０８は、ジョブ１件毎に、ジョブＩＤおよび、ドキュメント名等のジョブに関する属性情報を持つ。さらに、ジョブ１件毎に、課金コード等の印刷システムが付加する追加情報、並びに「削除タイマー開始時刻」を合わせて持つ。スプーラ監視モジュールが起動時にＲＡＭ２０２、ＨＤ２０５等の記憶媒体に格納される。ジョブに関する属性情報は、例えばＭｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）に用意されているＷｉｎ３２関数ＧｅｔＪｏｂ（）等や、印刷システム独自の手段で取得する。初期状態の「削除タイマー開始時刻」は空欄とする。
【００９１】
次にステップ１００２で、ＣＰＵ２００が、前記ステップ１００１でＲＡＭ２０２、ＨＤ２０５等の記憶媒体に格納されたジョブリスト４０８からレコード数を調べ、０の場合は「ジョブリスト作成処理」を終了する。レコード数が０以外の場合は、ステップ１００３以降を繰り返し、全レコードを順次読み込む。全レコード読み込んだと判断した場合は、「ジョブリスト作成処理」を終了する。
【００９２】
次にステップ１００３で、ＣＰＵ２００が、前記ステップ１００１でＲＡＭ２０２、ＨＤ２０５等の記憶媒体に格納されたジョブリスト４０８から１レコード読み出し、ＲＡＭ２０２、ＨＤ２０５等の記憶媒体で確保したワークエリアに保持する。
【００９３】
次にステップ１００４で、前記ステップ１００３でワークエリアに保持した１レコードのデータを調べ、新規ジョブか判断する。すなわち、レコード中の「削除タイマー開始時刻」が空欄のときは新規ジョブと判断する。
【００９４】
ステップ１００４で新規ジョブと判断したときはステップ１００９で、ＣＰＵ２００が、ＲＡＭ２０２、ＨＤ２０５等の記憶媒体に格納されたジョブリスト４０８の該当レコードの「削除タイマー開始時刻」に現在時刻を設定し、保存する。
【００９５】
ステップ１０４で新規ジョブと判断しなかったときはステップ１００５で、前記ステップ１００３でワークエリアに保持した１レコードのデータを調べ、タイムアウト発生したか判断する。すなわち、ＣＰＵ２００が、ワークエリアに保持した１レコードのデータ中に「削除タイマー開始時刻」と現在時刻を比較し、差分が予め決められたタイムアウト値を超えていた場合は、タイムアウト発生したと判断する。
【００９６】
ステップ１００５タイムアウト発生しなかったと判断したときは、ステップ１００２以降を繰り返す。
【００９７】
ステップ１００５でタイムアウト発生と判断したときは、ステップ１００６で、ＣＰＵ２００が、ＲＡＭ２０２、ＨＤ２０５等の記憶媒体に格納されたジョブリスト４０８から現在のレコードを削除し、保存する。
【００９８】
次にステップ１００６で、スプーラのキューからジョブを削除する。ＣＰＵ２００が、例えばＭｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）に用意されているＷｉｎ３２関数ＳｅｔＪｏｂ（）で該当ジョブを指定し、ジョブの処理に削除（ＪＯＢ＿ＣＯＮＴＲＯＬ＿ＤＥＬＥＴＥ）を指定する。次に、ステップ１００２以降を繰り返す。
【００９９】
以上のように、第３の実施の形態では、追加情報が未入力のジョブがスプーラのキューにずっと放置されることがなくなる。
【０１００】
〔第４の実施の形態〕
ユーザが間違って課金コードなどの追加情報入力するなどした際に、印刷指示終了後でも追加情報を変更できるようにする改良が考えられる。
【０１０１】
本実施形態においては、１〜３の実施の形態と異なる点のみ説明する。図６のスプーラ監視モジュールにおける処理の基本フロー、ステップ６０８「ログ送付」処理の改良に関して図１１を使って説明する。
【０１０２】
ＲＡＭ２０２、ＨＤ２０５等の記憶媒体に格納されたジョブリスト４０８には、ジョブリスト４０８は、ジョブ１件毎に、ジョブＩＤおよび、ドキュメント名等のジョブに関する属性情報を持つ。さらに、ジョブ１件毎に、課金コード等の印刷システムが付加する追加情報、並びに「送付タイマー開始時刻」を合わせて持つ。スプーラ監視モジュールが起動時にＲＡＭ２０２、ＨＤ２０５等の記憶媒体に格納される。ジョブに関する属性情報は、例えば、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）に用意されているＷｉｎ３２関数ＧｅｔＪｏｂ（）や、印刷システム独自の手段などで取得する。初期状態の「送付タイマー開始時刻」は空欄とする。
【０１０３】
ステップ１１０１で、送付タイマー開始時刻が設定さているか判断する。すなわち、ＣＰＵ２００が、図６記載のステップ６０７で終了と判断したジョブに該当するレコードを、ＲＡＭ２０２、ＨＤ２０５等の記憶媒体に格納されたジョブリスト４０８から取り出す。取り出したレコードから、「送付タイマー開始時刻」を読み出し、ワークエリアに保持する。ワークエリアに保持した「送付タイマー開始時刻」が空欄になっていないと判断した場合は、送付タイマー開始時刻が設定さていると判断する。
【０１０４】
前記ステップ１１０１で送付タイマー開始時刻が設定さていると判断したときはステップ１１０２で、タイムアウトが発生したか判断する。すなわち、前記ステップ１１０１でワークエリアに保持した「送付タイマー開始時刻」と現在時刻を比較し、差分が予め決められたタイムアウトの閾値を超えていた場合は、タイムアウトが発生したと判断する。
【０１０５】
前記ステップ１１０２でタイムアウトが発生したと判断したときはステップ１１０３で、ログをログ収集サーバに通知する。すなわち、ＣＰＵ２００が、ＲＡＭ２０２、ＨＤ２０５等の記憶媒体に格納されたジョブリスト４０８から終了ジョブのレコードを取り出す。そして、図５に示すログを作成し、サーバ通知モジュール４０１にログを渡す。ジョブリスト４０８からは該当レコードを削除し、ＲＡＭ２０２、ＨＤ２０５等の記憶媒体に格納する。サーバ通知モジュール４０１は、ネットワークなどを介して、ログをログ収集サーバに通知する。
【０１０６】
前記ステップ１１０２でタイムアウトが発生しないと判断したときは「ログ送付」処理を終了する。
【０１０７】
前記ステップ１１０１で送付タイマー開始時刻が設定さていないと判断したときはステップ１１０４に進む。ＣＰＵ２００が、ＲＡＭ２０２、ＨＤ２０５等の記憶媒体に格納されたジョブリスト４０８の該当レコードの「送付タイマー開始時刻」に現在時刻を設定し、保存する。
【０１０８】
第４の実施の形態では、ログ送付のタイミングを予め設定しておくことにより、印刷指示後の一定時間（印刷ジョブの終了後）、課金コードなどの追加情報の変更が可能となる。
【０１０９】
〔第５の実施の形態〕
スプーラのキューに多数のジョブが溜まっていない場合、ユーザが追加情報を入力するより早く、スプーラのジョブ処理の順番がやってきて、該当ジョブの追加情報未入力と判断されることがある。その場合、第１の実施の形態においては、ジョブが一時停止されてしまい、ユーザが解除処理を行う必要がある。また、第３の実施の形態では、ジョブが自動で削除されてしまう可能性がある。
【０１１０】
本実施の形態においては、第１〜４の実施の形態と異なる点のみ説明する。図８のＵＩ処理部における処理の基本動作を示すフローのステップ８０３「ジョブ選択」処理、および、ステップ８０５「課金コード設定」処理の改良を、それぞれ図１２、図１３を使って説明する。
【０１１１】
「ジョブ選択」処理では、ステップ１２０１で、ジョブの一時停止をする。図８のステップ８０２で取得したＩＤのジョブに対し、例えば、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）に用意されているＷｉｎ３２関数ＳｅｔＪｏｂ（）で、ジョブの処理に一時停止（ＪＯＢ＿ＣＯＮＴＲＯＬ＿ＰＡＵＳＥ）を指定する。
【０１１２】
次に、ステップ１２０２で、該当レコードを予め用意された方法で反転表示し、「ジョブ選択」処理を終了する。
【０１１３】
「課金コード設定」処理では、ステップ１３０１で、ジョブリスト４０８に課金コードを設定する。ＣＰＵ２００が、表示部３０７でジョブリストの反転表示されているレコードを検索し、見つかったレコードからジョブＩＤを取得する。次に、ＲＡＭ２０２やＨＤ２０５等の記憶媒体に格納されているジョブリスト４０８の該当リストの課金コード領域に、図３の第１コード、第２コード、第３コードのそれぞれの値を設定する。
【０１１４】
次にステップ１３０２で、ジョブの再開をする。前記ステップ１３０１で取得したジョブＩＤのジョブに対し、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）に用意されているＷｉｎ３２関数ＳｅｔＪｏｂ（）で、ジョブの処理に再開（ＪＯＢ＿ＣＯＮＴＲＯＬ＿ＲＥＳＵＭＥ）を指定する。この処理により該当ジョブが一時停止状態の場合は、一時停止が解除される。既にジョブデータの一部が送信済の場合は、続きから送信を開始する。該当ジョブが一時停止状態でない場合は、状態に変化はない。
【０１１５】
第５の実施の形態では、課金コードなどの追加情報の入力中に選択ジョブが削除されてしまうことを防ぐことができ、さらに、情報入力したジョブの再開を自動で行うため、ユーザによるジョブ再開操作の手間が省ける。
【０１１６】
〔第６の実施の形態〕
クライアントコンピュータはポートモニタを使わない印刷、例えばＮｏｖｅｌｌ社のＮｅｔＷａｒｅ（登録商標）のプリンタサーバによる印刷では、ポートモニタによるジョブに追加情報の設定がされたかの確認ができない。よって、確実に追加情報設定済のジョブだけ印刷を許すことができない。そこで、追加情報の確認を画像処理装置（プリンタ、複写機など）が行う改良が考えられる。
【０１１７】
以下に、図３、図５、図１４、図１５、図１６を用いて説明する。本実施の形態は、上述してきた他の実施の形態を適宜、適用可能であり、以下本実施の形態の説明においては、１〜５の実施の形態と異なる点のみ説明する。
【０１１８】
図１４は、実施の形態にかかる印刷システムを構成するクライアントコンピュータ上で動作するモジュール、画像処理装置の関係および、ジョブの流れの一例を示す図である。クライアントコンピュータでは、例えば一般的に普及しているパーソナルコンピュータ（本発明の情報処理装置に相当する）にＭｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）をオペレーティングシステム（以下、ＯＳと呼ぶ）として使用する。印刷処理機能を有するＭｉｃｒｏｓｏｆｔ社製Ｗｏｒｄ（登録商標）等のアプリケーション１４０１を起動する。ユーザは、キーボード２０６やポインティングデバイス２０９等の指示装置を用いて、ドキュメントを作成し、アプリケーションに用意された印刷指示手段によって、印刷指示をする。アプリケーション４０１は、印刷データをプリンタドライバ１４０２に渡し、印字ジョブを作成する。プリンタドライバ１４０２は作成した印字ジョブをスプーラ１４０３に渡す。スプーラ１４０３は複数のドライバから渡された印刷ジョブを、ユーザ指定のプリンタ毎にジョブをスケジューリングし、プリンタが接続されているポートに対応するポーモニタ１４０４にジョブを渡す。ポートモニタ１４０４は、ポート（例えばＵＳＢやネットワーク）に対応するデバイスドライバ１４０５を適宜呼び出し、ジョブを渡す。デバイスドライバ１４０５はその印刷ジョブを、接続部２１０、ネットワークなどを介して、画像処理装置１４０６に渡す。
【０１１９】
画像処理装置１４０６は、クライアントコンピュータから渡された印刷ジョブを印刷キューに蓄積し、クライアントコンピュータから印刷再開の指示があるまで一時停止する。
【０１２０】
デバイス監視モジュール１４０７は、クライアントコンピュータ起動時に自動的に動作開始し、予め備えられているデバイス監視機能を用い、画像処理装置１４０６を監視する。画像処理装置内のジョブの状態を監視する。印刷キュー内にジョブが蓄積されたときは、ジョブリスト１４０８に、ジョブを状態やサイズ、オーナー、ドキュメント名、日時等の付属情報とともに格納する。同時にＵＩ処理部１４０９により情報入力ＵＩをＣＲＴ２０７等の表示装置に表示する。ＵＩ処理部１４０９は、図３に図示する情報入力ダイアログなどを、クライアントコンピュータの表示部２０７に表示する。ＵＩ処理部１４０９はユーザからの入力を受け取ったら、ジョブリスト１４０６に入力情報を反映する。さらに、デバイス監視モジュール１４０７は、画像処理装置に対しジョブの再開を指示し、印刷が終わったジョブのログをサーバ通知モジュール１４１０に渡し、ログ収集サーバに通知する。
【０１２１】
図１５を用いて、画像処理装置の基本フローを説明する。
【０１２２】
ここでは、画像処理装置はクライアントコンピュータからのジョブ操作コマンドを受け付けることができる機能を有し、ジョブの状態に変化があったとき、自らクライアントコンピュータにジョブ変化を通知する機能を有するものとする。状態変化を通知するイベントには、画像処理装置内でジョブを一意に決めるジョブＩＤと、ジョブ状態がわかる情報が含まれるものとする。また、ＰＲＡＭ２２２等の記憶媒体に確保した印刷キューに、印刷データをジョブ単位で蓄積することができ、任意の印刷ジョブを取り出し、一時停止、再開、削除、印刷実行等の処理が可能である。
【０１２３】
ステップ１５０１で、データを受信したか判断する。双方向インタフェース２０９を通り、接続部２２６を介し、ネットワークからデータを受信したときは、データをＰＲＡＭ等の記憶装置に確保したワークエリアに保存する。データを受信するまで処理を繰り返す。
【０１２４】
ステップ１５０１でデータを受信したと判断したときはステップ１５０２で、受信データがジョブか判断する。すなわち、ＰＣＰＵ２２０を用い、ＰＲＡＭ等の記憶装置に確保したワークエリアに保存した受信データを調べ、予め決められたジョブフォーマットのときは、ジョブと判断する。
【０１２５】
ステップ１５０２で受信データがジョブと判断したときはステップ１５０３で、予め用意された手続きに基づきジョブの一時停止処理を行い、ＰＲＡＭ等の記憶装置に保存する。
【０１２６】
次にステップ１５０４で、ＰＣＰＵ２２０を用い、ジョブ状態として「一時停止」を持つジョブの状態変化イベントを作成し、作成した状態変化イベントデータをＰＲＡＭ等の記憶装置に確保したワークエリアに保持し、ステップ１５０７へ進む。
【０１２７】
ステップ１５０２で受信データがジョブでないと判断したときはステップ１５０５で、受信データが再開コマンドか判断する。すなわち、ＰＣＰＵ２２０を用い、ＰＲＡＭ等の記憶装置に確保したワークエリアに保存した受信データを調べ、予め決められたコマンドフォーマットであり、コマンド種がジョブの再開のときは、「再開コマンド」と判断する。
【０１２８】
次にステップ１０６で、ステップ１５０５で取得したコマンドに含まれるジョブＩＤのジョブをＰＲＡＭ２２２等の記憶装置に確保したキューから取り出し、印刷を実行する。例えば印刷ジョブを所定の画像処理を施した画像データ（ビットマップデータ）に展開し、プリンタエンジンにおいて印刷出力を行う。
【０１２９】
次にステップ１５０７で、ステップ１５０６で印刷処理を行ったジョブに対する終了イベントを作成する。すなわち、ＰＣＰＵ２２０を用い、ジョブＩＤとして前記ステップ１５０６で印刷処理を行ったジョブのジョブＩＤを、ジョブ状態として「印刷終了」を意味する情報を持つ状態変化イベントデータをＰＲＡＭ等の記憶装置に確保したワークエリアに保持する。
【０１３０】
ステップ１５０８では、前記ステップ１５０４および前記ステップ１５０７でＰＲＡＭ２２２等の記憶装置に確保したワークエリアに保持したイベントデータをＰＣＰＵ２２０により取り出す。取り出したイベントデータを接続部２２６、双方向インタフェース２０９を介し、クライアントコンピュータに送付する。
【０１３１】
図１６を用いて、デバイス監視モジュールの基本フローを説明する。
【０１３２】
ステップ１６０１で、ジョブ一覧を取得する。ＰＣＰＵ２００が、双方向インタフェース２０９を通り、接続部２１０を介し、画像処理装置から通知されるジョブの状態変化イベントを受信する。受信したイベントを予めＲＡＭ２０２、ＨＤ２０５等の記憶装置に確保されているワーク領域に保存する。
【０１３３】
次にステップ１６０２で、ジョブが発生したか判断する。すなわち、ＰＣＰＵ２００が、前記ステップ１６０１でＲＡＭ２０２、ＨＤ２０５等の記憶装置に確保されているワーク領域に保存したイベントを調べ、状態が「一時停止」となっている場合は、新規のジョブが発生したと判断する。
【０１３４】
前記ステップ１６０２で新規ジョブが発生しないと判断したときは、ステップ１６０７でジョブが終了したか判断する。すなわち、ＣＰＵ２００が、ステップ１６０１で記憶媒体に確保されているワーク領域に保存したイベントを調べ、状態が「印刷終了」と判断した場合は、そのジョブは印刷が終了したと判断する。
【０１３５】
前記ステップ１６０７でジョブが終了したと判断したときは、ステップ１６０８で、ログをログ収集サーバに通知する。すなわち、ＣＰＵ２００が、ＲＡＭ２０２、ＨＤ２０５等の記憶媒体に格納されたジョブリスト１４０８から終了ジョブのレコードを取り出し、図５に示すログを作成し、サーバ通知モジュール４０１にログを渡す。ジョブリスト１４０８からは該当レコードを削除し、ＲＡＭ２０２、ＨＤ２０５等の記憶媒体に格納する。サーバ通知モジュール４０１は、ネットワークなどを介してログをログ収集サーバに通知する。
【０１３６】
前記ステップ１６０２で新規ジョブが発生したと判断した場合、および、前記ステップ１６０７でジョブが終了していないと判断した場合は、ステップ１６０３に進む。ステップ１６０３では、前記ステップ１６０１で取得したイベントに含まれるジョブＩＤ、およびジョブ状態ならびに、オーナーやドキュメント名等の付属する情報をジョブリスト１４０８に追加する。ジョブリスト１４０８は、ジョブ１件毎に、ジョブＩＤおよび、ドキュメント名等のジョブに関する属性情報を持ち、さらに、ジョブ１件毎に、課金コード等の印刷システムが付加する追加情報を併せ持つ。デバイス監視モジュールが起動時にＲＡＭ２０２、ＨＤ２０５等の記憶媒体の所定領域に保存される。
【０１３７】
次に、ステップ１６０４で、前記ステップ１６０３で作成したジョブリスト１４０８にジョブが１件以上あるか判断する。すなわち、ＣＰＵ２００が、ＲＡＭ２０２、ＨＤ２０５等の記憶媒体に格納されたジョブリスト１４０８を検索し、ジョブのレコード数を計算する。ジョブが１件以上ないと判断したときは、ステップ１６０１に進む。
【０１３８】
前記ステップ１６０４で、ジョブが１件以上あると判断したときはステップ１６０５で、ＵＩ処理部１４０９により情報入力ＵＩが表示済か判断する。例えば、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）に用意されているＷｉｎ３２関数ＦｉｎｄＷｉｎｄｏｗ（）を呼び出し、ＵＩ処理部１４０９に基づくウィンドウが存在する場合は、既に情報入力ＵＩが表示済と判断する。情報入力ＵＩが表示済の場合は、ステップ１６０１以降を繰り返す。
【０１３９】
ステップ１６０５で情報入力ＵＩが表示していないと判断した場合はステップ６０６で、所定の手続きに基づき、ＵＩ処理部１４０９が情報入力ＵＩを表示制御する。
【０１４０】
画像処理装置のジョブの状態をクライアントコンピュータに通知する手段として、画像処理装置が任意のタイミングでイベント通知する（トラップ）を例に取り説明した。しかしながら、クライアントコンピュータがジョブ情報の取得タイミングを指定しても、本発明は適用可能である。
【０１４１】
第６の実施の形態では、クライアントコンピュータでジョブ送信前に追加情報を入力できなくても、画像処理装置による印刷実行前に追加情報を入力が可能になる。
【０１４２】
また、追加情報は画像処理装置において入力するとしてもよい。
【０１４３】
［他の実施の形態］
以上、様々な実施形態を詳述したが、本発明は、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。例えば、プリンタ、ファクシミリ、ＰＣ、サーバとクライアントとを含むコンピュータシステムなどの如くである。
【０１４４】
また上述の実施例について、印刷装置内での処理であってもよい。この場合、ユーザは印刷装置の備える入力パネルなどから、課金コードなどの設定が可能となる。また、この場合は、出力先の印刷装置として、画像エンジンに出力することとする。尚、この場合の監視モジュールが監視する対象としては、印刷装置内のキュー（記憶領域）を監視し、印刷データの状態を表示したりすることになる。
【０１４５】
本発明は、前述した実施形態の各機能を実現するソフトウェアプログラムを、システム若しくは装置に対して直接または遠隔から供給し、そのシステム等に含まれるコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される。
【０１４６】
従って、本発明の機能・処理をコンピュータで実現するために、情報処理装置にインストールされるプログラムコード自体も本発明を実現するものである。つまり、上記機能・処理を実現するためのコンピュータプログラム自体も本発明の一つである。
【０１４７】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０１４８】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、記録媒体としては、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【０１４９】
また、プログラムは、クライアントの情報処理装置のブラウザを用いてインターネットのホームページからダウンロードしてもよい。すなわち、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードしてもよいのである。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明の構成要件となる場合がある。
【０１５０】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布してもよい。この場合、所定条件をクリアしたユーザにのみ、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報で暗号化されたプログラムを復号して実行し、プログラムを情報処理装置にインストールしてもよい。
【０１５１】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現されてもよい。なお、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ってもよい。もちろん、この場合も、前述した実施形態の機能が実現され得る。
【０１５２】
さらに、記録媒体から読み出されたプログラムが、情報処理装置に挿入された機能拡張ボードや情報処理装置に接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ってもよい。このようにして、前述した実施形態の機能が実現されることもある。
【図面の簡単な説明】
【０１５３】
【図１】本発明の実施の形態にかかる印刷システムの構成の一例を示すブロック図である。
【図２】本発明の実施の形態にかかる印刷システムの詳細な構成の一例を示すブロック図である。
【図３】本発明における。情報入力画面の一例を示す図である。
【図４】本発明における、クライアントコンピュータで動作するモジュールとデバイスの関係の一例を示すブロック図である。
【図５】ａは、本発明における、ログの一例示す図である。ｂは、本発明における、ログの各項目に対応する情報を説明するための図である。
【図６】本発明における、スプーラ監視モジュールにおける処理の基本動作を示すフローの一例である。
【図７】本発明における、ポートモニタにおける処理の基本動作を示すフローの一例である。
【図８】本発明における、ＵＩ処理部における処理の基本動作を示すフローの一例である。
【図９】本発明における、第２の実施の形態におけるＵＩ処理部における処理のフローの一例である。
【図１０】本発明における、第３の実施の形態におけるスプーラ監視モジュールにおける処理のフローの一例である。
【図１１】本発明における、第４の実施の形態におけるスプーラ監視モジュールにおける処理のフローの一例である。
【図１２】本発明における、第５の実施の形態におけるＵＩ処理部における処理のフローの一例である。
【図１３】本発明における、第５の実施の形態におけるＵＩ処理部における処理のフローの一例である。
【図１４】本発明における、第６の実施の形態におけるクライアントコンピュータで動作するモジュールとデバイスの関係の一例を示すブロック図である。
【図１５】本発明における、第６の実施の形態における画像処理装置における処理の基本フローの一例である。
【図１６】本発明における、第６の実施の形態におけるデバイス監視モジュールにおける処理の基本フローの一例である。
【図１７】ａは、本発明における、ジョブリストの一例を示す図である。ｂは、本発明における、ジョブリストの各項目に対応する情報を説明するための図である。
【符号の説明】
【０１５４】
１０１  サーバ
１０２，１０３，１０４  クライアントコンピュータ（ＰＣ）
１０５  画像処理装置（プリンタ）
１０６  ネットワーク
２００  ＣＰＵ
【図１】
0004854608.tif 000002
【図２】
0004854608.tif 000003
【図３】
0004854608.tif 000004
【図４】
0004854608.tif 000005
【図５】
0004854608.tif 000006
【図６】
0004854608.tif 000007
【図７】
0004854608.tif 000008
【図８】
0004854608.tif 000009
【図９】
0004854608.tif 000010
【図１０】
0004854608.tif 000011
【図１１】
0004854608.tif 000012
【図１２】
0004854608.tif 000013
【図１３】
0004854608.tif 000014
【図１４】
0004854608.tif 000015
【図１５】
0004854608.tif 000016
【図１６】
0004854608.tif 000017
【図１７】
0004854608.tif 000018