(57)【要約】【課題】夫々が異なる特性のメンバプリンタドライバの機能を反映した仮想プリンタ印刷設定画面の表示に時間を要するという問題があった。【解決手段】複数のメンバプリンタにより構成される仮想プリンタのジョブ制御を行う情報処理装置において、複数のメンバプリンタの夫々の機能に基づくコンフリクト処理を行い、コンフリクト結果を、仮想プリンタの設定画面に反映させる表示制御に伴い、メンバプリンタの構成を調べ調査に基づきコンフリクト処理の進捗状況を可視化させるよう制御する。【選択図】        図１０
2005010919.tif 000002
【特許請求の範囲】
【請求項１】
複数のメンバプリンタにより構成される仮想プリンタのジョブ制御を行う情報処理装置において、
前記複数のメンバプリンタの夫々の機能に基づくコンフリクト処理を行うコンフリクト手段と、
前記コンフリクト手段によるコンフリクト結果を、前記仮想プリンタの設定画面に反映させる表示制御手段と、
メンバプリンタの構成を調べる調査手段とを有し、
前記表示制御手段は、前記調査手段による調査に基づきコンフリクト処理の進捗状況を可視化させるよう制御することを特徴とする情報処理装置。
【請求項２】
前記調査手段は仮想プリンタを構成するメンバプリンタの数を調査し、前記表示制御手段は、前記調査手段により調査されたメンバプリンタの数が所定値以上であることに応じてコンフリクト処理の進捗状況を可視化させることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
仮想プリンタに関連付けられたメンバプリンタに対応するメンバプリンタドライバからＡＰＩを用いてプリンタドライバの識別ＩＤを獲得する獲得手段と、
前記調査手段は前記獲得手段により獲得されたプリンタドライバの識別ＩＤに基づきメンバプリンタの数を判断することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記表示制御手段は、前記可視化されたコンフリクト処理の進捗状況の表示を所定のメンバプリンタに対するコンフリクト処理が終了することに応じて更新することを特徴とする請求項１から３の何れかに記載の情報処理装置。
【請求項５】
前記所定のメンバプリンタに対するコンフリクト処理はメンバプリンタからの機能情報の取得を含むことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記調査手段は、メンバプリンタの種別を調査することを特徴とし、さらに前記メンバプリンタの種別に基づきメンバプリンタ数の重み付けカウント処理を行うカウント手段を有し、前記表示制御手段は前記カウント手段によりカウントされたメンバプリンタ数に基づきコンフリクト処理の進捗状況を可視化させることを特徴とする請求項２から４の何れかに記載の情報処理装置。
【請求項７】
前記コンフリクト処理の進捗状況を可視化を実行させるか否かの入力に基づく設定を行う設定手段を有することを特徴とする請求項１から６の何れかに記載の情報処理装置。
【請求項８】
複数のメンバプリンタにより構成される仮想プリンタのジョブ制御を行う情報処理装置における情報処理方法であって、
前記複数のメンバプリンタの夫々の機能に基づくコンフリクト処理を行うコンフリクトステップと、
前記コンフリクトステップにおけるコンフリクト結果を、前記仮想プリンタの設定画面に反映させる表示制御ステップと、
メンバプリンタの構成を調べる調査ステップとを有し、
前記表示制御ステップは、前記調査ステップにおける調査に基づきコンフリクト処理の進捗状況を可視化させるよう制御することを特徴とする情報処理方法。
【請求項９】
複数のメンバプリンタにより構成される仮想プリンタのジョブ制御を行う情報処理装置により実行されるプログラムであって、
前記複数のメンバプリンタの夫々の機能に基づくコンフリクト処理を行うコンフリクトステップと、
前記コンフリクトステップにおけるコンフリクト結果を、前記仮想プリンタの設定画面に反映させる表示制御ステップと、
メンバプリンタの構成を調べる調査ステップとを有し、
前記表示制御ステップは、前記調査ステップにおける調査に基づきコンフリクト処理の進捗状況を可視化させるよう制御することを特徴とするプログラム。
【請求項１０】
複数のメンバプリンタにより構成される仮想プリンタのジョブ制御を行う情報処理装置により実行されるプログラムを格納したコンピュータ可読の記憶媒体であって、
前記複数のメンバプリンタの夫々の機能に基づくコンフリクト処理を行うコンフリクトステップと、
前記コンフリクトステップにおけるコンフリクト結果を、前記仮想プリンタの設定画面に反映させる表示制御ステップと、
メンバプリンタの構成を調べる調査ステップとを有し、
前記表示制御ステップは、前記調査ステップにおける調査に基づきコンフリクト処理の進捗状況を可視化させるよう制御することをプログラムをコンピュータ読み取り可能な形態で格納した記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、分散印刷や同報印刷時に利用される仮想プリンタの仕組みに関する。
【０００２】
【従来の技術】
従来、アプリケーションデータから作成されたＥＭＦ（Ｅｎｈａｎｃｅｄ  Ｍｅｔａ−Ｆｉｌｅ）と、仮想ドライバを介しての設定に基づき作成されたジョブ記述ファイルとを用意し、ジョブ記述ファイルに含まれるジョブの配布先のプリンタに対しＥＭＦを変換したコマンドを送信し、分散印刷を行う仕組みが知られている。
【０００３】
例えば特許文献１には、上に述べたような仮想ドライバを利用する印刷において、仮想ドライバのダイアログ画面を介して設定された、メーカやプリンタ機種に依存しない共通な情報（用紙サイズ、用紙種等）をＤＥＶＭＯＤＥ情報として印刷設定する仕組みが開示されている。
【０００４】
この仮想ドライバのダイアログ画面の設定可能項目は固定的なものとなっており、分散印刷に利用される複数のプリンタを代表するものであり、分散印刷は配布印刷などの際に、ユーザは複数のプリンタにまとめて所定の設定を行えるというメリットを受けることができた。
【０００５】
【特許文献１】
特開平１１−１４３６６１号公報
【０００６】
【発明が解決しようとする課題】
しかしながら、従来から知られている特許文献１によれば仮想ドライバのダイアログ画面を介して設定可能な項目が固定的なものとなっており、複数のプリンタの各々の機能を画一的なものとして扱うことになり、実際には異なる各々のプリンタの機能を仮想プリンタの設定に十分に反映させたものであるとは云えず、各々のプリンタの機能を十分に生かしきれないという問題が挙げられる。
【０００７】
このような問題点を解決するために仮想プリンタを構成する各々の実プリンタの機能を取得し、取得された情報を基に各々のプリンタに矛盾の無いような印刷設定項目を特定し、該特定された印刷設定項目を仮想プリンタのダイアログ画面に反映させるようにすることが望まれる。
【０００８】
しかしながら、従来から知られている特許文献１によれば、各々のプリンタの機能を十分に生かすべく各々のプリンタの機能の取得の処理などを想定しておらず、単に仮想ドライバのダイアログ画面を表示させるという仕組みのため、仮想ドライバのダイアログ画面の生成に数秒から数十秒要する場合に、ユーザに不安を与えてしまうという問題があった。場合によっては、ユーザは印刷処理装置（パーソナルコンピュータ等）がフリーズしたと勘違いし、印刷処理装置を再起動させてしまうような問題も危惧される。
【０００９】
本願発明は上記問題点を鑑みてなされたものであり、仮想プリンタに対応する複数の実プリンタの機能を反映させた仮想プリンタ設定画面を、ユーザに不安を与えることなく提示できる仕組みを提供することを目的とする。
【００１０】
【課題を解決するための手段】
本発明は上記目的を達成する為に、複数のメンバプリンタにより構成される仮想プリンタのジョブ制御に関わる仕組みにおいて、複数のメンバプリンタの夫々の機能に基づくコンフリクト処理を行うコンフリクト手段と、コンフリクト手段によるコンフリクト結果を、前記仮想プリンタの設定画面に反映させる表示制御手段と、メンバプリンタの構成を調べる調査手段とを有し、さらに表示制御手段は、調査手段による調査に基づきコンフリクト処理の進捗状況を可視化させるよう制御する仕組みを提供する。
【００１１】
【発明の実施の形態】
〔第１の実施の形態〕
以下、本発明を適用するのに好適である実施形態について説明を行う。
【００１２】
図１は、本発明を適用可能な情報処理システムの構成を説明するブロック図である。なお、本システムにおけるクライアントコンピュータは、１台、または複数台接続されていることを仮定している。
【００１３】
図において、１０２、１０３、１０４はクライアントコンピュータ（クライアント）としての情報処理装置であり、イーサネット（登録商標）などのネットワークケーブルによって、ネットワーク１０６に接続され、アプリケーションプログラム等の各種のプログラムを実行可能であり、印刷データをプリンタに対応する或は解釈可能なプリンタ言語に変換する機能を有するプリンタドライバを搭載している。なお、後述にて詳しく説明するが、本発明におけるプリンタドライバは複数のプリンタドライバをサポートするものとする。
【００１４】
１０１は本実施形態のサーバ（以下、プリントサーバと呼ぶ）としての情報処理装置であり、ネットワークケーブルによって、ネットワーク１０６に接続され、ネットワークで使用されるファイルを蓄積したり、ネットワーク１０６の使用状態を監視したりする。プリントサーバ１０１は、ネットワーク１０６に接続されている複数のプリンタを管理する機能を有する。
【００１５】
構成としては、クライアント１０２〜１０４とプリントサーバ１０１は、一般的な情報処理装置であり、クライアントとプリントサーバには、それぞれ異なる制御を行う印刷制御プログラムが実行可能に格納されている。
【００１６】
また、プリントサーバ１０１は、一般的な情報処理装置であり、クライアント１０２〜１０４の機能を同時に持つこともできる。
【００１７】
本実施形態におけるプリントサーバ１０１は、さらにクライアントコンピュータ１０２、１０３、１０４から印刷要求が出された印字データを含む印刷ジョブを格納して印刷させたり、または、クライアントコンピュータ１０２、１０３、１０４から印字データを含まないジョブ情報のみ受け取り、クライアントコンピュータ１０２、１０３、１０４のプリンタへの印刷データを送出する印刷順序を管理し、印刷順序になったクライアントに対して印字データを含む印刷ジョブの送信許可を通知したり、ネットワークプリンタ１０５のステータスや印刷ジョブの各種情報を取得し、クライアントコンピュータ１０２、１０３、１０４に通知したりする機能を揃えている。
【００１８】
１０５は印刷制御装置であるネットワークプリンタであり、図示省略したネットワークインターフェイスを介してネットワーク１０６と接続されており、クライアントコンピュータやプリントサーバ１０１から送信される印字データを含む印刷ジョブを解析してドットイメージに変換して、１ページ毎に印刷する。１０６はネットワークであり、クライントコンピュータ１０２、１０３、１０４、サーバ１０１、ネットワークプリンタ１０５等を通信可能に接続している。
【００１９】
図２は、本発明の情報処理装置の構成を説明するブロック図であり、情報処理装置であるクライントコンピュータ１０２、１０３、１０４も同じ構成であり、さらにサーバ１０１も同様あるいは同等のハードウエア構成とする。よって、クライアントとサーバの構成を説明するブロック図として説明する。
【００２０】
図２において、２００は情報処理装置の制御手段であるＣＰＵであり、ハードディスク（ＨＤ）２０５に格納されているアプリケーションプログラム、プリンタドライバプログラム、ＯＳや本発明のネットワークプリンタ制御プログラム等を実行し、ＲＡＭ２０２にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
【００２１】
２０１は記憶手段であるＲＯＭであり、内部には、基本Ｉ／Ｏプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。２０２は一時記憶手段であるＲＡＭであり、ＣＰＵ２００の主メモリ、ワークエリア等として機能する。
【００２２】
２０３は記憶媒体読み込み手段としてのフロッピー（登録商標）ディスク（ＦＤ）ドライブであり、後述する図５に示すようにＦＤドライブ２０３を通じて記憶媒体としてのＦＤ２０４に記憶されたプログラム等を本コンピュータシステムにロードすることができる。なお、記憶媒体は、ＦＤに限らず、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＰＣカード、ＤＶＤ、ＩＣメモリカード、ＭＯ、メモリスティック等、任意である。
【００２３】
２０４は記憶媒体であるフロッピー（登録商標）ディスク（ＦＤ）であり、コンピュータが読み取り可能なプログラムが格納された記憶媒体である。
【００２４】
２０５は外部記憶手段の一つであり、大容量メモリとして機能するハードディスク（ＨＤ）であり、アプリケーションプログラム、プリンタドライバプログラム、ＯＳ、ネットワークプリンタ制御プログラム、関連プログラム等を格納している。さらにスプール手段であるスプーラはここに確保される。スプール手段は、クライアントではクライアントスプーラのことであり、プリントサーバではサーバスプーラのことである。また、プリントサーバでは、クライアントから受けたジョブ情報を格納し、順序制御を行うためのテーブルもこの外部記憶手段に生成されて格納される。
【００２５】
２０６は指示入力手段であるキーボードであり、ユーザがクライアントコンピュータに対して、また、オペレータや管理者がプリントサーバに対して、デバイスの制御コマンドの命令等を入力指示するものである。
【００２６】
２０７は表示手段であるディスプレイであり、キーボード２０６から入力したコマンドや、プリンタの状態等を表示したりするものである。
【００２７】
２０８はシステムバスであり、クライアントやプリントサーバであるコンピュータ内のデータの流れを司るものである。
【００２８】
２０９は入出力手段であるインターフェイスであり、該インターフェイス２０９を介して情報処理装置は外部装置とのデータのやり取りを行う。
【００２９】
図３は、図２に示したＲＡＭ２０２のメモリマップの一例を示す図であり、ＦＤ２０４からロードされる上記ネットワークプリンタ制御プログラムが、ＲＡＭ２０２にロードされ実行可能となった状態のメモリマップである。
【００３０】
本実施形態では、ＦＤ２０４からネットワークプリンタ制御プログラムおよび関連データを直接ＲＡＭ２０２にロードして実行させる例を示すが、これ以外にも、ＦＤ２０４からネットワークプリンタ制御プログラムを動作させる度に、既にネットワークプリンタ制御プログラムがインストールされているＨＤ２０５からＲＡＭ２０２にロードするようにしてもよい。
【００３１】
また、本ネットワークプリンタ制御プログラムを記憶する媒体は、ＦＤ以外にＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＰＣカード、ＤＶＤ、ＩＣメモリカード等、情報が記憶できる媒体であれば適用可能である。さらに、本ネットワークプリンタ制御プログラムをＲＯＭ２０１に記憶しておき、これをメモリマップの一部となすように構成し、直接ＣＰＵ２００で実行することも可能である。
【００３２】
また、以上の各装置と同等の機能を実現するソフトウェアをもって、ハードウェア装置の代替として構成することもできる。
【００３３】
また、本ネットワークプリンタ制御プログラムのことを、簡単に印刷制御プログラムと呼ぶこともある。印刷制御プログラムは、クライアントにおいて印刷ジョブの印刷先の変更を指示したり、印刷順序を変更する指示をするための制御を行うプログラムを含み、また、プリントサーバにおいて、印刷ジョブの順序制御を行ったり、印刷ジョブの印刷終了や印刷先変更要求などを通知するためのプログラムを含んでいる。また、このような制御を行う本発明の印刷制御プログラムは、クライアントにインストールされるモジュールと、プリントサーバにインストールされるモジュールを別々に分けてもよいし、ひとつの印刷制御プログラムが、実行される環境によりクライアント用として機能したり、またはプリントサーバ用として機能するようにしてもよい。あるいは一台のコンピュータに、クライアント用の機能を持つモジュールと、プリントサーバ用として機能するモジュールをともにインストールし、同時に、あるいは時分割で擬似的に平行動作させる構成も可能である。
【００３４】
３０１は基本Ｉ／Ｏプログラムであり、本制御装置の電源がＯＮされたときに、ＨＤ２０５からＯＳがＲＡＭ２０２に読み込まれ、ＯＳの動作を開始させるＩＰＬ（イニシャルプログラムローデイング）機能などを有しているプログラムが入っている領域である。
【００３５】
３０２はオペレーティングシステム（ＯＳ）であり、３０３はネットワークプリンタ制御プログラムで、ＲＡＭ２０２上に確保される領域に記憶される。３０４は関連データで、ＲＡＭ２０２上に確保される領域に記憶される。３０５はワークエリアで、ＣＰＵ２００が本プリンタ制御プログラムを実行する領域が確保されている。
【００３６】
図４は、図２に示したＦＤ２０４のメモリマップの一例を示す図である。
【００３７】
図４において、４００は前記ＦＤ２０４のデータ内容であり、４０１はデータの情報を示すボリューム情報であり、４０２はディレクトリ情報、４０３は本実施形態で説明する印刷制御プログラムであるネットワークプリンタ制御プログラム、４０４はその関連データである。４０３のネットワークプリンタ制御プログラムは、実施形態で説明するフローチャートに基づいてプログラム化したものであり、本実施例では、クライアント、サーバ共、同様の構成をとっている。
【００３８】
図５は、図２に示したＦＤドライブ２０３に対して挿入されるＦＤ２０４との関係を示す図であり、図２と同一のものには同一の符号を付してある。
【００３９】
図５において、ＦＤ２０４には、本実施形態で説明するネットワークプリンタ制御プログラムおよび関連データを格納している。
【００４０】
次に本実施の形態における、プリンタを複数台使用して、前述の分散、同報、代行といった印刷処理を行う、印刷ジョブ制御システムについて説明する。
【００４１】
なお、本実施の形態では、複数のプリンタを１台のプリンタとして仮想的に束ねるプリンタをグループプリンタ、束ねられるプリンタをメンバプリンタと呼ぶ。また、それに対応するプリンタドライバをそれぞれグループプリンタドライバ、メンバプリンタドライバと呼ぶ。
【００４２】
図６は本システムのクライアントサーバモデルにおいてＭｉｃｒｏｓｏｆｔＷｏｒｄ（登録商標）などの一般的なアプリケーションから発行された印刷ジョブが、印刷ジョブ制御システムにおいてどのように処理されるかを示した図である。図６において、６００はクライアントマシンで、印刷ジョブ制御システムのクライアントモジュールが動作するマシンを指す。
【００４３】
通常、印刷の指示がされるとアプリケーションプログラムは一連の描画命令を生成し、プリンタドライバを経てＷｉｎｄｏｗｓ（登録商標）Ｓｐｏｏｌｅｒに渡される。Ｗｉｎｄｏｗｓ（登録商標）Ｓｐｏｏｌｅｒは、ユーザが選択したポートモニタにプリントジョブデータを渡してプリンタデバイスに送信させる手順をとる。
【００４４】
本実施の形態では、ユーザはあらかじめ印刷ジョブ制御システム用のポートモニタ６２１（以降、本実施例ではジョブ制御ポートモニタと略記）を指定して印刷を指示する。アプリケーションプログラム６０１は一連の描画命令を生成する。描画命令を受け取ったグループプリンタドライバ６０３では、汎用印刷ファイルを生成し、プリンタデバイスへプリントジョブデータを送信するポートモニタではなく、ジョブ制御ポートモニタ６２１にプリントジョブデータとして送信する。ジョブ制御ポートモニタ６２１はプリントジョブデータをプリンタデバイス６５０に送信するのではなく、印刷ジョブ制御システム用プリントサービス６２２（以降、本実施例ではジョブ制御プリントサービスと略記）に送信する。ジョブ制御プリントサービス６２２は、プリントジョブデータに対して、後述するような印刷ジョブ制御処理を行う。
【００４５】
印刷ジョブ制御システム用プリントマネージャ６２３（以降、本実施例ではジョブ制御プリントマネージャと略記）は、ユーザがジョブ制御プリントサービス６２２内部でプリントジョブがどのような状態にあるかを調べたり、プリントジョブを操作したりするためのユーザインターフェイス（ＵＩ）を提供するプログラムである。
【００４６】
ジョブ制御プリントマネージャ６２３はジョブ制御プリントサービス６２２のソフトウェアのインターフェイス（ＡＰＩ）を介して、ジョブ制御プリントサービス６２２と情報・指示をやり取りしている。
【００４７】
印刷ジョブ制御システム用サーバ６３０（以降、本実施例ではジョブ制御サーバと略記）は、個々のクライアント６００上のジョブ制御プリントサービス６２２がプリンタデバイス６５０にプリントジョブデータを送信するタイミングを集中制御（スケジューリング）している。
【００４８】
印刷ジョブ制御システム用マネージメントコンソール６３３（以降、本実施例ではジョブ制御マネージメントコンソールと略記）は、ジョブ制御サーバ６３０が持つソフトウェアがアクセスするためのＡＰＩを介してジョブ制御サーバ６３０と情報・指示をやり取りすることで、印刷ジョブ制御システム全体を監視することができる。
【００４９】
また、ジョブ制御サーバ６３０はデバイス情報コントロールモジュール６３１を用いて各プリンタデバイス６５０と通信を行い、各プリンタ内の印刷ジョブや動作状態に関する情報を入手したり、操作を行ったりする。入手した情報はクライアント６００側のジョブ制御プリントサービス６２２に渡すことができる。
【００５０】
次に本実施の形態におけるグループプリンタドライバ６０３からの印刷について説明する。
【００５１】
グループプリンタドライバ６０３はアプリケーションプログラムが生成した一連の描画コマンドを、プリンタデバイスやＯＳ等の種類に依存しない中間フォーマットのファイルである汎用印刷ファイルに変換する。この汎用印刷ファイルの構成については後述する。
【００５２】
この汎用印刷ファイルは前述したようにＷｉｎｄｏｗｓ（登録商標）Ｓｐｏｏｌｅｒ６０４からジョブ制御ポートモニタ６２１を経て（ａ）、ジョブ制御プリントサービス６２２に導かれる（ｂ）。ジョブ制御プリントサービス６２２はこのプリントジョブに対して行うジョブ制御の種類に応じて、汎用印刷ファイルをもとに描画コマンドを生成し（ｃ）、続いてＰＤＬドライバ６０２がその描画コマンドをプリンタデバイス６５０が解釈可能なＰＤＬファイルにする。図６では、ジョブ制御プリントサービス６２２で、このプリントジョブに対してプリントジョブをふたつに分けるジョブ制御が行われる例で、２つのメンバジョブが生成された例を２つの矢印（ｃ）で示している。ＰＤＬドライバ６０２で生成されたＰＤＬファイルはＷｉｎｄｏｗｓ（登録商標）スプーラ６０４、ジョブ制御ポートモニタ６２１を経て（ｄ）、再びジョブ制御プリントサービス６２２に渡される（ｅ）。ジョブ制御プリントサービス６２２は、ジョブ制御サーバ６３０の指示に従ってＰＤＬのプリントジョブデータをプリンタデバイス６５０に送信する（ｆ）。
【００５３】
ジョブ制御プリントサービス６２２は、汎用印刷ファイル中の印刷指示書の指示にしたがって、一つの汎用印刷ファイルを複数のプリントジョブに論理的に分割してそれぞれ別のプリンタデバイスに送信したり、一度送信したプリントジョブデータを別のプリンタデバイスに送信し直したりする。尚、図Ａ中の（ｃ）（ｄ）（ｅ）（ｆ）はそのような場合のプリントジョブデータの経路を示している。
【００５４】
一方、汎用印刷ファイルをアプリケーションソフトウェアが作成し、そのアプリケーションソフトウェアが直接汎用印刷ファイルを印刷ジョブとして投入する場合、一般のアプリケーションとはグループプリンタドライバ６０３への情報の渡し方や、グループプリンタドライバ６０３での処理内容が異なる。前述のように、一般のアプリケーションの場合、アプリケーションはグループプリンタドライバ６０３に描画情報を渡す際、通常のプリンタドライバと同じようにＷｉｎｄｏｗｓ（登録商標）のＧＤＩ関数を呼び出し、グループプリンタドライバ６０３がそれに応じて汎用印刷ファイルを生成する。これに対して汎用印刷ファイルを直接作成するアプリケーションの場合は、アプリケーションが汎用印刷ファイルをすでに持ち、それをグループプリンタドライバ６０３に供給する。グループプリンタドライバ６０３は必要に応じてあらかじめ設定された印刷方法にもとづいて汎用印刷ファイル内部の印刷指示書を書き換えてＷｉｎｄｏｗｓ（登録商標）Ｓｐｏｏｌｅｒ６０４に送る。
【００５５】
図８は、汎用印刷ファイルの構成の一例を示した図である。
【００５６】
本実施の形態で使用される汎用印刷ファイルは、印刷指示部８−ａと、ドキュメントデータ部８−ｂからなる。印刷指示部は、ドキュメントの情報と印刷指示を記述した部分である。また、ドキュメントデータは、アプリケーションのドキュメントのデータをＰＤＦ（Ａｄｏｂｅｓｙｓｔｅｍｓ（登録商標））などの汎用的な形式のデータに変換したものであり、プリンタ言語に依存しないデータフォーマットとなっている。
【００５７】
印刷指示部はヘッダ部、ページ情報部、印刷体裁指示部、出力方法指定部、グループプリンタドライバ設定情報部、メンバプリンタ数、メンバプリンタドライバ名、メンバプリンタドライバ設定情報部などから構成されている。
【００５８】
ヘッダ部は本ファイルのバージョン識別やファイル情報などの情報を格納する部分である。
【００５９】
ページ情報部は、ドキュメントデータ部８−ｂのドキュメントデータのページ数、各ページのサイズなどの情報を格納する部分である。
【００６０】
印刷体裁指示部は、印刷ページ範囲、印刷部数、ドキュメントデータの面付け情報（Ｎ−ＵＰや製本印刷など）、ステイプル指示やパンチ指示など、出力体裁に関する情報を格納する部分である。
【００６１】
出力方法指定部は、出力方法として、分散印刷、カラーモノクロ分散印刷、代行印刷、同報印刷などの情報を格納する部分である。
【００６２】
グループプリンタドライバ設定情報部は、後述するグループプリンタドライバのＵＩの設定情報を格納する部分である。
【００６３】
メンバプリンタ数はグループプリンタドライバが関連付けているメンバプリンタの数を格納する部分である。
【００６４】
メンバプリンタドライバ名は、メンバプリンタのプリンタドライバ名を格納する部分である。
【００６５】
メンバプリンタドライバ設定情報部はメンバプリンタのドライバＵＩの設定情報として例えばＤＥＶＭＯＤＥ情報を格納する部分である。
【００６６】
このメンバプリンタドライバ名とメンバプリンタドライバ設定情報部は、前述のメンバプリンタ数に格納された数だけの格納エリアを持っている。
【００６７】
前述の図６で説明したグループプリンタドライバ６０３では、汎用印刷ファイルを生成する際、グループプリンタドライバＧＵＩ上の設定を印刷指示部８−ｂヨ記録する。さらに、グループプリンタドライバ６０３はＧＤＩで受け取ったデータを汎用的なデータに変換しドキュメントデータとして、本汎用印刷ファイルのドキュメントデータ部に記録することとなる。
【００６８】
なお、本ファイルは、印刷指示部８−ａとドキュメントデータ部８−ｂが異なるファイルであってもかまわない。その場合、印刷指示部は印刷指示書ファイルとして、ドキュメントデータ部はドキュメントデータファイルとしてそれぞれ存在し、これらを一つのアーカイブ形式でまとめて同様に一つのファイルのように扱うこともが可能である。
【００６９】
次に図７でＷｉｎｄｏｗｓ（登録商標）が提供するＰｒｉｎｔＳｙｓｔｅｍと印刷ジョブ制御システムにおける印刷ジョブの関係と処理概要をさらに詳しく述べる。
【００７０】
図７中で印刷ジョブ制御システム７００は、サーバとクライアントの制御プログラムが動作する物理的なマシンをまたいだ、印刷ジョブ制御システムの範囲を示している。また、サーバが管理している出力ポート（ＯｕｔｐｕｔＰｏｒｔ）７１１は、クライアントのジョブ制御プリントサービス６２２のプロキシ出力ポート（ＰｒｏｘｙＯｕｔｐｕｔＰｏｒｔ）７１２と関連付けられ、ひとつのポートに関連づけられた各クライアント上のプロキシ出力ポート全てを統一的に管理している。本実施例では、実際のプリントジョブデータはおのおののクライアントのプロキシ出力ポート７１２に保持される。ジョブ制御サーバ６３０は、プリントジョブデータ自体の送信処理は行わず、ジョブ制御プリントサービス６２２に対して印刷ジョブの送信指示のみを行う。その指示に応じてクライアントのジョブ制御プリントサービス６２２はプリントジョブデータをデバイス６５０に送信する。
【００７１】
次に、印刷ジョブ制御システム７００が、代行印刷、分散印刷、同報印刷などの付加価値的な印刷を行う場合の処理を説明する。
【００７２】
印刷ジョブ制御システム７００が、代行印刷、分散印刷、同報印刷などの付加価値的な印刷を行う場合には、前述のようにユーザまたはアプリケーション６０１はグループプリンタドライバ６０３が割り当てられたプリンタに印刷ジョブを発行しなければならない。ジョブ制御プリントサービス６２２は、グループプリンタドライバ６０３によって処理されたジョブデータをジョブ制御ポートモニタ６２１を介して汎用印刷ファイルとして受け取る。ジョブ制御プリントサービス６２２はこのジョブを受け取り、Ｄｅｓｐｏｏｌｅｒ７０１を介してＰＤＬドライバが割り当てられた別のプリンタにジョブ（メンバジョブ）を発行して印刷を行わせる。この時、Ｄｅｓｐｏｏｌｅｒ７０１は前述の図８で説明した汎用印刷ファイルの印刷指示部８−ａを解釈し、ドキュメントデータ部８−ｂのドキュャ塔ｇデータを加工して、Ｗｉｎｄｏｗｓ（登録商標）のＧＤＩに変換し、各プリンタドライバに対して印刷指示を行い印刷ジョブを発行する。例えば印刷体裁指定部に、２−ＵＰの指示が記録されていた場合、用紙１枚に２ページ分のドキュメントデータを縮小レイアウトする。また分散印刷あるいは同報印刷の場合には、それらの設定に応じて印刷指示部８−ａに記述されている複数のメンバプリンタにジョブを発行する。代行印刷の場合は、代行する条件が満たされた時に、自動代行では事前の設定、手動代行ではユーザの操作に応じてメンバジョブを発行する。
【００７３】
また、Ｄｅｓｐｏｏｌｅｒ７０１は各メンバプリンタにジョブを発行する際、メンバプリンタドライバに対応する印刷指示として、各メンバプリンタのＤＥＶＭＯＤＥを作成する必要があるが、このＤＥＶＭＯＤＥは印刷指示部８−ａに記載された内容を適宜各メンバプリンタのＤＥＶＭＯＤＥに反映させて生成する。
【００７４】
クライアント側のジョブ制御プリントサービス６２２は、ＰＤＬドライバ６０２によってレンダリングされた、それぞれのメンバジョブのＰＤＬデータをジョブ制御ポートモニタ６２１を介して受け取り、受け取ったジョブに関する情報をサーバ側に知らせ、ジョブデータは自身のプロキシ出力キュー（ＰｒｏｘｙＯｕｔｐｕｔＰｏｒｔ）７１２で一時保持する。その後、ジョブ制御サーバ６３０からの送信指示を受けた後にプリントデバイス６５０に送信する。
【００７５】
図９は、本発明のグループプリンタドライバのＵＩ制御フローを示すフローチャートである。尚、図９のフローチャートの各ステップの処理は上に説明した情報処理装置に設けられたＣＰＵ（中央演算処理装置）が、ＲＯＭ、ＦＤ、ハードディスク（ＨＤ）等の所定の記憶媒体に記憶された制御プログラムを読込み、該読込んだプログラムに基づく処理を実行することに応じて実現されるものとする。
【００７６】
以下、複数のメンバプリンタにより構成される仮想プリンタに関わる仕組みにおいて、複数のメンバプリンタの夫々の機能に基づくコンフリクト処理を行うコンフリクト手段によるコンフリクト結果を、仮想プリンタの設定画面に反映させる表示制御を行うにあたって、メンバプリンタの構成を調べ表示制御手段が調査手段による調査に基づきコンフリクト処理の進捗状況を可視化させるよう制御する仕組みについて説明を行う。
【００７７】
まず、アプリケーションからＯＳを介してグループプリンタドライバへのＵＩ表示要求が来ると、処理はステップ９−１へ進む。
【００７８】
ステップ９−２では、印刷ジョブ制御システムＡＰＩを使って、グループプリンタを構成するメンバプリンタの数を取得する。一般的にクライアントＰＣには複数種類のグループプリンタ（仮想プリンタ）が備えられており、各々のグループプリンタ毎にメンバプリンタの構成が異なる可能性がある。ステップ９−２では、現在選択されているグループプリンタに対応するメンバプリンタの構成情報として数が調べられる。
【００７９】
またステップ９−２の処理には、グループプリンタを構成するメンバプリンタドライバの識別ＩＤ問い合わせる処理も含まれており、この取得された各メンバプリンタドライバの識別ＩＤを用いて、ＩＤの数から構成台数を算出するようにしても良い。このステップ９−２で取得されたメンバプリンタドライバの識別ＩＳは後述する図１１において利用される。
【００８０】
ステップ９−３は、前記ステップで求めた構成台数と、あらかじめ進捗状況確認ＵＩ表示判定台数としてプログラムに登録された台数との比較を行うステップである。ここで、グループプリンタ構成台数が進捗状況確認ＵＩ表示判定登録台数と同じ、もしくは多ければステップ９−４へ進み、それ以外であればステップ９−５へ進む。ここで、メンバプリンタの構成は所定の仮想プリンタ毎に特有のものであり、ユーザ操作などによりメンバプリンタを削除／変更／追加できたりする。図９のフローチャートはそのようなダイナミックに変更しうるメンバプリンタ構成に適応した進捗状況確認ＵＩ表示制御を行うものとなっている。
【００８１】
ステップ９−６では、ステップ９−４或いはステップ９−５で実行した、複数のメンバプリンタの夫々の機能に基づくコンフリクト処理の結果を、グループプリンタドライバの設定画面（仮想プリンタの印刷設定画面）に反映させる表示制御手段。
【００８２】
図１０は、ステップ９−４の詳細な処理を示した図であり、コンフリクト処理と進捗状況確認ＵＩを表示を行うステップである。
【００８３】
なお、進捗状況確認ＵＩは、グループプリンタドライバＵＩ表示を行うための前処理の進捗状況を可視的に確認可能なＵＩ表示を指す。また、その表示形式はアナログなプログレスバーといった物理量（長さ）として表示しても、デジタルな数値データとしてパーセント表示といった形で表示しても良いことは云うまでも無い。以下では進捗状況確認ＵＩにプログレスバーを適用した形態について説明を行う。
【００８４】
ステップ１０−１では、メンバプリンタの構成（登録台数）の確認を行うステップであり、上に説明したステップ９−２で得たメンバプリンタ台数をカウンタ変数（以後ＣＯＵＮＴＥＲ）にセットするステップである。
【００８５】
ステップ１０−２は、進捗状況確認ＵＩの表示ステップ幅を算出するステップである。表示ステップ幅とは、コンフリクトの処理が進行するにともなって、プログレスバーの幅をどれだけ増加させて更新するかというものに相当する。
【００８６】
本特許では、グループプリンタドライバＵＩ表示の前処理として負荷の大きい機能のコンフリクト処理に着目し、
全てのメンバプリンタに対しするコンフリクト処理が終わった状態を進捗状況確認ＵＩ上でのプログレスバーの長さを１００とすると、メンバプリンタ１台に対するコンフリクト処理が終了する毎に更新される表示ステップ幅（更新幅）は表示ステップ幅＝１００／メンバプリン登録台数
として算出される。上に述べた１００に相当するプログレスバーの長さとは、実際には表示手段における１００画素分の長さであったりする。
【００８７】
ステップ１０−３は、ステップ１０−１でセットしたＣＯＵＮＴＥＲが０かどうか判断するステップであり、ゼロであると判断された場合にはステップ９−６の処理へ移行し、それ以外であればステップ１０−４へ進む。
【００８８】
ステップ１０−４は、メンバプリンタの能力を取得するステップであり、ステップ９−２で得た、各メンバプリンタの識別ＩＤに基づき特定されるメンバプリンタの能力を読み出すステップである。この際に、機能制御不可なメンバプリンタからは共通設定項目のみの取得及び読み出しが行われ、機能制御可能なメンバプリンタに対しては、共通設定項目及び拡張設定項目の取得及び読み出しが行われる。
【００８９】
ステップ１０−５は機能ではステップ１０−４で取得された各メンバプリンタをどのようにしてグループプリンタドライバＵＩに反映させるかの整合性を計算する処理が行われる。この整合性を取るステップ１０−５の処理の詳細を図１１を用いて説明する。
【００９０】
尚、本発明におていは、夫々のメンバプリンタについて行われるステップ１０−１乃至１０−９の一連の処理をコンフリクト処理とする。尚、実際にはステップＳ１０−４の処理時間がもっとも長く、実質的にステップ１０−７及び１０−８における進捗状況確認ＵＩの更新はステップ１０−４の処理が終了したタイミングに応じたものとなる。
【００９１】
図１１のステップ１１−１では、ステップ９−２で取得したメンバプリドライバに対して機能の収得がドライバ設定情報の拡張領域の部分まで可能な、“機能制御可能なドライバ”か、または、それ以外の“機能制御不可なドライバ”かを判断するステップであり“機能制御可能なドライバ”の場合ステップ１１−２進みへ、それ以外の場合にはステップ１１−３へ進む。
【００９２】
ここで、機能制御可能なドライバでは共通設定項目と拡張設定項目との機能が調査され、機能制御不可なドライバでは共通設定項目のみが調査される。
【００９３】
図１５は、共通設定項目・拡張設定項目と各設定項目との対応を示す。なお、本特許では共通設定項目は、前記、共通設定領域に存在する項目、拡張設定項目は、前記、拡張設定領域に存在する項目として分類し規定しているが、印刷ジョブ制御システムを運用するＯＳの違いによっては、設定項目の分類が異なる場合や設定可能項目に変更がある場合があるが、本特許のＵＩ制御フローが有効なのはいうまでもない。
【００９４】
図１５について更に詳しく説明すると、共通設定項目に規定される各機能の項目は複数のメンバプリンタドライバの夫々の相違に係らず、印刷制御プログラムがＯＳを介して問い合わせることが可能な項目に相当する。一方、拡張設定項目に対応する各機能の項目は、共通設定項目のように印刷制御プログラムがＯＳを介して問い合わせることが必ずしも保証されているとは限らない。該拡張設定項目は夫々のプリンタドライバの提供元が独自に問合せの仕組みを規定しているようなものに相当する。グループプリンタドライバにしれみれば、拡張設定項目の問い合わせが利用できないようなプリンタドライバのことを“機能制御不可なドライバ”呼ぶこともある。
【００９５】
次に、機能のコンフリクト処理について具体的に説明すると、機能のコンフリクト処理とは、グループプリンタの対象となる各メンバプリンタドライバの夫々からドライバ識別情報や共通設定領域及び拡張設定領域に規定されている各機能の情報の取得や、メンバプリンタドライバから取得された各設定項目の機能の“あり”・“なし”をチェックし、対象となるメンバプリンタドライバ全てに機能がある場合にグループプリンタドライバＵＩでその機能を設定可能項目として扱い、また、１台でも、機能がないものがあればその項目については、設定不可項目として扱うようにする。
【００９６】
図１６の（ａ）中のプリンタドライバＡは、グループプリンタドライバを表しプリンタドライバ、Ｂ，Ｃ，Ｄはグループプリンタドライバを構成するメンバプリンタドライバを表し、表中の、“あり”、“なし”は各メンバプリンタドライバが製本印刷機能、ステイプル印刷機能、パンチ機能をサポートしているかどうかを示したものである。
【００９７】
ここで製本印刷機能に着目すると、ドライバＡ、Ｂは製本印刷機能があるが、ドライバＣにはその機能がないため、グループプリンタドライバＡの製本印刷機能は“なし”となる。
【００９８】
同様に、ステイプル機能は、Ｂ，Ｃ，Ｄ全てのメンバプリンタドライバに機能があるため、グループプリンタドライバＡのステイプルは、“あり”となり、パンチ機能は、Ｂ，Ｃ，Ｄ全てのメンバプリンタドライバに機能がないため、グループプリンタドライバＡのパンチ機能は、“なし”となる。
【００９９】
図１６の（ａ）は、特に共通設定項目と拡張設定項目とを区別無く説明してきたが、実際には、メンバプリンタドライバの構成に機能制御不可なものが含まれる場合には、コンフリクト処理（図１０のフローチャート）の対象となる設定項目を共通設定項目のみにし、機能制御可能なドライバのみからメンバプリンタが構成されている場合にはコンフリクト処理の対象となる設定項目を共通設定項目と拡張設定項目にするような処理が行われる。そのメンバプリンタ種別構成とコンフリクト処理の対象とする項目との関係を示す図を図１６の（ｂ）に示す。また、メンバプリンタ種別構成とコンフリクト処理の対象とする項目との関係を図１６の（ｃ）のようにしても良い。
【０１００】
図１６の（ａ）においては、図１５中の拡張設定項目について論理和の計算を行っている様子を示しており、図１６の（ｂ）のメンバプリンタの構成が「機能制御可能なドライバのみ」や、図１６の（ｃ）の「１台でも機能制御可能なものを含む場合」に行われるコンフリクト処理を示すものとなっている。
【０１０１】
図１０の説明に戻ると、ステップ１０−６は、ステップ１０−１で設定したカウンタ変数を判定するステップであり、カウンタが１でなかった場合には、ステップ１０−７へ進みステップ１０−２で算出した、表示ステップ幅にしたがい処理の進行状況を進めるステップである。また、ステップ１０−８はカウンタが１であった場合には、ステップ１０−８へ進み処理の進行状況を完了まで進めるステップである。
【０１０２】
これは、
表示ステップ幅ｘメンバプリンタ登録台数
で処理を表示した場合、メンバプリンタの台数によっては表示ステップ幅の演算で端数が発生し最終的に、処理が完了のステップまで進まない事があるための処理である。
【０１０３】
ステップ１０−９は、ステップ１０−１で設定したカウンタ変数を１減算するステップである。そして、ステップ１０−３に処理を戻し、上述したようなコンフリクト処理（論理和計算）結果と、次のメンバプリンタの機能とのコンフリクト処理を再度行い、全てのメンバプリンタについてコンフリクト処理が終わるまでステップ１０−４〜１０−９の処理を繰り返す。
【０１０４】
以上のステップを経て、ステップ１０−３へ戻った際にカウンタ変数が０となった場合、ドライバのコンフリクト情報の獲得及び、進捗状況確認ＵＩの表示を完了したものとしてステップ９−６へ進む。図１０のフローチャートに従い表示される進捗状況確認ＵＩの表示様子を図１８に示す。
【０１０５】
なお、ステップ９−３でグループプリンタ構成台数が進捗状況確認ＵＩ表示判定台数より少ない場合にはステップ９−５へ進む。ステップ９−５は、メンバプリンタ登録台数が少なくＵＩ表示が瞬時に行われるため進捗状況確認ＵＩを表示せずにコンフリクトを取るステップである。メンバプリンタの構成数が少ない場合には多い場合に比べてグループプリンタの印刷設定画面を提示するのに時間をさほど要さないために進捗状況確認ＵＩの表示を省略するというものであるが、ステップ９−４の処理と同様の処理を行い進捗状況確認ＵＩ（図１８）を表示するようにしても良い。
【０１０６】
図１２は、その詳細であり、ステップ１２−１〜５の各ステップの処理は、前記、図１０の次のステップに対応した処理となる。ステップ１２−１はステップ１０−１、ステップ１２−２はステップ１０−３、ステップ１２−３はステップ１０−４、ステップ１２−４はステップ１０−５、ステップ１２−５はステップ１０−９にそれぞれ対応するため処理の詳細についてここでは述べない。
【０１０７】
ここで、ステップ１２−２でカウンタ変数が０となった場合、ドライバのコンフリクト情報の獲得を完了したものとしてステップ９−６へ進む。
【０１０８】
ステップ９−６は、ステップ１０−５で取得したコンフリクト情報を元にドライバＵＩを表示するステップある。前記コンフリクトの結果、機能のないものについては、ＵＩ上で設定が行えないよう、項目をグレーアウト表示、もしくは非表示といったＵＩ制御を行い、機能がある項目についてはＵＩ制御を行わない。
【０１０９】
図１７の（ａ）、（ｂ）にＵＩのグレーアウト制御、非表示制御の具体例を示す。設定項目の両面印刷、製本印刷のダイアログボックスが前記ＵＩ制御を施した部分である。また、本ステップでは、ユーザの指定により、たとえば「製本印刷」が指定された時のパンチや、ステイプルの指定といった、機能上ありえない組み合わせが設定できないようＵＩ制御を行い設定項目に矛盾が発生しないようＵＩ表示する。
【０１１０】
以上の説明してきたように、各々のプリンタの機能を十分に生かすべく各々のプリンタの機能の取得の処理などを想定し、単に仮想ドライバのダイアログ画面を表示させるという仕組ではなく、グループプリンタドライバのメンバプリンタドライバの構成に従った進捗状況確認ＵＩを表示させるようにしたので、仮想ドライバのダイアログ画面の生成に数秒から数十秒要する場合に、ユーザに不安を与えてしまうということを防止でき、ユーザは印刷処理装置（パーソナルコンピュータ等）がフリーズしたと勘違いし、印刷処理装置を再起動させてしまうようなことを防ぐことができるようになった。
【０１１１】
また、従来からコンピュータへのアプリケーションのインストール処理の際にインストール処理の進捗状況をプログレスバーによってユーザに知らしめるような技術が知られているが、このアプリケーションのインストール処理は予め処理量が決定されており、それに伴う進捗状況を知らしめる技術では、仮想プリンタ毎やユーザ毎に異なるメンバプリンタ構成に基づく進捗状況の提示を的確に行うことができないという問題があった。本発明によればメンバプリンタドライバの構成に基づく進捗状況確認ＵＩの更新を行うようにしたので、ユーザに的確に仮想プリンタの設定画面の提示に伴うコンフリクト処理の進捗状況を知らしめることができるようになった。
【０１１２】
よって、グループプリンタドライバＵＩ表示する際にメンバプリンタ台数が多い場合には前処理に時間がかかりユーザに不安感を与えたが、進捗状況をＵＩ表示する事でにより、内部の処理進行状況がつかめる事で、ユーザに安心感を与えシステムに対する信頼性の向上が可能となり、また体感的なＵＩ表示までの待ち時間の短縮といった効果も期待できるようになった。
【０１１３】
〔第２の実施の形態〕
第２の実施の形態においては、第１の実施の形態において説明した図９のフローチャートを更に発展させた例を説明する。尚、第２の実施の形態のおけるシステム構成も、第１の実施の形態において説明した図１〜８における仕組みと同様とするので、ここでの詳細な説明は省略する。
【０１１４】
図１３は、図９のフローに対してステップ１３−２のプリンタ登録台数の確認方法に対してメンバプリンタの種類によりメンバ台数のカウント方法に対して重み付け（重み付けメンバ台数）を行うステップを追加し、さらにステップ１３−３で前記ステップ１３−２で得た重み付けメンバ台数と進捗状況確認ＵＩ表示設定のＯＮ／ＯＦＦにより進捗状況確認ＵＩの表示／非表示の判定を付加したグループプリンタドライバのＵＩ制御フローを示すフローチャートである。
【０１１５】
ステップ１３−０においてアプリケーションからグループプリンタドライバへのＵＩ表示要求が来ると、処理はステップ１３−１へ進む。
【０１１６】
ステップ１３−１では、まず、印刷ジョブ制御システムＡＰＩを使って、グループプリンタドライバを構成するメンバプリンタドライバの識別ＩＤの問い合わせが行われる。グループプリンタを構成する全てのメンバプリンタドライバの識別ＩＤを獲得し、ＩＤの数から構成台数を算出するステップであるまた、図９のステップ９−２において説明したように、グループプリンタドライバがＡＰＩを用いてメンバプリンタの数を取得する。
【０１１７】
ステップ１３−２は重み付けメンバプリンタ台数のカウントを行うステップであり図１４はその詳細である。
【０１１８】
ここで、図１４の説明を行う。ステップ１４−０は、ステップ１３−１で得たメンバプリンタ登録台数をカウンタ変数（以後ＣＯＵＮＴＥＲ）にセットするステップである。ステップ１４−１は、ステップ１４−０でセットしたＣＯＵＮＴＥＲが０かどうか判断するステップであり、ゼロであった場合処理を終了しステップ１３−３へ進み、それ以外であればステップ１４−２へ進む。
【０１１９】
ステップ１４−２は、ステップ１３−１で取得したメンバプリドライバに対して機能の収得がドライバ設定情報の拡張領域の部分まで可能な、“機能制御可能なドライバ”か、または、それ以外の“機能制御不可なドライバ”かを判断するステップであり“機能制御可能なドライバ”の場合ステップ１４−３へ進みそれ以外の場合にはステップ１４−４へ進む。ここでの判別は、各メンバプリンタに対して行われるものであり、上に説明したステップ１３−１において取得された各メンバプリンタに対応するメンバプリンタドライバの識別ＩＤに基づき行われる。このメンバプリンタドライバの識別ＩＤには例えばプリンタドライバ名などが採用され、グループプリンタドライバは機能制御可能なメンバプリンタドライバの識別ＩＤを記録したテーブルを参照可能な状態で保持しており、このテーブルに記録されていないメンバプリンタドライバ識別ＩＤは”機能制御不可なドライバ”と見なす。
【０１２０】
ステップ１４−３、１４−４は、重み付けメンバ台数のカウントを行うステップであり、ステップ１４−３は機能制御可能なドライバに対する台数カウントを行うステップに相当する。当該ドライバはコンフリクト対象項目が基本設定項目および拡張設定項目と多項目となるため、台数カウントを“１”とカウントする。また、ステップ１４−４は機能制御不可なドライバに対する台数カウントを行うステップであり、コンフリクト項目が基本設定項目のみであるため、台数カウントを０．５としてカウントする。
【０１２１】
なお、ステップＳ１４−４においてのカウント値を０．５として説明してきたが、これに限定されるものではなく、ステップ１４−３においてカウントされるカウント値よりも小さな値であれば良い。例えば、機能制御可能なドライバのカウントを１とし、機能制御不可能なドライバのカウントを機能制御可能ドライバのコンフリクト項目数に対する機能制御不可能なドライバの項目数の割合として、（基本設定項目数）／（基本設定項目数＋拡張設定項目数）を算出し、それを台数のカウントとしても採用するような形態でも良い。そして、ステップ１４−３や１４−４で算出されたカウント値はステップ１４−２〜１４−５の処理が繰り返されるたび累積され、累積されたカウンタ累積値はステップ１３−３で参照されるメンバプリンタ数（台数）として利用される。
【０１２２】
ステップ１４−５は、ステップ１４−０で設定したカウンタ変数を１減算するステップである。
【０１２３】
以上のステップを経て、ステップ１４−１へ戻った際にカウンタ変数が０となった場合、重み付けメンバ台数のカウントが終わったものとしてステップ１３−３へ進む。
【０１２４】
ステップ１３−３は、進捗状況確認ＵＩ表示を行うかどうか判定するステップであり、判定条件としては、進捗状況確認ＵＩ表示判定台数とステップ１３−２で求めた重み付きメンバ台数の大小による判定、および、進捗確認状況ＵＩ表示設定のＯＮ／ＯＦＦがある。ただし、インストール直後といった状況でグループプリンタドライバＵＩで前記判定条件の設定を行っていない場合プログラムには、あらかじめ定義されている進捗状況確認ＵＩ表示判定台数、および進捗確認状況ＵＩ設定のＯＮ／ＯＦＦに基づきＵＩ表示を制御する。
【０１２５】
ここで、進捗確認状況ＵＩ表示の表示設定がＯＮで、かつ、前記１３−２のステップで求めた重み付け構成台数と、進捗状況確認ＵＩ表示判定台数との比較を行い台数が同じ、もしくは多ければステップ１３−４へ進み、それ以外であればステップ１３−５へ進む。図１３−４の処理の詳細は上に説明した図１０及び図１１に基づく処理と同様なので説明は省略する。
【０１２６】
一方、ステップ１３−３でグループプリンタ構成台数が進捗状況確認ＵＩ表示判定登録台数より少ない場合にはステップ１３−５へ進む。ステップ１３−５の詳細な処理は図１２のフローチャートにおける処理と同様のものとなり、ステップ１２−２でカウンタ変数が０となった場合、ドライバのコンフリクト情報の獲得を完了したものとしてステップ１３−６へ進む。
【０１２７】
ステップ１３−６は、グループプリンタドライバＵＩを表示するステップである。このステップ１３−６では、先に説明したフローチャートに基づく複数のメンバプリンタドライバの機能の論理和を計算した結果、機能のないものについてはグループプリンタドライバＵＩ上で設定が行えないように設定入力欄をグレーアウト表示或いは非表示するようにＵＩ制御を行い、機能がある項目については設定入力欄をアクティブにするようＵＩ制御が行われる。
【０１２８】
また、このグループプリンタドライバＵＩの表示制御には、ユーザの指定により、例えば製本印刷」が指定された時にパンチ設定やステイプル設定が指定できるような、機能上ありえない組み合わせの設定できないよう設定項目の入力欄についてＵＩ制御が行われる。
【０１２９】
ＵＩ制御結果の例を、図１７の（ａ）、（ｂ）に示す。図１７の（ａ）は上述したコンフリクト処理の結果、設定項目をグレーアウト表示した例を示す。図１７の（ｂ）は上述したコンフリクト処理の結果、設定項目を非表示した例を示す。
【０１３０】
尚、上の説明においては進捗状況確認ＵＩ表示を自動的に表示させるように説明してきたが、ステップ１３−３の進捗確認状況ＵＩ表示に関する条件として、表示を行う進捗状況確認ＵＩ表示判定台数の設定や、進捗確認状況ＵＩ表示のＯＮ／ＯＦＦ設定の設定をグループプリンタドライバＵＩを介して行えるようにしても良い。そして、このグループプリンタドライバＵＩ介して行われた設定はクライアントＰＣのハードディスク（ＨＤ）などの不揮発性記憶エリアに保存され、次回グループプリンタドライバＵＩを表示する際に使用される。この進捗確認状況ＵＩ表示のＯＮ／ＯＦＦ設定を設けるようにすることは第１の実施の形態についても同様に適用可能であることは言うまでもない。
【０１３１】
進捗状況確認ＵＩ表示のＯＮ／ＯＦＦを設定可能とすることで確認ＵＩ表示の不必要な環境では、ＵＩ表示を行わないといった設定を可能とし、また、メンバプリンタ台数のカウントに対してメンバプリンタの種類により重み付けしてカウントすることで、進捗状況確認ＵＩ表示の表示条件に対する精度を向上させることで不必要なＵＩ表示の表示頻度を低下させる事が可能となる事から、操作性の大幅な向上が実現可能となる。
【０１３２】
以上のステップにより、進捗状況確認ＵＩ表示のＯＮ／ＯＦＦを設定可能とすることで確認ＵＩ表示の不必要な環境では、ＵＩ表示を行わないといった設定を可能とし、また、メンバプリンタ台数のカウントに対してメンバプリンタの種類（機能制御化或いは機能制御不可）により重み付けしてカウントすることで、進捗状況確認ＵＩ表示の表示条件に対する精度を向上させることで不必要なＵＩ表示の表示頻度を低下させる事が可能となる事から、操作性の大幅な向上が可能である。
【０１３３】
【発明の効果】
各々のプリンタの機能を十分に生かすべく各々のプリンタの機能の取得の処理などを想定し、単に仮想ドライバのダイアログ画面を表示させるという仕組ではなく、グループプリンタドライバのメンバプリンタドライバの構成に従った進捗状況確認ＵＩを表示させるようにしたので、例えば仮想ドライバのダイアログ画面の生成に数秒から数十秒要する場合に、ユーザに不安を与えてしまうということを防止でき、ユーザは印刷処理装置（パーソナルコンピュータ等）がフリーズしたと勘違いし、印刷処理装置を再起動させてしまうようなことを防ぐことができるようになった。
【図面の簡単な説明】
【図１】本発明を適用可能な情報処理システムの構成を説明するブロック図。
【図２】本発明の情報処理装置の構成を説明するブロック図。
【図３】図２に示したＲＡＭ２０２のメモリマップの一例。
【図４】図２に示したＦＤ２０４のメモリマップの一例。
【図５】図２に示したＦＤドライブ２０３に対して挿入されるＦＤ２０４との関係を示す図。
【図６】本発明の情報処理装置のプリント制御モジュール構成を説明するブロック図。
【図７】プリントサーバで管理されるジョブ情報のデータ構造の一例。
【図８】汎用印刷ファイルの構造例を示す図。
【図９】グループメンバプリンタドライバＵＩ表示基本フローチャート。
【図１０】コンフリクト処理及び進捗状況確認ＵＩ表示処理フローチャート。
【図１１】グループメンバプリンタドライバコンフリクト判定フローチャート。
【図１２】進捗状況確認ＵＩ非表示グループメンバプリンタドライバコンフリクト処理フローチャート。
【図１３】グループメンバプリンタドライバＵＩ表示基本フローチャート。
【図１４】重み付け登録台数カウント処理のフローチャート。
【図１５】共通設定項目・拡張設定項目と各設定項目との対応を示す図。
【図１６】コンフリクト処理の内容を説明するための図。
【図１７】コンフリクト処理結果を反映させたグループプリンタドライバＵＩの表示例。
【図１８】進捗状況確認ＵＩの表示例。
【図１】
2005010919.tif 000003
【図２】
2005010919.tif 000004
【図３】
2005010919.tif 000005
【図４】
2005010919.tif 000006
【図５】
2005010919.tif 000007
【図６】
2005010919.tif 000008
【図７】
2005010919.tif 000009
【図８】
2005010919.tif 000010
【図９】
2005010919.tif 000011
【図１０】
2005010919.tif 000012
【図１１】
2005010919.tif 000013
【図１２】
2005010919.tif 000014
【図１３】
2005010919.tif 000015
【図１４】
2005010919.tif 000016
【図１５】
2005010919.tif 000017
【図１６】
2005010919.tif 000018
【図１７】
2005010919.tif 000019
【図１８】
2005010919.tif 000020