(57)【特許請求の範囲】
【請求項１】
複数のプリンタと前記複数のプリンタの何れかをメンバプリンタとして関連付けた仮想プリンタに係るジョブの状態を管理するジョブ管理方法において、
前記仮想プリンタ及び前記複数のプリンタのプリンタ情報を取得するプリンタ情報取得ステップと、
前記取得されたプリンタ情報に基づき前記仮想プリンタ及び複数のプリンタを一覧で表示枠に表示させる表示制御ステップと、
前記表示制御ステップにより表示された一覧の中から、前記仮想プリンタが選択指示されたか、前記複数のプリンタの何れかが選択指示されたか、を判別する判別ステップと、
前記判別ステップによって仮想プリンタが選択指示されたと判別された場合には、選択指示された仮想プリンタに関連付けられたメンバプリンタのジョブ情報に基づく仮想プリンタのジョブ情報を表示させ、前記何れかのプリンタが選択指示されたと判別された場合には、前記何れかのプリンタに対応するジョブ情報を表示させるジョブ情報管理ステップとを有することを特徴とするジョブ管理方法。
【請求項２】
前記プリンタ情報取得ステップで取得されたプリンタ情報に基づき、仮想プリンタに関連付けられているメンバプリンタの状態に基づく前記仮想プリンタの状態を決定する決定ステップと、
前記表示制御ステップは、前記決定ステップにより決定された仮想プリンタの状態を反映させて前記仮想プリンタを前記一覧に含め表示させることを特徴とする請求項１に記載のジョブ管理方法。
【請求項３】
前記表示制御ステップは、前記決定ステップにより決定された仮想プリンタの状態を反映させたアイコンを表示させることを特徴とする請求項１又は２に記載のジョブ管理方法。
【請求項４】
前記表示枠から選択された仮想プリンタの種別を識別可能に表示させることを特徴とする請求項１乃至３の何れかに記載のジョブ管理方法。
【請求項５】
仮想プリンタに関連した単数或は複数のメンバプリンタのジョブ情報より前記仮想プリンタのジョブ情報を生成する生成ステップを備え、前記ジョブ情報管理ステップは前記生成ステップにて生成された仮想プリンタのジョブ情報を表示させることを特徴とする請求項１乃至４の何れかに記載のジョブ管理方法。
【請求項６】
前記仮想プリンタの種別には、分散印刷用仮想プリンタ、及び、代行印刷用仮想プリンタ、及び、同報印刷用仮想プリンタの何れかが含まれていることを特徴とする請求項４又は５に記載のジョブ管理方法。
【請求項７】
前記仮想プリンタに対してメンバプリンタを追加及び削除する登録ステップを有することを特徴とする請求項１乃至６の何れかに記載のジョブ管理方法。
【請求項８】
複数のプリンタと前記複数のプリンタの何れかをメンバプリンタとして関連付けた仮想プリンタに係るジョブの状態を管理する情報処理装置であって、
前記仮想プリンタ及び前記複数のプリンタのプリンタ情報を取得するプリンタ情報取得手段と、
前記取得されたプリンタ情報に基づき前記仮想プリンタ及び複数のプリンタを一覧で表示枠に表示させる表示制御手段と、
前記表示制御手段により表示された一覧の中から、前記仮想プリンタが選択指示されたか、前記メンバプリンタが選択指示されたか、を判別する判別手段と、
前記判別手段によって仮想プリンタが選択指示されたと判別された場合には、選択指示された仮想プリンタに関連付けられたメンバプリンタのジョブ情報に基づく仮想プリンタのジョブ情報を表示させ、メンバプリンタが選択指示されたと判別された場合には、前記メンバプリンタに対応するジョブ情報を表示させるジョブ情報管理手段とを有することを特徴とする情報処理装置。
【請求項９】
前記プリンタ情報取得手段で取得されたプリンタ情報に基づき、仮想プリンタに関連付けられているメンバプリンタの状態に基づく前記仮想プリンタの状態を決定する決定手段と、
前記表示制御手段は、前記決定手段により決定された仮想プリンタの状態を反映させて前記仮想プリンタを前記一覧に含め表示させることを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記表示制御手段は、前記決定手段により決定された仮想プリンタの状態を反映させたアイコンを表示させることを特徴とする請求項８又は９に記載の情報処理装置。
【請求項１１】
前記表示枠から選択された仮想プリンタの種別を識別可能に表示させることを特徴とする請求項８乃至１０の何れかに記載の情報処理装置。
【請求項１２】
仮想プリンタに関連した単数或は複数のメンバプリンタのジョブ情報より前記仮想プリンタのジョブ情報を生成する生成手段を備え、前記ジョブ情報管理手段は前記生成手段にて生成された仮想プリンタのジョブ情報を表示させることを特徴とする請求項８乃至１１の何れかに記載の情報処理装置。
【請求項１３】
前記仮想プリンタの種別には、分散印刷用仮想プリンタ、及び、代行印刷用仮想プリンタ、及び、同報印刷用仮想プリンタの何れかが含まれていることを特徴とする請求項１１又は１２に記載の情報処理装置。
【請求項１４】
前記仮想プリンタに対してメンバプリンタを追加及び削除する登録手段を有することを特徴とする請求項８乃至１３の何れかに記載の情報処理装置。
【請求項１５】
請求項１乃至７の何れかに記載のジョブ管理方法をコンピュータに実行させる為のプログラム。
【請求項１６】
請求項１乃至７の何れかに記載のジョブ管理方法をコンピュータに実行させる為のプログラムをコンピュータ可読の形態で記憶した記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、印刷ジョブに係るステータス等の各種情報を管理するジョブ管理方法、情報処理装置、プログラム及び記憶媒体に関するものである。
【０００２】
【従来の技術】
近年、ネットワーク機器が一般に利用され、ネットワーク上に多数のパソコン（以下、ＰＣ）やプリンターが接続されるようになった。このようなネットワーク環境において、例えば、Ｗｉｎｄｏｕｗ（登録商標）のジョブステータスモニタなどで、プリンタサーバに割当されたキュー内のジョブ情報などをリモート監視する技術などが知られている。
【０００３】
【発明が解決しようとする課題】
しかしながら、従来のジョブモニタでは複数のプリンタに部数／頁を振り分けて印刷を行わせるような分散印刷や同報印刷等の印刷方法に対して、適切なジョブ情報を提供するような仕組みは実現されておらず、例えば、分散印刷を実行させたような場合には分散印刷に利用されたプリンタに対応するジョブ監視モニタを夫々監視するに留まっていた。
【０００４】
ましてや、他の人のジョブと混在した形でジョブ情報のユーザインターフェースが提供される為に、どのジョブが自分の監視したいジョブかを容易には判別することができなかった。
【０００５】
さらに、分散印刷や同報印刷等の複数種類の複数プリンタを利用したジョブを想定した場合に、従来の技術によれば、夫々のプリンタキューの情報を閲覧したとしても、それが分散印刷で利用されたプリンタに対応したジョブ情報なのか、或は、同報印刷に対応したジョブ情報なのか等を効率良く認識することができなかった。
【０００６】
本願発明は上記問題点に鑑みてなされたものであり、複数のプリンタを利用するようなジョブ形態に対応して、そのジョブ情報を解り易くユーザに知らしめることができるジョブ管理の仕組みを提供することにある。
【０００７】
【課題を解決するための手段】
本発明は、上記目的を達成する為に、複数のプリンタと前記複数のプリンタの何れかをメンバプリンタとして関連付けた仮想プリンタに係るジョブの状態を管理するジョブ管理方法において、前記仮想プリンタ及び前記複数のプリンタのプリンタ情報を取得するプリンタ情報取得ステップと、前記取得されたプリンタ情報に基づき前記仮想プリンタ及び複数のプリンタを一覧で表示枠に表示させる表示制御ステップと、前記表示制御ステップにより表示された一覧の中から、前記仮想プリンタが選択指示されたか、前記複数のプリンタの何れかが選択指示されたか、を判別する判別ステップと、前記判別ステップによって仮想プリンタが選択指示されたと判別された場合には、選択指示された仮想プリンタに関連付けられたメンバプリンタのジョブ情報に基づく仮想プリンタのジョブ情報を表示させ、前記何れかのプリンタが選択指示されたと判別された場合には、前記何れかのプリンタに対応するジョブ情報を表示させるジョブ情報管理ステップとを有することを特徴とする。
【００１４】
【発明の実施の形態】
以下、本発明を適用するのに好適である実施形態について説明を行う。
【００１５】
図１は、本発明を適用可能な情報処理システムの構成を説明するブロック図である。なお、本システムにおけるクライアントコンピュータは、１台、または複数台接続されていることを仮定している。
【００１６】
図１において、１０２、１０３、１０４はクライアントコンピュータ（クライアント）としての情報処理装置であり、イーサネット（登録商標）などのネットワークケーブルによって、ネットワーク１０６に接続され、アプリケーションプログラム等の各種のプログラムを実行可能であり、印刷データをプリンタに対応するプリンタ言語に変換する機能を有するプリンタドライバを搭載している。なお、プリンタドライバは複数のプリンタドライバをサポートするものとする。また、プリンタとしては印刷装置であるところの、電子写真方式を最小したレーザービームプリンタやインクジェット方式を採用したインクジェットプリンタや熱転写方式を利用したプリンタ等様々な方式のものに適応できることも無論想定される。
【００１７】
１０１は本実施形態のサーバ（以下、プリントサーバと呼ぶ）としての情報処理装置であり、ネットワークケーブルによって、ネットワーク１０６に接続され、ネットワークで使用されるファイルを蓄積したり、ネットワーク１０６の使用状態を監視したりする。プリントサーバ１０１は、ネットワーク１０６に接続されている複数のプリンタを管理している。
【００１８】
構成としては、クライアント１０２〜１０４とプリントサーバ１０１は、一般的な情報処理装置であり、クライアントとプリントサーバには、それぞれ異なる制御を行う印刷制御プログラムが実行可能に格納されている。
【００１９】
また、プリントサーバ１０１は、一般的な情報処理装置であり、クライアント１０２〜１０４の機能を同時に持つこともできる。
【００２０】
本実施形態におけるプリントサーバ１０１は、さらにクライアントコンピュータ１０２、１０３、１０４から印刷要求が出された印字データを含む印刷ジョブを格納して印刷したり、または、クライアントコンピュータ１０２、１０３、１０４から印字データを含まないジョブ情報のみ受け取り、クライアントコンピュータ１０２、１０３、１０４の印刷順序を管理し、印刷順序になったクライアントに対して印字データを含む印刷ジョブの送信許可を通知したり、ネットワークプリンタ１０５のステータスや印刷ジョブの各種情報を取得し、クライアントコンピュータ１０２、１０３、１０４に通知したりする機能を揃えている。
【００２１】
１０５は印刷制御装置であるネットワークプリンタであり、図示省略したネットワークインタフェースを介してネットワーク１０６と接続されており、クライアントコンピュータから送信される印字データを含む印刷ジョブを解析して１ページずつドットイメージに変換して、１ページ毎に印刷する。１０６はネットワークであり、クライントコンピュータ１０２、１０３、１０４、サーバ１０１、ネットワークプリンタ１０５等と接続している。
【００２２】
図２は、本実施の形態における情報処理装置の構成を説明するブロック図であり、情報処理装置であるクライントコンピュータ１０２、１０３、１０４も同じ構成であり、さらにサーバ１０１も同様あるいは同等のハードウエア構成とする。よって、クライアントとサーバの構成を説明するブロック図として説明する。
【００２３】
図２において、２００は情報処理装置の制御手段であるＣＰＵであり、ハードディスク（ＨＤ）２０５に格納されているアプリケーションプログラム、プリンタドライバプログラム、ＯＳや本発明のネットワークプリンタ制御プログラム等を実行し、ＲＡＭ２０２にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
【００２４】
２０１は記憶手段であるＲＯＭであり、内部には、基本Ｉ／Ｏプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。２０２は一時記憶手段であるＲＡＭであり、ＣＰＵ２００の主メモリ、ワークエリア等として機能する。
【００２５】
２０３は記憶媒体読み込み手段としてのフロッピー（登録商標）ディスク（ＦＤ）ドライブであり、後述する図５に示すようにＦＤドライブ２０３を通じて記憶媒体としてのＦＤ２０４に記憶されたプログラム等を本コンピュータシステムにロードすることができる。なお、記憶媒体は、ＦＤに限らず、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＰＣカード、ＤＶＤ、ＩＣメモリカード、ＭＯ、メモリスティック等、任意である。
【００２６】
２０４は記憶媒体であるフロッピーディスク（ＦＤ）であり、コンピュータが読み取り可能なプログラムが格納された記憶媒体である。
【００２７】
２０５は外部記憶手段の一つであり、大容量メモリとして機能するハードディスク（ＨＤ）であり、アプリケーションプログラム、プリンタドライバプログラム、ＯＳ、ネットワークプリンタ制御プログラム、関連プログラム等を格納している。さらにスプール手段であるスプーラはここに確保される。スプール手段は、クライアントではクライアントスプーラのことであり、プリントサーバではサーバスプーラのことである。また、プリントサーバでは、クライアントから受けたジョブ情報を格納し、順序制御を行うためのテーブルもこの外部記憶手段に生成されて格納される。
【００２８】
２０６は指示入力手段であるキーボードであり、ユーザがクライアントコンピュータに対して、また、オペレータや管理者がプリントサーバに対して、デバイスの制御コマンドの命令等を入力指示するものである。
【００２９】
２０７は表示手段であるディスプレイであり、キーボード２０６から入力したコマンドや、プリンタの状態等を表示したりするものである。
【００３０】
２０８はシステムバスであり、クライアントやプリントサーバであるコンピュータ内のデータの流れを司るものである。
【００３１】
２０９は入出力手段であるインタフェースであり、該インタフェース２０９を介して情報処理装置は外部装置とのデータのやり取りを行う。
【００３２】
図３は、図２に示したＲＡＭ２０２のメモリマップの一例を示す図であり、ＦＤ２０４からロードされる上記ネットワークプリンタ制御プログラムが、ＲＡＭ２０２にロードされ実行可能となった状態のメモリマップである。
【００３３】
本実施形態では、ＦＤ２０４からネットワークプリンタ制御プログラムおよび関連データを直接ＲＡＭ２０２にロードして実行させる例を示すが、これ以外にも、ＦＤ２０４からネットワークプリンタ制御プログラムを動作させる度に、既にネットワークプリンタ制御プログラムがインストールされているＨＤ２０５からＲＡＭ２０２にロードするようにしてもよい。
【００３４】
また、本ネットワークプリンタ制御プログラムを記憶する媒体は、ＦＤ以外にＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＰＣカード、ＤＶＤ、ＩＣメモリカードであってもよい。さらに、本ネットワークプリンタ制御プログラムをＲＯＭ２０１に記憶しておき、これをメモリマップの一部となすように構成し、直接ＣＰＵ２００で実行することも可能である。
【００３５】
また、以上の各装置と同等の機能を実現するソフトウェアをもって、ハードウェア装置の代替として構成することもできる。
【００３６】
また、本ネットワークプリンタ制御プログラムのことを、簡単に印刷制御プログラムと呼ぶこともある。印刷制御プログラムは、クライアントにおいて印刷ジョブの印刷先の変更を指示したり、印刷順序を変更する指示をするための制御を行うプログラムを含み、また、プリントサーバにおいて、印刷ジョブの順序制御を行ったり、印刷ジョブの印刷終了や印刷先変更要求などを通知するためのプログラムを含んでいる。また、このような制御を行う本発明の印刷制御プログラムは、クライアントにインストールされるモジュールと、プリントサーバにインストールされるモジュールを別々に分けてもよいし、ひとつの印刷制御プログラムが、実行される環境によりクライアント用として機能したり、またはプリントサーバ用として機能するようにしてもよい。あるいは一台のコンピュータに、クライアント用の機能を持つモジュールと、プリントサーバ用として機能するモジュールをともにインストールし、同時に、あるいは時分割で擬似的に平行動作させる構成も可能である。
【００３７】
３０１は基本Ｉ／Ｏプログラムであり、本制御装置の電源がＯＮされたときに、ＨＤ２０５からＯＳがＲＡＭ２０２に読み込まれ、ＯＳの動作を開始させるＩＰＬ（イニシャルプログラムローデイング）機能などを有しているプログラムが入っている領域である。
【００３８】
３０２はオペレーティングシステム（ＯＳ）であり、３０３はネットワークプリンタ制御プログラムで、ＲＡＭ２０２上に確保される領域に記憶される。３０４は関連データで、ＲＡＭ２０２上に確保される領域に記憶される。３０５はワークエリアで、ＣＰＵ２００が本プリンタ制御プログラムを実行する領域が確保されている。
【００３９】
図４は、図２に示したＦＤ２０４のメモリマップの一例を示す図である。図４において、４００は前記ＦＤ２０４のデータ内容であり、４０１はデータの情報を示すボリューム情報であり、４０２はディレクトリ情報、４０３は本実施形態で説明する印刷制御プログラムであるネットワークプリンタ制御プログラム、４０４はその関連データである。４０３のネットワークプリンタ制御プログラムは、実施形態で説明するフローチャートに基づいてプログラム化したものであり、本実施例では、クライアント、サーバ共、同様の構成をとっている。
【００４０】
図５は、図２に示したＦＤドライブ２０３に対して挿入されるＦＤ２０４との関係を示す図であり、図２と同一のものには同一の符号を付してある。
【００４１】
図５において、ＦＤ２０４には、本実施形態で説明するネットワークプリンタ制御プログラムおよび関連データを格納している。
【００４２】
次に本実施の形態における、プリンタを複数台使用して、前述の分散、同報、代行といった印刷処理を行う、印刷ジョブ制御システムについて説明する。
【００４３】
なお、本実施の形態では、複数のプリンタを１台のプリンタとして仮想的に束ねるプリンタをグループプリンタ、束ねられるプリンタをメンバプリンタと呼ぶ。また、それに対応するプリンタドライバをそれぞれグループプリンタドライバ、メンバプリンタドライバと呼ぶ。
【００４４】
図６は本システムのクライアントサーバモデルにおいてＭｉｃｒｏＳｏｆｔＷｏｒｄなどの一般的なアプリケーションから発行された印刷ジョブが、印刷ジョブ制御システムにおいてどのように処理されるかを示した図である。図６において、６００はクライアントマシンで、印刷ジョブ制御システムのクライアントモジュールが動作するマシンを指す。
【００４５】
通常、印刷の指示がされるとアプリケーションプログラムは一連の描画命令を生成し、プリンタドライバを経てＷｉｎｄｏｗｓＳｐｏｏｌｅｒに渡される。ＷｉｎｄｏｗｓＳｐｏｏｌｅｒは、ユーザが選択したポートモニタにプリントジョブデータを渡してプリンタデバイスに送信させる手順をとる。
【００４６】
本実施の形態では、ユーザはあらかじめ印刷ジョブ制御システム用のポートモニタ６２１（以降、本実施例ではジョブ制御ポートモニタと略記）を指定して印刷を指示する。アプリケーションプログラム６０１は一連の描画命令を生成する。描画命令を受け取ったグループプリンタドライバ６０３では、汎用印刷ファイルを生成し、プリンタデバイスへプリントジョブデータを送信するポートモニタではなく、ジョブ制御ポートモニタ６２１にプリントジョブデータとして送信する。ジョブ制御ポートモニタ６２１はプリントジョブデータをプリンタデバイス６５０に送信するのではなく、印刷ジョブ制御システム用プリントサービス６２２（以降、本実施例ではジョブ制御プリントサービスと略記）に送信する。ジョブ制御プリントサービス６２２は、ジョブ制御サーバ６３０の管理するジョブ／デバイスの状態を管理する機能を備える。更に、デバイスとクライアントＰＣがピアツーピア接続環境で互いに動作するような場合には、ジョブ制御プリントサービス６２２はデバイスから通知されるデバイス状態やジョブの状態などの情報を管理したり、また、デバイスに対して所定の命令をする機能も備える。これは、複数のプリンタデバイス６５０のデバイス情報やジョブ情報を管理する機能に相当する。
【００４７】
印刷ジョブ制御システム用プリントマネージャ６２３（以降、本実施例ではジョブ制御プリントマネージャとも略記）は、ユーザがジョブ制御プリントサービス６２２内部でプリントジョブがどのような状態にあるかを調べたり、プリントジョブを操作しりするためのユーザインタフェース（ＵＩ）を提供するプログラムである。
【００４８】
ジョブ制御プリントマネージャ６２３はジョブ制御プリントサービス６２２のソフトウェアのインタフェース（ＡＰＩ）を介して、ジョブ制御プリントサービス６２２と情報の送受信を実行し、主に、ジョブ制御プリントサービス６２２が管理する外部のプリンタデバイスの状態情報をイベントとして取得する機能を備える。イベントの通知の種別としては、トナー残量が少なくなった警告、クライアントとデバイスとの通信障害、メモリ不足、排紙トレー満載などのエラー／警告情報の通知や、エラー状態から正常状態に復帰した正常情報の通知などが想定される。
【００４９】
印刷ジョブ制御システム用サーバ６３０（以降、本実施例ではジョブ制御サーバと略記）は、個々のクライアント６００上のジョブ制御プリントサービス６２２がプリンタデバイス６５０にプリントジョブデータを送信するタイミングを集中制御（スケジューリング）している。また、印刷ジョブ制御システム用サーバ６３０はネットワークを介して通信可能な各デバイス（印刷装置）の印刷実行中、電力制御状態、障害情報（紙ジャム）等のステータスを監視し、ジョブ制御プリントサービス６２２にイベントを通知する機能を備える。ここで、プリンタステータスの状態変化の監視について、ジョブ制御プリントサービス６２２は直接的に状態の変化の通知（イベント）をプリンタデバイスから取得することもできる。
【００５０】
印刷ジョブ制御システム用マネージメントコンソール６３３（以降、本実施例ではジョブ制御マネージメントコンソールと略記）は、ジョブ制御サーバ６３０が持つソフトウェアがアクセスするためのＡＰＩを介してジョブ制御サーバ６３０と情報・指示をやり取りすることで、印刷ジョブ制御システム全体を監視することができる。
【００５１】
また、ジョブ制御サーバ６３０はデバイス情報コントロールモジュール６３１を用いて各プリンタデバイス６５０と通信を行い、各プリンタ内の印刷ジョブや動作状態に関する情報を入手したり、操作を行ったりする。入手した情報はクライアント６００側のジョブ制御プリントサービス６２２に渡すことができる。
【００５２】
次に本実施の形態におけるグループプリンタドライバ６０３からの印刷について説明する。
【００５３】
グループプリンタドライバ６０３はアプリケーションプログラムが生成した一連の描画コマンドを、プリンタデバイスの種類に依存しない中間フォーマットのファイルである汎用印刷ファイルに変換する。この汎用印刷ファイルの構成については後述する。
【００５４】
この汎用印刷ファイルは前述したようにＷｉｎｄｏｗＳスプーラ６０４からジョブ制御ポートモニタ６２１を経て（ａ）、ジョブ制御プリントサービス６２２に導かれる（ｂ）。ジョブ制御プリントサービス６２２はこのプリントジョブに対して行うジョブ制御の種類に応じて、汎用印刷ファイルをもとに描画コマンドを生成し（ｃ）、続いてＰＤＬドライバ６０２がその描画コマンドをプリンタデバイス６５０が解釈可能なＰＤＬファイルにする。図６では、ジョブ制御プリントサービス６２２で、このプリントジョブに対してプリントジョブをふたつに分けるジョブ制御が行われる例で、２つのメンバジョブが生成された例を２つの矢印（ｃ）で示している。ＰＤＬドライバ６０２で生成されたＰＤＬファイルはＷｉｎｄｏｗＳスプーラ６０４、ジョブ制御ポートモニタ６２１を経て（ｄ）、再びジョブ制御プリントサービス６２２に渡される（ｅ）。ジョブ制御プリントサービス６２２は、ジョブ制御サーバ６３０の指示に従ってＰＤＬのプリントジョブデータをプリンタデバイス６５０に送信する（ｆ）。
【００５５】
ジョブ制御プリントサービス６２２は、汎用印刷ファイル中の印刷指示書の指示にしたがって、一つの汎用印刷ファイルを複数のプリントジョブに論理的に分割してそれぞれ別のプリンタデバイスに送信したり、一度送信したプリントジョブデータを別のプリンタデバイスに送信し直したりする。図Ａ中の（ｃ）（ｄ）（ｅ）（ｆ）はそのような場合のプリントジョブデータの経路を示している。
【００５６】
一方、汎用印刷ファイルをアプリケーションソフトウェアが作成し、そのアプリケーションソフトウェアが直接汎用印刷ファイルを印刷ジョブとして投入する場合、一般のアプリケーションとはグループプリンタドライバ６０３への情報の渡し方や、グループプリンタドライバ６０３での処理内容が異なる。前述のように、一般のアプリケーションの場合、アプリケーションはグループプリンタドライバ６０３に描画情報を渡す際、通常のプリンタドライバと同じようにＷｉｎｄｏｗＳのＧＤＩ関数を呼び出し、グループプリンタドライバ６０３がそれに応じて汎用印刷ファイルを生成する。これに対して汎用印刷ファイルを直接作成するアプリケーションの場合は、アプリケーションが汎用印刷ファイルをすでに持ち、それをグループプリンタドライバ６０３に供給する。グループプリンタドライバ６０３は必要に応じてあらかじめ設定された印刷方法にもとづいて汎用印刷ファイル内部の印刷指示書を書き換えてＷｉｎｄｏｗＳＳｐｏｏｌｅｒ６０４に送る。
【００５７】
図８は、汎用印刷ファイルの構成の一例を示した図である。
【００５８】
本実施の形態で使用される汎用印刷ファイルは、印刷指示部８−ａと、ドキュメントデータ部８−ｂからなる。印刷指示部は、ドキュメントの情報と印刷指示を記述した部分である。また、ドキュメントデータは、アプリケーションのデータを汎用的な形式のデータに変換したものであり、プリンタ言語に依存しないデータフォーマットとなっている。
【００５９】
印刷指示部はヘッダ部、ページ情報部、印刷体裁指示部、出力方法指定部、グループプリンタドライバ設定情報部、メンバプリンタ数、メンバプリンタドライバ名、メンバプリンタドライバ設定情報部などから構成されている。
【００６０】
ヘッダ部は本ファイルのバージョン識別やファイル情報などの情報を格納する部分である。
【００６１】
ページ情報部は、ドキュメントデータ部８−ｂのドキュメントデータのページ数、各ページのサイズなどの情報を格納する部分である。
【００６２】
印刷体裁指示部は、印刷ページ範囲、印刷部数、ドキュメントデータの面付け情報（Ｎ−ＵＰや製本印刷など）、ステイプル指示やパンチ指示など、出力体裁に関する情報を格納する部分である。
【００６３】
出力方法指定部は、出力方法として、分散印刷、カラーモノクロ分散印刷、代行印刷、同報印刷などの情報を格納する部分である。
【００６４】
グループプリンタドライバ設定情報部は、後述するグループプリンタドライバのＵＩの設定情報を格納する部分である。
【００６５】
メンバプリンタ数はグループプリンタドライバが関連付けているメンバプリンタの数を格納する部分である。
【００６６】
メンバプリンタドライバ名は、メンバプリンタのプリンタドライバ名を格納する部分である。
【００６７】
メンバプリンタドライバ設定情報部はメンバプリンタのドライバＵＩの設定情報として例えばＤＥＶＭＯＤＥ情報を格納する部分である。
【００６８】
このメンバプリンタドライバ名とメンバプリンタドライバ設定情報部は、前述のメンバプリンタ数に格納された数だけの格納エリアを持っている。
【００６９】
前述の図６で説明したグループプリンタドライバ６０３では、汎用印刷ファイルを生成する際、グループプリンタドライバＧＵＩ上の設定を印刷指示部８−ａへ記録する。さらに、グループプリンタドライバ６０３はＧＤＩで受け取ったデータを汎用的なデータに変換しｈキュメントデータとして、本汎用印刷ファイルのドキュメントデータ部に記録することとなる。
【００７０】
次に図７でＷｉｎｄｏｗＳが提供するＰｒｉｎｔＳｙＳｔｅｍと印刷ジョブ制御システムにおける印刷ジョブの関係と処理概要をさらに詳しく述べる。
【００７１】
図７中で印刷ジョブ制御システム７００は、サーバとクライアントの制御プログラムが動作する物理的なマシンをまたいだ、印刷ジョブ制御システムの範囲を示している。また、サーバが管理している出力ポート（Ｏｕｔｐｕｔ  Ｐｏｒｔ）７１１は、クライアントのジョブ制御プリントサービス６２２のプロキシ出力ポート（Ｐｒｏｘｙ  Ｏｕｔｐｕｔ  Ｐｏｒｔ）７１２と関連付けられ、ひとつのポートに関連づけられた各クライアント上のプロキシ出力ポート全てを統一的に管理している。本実施例では、実際のプリントジョブデータはおのおののクライアントのプロキシ出力ポート７１２に保持される。ジョブ制御サーバ６３０は、プリントジョブデータ自体の送信処理は行わず、ジョブ制御プリントサービス６２２に対して印刷ジョブの送信指示のみを行う。その指示に応じてクライアントのジョブ制御プリントサービス６２２はプリントジョブデータをデバイス６５０に送信する。
【００７２】
次に、印刷ジョブ制御システム７００が、代行印刷、分散印刷、同報印刷などの付加価値的な印刷を行う場合の処理を説明する。
【００７３】
印刷ジョブ制御システム７００が、代行印刷、分散印刷、同報印刷などの付加価値的な印刷を行う場合には、前述のようにユーザまたはアプリケーション６０１はグループプリンタドライバ６０３が割り当てられたプリンタに印刷ジョブを発行しなければならない。ジョブ制御プリントサービス６２２は、グループプリンタドライバ６０３によって処理されたジョブデータをジョブ制御ポートモニタ６２１を介して汎用印刷ファイルとして受け取る。ジョブ制御プリントサービス６２２はこのジョブを受け取り、ＤｅＳｐｏｏｌｅｒ７０１を介してＰＤＬドライバが割り当てられた別のプリンタにジョブ（メンバジョブ）を発行して印刷を行わせる。この時、ＤｅＳｐｏｏｌｅｒ７０１は前述の図８で説明した汎用印刷ファイルの印刷指示部８−ａを解釈し、ドキュメントデータ部８−ｂのドキュメントデータを加工して、ＷｉｎｄｏｗＳのＧＤＩに変換し、各プリンタドライバに対して印刷指示を行い印刷ジョブを発行する。例えば印刷体裁指定部に、２−ＵＰの指示が記録されていた場合、用紙１枚に２ページ分のドキュメントデータを縮小レイアウトする。また分散印刷あるいは同報印刷の場合には、それらの設定に応じて印刷指示部８−ａに記述されている複数のメンバプリンタにジョブを発行する。代行印刷の場合は、代行する条件が満たされた時に、自動代行では事前の設定、手動代行ではユーザの操作に応じてメンバジョブを発行する。
【００７４】
また、ＤｅＳｐｏｏｌｅｒ７０１は各メンバプリンタにジョブを発行する際、メンバプリンタドライバに対応する印刷指示として、各メンバプリンタのＤＥＶＭＯＤＥを作成する必要があるが、このＤＥＶＭＯＤＥは印刷指示部８−ａに記載された内容を適宜各メンバプリンタのＤＥＶＭＯＤＥに反映させて生成する。
【００７５】
クライアント側のジョブ制御プリントサービス６２２は、ＰＤＬドライバ６０２によってレンダリングされた、それぞれのメンバジョブのＰＤＬデータをジョブ制御ポートモニタ６２１を介して受け取り、受け取ったジョブに関する情報をサーバ側に知らせ、ジョブデータは自身のプロキシ出力キュー（Ｐｒｏｘｙ  Ｏｕｔｐｕｔ  Ｐｏｒｔ）７１２で一時保持する。その後、ジョブ制御サーバ６３０からの送信指示を受けた後にプリントデバイス６５０に送信する。
【００７６】
次に図９の説明を行う。図９は後述する図１０、１２等の印刷設定を行う為のグループプリンタドライバのインターフェースを構築する為のメンバプリンタドライバの登録処理に相当する。
【００７７】
まずステップＳ９０１でセットアップを準備を行いセットアップを開始する。
【００７８】
ステップＳ９０２でメンバープリンタに登録するプリンタドライバをマウス等のポインティングデバイスを介して選択し、インストール対象とする。
【００７９】
次にステップＳ９０３で、前記選択したプリンタドライバをインストールし、メンバプリンタドライバとして登録設定を行う。
【００８０】
次にステップＳ９０４でインストールされたプリンタドライバに対応したプリンタ情報を取得する。プリンタ情報（デバイス情報）としては、例えば、サポート用紙サイズがＡ３，Ａ４，Ｂ５であるといった情報や、両面可能かどうか、ステイプル可能かどうか、その他、フィニシングの機能として、パンチ穴が可能か、Ｚ折りが可能かなどを入力する。ここで、プリンタ情報の取得方法には、インストールされたプリンタドライバが、対応するプリンタデバイスに所定のネットワークを介して問い合わせ取得したプリンタ情報を本制御プログラムが取得するような形態や、キーボード等から入力された設定値をプリンタ情報として登録させるような処理の形態が想定される。
【００８１】
次にステップＳ９０５で対象となるメンバプリンタドライバのインストールを完了させるか否か判断し、完了でなければ前記ステップＳ９０２に戻り、再び選択指示に応じて選択されたプリンタドライバをメンバプリンタドライバとして登録させる処理を繰り返す。一方、完了であればステップＳ９０６に進む。
【００８２】
ステップＳ９０６では、ステップＳ９０４で取得されたデバイスの属性情報の設定値を、例えばシステムのレジストリなどにプリンタドライバの名称とともに記憶し保持する。また、図９のフローチャートの処理を経て、後述する図１０、図１２に示すようなユーザインターフェースが構築され、例えば、図１０の１００６に示されたデバイス情報は、前記ステップＳ９０６で保存した情報を該当するメンバプリンタごとに表示したものに相当する。
【００８３】
次に、先に例に取り上げた図１０を用いて本実施の形態のユーザインターフェイス（グループプリンタドライバＵＩ）を具体的に示して説明する。
【００８４】
図１０において、１００１は出力方法を選択し、指定する為のコンボボックスである。この１００１のコンボボックスをマウス等のポインティングデバイスを介して指示すると、複数の出力方法のリストが表示され、該表示されたリストより所定の出力方法の指定が為される。
【００８５】
１００２は所定の種別のグループプリンドライバに対してメンバプリンタドライバの登録を行うためのＵＩを開くボタンである。ここで開かれるＵＩについては後述する。ここで、所定の種別としては、例えば、図１０に示されるように割合分散のグループプリンタドライバ、或は、後述するカラー／白黒分散処理のグループプリンタドライバや、その他、自動代行、同報印刷に係るグループプリンタドライバなどが想定される。
【００８６】
図１０の１００３はメンバプリンタを登録した後に、登録されたメンバプリンタドライバの一覧を表示するリストボックスである。
【００８７】
このＵＩの例では、メンバプリンタドライバの名称とともにそのメンバプリンタに関する各種情報も表示している。また、この一覧表示の内容は１００１のプルダウンメニューの中から指定した出力方法に従って、その表示内容も変更される。即ち複数種類の出力方法毎に夫々メンバープリンタドライバの構成を有している。これによって、ユーザは出力方法毎に適したメンバプリンタドライバを容易に呼び出すことができ、わざわざ出力方法を変更する度に新たなメンバプリンタドライバを登録する必要がなくなる。
【００８８】
また、１００７は例えば、図１１のようなＵＩを介して登録したメンバプリンタドライバを出力対象のプリンタドライバとして、一時的に構成に含まれないようにしたり、或は、含まれないような状態からメンバプリンタドライバの構成に追加したりするチェックボックスである。このチェックボックスのチェックが有りの時は、そのメンバプリンタを対象プリンタドライバとみなし、チェックが無しの時にはそのメンバプリンタドライバを一時的に対象プリンタドライバから外す処理が施される。言い換えれば、１００７の選択肢に含まれるメンバプリンタドライバが一次登録処理によって登録されたものに相当し、また、チェックボックスをチェックすることによりメンバプリンタドライバを実際の印刷処理の対象プリンタドライバとすることは二次登録処理に相当する。
【００８９】
このようにメンバプリンタドライバの登録において、一次登録と二次登録の二段階の設定の仕組みが本発明により可能になり、例えば、通常の分散印刷では、印刷処理の対象としているような所定のメンバプリンタドライバに対して、一次的に該所定のメンバプリンタドライバを対象から外すことができたり、また逆に故障していた印刷装置が復帰したような場合には、チェックボックスの操作により再び実際の印刷処理の際に起動されるメンバプリンタドライバとすることができる。これは、出力方法毎に登録（一次登録）されたメンバプリンタの情報と、チェックボックスのチェックにより利用されるメンバプリンタドライバとされているか否かの情報とを、夫々別々に所定の記憶部に保持させる構成により実現される。
【００９０】
更に、本発明においては、上に説明した一次登録、二次登録が、複数の出力方法毎に設定可能であり、割合分散印刷を始め、後述する同報印刷、カラー／白黒分散印刷、代行印刷の夫々に独立して一次登録、二次登録が処理されるようになっている。
【００９１】
また、１００６は各デバイスの属性情報の表示欄である。グループプリンタドライバに設定されている各メンバプリンタドライに対応するデバイスの属性情報を、メンバプリンタドライバの名称と共に、制御プログラムの表示制御に応じて表示されたものに相当する。
【００９２】
次に、メンバプリンタドライバの登録／削除について、図１１を参照しつつ説明する。
【００９３】
図１１は先に説明した図１０における１００２の「デバイスの追加／削除」ボタンの押下信号を本制御プログラムが認識した際に表示されるＵＩである。
【００９４】
図１１において、１１０１は選択可能なメンバプリンタドライバの一覧を表示するリストボックスである。選択可能なメンバプリンタドライバとは、本システムがハンドリング可能なポートを割り付けてインストールしてあるプリンタドライバであり、本制御プログラムが存在を認識することができるプリンタドライバとなる。
【００９５】
１１０２は選択したメンバプリンタドライバの一覧を表示するリストボックスである。１１０３、１１０４、１１０５、１１０６の夫々のボタンにより、選択可能なメンバプリンタ一覧よりメンバプリンタに追加、削除を行うことが可能となっている。
【００９６】
１１０３の押下信号を認識した際には、１１０１にて押下時に選択されているプリンタドライバをメンバプリンタドライバの一構成として追加する処理を行う。
【００９７】
また、１１０４の押下信号を認識した際には、１１０１のリストに示される全てのプリンタドライバを対象として１１０２に表示されるメンバプリンタドライバを構成するものとするよう制御する。
【００９８】
また、１１０５は、１１０３、１１０４とは逆でメンバプリンタドライバから外すためのボタンを示し、１１０３、１１０５の押下信号が認識されると１１０２のメンバプリンタドライバの構成から外されるよう、対象となるメンバプリンタドライバは制御される。
【００９９】
図１２は図１０の１００１の選択リストより自動代行印刷が選択され出力方法として設定された場合のＵＩの表示様子の例を示したものであり、登録されたメンバプリンタドライバの構成が出力方法の指定に応じて切り替え表示された様子を示している。
【０１００】
自動代行印刷では、メンバプリンタドライバの夫々に優先順位が設けられており、設定された優先順位の１番高いメンバプリンタドライバによりまず優先的に印刷が行われ、現在印刷処理を行わせようとしているプリンタデバイスにトナー無し等のエラーが発生し印刷不可能になった場合、自動的に次の優先順位のメンバプリンタドライバに印刷処理をさせるように制御が行われる処理が行われる。
【０１０１】
この場合メンバプリンタドライバの構成としては、割合分散（分散印刷）の場合と同様、複数登録可能であり、本制御プログラムは夫々のメンバプリンタドライバに対して優先順位を設定する機能を有している。
【０１０２】
図１２の１２０１、１２０２は、メンバプリンタドライバの優先順位を変更する為のボタンである。このＵＩの例ではメンバプリンタの優先順位は、メンバプリンタ一覧１２０３にリスティングされている順番と一致している。
【０１０３】
従って、１２０３のリストの一覧よりメンバプリンタドライバを選択し、１２０１のボタンにより、メンバプリンタリスト上の順番を１つ上げる（上のほうに移動表示）と共に、優先順位も上げることが可能である。
【０１０４】
また１２０２のボタンにより、メンバプリンタリスト上の順番を１つ下げる（下のほうに移動表示）するとともに、優先順位も下げることが可能である。
【０１０５】
また、先に説明したメンバプリンタドライバの登録（追加／削除）についても、図１１に示されるものと同様なＵＩが表示されるような制御が行われ、メンバプリンタの登録削除処理が行われる。
【０１０６】
次に、上に説明してきたような複数のプリンタを対象とするような印刷システムにおける複数のプリンタの管理の仕組みについて以下説明することとする。
【０１０７】
図１４は図６にて説明したプリントマネージャー６２３の制御処理を示すものであり、情報処理装置に設けられたＣＰＵ（中央演算処理装置）がＲＯＭ、ＨＤ等の不揮発性記憶手段に記憶されたプログラムコードを読み込み実行することに応じて実現されるものとする。
【０１０８】
まず、ユーザからのマウス、キーボード等のポインティングデバイスを介した起動指示に応じて、タスクトレイ起動処理が実行される。
【０１０９】
そして、ステップＳ１４０１では、タスクトレイ起動処理に応じて、起動初期化処理が実行される。
【０１１０】
そして、ステップＳ１４０２では、デバイス・ジョブ監視サービスインターフェースの構築が実行される。ここでの、デバイス・ジョブ監視サービスインターフェースとは、図６のジョブ制御プリントサービス６２２とのインターフェースに相当し、ジョブ制御プリントサービスモジュールが管理するデバイスステータスやプリントキュー情報などをプリントマネージャーが取得するためのインターフェースに相当する。
【０１１１】
そして、ステップＳ１４０３では、監視対象プリンタの列挙処理が実行される。ここでの列挙処理とは、プリントマネージャー６３３がジョブ制御プリントサービス６２２から取得した単数或は複数のプリンタの管理情報を取得し把握する処理に相当し、ジョブ制御プリントサービス６２２から取得し管理する情報の管理様子としては例えば、図１８、図１９、図２０、図２１が挙げられる。
【０１１２】
ここで、プリントマネージャー６２３がジョブ制御プリントサービス６２２から取得するプリント情報にグループプリンタ（仮想プリンタ）とメンバプリンタ（実際に稼動するプリンタ）とが含まれる。
【０１１３】
そして、ステップＳ１４０４では、不明ジョブ探索・復帰モジュールのエラー／トラブル回復処理が実行される。例えば、強制終了時に残存していたジョブの再印刷処理などがこれに相当する。
【０１１４】
ステップＳ１４０５では、プリンタ情報変化に伴うイベント要求登録処理がプリントマネージャー６２３からジョブ制御プリントサービス６２２に対して登録される。実際には、ジョブ制御プリントサービス６２２がネットワーク上に通信可能にされた複数の画像形成デバイスの状態を管理しており、このジョブ制御プリントサービス６２２によって管理される画像形成デバイス状態の変化がプリントマネージャー６２３に対して通知される。ステップＳ１４０５はこのジョブ制御プリントサービス６２２にて管理される画像形成デバイスの状態変化の通知の依頼に相当するものであり、無論、プリントマネージャー６２３からジョブ制御サーバ６３０、或は、プリントデバイス６５０に直接イベント通知を依頼するような形態も想定される。
【０１１５】
そして、ステップＳ１４０６では、詳細モニタ表示要求が成されたか否かの判定が実行される。例えば、ステップＳ１４０１で生成された詳細モニタ起動ボタンに対するポインティングデバイスを介した起動指示がなされたか否かの判定処理がこのステップＳ１４０６に相当する。
【０１１６】
そして、ステップＳ１４０６でＹｅｓと判定されれば処理をステップＳ１４０８に移行し、Ｎｏと判定されれば処理をステップＳ１４０９に移行する。
【０１１７】
ステップＳ１４０８では詳細モニタＵＩモジュールによる処理が実行されるが、この詳細は後述する図１５にて説明する。
【０１１８】
そして、ステップＳ１４０９、１４１０では、ジョブを実行中のデバイス及びジョブに関する監視処理が実行され、ステップＳ１４１１ではジョブ終了通知監視処理が実行される。
【０１１９】
そして、ステップＳ１４１２では起動されたプログラムの終了指示がなされたか否かの判定が行われ、Ｙｅｓと判定されればプログラム処理を終了し、Ｎｏと判定されればステップＳ１４０７にて監視対象プリンタの更新チェック処理が実行され、ステップＳ１４０６の処理に戻る。ステップＳ１４０７の監視対象プリンタの更新チェック処理とは、例えば、図１１のようなユーザインターフェースを介して行われたメンバプリンタの追加／削除を管理することに相当する。
【０１２０】
次に図１５の説明を行う、図１５は先の図１４のフローチャートのステップＳ１４０８の詳細な処理に相当する。
【０１２１】
まず、ステップＳ１５０１では、起動初期化処理が実行される。これは後述する、例えば、図２２に示されるような表示を実行する為に必要な各種初期化処理に相当する。
【０１２２】
次にステップＳ１５０２では、監視対象プリンタの列挙処理が実行される。ここでの列挙処理は、監視対象となる複数のプリンタ（グループプリンタ（仮想プリンタ）、メンバプリンタ（実プリンタ）の双方を含む）情報のジョブ制御プリントサービス６２２からの取得処理、及び、取得されたプリンタ情報に基づくプリンタリストの表示処理を含むものとする。例えば、図２２の「プリンタ別表示」の枠内に示されるプリンタリストがステップＳ１５０２の処理に対応して表示されたものに相当する。また、該プリンタリストに仮想プリンタと実プリタンとを含むことに特徴を有する。また、図２３、２４の「プリンタ別表示」のプリンタリストもこれに相当する。また、リスト中の仮想プリンタ及び実プリンタには、夫々のプリンタ（仮想プリンタ／実プリンタ）の状態を示す状態アイコンが付されている。ここで、プリンタ（仮想プリンタ／実プリンタ）の状態が変更されることに応じて、状態アイコンも変化されるよう制御が行われる。例えば、仮想プリンタに対応するメンバプリンタの状態を「ｏｒ」処理することによって仮想プリンタの状態を決定し、該決定された状態に対応したアイコンを決定することができる。複数のメンバプリンタのうち１つでも状態が「スプーラ停止」ならば、該複数のメンバプリンタに対応する仮想プリンタの状態及び該状態に対応するアイコンを「スプーラ停止」停止にしたり、複数のメンバプリンタのうち１つでも状態が「エラー」ならば、対応する仮想プリンタの状態及び該状態に対応する状態アイコンも「エラー」とするような制御が想定される。
【０１２３】
そして、ステップＳ１５０３では、起動時表示メニュー指定表示処理が実行される。これは、プログラム起動時にメニュー項目に割り当てられるメニューの表示を変更指定可能な形態で表示させる処理に相当する。
【０１２４】
そして、ステップＳ１５０４では、モード選択指示が成されたか否かの判定が実行され、”マイメニュー”に対応する指示が成されたと判定された場合には、処理をステップＳ１５０５に移行させ、”プリンタ一覧メニュー”に対応する指示がなされたと判定された場合には処理をステップＳ１５０６に移行させる。尚ここでのモード選択指示とは所定のメニューを選択指示する処理を指すものとする。
【０１２５】
ステップＳ１５０６では、ステップＳ１５０２の処理に伴に列挙された複数のプリンタから、どのプリンタが選択指示されたか否かを判定すると共に、選択されたプリンタを認識する処理を実行する。
【０１２６】
そして、ステップＳ１５０７では、さらに現在どの種別のモード選択がなされているか否かの判定が行われ、そのモードの種別に応じて、ステップＳ１５０６にて現在選択されていると認識されているプリンタに係る情報の表示の形態を異なるように制御する。尚、ここでのモード選択とは、例えば、図２２中の「モード（Ｄ）：」の選択欄を介して指示されたモード指示を指すものとする。
【０１２７】
ステップＳ１５０７で、モードとして”プリンタ情報”が選択されていると判定されれば、処理をステップＳ１５０８に移行させ、”ジョブリスト”が選択されていると判定されれば、処理をステップＳ１５０９に移行させ、”出力設定”が選択されていると判定されれば、処理をステップＳ１５１０に移行させる。ステップＳ１５１０においては、ステップＳ１５０６において選択されたプリンタの設定情報（用紙サイズ、デフォルト解像度等）を表示させる。尚、ステップＳ１５０９に対応した詳細な説明は後述の図１６にて行うこととする。
【０１２８】
このように、図１５のフローチャートの処理が実行されることにより、ステップＳ１５０２で列挙された単数或は複数の監視対象プリンタの中から選択された所定のプリンタ（仮想プリンタ／実プリンタを含む）に対して、プリンタ情報やジョブリストや出力設定などモード選択に応じた各種情報を切換え表示させることが可能となる。
【０１２９】
さらには、ステップＳ１５０６ではグループプリンタ（仮想プリンタ）と実プリンタ（メンバプリンタ）とを混在させリスティングさせているにも係らず、ユーザはその中から仮想プリンタ／実プリンタの何れかを意識することなく同様の要領で選択でき、該選択指示に応じて最適なプリンタ情報やジョブリスト情報や出力設定情報を知ることができるようになる。
【０１３０】
続いて図１６の説明をする。図１６は、上に説明した図１５のステップＳ１５０９の詳細な説明に対応したフローチャートに相当する。
【０１３１】
まず、ステップＳ１６０１では、選択プリンタの状態イベント登録が実行される。これは、図１５のステップＳ１５０６で選択されたプリンタに係る状態の変化をイベントとして要求する処理に相当する。実際には、図６のプリントマネージャー６２３がジョブ制御プリントサービス６２２にイベントの通知を依頼する形態が想定される。尚、ステップＳ１６０１における選択プリンタとは仮想プリンタ或は実プリンタの双方を想定することができる。
【０１３２】
そして、ステップＳ１６０２ではステップＳ１６０１にて認識されたプリンタの種別がグループプリンタ（仮想プリンタ）／メンバプリンタ（実プリンタ）なのか、或は、インクジェットプリンタ／レーザービームプリンタ／ネットワーク対応デジタル複合機なのかに応じて、異なる情報取得処理を行う為の初期化処理を実行する。
【０１３３】
そして、ステップＳ１６０３、Ｓ１６０４ではステップ１５０６で選択されたプリンタに対応するキュー情報、ポート情報のジョブ制御プリントサービス６２２から取得する処理を実行する。
【０１３４】
更に詳しくは、１６０２、１６０３で選択指示されたプリンタが仮想プリンタ（グループプリンタ）である場合には、それに対応したキュー及びポート情報の取得が実行される。また、選択指示されたプリンタがメンバプリンタ（実プリンタ）であった場合には、メンバプリンタに対応したキュー及びポート情報が取得される。キュー及びポートの特定に関しては、プリンタの指示に対応したプリンタを特定する為の情報（プリンタ名／プリンタＩＤ等）を基に図１８のような管理情報が参照され、該管理情報に含まれるキューを参照する為の情報及びポートを参照する為の情報が特定される。
【０１３５】
また、ジョブ制御プリントサービス６２２では、グループプリンタ（仮想プリンタ）、メンバププリンタ（実プリンタ）の夫々に対応して仮想プリンタ用のキュー（図７中のｌｏｇｉｃａｌ  Ｑｕｅｕｅに相当）、メンバプリンタキュー（図７中の各Ｐｒｉｎｔｅｒ  Ｑｕｅｕｅに相当）、仮想プリンタ論理ポート（図７中のＬｏｇｉｃａｌ  Ｐｏｒｔに相当）、メンバプリンタ論理ポート（図７中の各Ｏｕｔｐｕｔ  Ｐｏｒｔに相当）を管理しており、指定されたプリンタに応じて管理する情報をプリントマネージャー６２３に通知するような処理が実行される。
【０１３６】
また、キュー情報としては、印刷出力すべく現在登録されている印刷ドキュメント名／ドキュメントサイズ／部数などのジョブの属性や、スプール中／印刷中などのジョブの状態等が、また、ポート情報としては通信機能が正常な状態であるか否かの情報等が例として挙げられる。
【０１３７】
ステップＳ１６０５では、選択指示されたプリンタに対応するプリンタキューに対して状態に変化があったような場合にはイベントをするようイベント通知の登録を行う。
【０１３８】
そして、ステップＳ１６０６では、ステップＳ１６０１〜１６０５までの処理の対象となっている選択されたプリンタがグループプリンタ（仮想プリンタ）なのかメンバプリンタ（実プリンタ）なのかの判定が行われる。
【０１３９】
仮想プリンタと判定されれば、処理をステップＳ１６０７に移行させ、そうでないならば処理をステップＳ１６１８に移行させる。
【０１４０】
ステップＳ１６０７では、仮想プリンタの種別が判別される。すなわち、仮想プリンタの出力方法が割合分散印刷なのかカラー／白黒分散印刷なのか自動代行印刷なのか同報印刷なのかの判別が図１８に示すような管理情報を参照することによって実行される。
【０１４１】
そして、ステップＳ１６０８においては、仮想プリンタキュー内に管理される中間ファイルの抽出（列挙）が行われる。この際には、発行された仮想ジョブに関連する中間ファイル（オリジナルジョブ或は親ジョブとも呼ぶこともある）の一覧が表示される。
【０１４２】
そして、ステップＳ１６０９では中間ファイル付属情報処理が実行される。ここで、付属情報としては、例えば、印刷日時等が該当する。
【０１４３】
そして、ステップＳ１６１０では、中間ファイルに対応した状態変化のイベント通知の登録がプリントマネージャー６２３からジョブ制御プリントマネージャー６２２（印刷制御用プログラム）に対して行われる。
【０１４４】
そして、ステップＳ１６１１では、ステップＳ１６０８で列挙された中から所定の中間ファイル（分散／代行／同報前の基となる親のジョブ（中間ファイル））の選択指示が成されたか否かの判定が行われ、選択されたと判断がなされれば、ステップＳ１６１２でジョブ選択時処理が実行され、さらにステップＳ１６１３では中間ファイル付属派生ジョブの列挙が行われる。
【０１４５】
この中間ファイルからの派生ジョブの特定は、ステップＳ１６１１で選択指示されたものに対応する中間ファイル名２００１或は中間ファイルＩＤを、図２０に示すような管理情報に照らし合わせることにより対応する中間ファイル付属情報２００４から派生ジョブの特定が行われる。即ち、中間ファイル付属情報２００４に所定の中間ファイルに対応した派生ジョブを特定する為の情報が含まれている。また、該派生ジョブに関するジョブ状態や出力先プリンタ情報なども図２０の２００７の情報から特定することができる。また、２００４より特定された派生ジョブＩＤに基づいて特定される図２１のような派生ジョブ管理情報を参照することにより、派生ジョブの各種情報を認識し表示させることも可能な構成をとっている。
【０１４６】
このように仮想ジョブ（対応する所定のオリジナルジョブ）に対応した派生ジョブが抽出（列挙）され、図２２の２２０３に示されるように派生ジョブのリストが出力先プリンタ／状態情報と共に表示（Ｓ１６１４）される。また、ジョブ追跡の場合は実プリンタはジョブ付属の「出力先プリンタ」名にて表示確認できる。
【０１４７】
続くステップＳ１６１５では派生ジョブについて状態変化に伴うイベント要求の登録処理が行われる。
【０１４８】
ステップＳ１６１６では、ステップＳ１６１４で列挙され表示された派生ジョブから所定の派生ジョブが選択されたか否かの判定が行われ、Ｙｅｓと判断されれば、処理をステップＳ１６１７に移行させる。
【０１４９】
一方、ステップＳ１６０６にて、仮想プリンタでないメンバプリンタ（実プリンタ）が選択されたと判断されれば、ステップＳ１６１８では、選択されたプリンタに対応するプリンタキューの存在するジョブ情報（ジョブ名）を取得し、イベント登録を実行する（Ｓ１６１９）と共に、列挙された各ジョブの付属情報を取得し（Ｓ１６２０）、ステップＳ１６２１にて取得されたジョブ名にジョブ付属情報を対応させて表示する（Ｓ１６２１、Ｓ１６２２）。そして、ステップＳ１６２３においては、ジョブ選択時制御処理を実行する。
【０１５０】
このように、仮想プリンタが選択指示されたか実プリンタが選択指示されたかを判別する（Ｓ１６０６）ことができ、更には、仮想プリンタが選択されたと判別された場合には仮想プリンタに対応するジョブ情報を表示させ、実プリンタが選択指示されたと判定された場合には実プリンタに対応するジョブ情報を表示させる管理が実現される。また、仮想プリンタに対応する情報としては、図２２に示すようなオリジナルとなるジョブ（中間ファイル）の情報（図２２の２２０２）と該オリジナルジョブから派生した派生ジョブの双方が表示されるので、ユーザは仮想ジョブ全体として進行状況はどのようなものであるかという事と、仮想ジョブに対応した派生ジョブの夫々がどのような状態なのかを容易に知ることができる。
【０１５１】
次に図１７の処理についての説明を行う、図１７は、上に各イベント登録に対応するイベントの監視処理に相当し、図６のプリントマネージャー６２３によって実行され、情報処理装置に設けられたＣＰＵ（中央演算処理装置）がＲＯＭ、ＨＤ等の不揮発性記憶手段に記憶されたプログラムコードを読み込み実行することに応じて実現されるものとする。
【０１５２】
まずステップＳ１７０２ではステップＳ１７０１で管理されるプリンタキューに係るイベントが状態更新イベントか否かの判断が行われる。Ｙｅｓと判断されれば、イベント対象ジョブの状態更新処理が実行され、それに応じて対応する表示も更新される。
【０１５３】
一方、ステップＳ１７０２でＮｏと判断されれば、ステップＳ１７０５にてイベントが完了通知か否か判定される。Ｎｏと判断されれば、処理をステップＳ１７０１に戻し、Ｙｅｓと判断されれば、処理をステップＳ１７０６に移行する。
【０１５４】
ステップＳ１７０６ではステップＳ１７０５の完了通知イベントが中間ファイルに関するものか否かの判定が行われ、Ｙｅｓと判断されれば処理をステップＳ１７０８へ移行させる。一方Ｎｏと判断されれば、派生ジョブに対応した完了通知か否かの判断がなされ、ステップＳ１７０Ｙｅｓと判断されれば、処理をステップＳ１７０１に移行させる。Ｎｏと判断されれば、処理をステップＳ１７０８へ移行させる。
【０１５５】
そして、ステップＳ１７０８では、ジョブ完種別の情報取得が行われ、ステップＳ１７０９ではジョブ完了付属情報の取得が行われ、ステップＳ１７１０ではジョブ完了状態の通知表示処理が行われる。ここではアイコン通知、ダイアログ通知などが想定される。
【０１５６】
このように図１７のフローチャートが実現されることにより、図２２、２４に示されるような各メンバプリンタに対応するジョブ情報が随時更新されることになり、更には、各メンバプリンタで実行されるジョブの情報に基づくオリジナルジョブ（親ジョブ）の最新の情報を表示させることが可能となる。
【０１５７】
ここで、図２２、２４についての説明をすることとする。
【０１５８】
図２２は分散印刷システムに係る仮想分散印刷プリンタ（図中「分散くん」に相当）と該仮想分散プリンタを構築するメンバプリンタ（プリンタＡ、Ｂ、Ｃに相当）のリストが「プリンタ別表示」の欄に示されている。図２２中では「分散くん」が選択されている表示様子を示している。
【０１５９】
ジョブ制御プリントサービス６２２は、２２０３に示される派生ジョブ（図中では「子ジョブ」に相当）の各ステータスを「ｏｒ処理」した情報を２２０２のオリジナルジョブのジョブ状態として生成する機能を備えており、この２２０２が分散印刷仮想ジョブ全体の代表ステータスとして表示される。
【０１６０】
例えば、派生ジョブの全てが印刷終了すれば、２２０２の状態は「終了」と決定され、また、派生ジョブに１つでも「エラー」が認識されれば、２２０２の状態は「エラー」とされる。また、図２２に示されるように派生ジョブの状態が「印刷待ち」と「印刷中」とからなる場合には２２０２の代表ステータスは「印刷中」とされる。このようにユーザは代表ステータスを知ることにより、容易に分散印刷システムのステータス（状態）を知ることが可能となる。この代表ステータス（状態）の生成ついては、一般的に知られている同報印刷、代行印刷、カラーモノクロ分散印刷などにおける派生ジョブに関しても同様に処理される。尚、実際には２２０２のオリジナルジョブは分散印刷を実行するにあたってのオリジナル中間ファイル（図６にて説明した汎用印刷ファイルに相当）に相当する。
【０１６１】
また、図２２中のオリジナルジョブの表示欄には２２０２の１つオリジナル中間ファイルに対応するリストのみが表示されているが、複数の仮想ジョブを発行したような場合には複数のオリジナルジョブ表示欄に表示される。また、その中から、中間ファイルの選択指示が切り替わると該選択指示された中間ファイルに対応する派生ジョブのリストも切り替わり変更される（図１６のステップＳ１６１１〜Ｓ１６１４に対応）。これにより、ユーザは夫々の仮想ジョブに対応した派生ジョブのジョブ状態を容易に知ることができる。
【０１６２】
また、図２２、２３、２４のような表示において、本制御プログラムはフィルタ機能を有しており、ジョブに付属されるオナー名や、マシン名に基づいて自分のジョブのみを表示させるような機能も有している。
【０１６３】
図２３は、図２２に対して実プリンタが選択された場合の表示例を示しており、図２２の「分散くん」の選択指示から「プリンタＡ」への選択指示に切り換えた際の表示の切換え様子を示している。
【０１６４】
また、図２２〜２４を通して、ジョブの各種状態に対応する状態アイコンがドキュメント名の左側に表示されており、特にオリジナルジョブに対して状態アイコンを表示させているので、ユーザに分散印刷ジョブや同報印刷ジョブなどの代表ステータスをより理解しやすく知らしめることができる。状態アイコンの一例を図１３及び図２５に示す。
【０１６５】
以上説明してきたように、本発明によれば、複数のプリンタに部数／頁を振り分けて印刷を行わせるような、例えば分散印刷や同報印刷等の印刷方法に対して、適切なジョブ情報を提供するような仕組みが実現されるようになった。例えば、分散印刷を実行させたような場合の分散印刷に利用されたプリンタの情報を夫々監視する必要はなく、まとめて分散先の各派生ジョブを効率良く監視することができるようになった。
【０１６６】
また、他の人のジョブと混在した形でジョブ情報のユーザインターフェースが提供されない為に、どのジョブが自分の監視したジョブかを容易には確認することができるようになった。
【０１６７】
さらに、分散印刷や同報印刷等の複数種類の複数プリンタを利用したジョブを想定した場合に、従来の技術によれば、夫々のプリンタキューの情報を閲覧したとしても、それが分散印刷に対応したジョブ情報なのか、或は、同報印刷に対応したジョブ情報なのかをユーザは区別することができなかったが、本願発明によれば、仮想プリンタの種別に応じたメンバプリンタのジョブ情報を容易に得ることが可能となった。
【０１６８】
（その他の実施例）
なお、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成される。
【０１６９】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１７０】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピーディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０１７１】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１７２】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１７３】
【発明の効果】
以上説明してきたように、本発明によれば、複数のプリンタを利用するようなジョブ形態に対応して、ジョブ情報を解り易くユーザに知らしめることができるジョブ管理の仕組みを提供することができるようになった。
【図面の簡単な説明】
【図１】本発明を適用可能な情報処理システムの構成を説明するブロック図。
【図２】本発明の情報処理装置の構成を説明するブロック図。
【図３】図２に示したＲＡＭ２０２のメモリマップの一例。
【図４】図２に示したＦＤ２０４のメモリマップの一例。
【図５】図２に示したＦＤドライブ２０３に対して挿入されるＦＤ２０４との関係を示す図。
【図６】本発明の情報処理装置のプリント制御モジュール構成を説明するブロック図。
【図７】プリントサーバで管理されるジョブ情報のデータ構造の一例。
【図８】汎用印刷ファイルの構造を示す図。
【図９】本印刷用制御プログラムをセットアップする際の、メンバプリンタドライバの登録及びプリンタ属性情報の設定を示すフローチャート。
【図１０】出力方法に割合分散印刷が指定された際のＵＩの表示様子例。
【図１１】指定された所定種別の仮想プリンタに対応したメンバプリンタドライバの追加／削除（登録）機能を有するＵＩの表示様子例。
【図１２】出力方法に自動代行が指定された際のＵＩの表示様子例。
【図１３】ジョブの状態を表わすジョブ状態アイコンの一例。
【図１４】印刷制御用プログラムのデバイス監視に基づいたプリントマネージャのステータス管理制御のフローチャート。
【図１５】詳細モニタの制御フローチャート。
【図１６】仮想プリンタ（グループプリンタ）選択、或は、実プリンタ（メンバプリンタ）選択時のプリンタマネージャー制御プログラムによるフローチャート。
【図１７】イベント通知監視によるプリンタ情報更新フローチャート。
【図１８】仮想プリンタ（グループプリンタ）におけるメンバプリンタの管理様子を示す図。
【図１９】実プリンタ（メンバプリンタ）における各種情報の管理様子を示す図。
【図２０】仮想プリンタ中ジョブ状態データ（中間ファイル）。
【図２１】実プリンタ中ジョブデータ（ＰＤＬ・派生ジョブ）。
【図２２】仮想プリンタ（分散印刷）が選択された場合のジョブリスト表示様子例。
【図２３】メンバプリンタ（実プリンタ）が選択された場合のジョブリスト表示様子例。
【図２４】仮想プリンタ（代行印刷）が選択された場合のジョブリスト表示様子例。
【図２５】ジョブの状態を表わすジョブ状態アイコンの一例。
【符号の説明】
１０１  サーバ
１０２  クライアント
１０３  クライアント
１０４  クライアント
１０５  ネットワークプリンタ
【図１】
0003884949.tif 000002
【図２】
0003884949.tif 000003
【図３】
0003884949.tif 000004
【図４】
0003884949.tif 000005
【図５】
0003884949.tif 000006
【図６】
0003884949.tif 000007
【図７】
0003884949.tif 000008
【図８】
0003884949.tif 000009
【図９】
0003884949.tif 000010
【図１０】
0003884949.tif 000011
【図１１】
0003884949.tif 000012
【図１２】
0003884949.tif 000013
【図１３】
0003884949.tif 000014
【図１４】
0003884949.tif 000015
【図１５】
0003884949.tif 000016
【図１６】
0003884949.tif 000017
【図１７】
0003884949.tif 000018
【図１８】
0003884949.tif 000019
【図１９】
0003884949.tif 000020
【図２０】
0003884949.tif 000021
【図２１】
0003884949.tif 000022
【図２２】
0003884949.tif 000023
【図２３】
0003884949.tif 000024
【図２４】
0003884949.tif 000025
【図２５】
0003884949.tif 000026