(57)【要約】【課題】複数の物理プリンタから構成される仮想プリンタを利用して印刷を行う環境において、効率よくクライアントに仮想プリンタと物理プリンタをインストール可能とする。【解決手段】複数の物理プリンタの各々に対応するセットアップ用データを格納するサーバとこのサーバを介して物理プリンタを利用可能なクライアントを含む印刷システムにおいて、まずサーバにおいて、複数の物理プリンタより選択された物理プリンタを含んで構成される仮想プリンタが登録される（Ｓ９−４〜Ｓ９−６）。そして、クライアントにおいて、サーバに登録された仮想プリンタの一つが指定されると（Ｓ１０−５、Ｓ１０−６）、指定された仮想プリンタがクライアントよりサーバに通知される。この指定された仮想プリンタの通知を受けて、指定された仮想プリンタとこの仮想プリンタに含まれる物理プリンタのためのセットアップ用データがサーバより当該クライアントに送信される（Ｓ１０−８〜Ｓ１０−１２）。【選択図】  図１０
2004240589.tif 000002
【特許請求の範囲】
【請求項１】
複数の物理プリンタの各々に対応するセットアップ用データを格納するサーバと該サーバを介して物理プリンタを利用可能なクライアントを含む印刷システムの制御方法であって、
前記サーバにおいて、前記複数の物理プリンタより選択された物理プリンタを含んで構成される仮想プリンタを登録する登録工程と、
前記クライアントにおいて、前記登録工程において登録された仮想プリンタを指定する指定工程と、
前記指定工程で指定された仮想プリンタを前記クライアントより前記サーバに通知する通知工程と、
前記通知工程による前記指定された仮想プリンタの通知を受けて、該指定された仮想プリンタと該仮想プリンタに含まれる物理プリンタのためのセットアップ用データを前記サーバより前記クライアントに送信する送信工程と
を備えることを特徴とする印刷システムの制御方法。
【請求項２】
前記クライアントにおいて、前記送信工程で送信されたセットアップ用データに基づいて、前記仮想プリンタの設定用インターフェースを提供する提供工程を更に備えることを特徴とする請求項１に記載の印刷システムの制御方法。
【請求項３】
前記セットアップ用データは、前記提供工程で提供される設定用インターフェースの各設定項目の有効／無効を判定するのに利用可能な情報を含むことを特徴とする請求項２に記載の印刷システムの制御方法。
【請求項４】
前記セットアップ用データは、前記指定された仮想プリンタに含まれる物理プリンタのプリンタドライバを含むことを特徴とする請求項１乃至３のいずれかに記載の印刷システムの制御方法。
【請求項５】
前記送信工程で送信される前記セットアップ用データは前記指定された仮想プリンタに含まれる物理プリンタのプリンタドライバを含み、
前記提供工程は、
前記物理プリンタドライバに対し所有する機能を問い合わせ、該物理プリンタドライバが所有する機能を取得する取得工程と、
前記取得工程によって取得された物理プリンタドライバの能力に応じて前記仮想プリンタの設定用インターフェースにおける設定可能な項目を判定する判定工程とを備え、
前記判定工程による判定結果に基づいて前記設定用インターフェースにおける設定画面を表示制御することを特徴とする請求項１に記載の印刷システムの制御方法。
【請求項６】
前記送信工程で送信される前記セットアップ用データは前記指定された仮想プリンタのプリンタドライバを更に含み、
前記提供工程は、前記仮想プリンタドライバが有する機能であることを特徴とする請求項５に記載の印刷システムの制御方法。
【請求項７】
前記設定用インターフェースを介して設定された設定に基づいて、前記仮想プリンタに含まれる物理プリンタに対して設定指示を行う設定指示工程を更に備えることを特徴とする請求項１乃至６の何れかに記載の印刷システムの制御方法。
【請求項８】
前記仮想プリンタには出力方法の設定情報が含まれることを特徴とする請求項１から７の何れかに記載の印刷システムの制御方法。
【請求項９】
複数の物理プリンタの各々に対応するセットアップ用データを格納するサーバと該サーバを介して物理プリンタを利用可能なクライアントを含む印刷システムであって、
前記サーバにおいて、前記複数の物理プリンタより選択された物理プリンタを含んで構成される仮想プリンタを登録する登録手段と、
前記クライアントにおいて、前記登録手段において登録された仮想プリンタを指定する指定手段と、
前記指定手段で指定された仮想プリンタを前記クライアントより前記サーバに通知する通知手段と、
前記通知手段による前記指定された仮想プリンタの通知を受けて、該指定された仮想プリンタと該仮想プリンタに含まれる物理プリンタのためのセットアップ用データを前記サーバより前記クライアントに送信する送信手段と
を備えることを特徴とする印刷システム。
【請求項１０】
前記クライアントにおいて、前記送信手段で送信されたセットアップ用データに基づいて、前記仮想プリンタの設定用インターフェースを提供する提供手段を更に備えることを特徴とする請求項９に記載の印刷システム。
【請求項１１】
前記セットアップ用データは、前記提供手段で提供される設定用インターフェースの各設定項目の有効／無効を判定するのに利用可能な情報を含むことを特徴とする請求項１０に記載の印刷システム。
【請求項１２】
前記セットアップ用データは、前記指定された仮想プリンタに含まれる物理プリンタのプリンタドライバを含むことを特徴とする請求項９乃至１１のいずれかに記載の印刷システム。
【請求項１３】
前記送信手段で送信される前記セットアップ用データは前記指定された仮想プリンタに含まれる物理プリンタのプリンタドライバを含み、
前記提供手段は、
前記物理プリンタドライバに対し所有する機能を問い合わせ、該物理プリンタドライバが所有する機能を取得する取得手段と、
前記取得手段によって取得された物理プリンタドライバの能力に応じて前記仮想プリンタの設定用インターフェースにおける設定可能な項目を判定する判定手段とを備え、
前記判定手段による判定結果に基づいて前記設定用インターフェースにおける設定画面を表示制御することを特徴とする請求項９に記載の印刷システム。
【請求項１４】
前記送信手段で送信される前記セットアップ用データは前記指定された仮想プリンタのプリンタドライバを更に含み、
前記提供手段は、前記仮想プリンタドライバを実行することによりて実現されることを特徴とする請求項１３に記載の印刷システム。
【請求項１５】
前記設定用インターフェースを介して設定された設定に基づいて、前記仮想プリンタに含まれる物理プリンタに対して設定指示を行う設定指示手段を更に備えることを特徴とする請求項９乃至１４の何れかに記載の印刷システム。
【請求項１６】
複数の物理プリンタの各々に対応するセットアップ用データを格納し、クライアントからの印刷指示に応じて物理プリンタによる印刷を制御する印刷サーバとして機能する情報処理装置であって、
前記サーバにおいて、前記複数の物理プリンタより選択された物理プリンタを含んで構成される仮想プリンタを登録する登録手段と、
前記クライアントより仮想プリンタの指定の通知を受信する受信手段と、
前記通知において指定された仮想プリンタ及び該仮想プリンタに含まれる物理プリンタのためのセットアップ用データを前記クライアントに送信する送信手段と
を備えることを特徴とする情報処理装置。
【請求項１７】
複数の物理プリンタの各々に対応するセットアップ用データを格納するサーバを介して物理プリンタを利用するクライアントとして機能する情報処理装置であって、
前記サーバに登録された、前記複数の物理プリンタより選択された物理プリンタを含んで構成される仮想プリンタを取得する取得手段と、
前記取得手段で取得された仮想プリンタの一つを指定させる指定手段と、
前記指定手段で指定された仮想プリンタを前記サーバに通知し、該指定された仮想プリンタと該仮想プリンタに含まれる物理プリンタのためのセットアップ用データを前記サーバより受信する受信手段と
を備えることを特徴とする情報処理装置。
【請求項１８】
前記受信手段で受信したセットアップ用データに基づいて、前記仮想プリンタの設定用インターフェースを提供する提供手段を更に備えることを特徴とする請求項１７に記載の情報処理装置。
【請求項１９】
前記セットアップ用データは、前記提供手段で提供される設定用インターフェースの各設定項目の有効／無効を判定するのに利用可能な情報を含むことを特徴とする請求項１８に記載の情報処理装置。
【請求項２０】
前記セットアップ用データは、前記指定された仮想プリンタに含まれる物理プリンタのプリンタドライバを含むことを特徴とする請求項１７乃至１９のいずれかに記載の印刷システム。
【請求項２１】
前記セットアップ用データは前記指定された仮想プリンタに含まれる物理プリンタのプリンタドライバを含み、
前記提供手段は、
前記物理プリンタドライバに対し所有する機能を問い合わせ、該物理プリンタドライバが所有する機能を取得する取得手段と、
前記取得手段によって取得された物理プリンタドライバの能力に応じて前記仮想プリンタの設定用インターフェースにおける設定可能な項目を判定する判定手段とを備え、
前記判定手段による判定結果に基づいて前記設定用インターフェースにおける設定画面を表示制御することを特徴とする請求項１７に記載の情報処理装置。
【請求項２２】
前記送信手段で送信される前記セットアップ用データは前記指定された仮想プリンタのプリンタドライバを更に含み、
前記提供手段は、前記仮想プリンタドライバを実行することによりて実現されることを特徴とする請求項２１に記載の情報処理装置。
【請求項２３】
前記設定用インターフェースを介して設定された設定に基づいて、前記仮想プリンタに含まれる物理プリンタに対して設定指示を行う設定指示手段を更に備えることを特徴とする請求項１７乃至２２の何れかに記載の情報処理装置。
【請求項２４】
複数の物理プリンタの各々に対応するセットアップ用データを格納し、クライアントからの印刷指示に応じて物理プリンタによる印刷を制御する印刷サーバとして機能する情報処理方法であって、
前記サーバにおいて、前記複数の物理プリンタより選択された物理プリンタを含んで構成される仮想プリンタを登録する登録工程と、
前記クライアントより仮想プリンタの指定の通知を受信する受信工程と、
前記通知において指定された仮想プリンタ及び該仮想プリンタに含まれる物理プリンタのためのセットアップ用データを前記クライアントに送信する送信工程と
を備えることを特徴とする情報処理方法。
【請求項２５】
複数の物理プリンタの各々に対応するセットアップ用データを格納するサーバを介して物理プリンタを利用するクライアントとして機能する情報処理方法であって、
前記サーバに登録された、前記複数の物理プリンタより選択された物理プリンタを含んで構成される仮想プリンタを取得する取得工程と、
前記取得工程で取得された仮想プリンタの一つを指定させる指定工程と、
前記指定工程で指定された仮想プリンタを前記サーバに通知し、該指定された仮想プリンタと該仮想プリンタに含まれる物理プリンタのためのセットアップ用データを前記サーバより受信する受信工程と
を備えることを特徴とする情報処理方法。
【請求項２６】
請求項２４または２５のいずれかに記載の情報処理方法を実現するための制御プログラムを格納する記憶媒体。
【請求項２７】
請求項２４または２５のいずれかに記載の情報処理方法を実現するための制御プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、アプリケーションからの描画指示に基づいて印刷処理を行う印刷システムにおけるグループプリンタのセットアップを含む印刷制御に関する。
【０００２】
【従来の技術】
近年、ネットワーク機器が一般に利用され、ネットワーク上に多数のパソコン（以下、ＰＣ）やプリンタが接続されるようになった。このようなネットワーク環境においては、複数あるプリンタを有効に活用するべく、様々な制御方法が提案されている。
【０００３】
例えば、上記ネットワーク環境において印刷を行う際、ページ数の多いドキュメントあるいは部数の多いドキュメントについては、いったん印刷ジョブをスプールし、複数のプリンタに頁ごとあるいは部数ごとに分散して出力することにより印刷時間の短縮を図るシステム（分散印刷システム）が提案されている。また上記のようなネットワーク環境において、カラー頁、モノクロ頁が混在する一つのドキュメントに対して、印刷時のコストおよび印刷時間の短縮を図るために、カラー頁はカラープリンタへ、モノクロ頁はモノクロプリンタへ分散して出力するシステム（カラー・モノクロ分散印刷システム）が知られている。
【０００４】
さらに、このようなネットワーク環境において、一つのドキュメントを一度の印刷指示で、複数のプリンタに同時に送信し印刷するシステム（同報印刷システム）が知られている。また、このようなネットワーク環境において、一つのプリンタに送信したドキュメントに対し、そのプリンタでエラーが発生した場合は、自動的に他のプリンタに切り替えて印刷するシステム（エラー代行印刷システム）が知られている。さらに、このようなネットワーク環境における印刷システムにおいて、１つの仮想的なプリンタ（グループプリンタ）を有し、そのプリンタに印刷指示を出すと、１つの仮想的なプリンタが一旦印刷ジョブをスプールし、汎用印刷データを生成した後、後段の印刷システムに汎用印刷データを送信し、印刷システムが該汎用印刷データを受け取り処理する方法が知られている。
【０００５】
さらに上記のようなネットワーク環境における印刷システムにおいて、１つの仮想的なプリンタ（グループプリンタ）と、それに関連付けられた複数のメンバプリンタを１つのクライアントマシン上に有し、グループプリンタがそれぞれのメンバプリンタの能力を問い合わせ、ＵＩの制御を行う方法が知られている。
【０００６】
また、特許文献１には、サーバを介して接続される複数の物理プリンタの各機能に基づく論理プリンタをクライアントに提供する仕組みが開示されている。更に、特許文献２には、仮想プリンタドライバをコンピュータにインストールすることが開示されている。
【０００７】
【特許文献１】
特開平０９−２５８９３０号公報
【特許文献２】
特開２００１−２９０６２５号公報
【０００８】
【発明が解決しようとする課題】
しかしながら、特許文献１によれば、ユーザは複数の物理プリンタの各機能を有用に利用できるものの、所望の出力方法などに従った仮想プリンタを得ることはできなかった。また、特許文献２によれば、仮想プリンタドライバをクライアントにインストールすることは開示されているものの、具体的にどのようにインストールするかを開示するものではなく、仮想プリンタとメンバプリンタとを効率よくクライアントにインストールするという点で改善の余地がある。
【０００９】
本発明は上記の課題に鑑みてなされたものであり、複数のメンバプリンタから構成されるグループプリンタを利用して印刷を行うような環境において、効率よくクライアントにグループプリンタとメンバプリンタをインストール可能とすることを目的とする。
【００１０】
【課題を解決するための手段】
上記の目的を達成するための本発明による印刷システムの制御方法は、
複数の物理プリンタの各々に対応するセットアップ用データを格納するサーバと該サーバを介して物理プリンタを利用可能なクライアントを含む印刷システムの制御方法であって、
前記サーバにおいて、前記複数の物理プリンタより選択された物理プリンタを含んで構成される仮想プリンタを登録する登録工程と、
前記クライアントにおいて、前記登録工程において登録された仮想プリンタを指定する指定工程と、
前記指定工程で指定された仮想プリンタを前記クライアントより前記サーバに通知する通知工程と、
前記通知工程による前記指定された仮想プリンタの通知を受けて、該指定された仮想プリンタと該仮想プリンタに含まれる物理プリンタのためのセットアップ用データを前記サーバより前記クライアントに送信する送信工程とを備える。
【００１１】
また、上記の目的を達成するための本発明による印刷システムは以下の構成を備える。すなわち、
複数の物理プリンタの各々に対応するセットアップ用データを格納するサーバと該サーバを介して物理プリンタを利用可能なクライアントを含む印刷システムであって、
前記サーバにおいて、前記複数の物理プリンタより選択された物理プリンタを含んで構成される仮想プリンタを登録する登録手段と、
前記クライアントにおいて、前記登録手段において登録された仮想プリンタを指定する指定手段と、
前記指定手段で指定された仮想プリンタを前記クライアントより前記サーバに通知する通知手段と、
前記通知手段による前記指定された仮想プリンタの通知を受けて、該指定された仮想プリンタと該仮想プリンタに含まれる物理プリンタのためのセットアップ用データを前記サーバより前記クライアントに送信する送信手段とを備える。
【００１２】
また、上記の目的を達成するための本発明による情報処理装置は以下の構成を備える。すなわち、
複数の物理プリンタの各々に対応するセットアップ用データを格納し、クライアントからの印刷指示に応じて物理プリンタによる印刷を制御する印刷サーバとして機能する情報処理装置であって、
前記サーバにおいて、前記複数の物理プリンタより選択された物理プリンタを含んで構成される仮想プリンタを登録する登録手段と、
前記クライアントより仮想プリンタの指定の通知を受信する受信手段と、
前記通知において指定された仮想プリンタ及び該仮想プリンタに含まれる物理プリンタのためのセットアップ用データを前記クライアントに送信する送信手段とを備える。
【００１３】
また、上記の目的を達成するための本発明による情報処理装置は以下の構成を備える。すなわち、
複数の物理プリンタの各々に対応するセットアップ用データを格納するサーバを介して物理プリンタを利用するクライアントとして機能する情報処理装置であって、
前記サーバに登録された、前記複数の物理プリンタより選択された物理プリンタを含んで構成される仮想プリンタを取得する取得手段と、
前記取得手段で取得された仮想プリンタの一つを指定させる指定手段と、
前記指定手段で指定された仮想プリンタを前記サーバに通知し、該指定された仮想プリンタと該仮想プリンタに含まれる物理プリンタのためのセットアップ用データを前記サーバより受信する受信手段とを備える。
【００１４】
また、上記の目的を達成するための本発明による情報処理方法は、
複数の物理プリンタの各々に対応するセットアップ用データを格納し、クライアントからの印刷指示に応じて物理プリンタによる印刷を制御する印刷サーバとして機能する情報処理方法であって、
前記サーバにおいて、前記複数の物理プリンタより選択された物理プリンタを含んで構成される仮想プリンタを登録する登録工程と、
前記クライアントより仮想プリンタの指定の通知を受信する受信工程と、
前記通知において指定された仮想プリンタ及び該仮想プリンタに含まれる物理プリンタのためのセットアップ用データを前記クライアントに送信する送信工程とを備える。
【００１５】
更に、上記の目的を達成するための本発明による情報処理方法は、
複数の物理プリンタの各々に対応するセットアップ用データを格納するサーバを介して物理プリンタを利用するクライアントとして機能する情報処理方法であって、
前記サーバに登録された、前記複数の物理プリンタより選択された物理プリンタを含んで構成される仮想プリンタを取得する取得工程と、
前記取得工程で取得された仮想プリンタの一つを指定させる指定工程と、
前記指定工程で指定された仮想プリンタを前記サーバに通知し、該指定された仮想プリンタと該仮想プリンタに含まれる物理プリンタのためのセットアップ用データを前記サーバより受信する受信工程とを備える。
【００１６】
【発明の実施の形態】
以下、添付の図面を参照して本発明の好適な実施形態について説明する。
【００１７】
〔第１実施形態〕
図１は、本発明を適用可能な情報処理システムの構成を説明するブロック図である。なお、本システムにおけるクライアントコンピュータは、１台、または複数台接続されていることを仮定している。
【００１８】
図１において、１０２、１０３、１０４はクライアントコンピュータ（クライアント）としての情報処理装置であり、イーサネット（登録商標）などのネットワークケーブルによって、ネットワーク１０６に接続される。クライアント装置１０２〜１０４の各々は、アプリケーションプログラム等の各種のプログラムを実行可能であり、印刷データをプリンタに対応するプリンタ言語に変換する機能を有するプリンタドライバを搭載している。なお、プリンタドライバは複数のプリンタドライバをサポートするものとする。
【００１９】
１０１は本実施形態のサーバ（以下、プリントサーバと呼ぶ）としての情報処理装置であり、ネットワークケーブルによって、ネットワーク１０６に接続される。プリントサーバ１０１は、ネットワークで使用されるファイルを蓄積したり、ネットワーク１０６の使用状態を監視したりする。プリントサーバ１０１は、ネットワーク１０６に接続されている複数のプリンタを管理している。
【００２０】
なお、クライアント１０２〜１０４とプリントサーバ１０１は、一般的な情報処理装置にそれぞれ異なる制御を行う印刷制御プログラムを実行可能に格納することにより構成することができる。
【００２１】
また、プリントサーバ１０１として一般的な情報処理装置を用いた場合、クライアント１０２〜１０４の機能を同時に持たせることもできる。本実施形態におけるプリントサーバ１０１は、さらにクライアント１０２、１０３、１０４から出力された印字データを含む印刷ジョブを格納してプリンタに印刷させたり、または、クライアント１０２、１０３、１０４から印字データを含まない印刷ジョブを受け取り、クライアント１０２、１０３、１０４の印刷順序を管理し、印刷順序になったクライアントに対して印字データを含む印刷ジョブの送信許可を通知したり、ネットワークプリンタ１０５のステータスや印刷ジョブの各種情報を取得し、クライアント１０２、１０３、１０４に通知したりする機能を揃えている。
【００２２】
１０５はネットワークプリンタであり、不図示のネットワークインタフェースを介してネットワーク１０６と接続されている。ネットワークプリンタ１０５は、クライアントコンピュータ１０２〜１０４から送信される印字データを含む印刷ジョブを解析して１ページずつドットイメージに変換して、１ページ毎に印刷する。１０６はネットワークであり、クライント１０２、１０３、１０４、サーバ１０１、ネットワークプリンタ１０５等と接続している。
【００２３】
図２は、本実施形態のクライアント１０２〜１０５及びプリントサーバ１０１として利用可能な情報処理装置の構成を説明するブロック図である。上述したように、クライント１０２、１０３、１０４及びプリントサーバ１０１は同様のハードウエア構成を有した情報処理装置によって実現可能である。以下、図２をクライアントとサーバの構成を説明するブロック図として説明する。
【００２４】
図２において、２００は情報処理装置の制御手段であるＣＰＵであり、ハードディスク（ＨＤ）２０５に格納されているアプリケーションプログラム、プリンタドライバプログラム、ＯＳや本発明のネットワークプリンタ制御プログラム等を実行し、ＲＡＭ２０２にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
【００２５】
２０１はＲＯＭであり、内部には、基本Ｉ／Ｏプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。２０２は一時記憶手段を提供するＲＡＭであり、ＣＰＵ２００の主メモリ、ワークエリア等として機能する。２０３はフレキシブルディスク（ＦＤ）ドライブであり、後述する図５に示すようにＦＤドライブ２０３を通じて記憶媒体としてのＦＤ２０４に記憶されたプログラム等を本コンピュータシステムにロードすることができる。２０４は記憶媒体としてのフレキシブルディスク（ＦＤ）であり、コンピュータが読み取り可能なプログラムが格納された記憶媒体である。なお、記憶媒体としては、ＦＤに限らず、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＰＣカード、ＤＶＤ、ＩＣメモリカード、ＭＯ、メモリスティック等、任意の媒体を利用できる。
【００２６】
２０５は外部記憶装置の一つであり、大容量メモリとして機能するハードディスク（ＨＤ）である。ＨＤ２０５には、アプリケーションプログラム、プリンタドライバプログラム、ＯＳ、ネットワークプリンタ制御プログラム、関連プログラム等が格納されている。また、スプール手段であるスプーラはこのＨＤ２０５に確保される。なお、スプール手段は、クライアント１０２〜１０４ではクライアントスプーラのことであり、プリントサーバ１０１ではサーバスプーラのことである。また、プリントサーバ１０１では、クライアント１０２〜１０４から受けたジョブ情報を格納し、順序制御を行うためのテーブルもこの外部記憶装置（ＨＤ２０５）に生成されて格納される。
【００２７】
２０６は指示入力を行なうためのキーボードである。キーボード２０６を用いることにより、ユーザがクライアントコンピュータに対して、或いは、オペレータや管理者がプリントサーバに対して、デバイスの制御コマンドの命令等を入力指示する。なお、指示入力を行なうためにポインティングデバイス（不図示）を備えてもよい。
【００２８】
２０７はディスプレイであり、キーボード２０６から入力したコマンドや、プリンタの状態等を表示したりする。２０８はシステムバスであり、クライアントやプリントサーバであるコンピュータ内のデータの流れを司る。２０９はインタフェースであり、該インタフェース２０９を介して情報処理装置はネットワーク１０６と接続され、外部装置とのデータのやり取りを行うことが可能となる。
【００２９】
図３は、図２に示したＲＡＭ２０２のメモリマップの一例を示す図である。図３には、ＦＤ２０４に格納されている上記ネットワークプリンタ制御プログラムがＲＡＭ２０２にロードされ、実行可能となった状態のメモリマップが示されている。
【００３０】
本実施形態では、ＦＤ２０４からネットワークプリンタ制御プログラムおよび関連データを直接ＲＡＭ２０２にロードして実行させる例を示すが、これ以外にも、ＦＤ２０４からネットワークプリンタ制御プログラムを動作させる度に、既にネットワークプリンタ制御プログラムがインストールされているＨＤ２０５からＲＡＭ２０２にロードするようにしてもよい。また、本ネットワークプリンタ制御プログラムを記憶する媒体は、ＦＤ以外にＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＰＣカード、ＤＶＤ、ＩＣメモリカード等であってもよい。さらに、本ネットワークプリンタ制御プログラムをＲＯＭ２０１に記憶しておき、これをメモリマップの一部となすように構成し、直接ＣＰＵ２００で実行することも可能である。また、以上の各装置と同等の機能を実現するソフトウェアをもって、ハードウェア装置の代替として構成することもできる。
【００３１】
また、本ネットワークプリンタ制御プログラムのことを、簡単に印刷制御プログラムと呼ぶこともある。印刷制御プログラムは、クライアント１０２〜１０４において印刷ジョブの印刷先の変更を指示したり、印刷順序の変更を指示するための制御を行うプログラムを含む。また、印刷制御プログラムは、プリントサーバ１０１において、印刷ジョブの順序制御を行ったり、印刷ジョブの印刷終了や印刷先変更要求などを通知するためのプログラムを含んでいる。また、このような制御を行う本実施形態の印刷制御プログラムは、クライアント１０２〜１０４にインストールされるモジュールと、プリントサーバ１０１にインストールされるモジュールを別々に分けてもよい。或いは、一つの印刷制御プログラムが、実行される環境によりクライアント用として機能したり、またはプリントサーバ用として機能するようにしてもよい。あるいは一台のコンピュータに、クライアント用の機能を持つモジュールと、プリントサーバ用として機能するモジュールをともにインストールし、同時に、あるいは時分割で擬似的に平行動作させる構成をとることも可能である。
【００３２】
図３において、３０１は基本Ｉ／Ｏプログラムであり、本制御装置の電源がＯＮされたときに、ＨＤ２０５からＯＳがＲＡＭ２０２に読み込まれ、ＯＳの動作を開始させるＩＰＬ（イニシャルプログラムローデイング）機能などを有しているプログラムが入っている領域である。３０２はオペレーティングシステム（ＯＳ）、３０３はネットワークプリンタ制御プログラムであり、それぞれＲＡＭ２０２上に確保された領域に記憶される。３０４は関連データで、ＲＡＭ２０２上に確保される領域に記憶される。３０５はワークエリアで、ＣＰＵ２００が本実施形態のプリンタ制御プログラム（３０３）等を実行する際に利用される作業領域が確保されている。
【００３３】
図４は、図２に示したＦＤ２０４のメモリマップの一例を示す図である。図４において、４００は上記ＦＤ２０４のデータ内容であり、４０１はデータの情報を示すボリューム情報であり、４０２はディレクトリ情報、４０３は本実施形態で説明する印刷制御プログラムであるネットワークプリンタ制御プログラム、４０４はその関連データである。４０３のネットワークプリンタ制御プログラムは、実施形態で説明するフローチャートに基づいてプログラム化したものであり、本実施例では、クライアント、サーバ共、同様の構成をとっている。
【００３４】
図５は、図２に示したＦＤドライブ２０３に対して挿入されるＦＤ２０４との関係を示す図であり、図２と同一のものには同一の符号を付してある。図５において、ＦＤ２０４には、図４で説明したように本実施形態で説明するネットワークプリンタ制御プログラムおよび関連データが格納されている。
【００３５】
図６は、本実施形態で扱う汎用印刷ファイルの概略構成例を示す図である。この汎用印刷ファイルには図１３により後述する汎用印刷ファイル生成部７０２によって生成される。なお、本実施形態では、複数のプリンタを１台のプリンタとして仮想的に束ねるプリンタをグループプリンタ、束ねられるプリンタをメンバプリンタと呼ぶ。また、それに対応するプリンタドライバをそれぞれグループプリンタドライバ、メンバプリンタドライバと呼ぶ。なお、グループプリンタは複数の実在するプリンタを束ねた仮想的なプリンタであり、メンバプリンタは実在する物理的なプリンタに対応する。また、グループプリンタドライバは印刷ユーティリティーの一種としてアプリケーションとしてもとらえることができる。
【００３６】
本実施形態で使用される汎用印刷ファイルは、後述するグループプリンタに印刷指示をした過程で生成され、印刷指示部６−ａとドキュメントデータ部６−ｂからなる。
【００３７】
印刷指示部６−ａは、ドキュメントの情報と印刷指示を記述した部分である。また、ドキュメントデータ部６−ｂは、アプリケーションのドキュメントのデータを汎用的な形式のデータに変換して格納したものであり、プリンタ言語に依存しないデータフォーマットでドキュメントの内容を格納する。この印刷指示部６−ａは、後述する図１４のフローチャートに従い表示制御がなされたグループプリンタのＵＩを介して設定された設定情報に基づくものに対応する。
【００３８】
また、印刷指示部６−ａはヘッダ部６０１、ページ情報部６０２、印刷体裁指示部６０３、出力方法指定部６０４、グループプリンタ設定情報部６０５、メンバプリンタ数６０６、メンバプリンタドライバ名６０７ａ，ｂ、メンバプリンタドライバ設定情報部６０８ａ，ｂなどから構成されている。
【００３９】
印刷指示部６−ａにおいて、ヘッダ部６０１は本ファイルのバージョン識別やファイル情報などの情報を格納する部分である。ページ情報部６０２は、ドキュメントデータ部６−ｂのドキュメントデータのページ数、各ページのサイズなどの情報を格納する部分である。印刷体裁指示部６０３は、印刷ページ範囲、印刷部数、ドキュメントデータの面付け情報（Ｎ−ＵＰや製本印刷など）、ステイプル指示やパンチ指示など、出力体裁に関する情報を格納する部分である。出力方法指定部６０４は、出力方法として、分散印刷、カラーモノクロ分散印刷、代行印刷、同報印刷などの情報を格納する部分である。グループプリンタ設定情報部６０５は、後述するグループプリンタのユーザインターフェース（ＵＩ）の設定情報を格納する部分である。メンバプリンタ数６０６はグループプリンタが関連付けているメンバプリンタの数を格納する部分である。メンバプリンタドライバ名６０７ａ，ｂは、メンバプリンタのプリンタドライバ名を格納する部分である。メンバプリンタドライバ設定情報部６０８ａ，ｂはメンバプリンタのドライバＵＩの設定情報として例えばＤＥＶＭＯＤＥ情報を格納する部分である。なお、メンバプリンタドライバ名６０７とメンバプリンタドライバ設定情報部６０８は、メンバプリンタ数６０６に格納された数だけの格納エリアを持っている。
【００４０】
尚、本ファイルは、印刷指示部６−ａとドキュメントデータ部６−ｂが異なるファイルであってもかまわない。その場合、印刷指示部６−ａは印刷指示書ファイルとして、ドキュメントデータ部６−ｂはドキュメントデータファイルとしてそれぞれ存在することになる。また、これらのファイルを一つのアーカイブ形式でまとめて一つのファイルのように扱うことも可能である。
【００４１】
図７、図８は本実施形態のグループプリンタのユーザインターフェイス（以下、ＵＩ）の表示例を示す図である。これらのＵＩは、グループプリンタの呼び出しがＯＳを介して指示された場合に、クライアントに設けられた表示部（不図示）或はプリントサーバに設けられた表示部（不図示）に表示される。
【００４２】
図７は本実施形態のグループプリンタのＵＩの１例であり、ページ設定シートが選択された状態を示している。例えば、原稿サイズ７０１、出力用紙サイズ７０２、部数７０３、印刷の向き７０４、ページ例レイアウト７０５などの設定情報は、図６で前述したページ情報部６０２あるいは印刷体裁指示部６０３に記述されることになる。
【００４３】
また、図８は、本実施形態のグループプリンタのＵＩにおいて、出力方法のシートが選択された場合を示している。図８において、８−ａはコンボボックスであり、割合分散、カラーモノクロ分散、同報、自動代行などの出力方法を選択し、指定することが可能である。この図８のＵＩを介して入力される指示に応じて出力方法が適宜選択される。但し、デフォルトの出力方法は、後述の図１２に示されるプリンタ管理情報及び図９、図１０フローチャートに従ってクライアント側にインストールされた情報に従って設定される。８−ｂはメンバプリンタの登録を行うためのＵＩを開くボタンである。このボタン８−ｂの操作に応じて開かれるＵＩについては後述する。
【００４４】
図８の８−ｃは登録されたメンバプリンタの一覧を表示するリストボックスである。この一覧表示の内容は前述の８−ａで指定した出力方法に従って、その表示内容も変更される。この中で、８−ｇは各メンバプリンタを出力対象のプリンタより一時的にはずしたり、出力対象に戻したりするためのチェックボックスである。このチェックボックス８−ｇにチェックがある場合は、そのメンバプリンタを出力対象プリンタとみなし、チェックがない場合はそのメンバプリンタを一時的に出力対象プリンタからはずすことを意味している。すなわち、ＵＩ上で登録され、前述の８−ｂのボタンを押下することによって表示されたメンバプリンタの各々に対し、さらにこのチェックボックスによって出力対象とするか否かを設定することが可能となる。
【００４５】
また、図８−ｆはデバイス情報表示欄で、あらかじめ設定してあるメンバプリンタの情報を、メンバプリンタドライバの名称とともに表示している。
【００４６】
図８の８−ｄは、出力方法の詳細指定を行うためのＵＩを開くボタンである。この詳細設定の内容は前述のコンボボックス８−ａで指定した出力方法に従って、その表示内容も変更される。図８では、コンボボックス８−ａによって割合分散が設定されているので、ボタン８−ｄには「割合設定」が表示されている。
【００４７】
図８の８−ｅは、メンバプリンタドライバのＧＵＩを開くボタンである。対象となるメンバプリンタは前述した８−ｃの一覧の中から選択することで行う。すなわち、ボタン８−ｅを用いることで、現在８−ｃ上で選択されているメンバプリンタに対するメンバプリンタドライバＵＩを開くことが可能である。
【００４８】
また、メンバプリンタのＵＩを開く際の表示制御については後述する図１４、図１８、図１９、図２０にそれぞれ示されるフローチャートを用いて詳しく説明する。以上のように、本実施形態のグループプリンタＵＩを用いることにより、出力方法として割合分散、カラー／白黒分散、同報、自動代行のいずれかを選択でき、それぞれの出力方法に対してメンバプリンタドライバの指定および設定を行うことができるので、１つのプリンタドライバで複数の印刷指示が可能となる。
【００４９】
次に、上述の図７、図８にて示したようなユーザインターフェイスを表示させるにあたって事前に行われる共有プリンタのセットアップについて、図９乃至図１２を用いて説明する。
【００５０】
（サーバＰＣにおけるプリンタ登録処理）
図９はプリントサーバとして機能するサーバＰＣにおけるグループプリンタ、メンバプリンタドライバのセットアップの手順を示したフローチャートである。サーバＰＣは図１３中のサーバに対応するものであり、上述のように例えば図１のサーバ１０１に該当させることができ、図２に示すような一般的な情報処理装置が採用される。また、サーバＰＣはプリントサーバとして専用に設置された情報処理装置であっても良いし、ユーザが業務用に利用するようなパーソナルコンピュータとしての情報処理装置を割当てることもできる。
【００５１】
まず、図９のステップＳ９−１でセットアップを開始する。ここでいうセットアップとは印刷処理に関連した各種ソフトウェアモジュール及び／又はドライバモジュールのインストール及びサーバ側の各種設定を含めた処理を指す。但し、各種設定はモジュールのインストール後に行ってもかまわない。
【００５２】
次にステップＳ９−２で構成モジュールをインストールする。構成モジュールとは後述する本システムにおいてサーバに必要な各種モジュールである。ステップＳ９−３でグループプリンタ及びメンバプリンタを含む各プリンタに対応させてプリンタポートを設定する。即ち、グループプリンタに対してはサーバＰＣを特定可能な仮想プリンタポートを、メンバプリンタには夫々に対応するポートを設定する。後述するが本システムはここで設定するプリンタポートを介して印刷ジョブを受け取り、所望の動作を実現する。尚、ここでのプリンタポートとはサーバＰＣやデバイスを識別する為の情報であり、例えばサーバＰＣやデバイスのＩＰアドレス、名称などに対応し、デバイスを特定する為の情報として利用される。
【００５３】
デバイスを特定する為の情報としては、例えば、後述する図１３中のプロキシ出力ポート７１２等が対応する。また、デバイスに対して設定されたプリントポートはＬＰＲなどでも良い。
【００５４】
次にステップＳ９−４でメンバプリンタの設定を行う。このステップではメンバプリンタとなりうるプリンタドライバを選択し、各プリンタドライバの接続ポートを上記ステップＳ９−３で設定したプリンタポートに対応させる。そして、ステップＳ９−５でグループプリンタの設定を行う。ここでは、グループプリンタの出力方法を指定したり、ステップＳ９−４で設定したメンバプリンタより各グループプリンタのメンバプリンタを指定したり、グループプリンタの接続ポートを上記ステップＳ９−３で設定したプリンタポートに対応させたりする。次にステップＳ９−６で設定内容をプリンタ管理情報としてプリンタ情報管理部７０４に登録し終了する。プリンタ管理情報については後述する。
【００５５】
（クライアントにおけるインストール処理）
次に図１０のフローチャートを参照して、クライアント側におけるサーバＰＣにおいて供給設定された共有プリンタのインストールおよび設定方法について説明する。
【００５６】
まずステップＳ１０−１でセットアップを開始する。ここでいうセットアップとはモジュールのインストールおよびクライアント側の各種設定を含めた処理を指すが、各種設定についてはモジュールインストール後に行うようにしてもかまわない。
【００５７】
ステップＳ１０−２で構成モジュールをインストールする。構成モジュールとは本システムにおいてクライアントに必要な各種モジュールである。構成モジュールの詳細については後述する。次にステップＳ１０−３で前述の図９で設定したサーバＰＣをネットワーク上から探索する。ネットワーク上に接続されるサーバＰＣの探索方法については既に周知の技術を適用可能であり、詳しい説明は省略する。
【００５８】
次にステップＳ１０−４において、ステップＳ１０−３で探索されたサーバＰＣより、共有先として設定されるべきＰＣが選択されるのを待つ。すなわち、上記ステップＳ１０−４で１つ又は複数のサーバＰＣが探索された場合、本ステップでそれらの中から１つが選択されるのを待つ。なお、サーバＰＣが１台も見つからなかった場合は、メンバプリンタのセットアップを続行できないので本処理を終了する（不図示）。サーバＰＣが選択されるとステップＳ１０−４からステップＳ１０−５へ進む。ステップＳ１０−５では、選択されたＰＣサーバにインストールされているプリンタドライバのうち共有可能なプリンタドライバを調査する。共有可能かどうかは、例えば、ＷｉｎｄｏｗｓＰｒｉｎｔｉｎｇＳｙｓｔｅｍが備えている共有可能か否かを問い合わせるＡＰＩを利用することにより実現することが可能である。
【００５９】
また、ステップＳ１０−５では、プリンタ情報管理部７０４（図１３）に格納されているプリンタ管理情報（ステップＳ９−６で登録されている）をネットワーク１０６を介して読み込み、サーバＰＣに登録されたグループプリンタとメンバプリンタに係る管理情報を取得する。取得された管理情報はクライアントに設けられた所定の記憶部に一旦保持される。プリンタ管理情報の詳細については図１２を参照して後述する。
【００６０】
また、このステップＳ１０−５におけるサーバ調査では、図１２に示されるような複数のグループプリンタ及びメンバプリンタの調査が実行される。そして、このステップＳ１０−５の処理に応じて図１１に示されるようなグループプリンタ及びメンバプリンタをリスティングした表示がクライアント側の表示画面上になされる。
【００６１】
次にステップＳ１０−６に進み、ステップＳ１０−５における調査によって得られた共有可能なプリンタドライバから一つのプリンタドライバが選択されたか否かを判定する。ユーザは、ステップＳ１０−５の調査結果に基づくグループプリンタ及びメンバプリンタ（共有可能なプリンタドライバ）のリスト表示（図１１）を得て、このリスト表示から所望の共有設定をしたいグループプリンタを指示することができる。また、このリスト表示からメンバプリンタが選択された場合には、選択されたメンバプリンタがサーバＰＣからクライアントにインストールされる。なお、図１１に関連する説明は後述する。
【００６２】
グループプリンタの選択がなされると、ステップＳ１０−７において、選択されたグループプリンタが既に、クライアントにてインストール済みか否かの判断が行われる。この判断は例えばグループプリンタ名の一致を照合することにより行われる。そして、ステップＳ１０−７でＮｏと判断されると、ステップＳ１０−８に進み、指定されたグループプリンタを共有プリンタドライバとしてクライアントにインストールする。ここでクライアントにインストールされるグループプリンタは、図９のフローチャートに従って設定されたグループプリンタであり、図７、図８、図２１のＵＩを表示させる為のプログラムが含まれていたり、図１３において説明する印刷処理を実行する為のプログラムや、図１２において説明する管理情報などが少なくとも含まれている。次にステップＳ１０−９〜１０−１２においてメンバプリンタドライバのインストールを実行する。
【００６３】
ここでは、ステップＳ１０−６で指定されたグループプリンタに関連付けられたメンバプリンタを、自動的に特定しインストールする。まず、ステップＳ１０−９において、複数或は単数から特定されたメンバプリンタが既にクライアントにインストール済みか否かの判断が行われる。Ｎｏと判断されればそのメンバプリンタを共有インストールする。このインストールの際には図９のフローチャートに従って設定されたプリントポート等の各種情報やメンバプリンタ名などの各種情報も合わせてクライアントに送信される。そして、ステップＳ１０−１０では、ステップＳ１０−６で指定されたグループプリンタに関連付けられたメンバプリンタの全てに対してインストール処理が終了したか否かの判断が行われる。そして、ステップＳ１０−１０でＮｏと判断されればステップＳ１０−１２で次のメンバプリンタが特定され、ステップＳ１０−９の処理へ再び移行する。一方、ステップＳ１０−９でＹｅｓと判断されれば上に説明したステップＳ１０−１０に処理を移行する。この移行により無駄なメンバプリンタのクライアントへのセットアップを省略することができる。無論、ステップＳ１０−９でＹｅｓと判断されたメンバプリンタをクライアントにて上書きするようにしても良い。そして、ステップＳ１０−１０でＹＥＳと判定されたならば、ステップＳ１０−１３へ進みセットアップ画面（図１１）を表示し、ステップＳ１０−６へ戻る。
【００６４】
このようにステップＳ１０−６〜１０−１２の処理により、グループプリンタを指定することに応じて関連したメンバプリンタを効率よく自動的にクライアントに取り込むことができる。
【００６５】
一方、ステップＳ１０−７でＹｅｓと判断されると、ステップＳ１０−１４でグループプリンタに関連付けられたメンバプリンタの情報（組み合わせ等の情報）が同じか否かが判断される。ここで、Ｎｏと判断された場合は、ステップＳ１０−１７へ進み、選択されたグループプリンタに関連付けられたメンバプリンタのクライアントへのインストールが行われる。
【００６６】
一方、ステップＳ１０−１４でＹｅｓと判断されれば、例えば、「既に同じグループプリンタ及びメンバプリンタが登録されております！！」等の警表示の表示制御がクライアントにて行われる。そして、処理をステップＳ１０−１６に処理を移行させ、セットアップ画面（図１１）をクライアントに表示させる。
【００６７】
以上のような図１０のフローチャートで示される処理によりクライアントにインストールされたグループプリンタ及びメンバプリンタは、後述する図１４、図１８、図１９、図２０のフローチャートに従った処理を行う際に利用され、ユーザに対して適切な印刷設定環境を提示することを実現する。
【００６８】
図１１は上記の図１０のフローチャートで説明したクライアントＰＣに共有インストールを行う際のセットアップ画面の１例であり、後述する図１２の情報に基づきクライアントの表示部に表示される画面を示すものである。図１１において、プリンタの一覧１１０２にリストアップされているプリンタはサーバＰＣ上で共有設定されたプリンタであり、“グループプリンタ名１”はグループプリンタを表し、“メンバプリンタ名Ａ”〜“メンバプリンタ名Ｃ”の３つのプリンタは“グループプリンタ名１”のメンバプリンタを表している。図１０の説明で補足すると、ステップＳ１０−６でグループプリンタである“グループプリンタ名１”を選択すると（グループプリンタ名１を選択してＯＫボタン１１０３をクリック）、そのメンバプリンタである“メンバプリンタ名Ａ”〜“メンバプリンタ名Ｃ”のプリンタドライバも自動的にクライアントに共有インストールされる（ステップＳ１０−９〜Ｓ１０−１２）。
【００６９】
次に図１２を用いて上記図９のステップＳ９−６においてサーバＰＣにて登録されるプリンタ管理情報について説明する。尚、ここでの登録とはサーバＰＣに設けられた所定のハードディスク等の不揮発性記憶部に記憶させる処理を指す。なお、図１２に示される管理情報はクライアント側からネットワーク１０６を介して登録変更できるようにしても良い。
【００７０】
グループプリンタをマウス等のポインティングデバイスを介して選択し、プリンタの構成ボタン１１０１の指示に応じた信号が入力されると、選択されたグループプリンタに対応する出力方法等の各種設定およびグループプリンタを構成するメンバプリンタの設定を示す表示がクライアントの表示部にてなされる。よって、ユーザは所望のグループプリンタをインストールする前に事前にグループプリンタドライバの詳細な機能を確認することができる。
【００７１】
ここで、グループプリンタドライバの詳細な情報を表示させるにあたっては、事前にサーバＰＣから取得した図１２に示される情報に基づき表示を行わせるようにしても良いし、ユーザの指示により選択されたグループプリンタをサーバＰＣに通知するようにして、サーバＰＣからその都度、選択されたグループプリンタの詳細な情報を取得し、該取得した情報に基づきグループプリンタの詳細な情報を表示させるようにしても良い。
【００７２】
さて、図１２はプリンタ管理情報のテーブルの様子を図示したものであり、サーバＰＣとクライアントとで共有可能な情報となっている。グループプリンタ数１２０１は登録されたグループプリンタの数を示す。また、１２１０は各グループプリンタの情報を示している。ここで各グループプリンタの情報としては、グループプリンタ名１２１１、共有可能に設定されているか否かを示す共有情報１２１２が格納されている。また、設定情報１２１３としてポート情報（ポート名）、および分散印刷や同報印刷などの出力方法や、出力方法に必要な各種情報などが保持されている。
【００７３】
また、メンバプリンタの情報としては、当該グループプリンタに含まれるメンバプリンタの数を示すメンバプリンタ数１２１４、それぞれのメンバプリンタ名１２１５等が保持されている。
【００７４】
また、メンバプリンタの管理情報としては、総メンバプリンタ数１２２０と各メンバプリンタの情報１２３０が保持されている。総メンバプリンタ数１２２０は登録されているメンバプリンタの総数を示す。各メンバプリンタ情報としては、メンバプリンタ名１２３１、共有設定されているか否かを示す共有情報１２３２、ポート情報や出力方法に応じた設定情報１２３３等が保持されている。
【００７５】
図１２の例では、メンバプリンタの総数は４であり、メンバプリンタと名としてＡ，Ｂ，Ｃ，Ｄが保持されている。また、グループプリンタ数は２、グループプリンタ名１のグループプリンタではメンバプリンタが３つあり、それぞれのメンバプリンタ名はＡ，Ｂ，Ｃであり、グループプリンタ名２では、対応しているメンバプリンタが３つあり、それぞれのメンバプリンタ名はＡ、Ｂ，Ｄであることを表している。この情報に従って図１１に示す如きＵＩが表示されることになる。
【００７６】
図１２中に示されるように、所定のグループプリンタにどのようなメンバプリンタが関連付けられているかは、テキストデータからなるメンバプリンタ名を利用して登録されており、グループプリンタが指定されると、それに関連付けられたメンバプリンタ名に従ったメンバプリンタ各が特定され、インストールに利用される。尚、グループプリンタとメンバプリンタとを関連付ける為の関連付情報はメンバプリンタ名に限定されるものではなく、例えば、メンバプリンタ名とは別途用意されたプリンタＩＤなどを利用することによっても実現できる。
【００７７】
また、図１２に示される管理情報は図９のステップＳ９−６でサーバＰＣにファイルあるいはメモリ上にテーブル形式で保存及び管理され、図１０におけるステップＳ１０−５でクライアント側からも参照可能となっているものである。例えば、図１１のユーザーインターフェイスを介してグループプリンタ名１がユーザの指示に応じて選択されると、グループプリンタ名１のグループプリンタに係る情報を取得するべくクライアントからサーバＰＣに指示が発行される。これを受けたサーバＰＣではグループプリンタ名１にメンバプリンタ名Ａ、Ｂ、Ｃのメンバプリンタが図１２のテーブルに従い関連付けられているので、グループプリンタ名１のドライバ及び共有情報、設定情報、メンバプリンタ数、メンバプリンタ名Ａ、Ｂ、Ｃと、メンバプリンタ名Ａ、Ｂ、Ｃのプリンタドライバの実体及び各メンバプリンタドライバの共有情報、並びに設定情報をクライアントに提供する。
【００７８】
このようにサーバＰＣでは図１２のような情報を保持しているので、所定のグループプリンタの指示をクライアントから受けると、指示されたグループプリンタばかりでなく、そのグループプリンタに対応するメンバプリンタ及び付随する情報までもを一括してクライアントに提供することができる。
【００７９】
次に本実施形態における、プリンタを複数台使用して、前述の分散、同報、代行といった印刷処理を行う、印刷ジョブ制御システムについて説明する。
【００８０】
図１３は本システムにおいてアプリケーションから発行された印刷ジョブが、印刷ジョブ制御システムにおいてどのように処理されるかを示した図である。図１３において、本システムはクライアント（クライアント１０２〜１０４における機能構成）とサーバ（サーバ１０１における機能構成）から構成されている。サーバ側はＷｉｎｄｏｗｓＰｒｉｎｔＳｙｓｙｔｅｍと印刷ジョブ制御システムで構成されており、クライアントはサーバ上のプリンタドライバの共有によって関連つづけられているところを示している。
【００８１】
まずこの共有について説明すると、クライアント上のグループプリンタ２３０１およびメンバプリンタドライバ２３０２−１，２３０２−２は夫々Ｗｉｎｄｏｗｓのプリンティングシステムの枠組みの中で、サーバ上のグループプリンタドライバ６０３、スプーラ（Ｓｐｐｏｌｅｒ）６０４、メンバプリンタドライバであるＰＤＬドライバ６０２と共有プリンタドライバとして設定されている。図１３ではグループプリンタの共有設定の関係を破線双方向矢印２３−ｄで表している。
【００８２】
同様に、メンバプリンタ同士の共有設定については、ＰＤＬドライバ２３０２−１とＰＤＬドライバ６０２−１の共有プリンタの関係を破線２３−ｅで、ＰＤＬドライバ２３０２−２とＰＤＬドライバ６０２−２の共有プリンタの関係を破線２３−ｆで、ＰＤＬドライバ２３０２−３とＰＤＬドライバ６０２−３の共有プリンタの関係を破線２３−ｇでそれぞれ示している。前述したようにいずれの場合も共有プリンタはＷｉｎｄｏｗｓＰｒｉｎｔｉｎｇＳｙｓｔｅｍの仕組みを利用することにより実現可能であり、ＷｉｎｄｏｗｓＰｒｉｎｔｉｎｇＳｙｓｔｅｍの共有プリンタを調べる機能／共有プリンタに設定する関数を利用する機能を備えている。
【００８３】
次に、図１３を参照して印刷ジョブの流れについて説明する。通常、印刷の指示がされると文書作成ソフト等のアプリケーションプログラムは一連の描画命令をＯＳを介して生成し、生成された描画命令はプリンタドライバを経てＷｉｎｄｏｗｓ  Ｓｐｏｏｌｅｒに渡される。Ｗｉｎｄｏｗｓ  Ｓｐｏｏｌｅｒは、ユーザが選択したポートモニタにプリントジョブデータを渡してプリンタデバイスに送信させる手順をとる。
【００８４】
本実施形態では、ユーザはあらかじめ印刷ジョブ制御システム用のポートモニタ６２１（以降、本実施例ではジョブ制御ポートモニタと略記）を指定して印刷を指示する。クライアント上のアプリケーションプログラム６０１は一連の描画命令をＯＳを介して生成する。図中矢印２３−ａのルートで描画命令を受け取ったグループプリンタ２３０１では、汎用形式のドキュメントデータを生成し、これを２３−ｂのルートでＷｉｎｄｏｗｓ  Ｓｐｏｏｌｅｒ２３０３へ出力する。また、図中のグループプリンタ６０３に汎用形式のドキュメントデータを生成させる場合には、アプリケーションからの描画命令をグループプリンタ２３０１、Ｓｐｏｏｌｅｒ２３０３を介してグループプリンタドライバ６０３に投入し、Ｓｐｏｏｌｅｒ６０４に汎用ドキュメントデータを出力することとなる。
【００８５】
前述したようにグループプリンタ２３０１とグループプリンタ６０３はＷｉｎｄｏｗｓのプリンティングシステムの中で共有設定されている為、Ｓｐｏｏｌｅｒ２３０３に送られたジョブは、図中矢印２３−ｃのルートでサーバ側のＳｐｏｏｌｅｒ６０４に送られる。
【００８６】
Ｗｉｎｄｏｗｓ  Ｓｐｏｏｌｅｒ６０４は受け取った印刷データをポートモニタではなく、ジョブ制御ポートモニタ６２１にプリントジョブデータとして送信する。ジョブ制御ポートモニタ６２１はプリントジョブデータをプリンタデバイス６５０に送信するのではなく、印刷ジョブ制御システム７００内の印刷ジョブ制御システム用プリントサービス６２２（以降、本実施例ではジョブ制御プリントサービスと略記）に送信する。ジョブ制御プリントサービス６２２は、プリントジョブデータに対して、後述するような印刷ジョブ制御処理を行う。
【００８７】
印刷ジョブ制御システム用プリントマネージャ６２３（以降、本実施例ではジョブ制御プリントマネージャと略記）は、ユーザがジョブ制御プリントサービス６２２内部でプリントジョブがどのような状態にあるかを調べたり、プリントジョブを操作したりするためのユーザインタフェース（ＵＩ）を提供するプログラムである。ジョブ制御プリントマネージャ６２３はジョブ制御プリントサービス６２２のソフトウェアのインタフェース（ＡＰＩ）を介して、ジョブ制御プリントサービス６２２と情報・指示をやり取りしている。
【００８８】
印刷ジョブ制御システム７００内の印刷ジョブ制御システム用サーバ６３０（以降、本実施例ではジョブ制御サーバと略記）は、複数のクライアントからの複数の印刷要求に応じてジョブ制御プリントサービス６２２がプリンタデバイス６５０にプリントジョブデータを送信するタイミングを集中制御（スケジューリング）している。
【００８９】
印刷ジョブ制御システム用マネージメントコンソール６３３（以降、本実施例ではジョブ制御マネージメントコンソールと略記）は、ジョブ制御サーバ６３０が持つソフトウェアがアクセスするためのＡＰＩを介してジョブ制御サーバ６３０と情報・指示をやり取りすることで、印刷ジョブ制御システム全体を監視することができる。
【００９０】
また、ジョブ制御サーバ６３０はデバイス情報コントロールモジュール６３１を用いて各プリンタデバイス６５０と通信を行い、各プリンタ内の印刷ジョブや動作状態に関する情報を入手したり、操作を行ったりする。入手した情報はジョブ制御プリントサービス６２２に渡すことができる。
【００９１】
ジョブ制御プリントサービス６２２は、論理ポート（Ｌｏｇｉｃａｌ  Ｐｏｒｔ）７１０により前述した汎用形式のドキュメントデータを含むプリントジョブを受け取り、汎用印刷ファイル生成部７０２によって、このプリントジョブに対して汎用印刷ファイルを生成する。
【００９２】
そして、デスプーラ７０１がその汎用印刷ファイルをもとに描画コマンドを生成し、（ｃ）の経路で描画コマンドを受け取ったＰＤＬドライバ６０２がその描画コマンドをプリンタデバイス６５０が解釈可能なＰＤＬファイルにする。ここで、複数のＰＤＬドライバ６０２には後述する”機能制御可能なドライバ”と”機能制御不可なドライバ”とが混在している場合もある。図１３では、ジョブ制御プリントサービス６２２で、このプリントジョブに対して分散印刷などプリントジョブを２つに分けるジョブ制御が行われる例で、２つのメンバジョブが生成された例を２つの矢印（ｃ）で示している。ＰＤＬドライバ６０２で生成されたＰＤＬファイルはＷｉｎｄｏｗｓ  スプーラ６０４、ジョブ制御ポートモニタ６２１を経て（ｄ）、再びジョブ制御プリントサービス６２２に渡される  （ｅ）。ジョブ制御プリントサービス６２２は、ジョブ制御サーバ６３０の指示に従ってＰＤＬのプリントジョブデータをプリンタデバイス６５０に送信する（ｆ）。
【００９３】
ジョブ制御プリントサービス６２２は、生成した汎用印刷ファイル中の印刷指示書の指示にしたがって、一つの汎用印刷ファイルを複数のプリントジョブに論理的に分割してそれぞれ別のプリンタデバイスに送信したり、一度送信したプリントジョブデータを別のプリンタデバイスに送信し直したりする。図１３中の（ｃ）、（ｄ）、（ｅ）、（ｆ）はそのような場合のプリントジョブデータの経路を示している。
【００９４】
次にＷｉｎｄｏｗｓが提供するＰｒｉｎｔＳｙｓｔｅｍ８００と印刷ジョブ制御システム７００における印刷ジョブの関係と処理概要をさらに詳しく述べる。
【００９５】
図１３中で印刷ジョブ制御システム７００は、印刷ジョブ制御システムの範囲を示している。また、出力ポート（Ｏｕｔｐｕｔ  Ｐｏｒｔ）７１１は、ジョブ制御プリントサービス６２２のプロキシ出力ポート（Ｐｒｏｘｙ  Ｏｕｔｐｕｔ  Ｐｏｒｔ）７１２と関連付けられ、管理されている。本実施形態では、実際のプリントジョブデータはプロキシ出力ポート７１２に保持される。ジョブ制御サーバ６３０は、プリントジョブデータ自体の送信処理は行わず、ジョブ制御プリントサービス６２２に対して印刷ジョブの送信指示のみを行う。その指示に応じてジョブ制御プリントサービス６２２はプリントジョブデータをデバイス６５０に送信する。
【００９６】
この処理において本実施例ではジョブ制御サーバ６３０は印刷ジョブ制御システム７００として、ジョブ制御プリントサービス６２２と同じサーバＰＣ上にインストールされ存在するが、ジョブ制御サーバ６３０を印刷ジョブ制御システムとして別のＰＣ上にインストールし、サーバのごとく動作することも可能である。この場合実際のジョブ制御サーバ６３０が管理している出力ポート７１１はそれぞれのジョブ制御プリントサービス６２２のプロキシ出力ポート７１２と関連付けられ、ひとつのポートに関連づけられた各ＰＣ上のプロキシ出力ポート全てを統一的に管理することとなる。
【００９７】
次に、印刷ジョブ制御システム７００が、代行印刷、分散印刷、同報印刷などの付加価値的な印刷を行う場合の処理を説明する。尚、ここでの付加価値的な印刷は、クライアントＰＣがサーバＰＣから共有されたメンバプリンタを含むグループプリンタをセットアップし、該セットアップされたグループプリンタに関連付けられた出力方法に従う印刷指示を実行した際に処理されるものとする。
【００９８】
印刷ジョブ制御システム７００が、代行印刷、分散印刷、同報印刷などの付加価値的な印刷を行う場合には、前述のようにユーザまたはアプリケーション６０１はグループプリンタ２３０１が割り当てられたプリンタに印刷ジョブを発行しなければならない。ジョブ制御プリントサービス６２２は、グループプリンタ２３０１によって処理されたジョブデータをジョブ制御ポートモニタ６２１を介して汎用形式のドキュメントデータおよび印刷指示情報の一連のジョブデータとして受け取る。論理ポート（Ｌｏｇｉｃａｌ  Ｐｏｒｔ）７１０は、このジョブの受け入れ口である。ジョブ制御プリントサービス６２２は論理ポート７１０で受け取ったパケット化されたデータジョブを受け取り、汎用印刷ファイル生成部７０２に渡す。汎用印刷ファイル生成部は前述した、受け取ったデータジョブを汎用印刷ファイル７０３の形式に生成しなおし、汎用印刷ファイル７０３として書き出す。
【００９９】
次にデスプーラ（Ｄｅｓｐｏｏｌｅｒ）７０１がこの汎用印刷ファイル７０３を読み込み、ＰＤＬドライバが割り当てられた別のプリンタにジョブ（メンバジョブ）を発行して印刷を行わせる。この時、デスプーラ７０１は前述の図６で説明した汎用印刷ファイルの印刷指示部６−ａを解釈し、ドキュメントデータ部６−ｂのドキュメントデータを加工して、ＷｉｎｄｏｗｓのＧＤＩに変換し、各プリンタドライバに対して印刷指示を行い印刷ジョブを発行する。例えば印刷体裁指定部に、２−ＵＰの指示が記録されていた場合、用紙１枚に２ページ分のドキュメントデータを縮小レイアウトする。また分散印刷あるいは同報印刷の場合には、それらの設定に応じて印刷指示部６−ａに記述されている複数のメンバプリンタにジョブを発行する。代行印刷の場合は、代行する条件が満たされた時に、自動代行では事前の設定、手動代行ではユーザの操作に応じてメンバジョブを発行する。図では前述のとおり分散印刷などにおけるメンバジョブを２つに分けて発行している様子を示している。
【０１００】
また、デスプーラ７０１は各メンバプリンタにジョブを発行する際、メンバプリンタドライバに対応する印刷指示として、各メンバプリンタのＤＥＶＭＯＤＥを作成する必要があるが、このＤＥＶＭＯＤＥは印刷指示部６−ａに記載された内容を適宜各メンバプリンタのＤＥＶＭＯＤＥに反映させて生成する。
【０１０１】
ジョブ制御プリントサービス６２２は、ＰＤＬドライバ６０２によってレンダリングされた、それぞれのメンバジョブのＰＤＬデータをジョブ制御ポートモニタ６２１を介して受け取り、受け取ったジョブに関する情報をサーバ側に知らせ、ジョブデータは自身のプロキシ出力ポート７１２Ａ，Ｂで一時保持する。その後、ジョブ制御サーバ６３０からの送信指示を受けた後にプリントデバイス６５０に送信する。
【０１０２】
次にグループプリンタ２３０１が備えられたクライアントにて表示されるプリンタ情報の取得方法について説明する。
【０１０３】
図１３において、印刷ジョブ制御システム内のプリンタ情報管理部７０４は、前述したセットアップ時にユーザが入力したプリンタ情報および、ジョブ制御サーバ６３０からデバイス状態を取得し、管理している部分である。
【０１０４】
また、プリンタ情報管理部２３０４はクライアント内にも存在し、サーバ内のプリンタ情報管理部７０４と通信することが可能である。実線２３−ｊはその関係を示したものである。グループプリンタ２３０１はプリンタ情報の取得のために、クライアント内のプリンタ情報管理部２３０４のＡＰＩをコールし取得する。ＡＰＩコールされたプリンタ情報管理部２３０４は、サーバ上のプリンタ情報管理部７０４に２３−ｊの経路で問い合わせ、プリンタ情報を取得し、グループプリンタに返す。
【０１０５】
プリンタ情報のアップデートは、グループプリンタ２３０１の指示により、動的にプリンタ情報管理部７０４がジョブ制御サーバ６３０に問い合わせて最新の情報を取得してもよいし、また、プリンタ情報管理部７０４がジョブ制御サーバ６３０の通知を受けて自動的にアップデートする方法でもよい。例えば最新の情報としては、グループプリンタに関連付けられたメンバプリンタの組み合わせがサーバＰＣ上で変更されて登録されたなどの情報が挙げられる。
【０１０６】
ここで、本実施形態における、共通設定領域と、拡張設定領域といった記憶領域をもつプリンタドライバを持つプリンタを複数台使用して、前述の分散、同報、代行といった印刷処理を行う、印刷ジョブ制御システムのためのプリンタドライバのＵＩ制御について説明する。この説明はクライアントＰＣがサーバＰＣにて共有設定されたメンバプリンタを含むグループプリンタをセットアップした際に、どのような種別のメンバプリンタの組み合わせがなされているかに応じてなされるものであり、”機能制御可能なドライバ”と”機能制御不可なドライバ”とがどのように組み合わされているかに応じて処理される。
【０１０７】
ここで、機能制御可能／不可能について説明をすると、機能制御可能なメンバプリンタドライバとは、グループプリンタドライバが備えるＳＤＫ（ＳｏｆｔｗａｒｅＤｅｖｅｌｏｐｍｅｎｔＫｉｔ）を介して操作可能なものを指す。グループプリンタドライバはＳＤＫに対応するメンバプリンタに対しては、例えばメンバプリンタドライバの拡張設定項目を設定したり、グレーアウト表示などの表示制御を行えたり、様々な事項についての問合せを行うことができる。機能制御不可能とは機能制御可能の逆のメンバプリンタドライバを指す。
【０１０８】
図１４は、本実施形態によるグループプリンタのＵＩによる制御手順を示すフローチャートである。なお、図１４に係る処理は、クライアントにおいて、インストールされたグループプリンタドライバを用いて行われる。アプリケーションからグループプリンタへのＵＩ表示要求が来ると、処理はステップＳ１４−１へ進む。
【０１０９】
ステップＳ１４−２では、印刷ジョブ制御システムＡＰＩを使って、グループプリンタを構成するメンバプリンタドライバの識別ＩＤ（例えばプリンタドライバ名）を問い合わせる。ここでは、グループプリンタを構成する全てのメンバプリンタドライバの識別ＩＤを獲得する。ステップＳ１４−３では、グループプリンタに対して登録されている各メンバプリンタドライバの識別ＩＤよりメンバプリンタドライバの能力を取得する。ここでは、グループプリンタを構成する全てのメンバプリンタドライバに対して、ドライバ機能の取得がドライバ設定情報の拡張領域の部分まで可能かつドライバＵＩ制御が可能な“機能制御可能なドライバ”か、または、それ以外の“機能制御不可なドライバ”かを判定するための情報が取得される。
【０１１０】
ステップＳ１４−４では、ステップＳ１４−３で取得した機能制御可否の情報より、メンバプリンタの構成を判定する。この判定の結果、全てのメンバプリンタが“機能制御可能なドライバ”である場合はステップＳ１４−５へ、それ以外の場合はステップＳ１４−６へ進む。
【０１１１】
図１５に本実施形態のメンバプリンタの構成と、設定可能項目の対応を示す。また、図１６に、共通設定項目・拡張設定項目と各設定項目の対応を示す。
【０１１２】
なお、本実施形態では、共通設定項目と拡張設定項目を図１６の如く分類し、規定しているが、印刷ジョブ制御システムを運用するＯＳの違いによっては、設定項目の分類が異なる場合や設定可能項目に変更がある場合があることはいうまでもない。図１６と分類項目が異なっていても、図１４に示すＵＩ制御フローが有効であることは明らかである。
【０１１３】
ステップＳ１４−５では、全てのプリンタドライバが機能制御可能である場合のＵＩ（機能制御可能なＵＩという）を表示する。図１８は、ステップＳ１４−５による機能制御可能なＵＩのための処理手順を示すフローチャートである。
【０１１４】
まず、ステップＳ１８−１において、各メンバプリンタドライバの個々の共通設定項目に関する能力を問い合わせ、機能のコンフリクト処理を行い、その結果に基づきグループプリンタＵＩで表示する項目の選択を行う。機能のコンフリクト処理とは、グループプリンタの対象となる各メンバプリンタドライバに対して、各設定項目の機能のあり、なしをチェックし、対象となるメンバープリンタドライバ全てにその機能がある場合にグループプリンタＵＩでその機能を設定可能項目として扱い、また、１台でもその機能がないものがあればその項目については設定不可項目として扱う処理である。
【０１１５】
具体例を示して上述した機能のコンフリクト処理を説明する。図１７中のプリンタドライバＡは、グループプリンタを表しプリンタドライバ、Ｂ，Ｃ，ＤはグループプリンタＡを構成するメンバプリンタドライバを表す。また、表中の、“あり”、“なし”は各メンバプリンタドライバが製本印刷機能、ステイプル印刷機能、パンチ機能をサポートしているかどうかを示したものである。
【０１１６】
まず製本印刷機能に着目すると、メンバプリンタＢ、Ｄには製本印刷機能があるがメンバプリンタＣにはその機能がないため、グループプリンタＡの製本印刷機能は“なし”となる。同様に、ステイプル機能は、Ｂ，Ｃ，Ｄ全てのメンバプリンタドライバが有しているため、グループプリンタＡのステイプルは“あり”となる。更に、パンチ機能は、Ｂ，Ｃ，Ｄ全てのメンバプリンタドライバに存在しないため、グループプリンタＡのパンチ機能は“なし”となる。
【０１１７】
ステップＳ１８−２では、ステップＳ１８−１で示した機能のコンフリクト処理を各メンバプリンタドライバの拡張設定項目に関して行う。以上のコンフリクト処理の結果、グループプリンタドライバとして機能のないものについては、ＵＩ上で設定が行えないよう、対応する項目をグレーアウト表示、もしくは非表示にするといったＵＩ制御を行う。グループプリンタドライバとして機能があると判定された項目についてはそのようなＵＩ制御は行わない。
【０１１８】
図２１にＵＩのグレーアウト表示制御が施された一例を示す。設定項目の両面印刷２１０２、製本印刷２１０３のダイアログボックスが上述のＵＩ制御（グレーアウト表示）を施した部分である。尚、グループプリンタのＵＩにおけるこのようなの表示制御としては、グレーアウト表示制御に限定されるものではなく、非表示とするような制御も適用可能であることは上述のとおりである。
【０１１９】
また、本ステップでは、ユーザの指定により、たとえば「製本印刷」が指定された時のパンチや、ステイプルの指定といった、機能上ありえない組み合わせが設定できないようＵＩ制御を行い設定項目に矛盾が発生しないようにする。
【０１２０】
次に、ステップＳ１８−４では、グループプリンタＵＩ上で設定対象のメンバプリンタが指定されたか否かを判定する。メンバプリンタが指定されておれば、ステップＳ１８−５へ進み、指定されたメンバプリンタドライバのＵＩを開き、詳細設定を可能とする。こうして、グループプリンタＵＩ上に設定項目がない項目について、メンバプリンタのＵＩを開き詳細に設定させることができる。
【０１２１】
なお、メンバプリンタドライバＵＩを開いた場合、グループプリンタで設定可能な項目についても設定可能となり、同一機能について２重に設定がなされる可能性がある。このため、以下に示すＵＩ制御を施し表示を行う。
【０１２２】
▲１▼メンバプリンタが“機能制御可能なドライバ”である場合、グループプリンタＵＩ上の設定項目と競合する項目については、メンバプリンタドライバＵＩでの設定が行えないように、項目をグレーアウト表示、もしくは非表示としてＵＩ制御する、
▲２▼メンバプリンタが“機能制御不可なドライバ”である場合、共通設定項目についてはメンバプリンタドライバで設定された設定でＵＩ表示する。ＵＩ表示後、メンバプリンタドライバＵＩ上でその項目について変更がなされた場合、ドライバＵＩを閉じるステップでグループプリンタで設定された設定項目の情報を対応するメンバプリンタドライバの共通設定項目に上書きし、メンバプリンタＵＩ上での設定変更を許さない。
【０１２３】
また、上書き処理を行う際に、メンバプリンタＵＩ上での設定変更が無効であるといった警告表示を行うことも可能である。なお、本ステップでは、対象となるメンバプリンタ全て“機能制御可能なドライバ”であるため上記の▲１▼のＵＩ制御が行われる。
【０１２４】
図１４に戻り、ステップＳ１４−４で“機能性が可能なドライバ”以外のドライバが存在すると判定されると処理はステップＳ１４−６へ進み、これに対応したＵＩ（以下、機能制御不可な場合のＵＩという）を表示する。図１９は、ステップ１４−６における、機能制御不可な場合のＵＩに関る処理の詳細を表したフローチャートである。
【０１２５】
ステップＳ１４−６ではメンバプリンタドライバの構成がステップ１４−５の場合と異なり“機能制御可能なドライバ”と“機能制御不可能なドライバ”とが混在している。したがって、グループプリンタＵＩで設定可能な項目は、共通に設定情報の読み書きが可能な基本設定項目に限定される。
【０１２６】
ステップＳ１９−１では、ステップＳ１８−１と同様に各メンバプリンタドライバの個々の共通設定項目に関する能力を問い合わせて、機能のコンフリクト処理を行い、その結果に基づきグループプリンタＵＩで表示する項目の選択を行う。そして、ステップＳ１９−２において、ステップＳ１４−１で行ったＵＩコンフリクト処理の結果に基づきグループプリンタＵＩの表示を行う。ここでは、拡張設定項目と、コンフリクト処理によって使用できないと判定された機能については、ＵＩ上で設定が行えないよう項目をグレーアウト表示もしくは非表示とする。
【０１２７】
ステップＳ１９−３では、グループプリンタＵＩ上で設定対象のメンバプリンタ指定されたか否かを判定する。メンバプリンタが指定されている場合は、ステップＳ１９−４へ進み、指定されたメンバプリンタドライバのＵＩを開き、詳細設定を可能とする。こうして、グループプリンタＵＩでは設定が不可能であった拡張設定項目及び各メンバプリンタが持つ固有の設定項目について詳細設定を行うことが可能となる。
【０１２８】
図２０は、ステップＳ１９−４の詳細を表したフローチャートである。ステップＳ２０−１では、メンバプリンタドライバの種別判定を行い、対象ドライバが“機能制御可能なドライバ”であれば、ステップＳ２０−２へ、それ以外であればステップＳ２０−３へ進む。ステップＳ２０−２では、共通設定項目に対してＵＩのグレーアウト制御等を施したＵＩ表示を行い、ステップＳ１８−５で上述した▲１▼のＵＩ制御規則に則してメンバプリンタドライバの共通設定項目ＵＩの制御を行う。ステップＳ２０−３では、ステップＳ１８−５で上述した▲２▼のＵＩ制御規則に則して、メンバプリンタドライバの共通設定項目ＵＩの制御を行う。
【０１２９】
再び図１４に戻り、ステップＳ１４−７でグループプリンタＵＩ上のＯＫ（設定終了）ボタンがクリックされたか判定し、クリックされていればステップＳ１４−８へ進む。ＯＫ（設定終了）ボタンがクリックされていない場合はステップＵＩを表示し続けるがごとくＳ１４−７からステップＳ１８−３或いはステップＳ１９−２に戻る。
【０１３０】
ステップＳ１４−８では、グループプリンタで設定した項目が各メンバプリンタドライバの設定項目として矛盾がないかどうかをチェックする。たとえば、
プリンタＡでは、Ａ４用紙にステイプル可能な位置は用紙左上のみ、
プリンタＢでは、Ａ４用紙にステイプル可能な位置は用紙左下のみ、
といった様に、プリンタにはデバイスのもつ機能に密接に関連した項目があり、本ステップでは、各メンバプリンタに設定機能上ありえない組み合わせについてのコンフリクトチェックを行なう。また、この他に、各メンバプリンタドライバに対して、グループプリンタＵＩ上で設定した項目が、各メンバプリンタドライバの設定項目として反映可能かどうかを、メンバプリンタドライバを対象にチェックを行う。
【０１３１】
ステップＳ１４−９において、ステップＳ１４−８で行ったコンフリクトチェックの結果がＯＫであった場合、すなわち、グループプリンタＵＩ上で設定した設定項目が全てのメンバプリンタについて妥当であった場合には、ステップＳ１４−１２に進み、グループプリンタＵＩの表示を終了する。
【０１３２】
一方、ステップＳ１４−９において、設定項目にコンフリクトが発生する項目があると判定された場合には、ステップＳ１４−１０へ進む。ステップＳ１４−１０では、「グループプリンタＵＩ上で設定項目を再設定するか、もしくは、現状の設定項目で印刷処理を行うか」といったメッセージと共に、再設定、強行ボタンをＵＩ表示する。再設定ボタンが押された場合には、メンバプリンタの構成によって、ステップＳ１４−１１からステップＳ１８−３またはステップＳ１９−２の直前に戻る。また、強行ボタンが押された場合には、ステップＳ１４−１１からステップ１４−１２に進みグループプリンタＵＩの表示を終了する。
【０１３３】
次に、本実施形態における前述のＵＩ（例えば図２１）で設定された情報の記録と前述の図６における汎用印刷ファイルとの関係について説明する。
【０１３４】
本実施形態においては、前述のＵＩで設定された情報について、グループプリンタのドライバ設定情報（ＤＥＶＭＯＤＥ）は共通領域、拡張領域共に、前述の図６で説明した汎用印刷ファイル内の印刷体裁指示部６０３に記録される。また、各メンバプリンタのドライバ設定情報（ＤＥＶＭＯＤＥ）は、共通領域、拡張領域共に、汎用印刷ファイル内の対応するメンバプリンタドライバ設定情報部６０８に記録されることとなる。
【０１３５】
その後、本汎用印刷ファイルは前述図１３を用いて説明した印刷ジョブ制御システムを使ったプリンティング処理にて利用され、本実施形態における代行印刷、分散印刷、同報印刷などの付加価値的な印刷を行うことが可能となる。
【０１３６】
〔第２実施形態〕
第１実施形態では、所定のグループプリンタをクライアントからサーバＰＣに対して指示し、サーバＰＣから指定したグループプリンタを構成するメンバプリンタドライバをクライアントにて取得するように説明したが、これは図１４、図１８、図１９、図２０の各フローチャートに基づく処理を実行するにあたってのグループプリンタの設定画面の各項目の有効／無効を制限する為の情報として取り込むものであった。
【０１３７】
そこで、更なる応用例としては、メンバプリンタに対応するメンバプリンタドライバそのものを全て取得するのではなくて、図１４、図１８、図１９、図２０の各フローチャートを実行するのに必要な情報のみを取得するようにすることが考えられる。これは、各プリンタドライバに対応したページ記述言語生成モジュールを除き、各メンバプリンタ（メンバプリンタドライバ）の識別ＩＤと能力の情報をクライアントに取得する処理に対応することとなる。
【０１３８】
尚、図１〜図２１において説明してきた仕組みは第２の実施形態においても基本的には同様のものとするが、図１０のステップＳ１０−１１、Ｓ１０−１５にて例えばページ記述言語生成モジュールなどを除くメンバプリンタの情報がクライアントにインストールされることとなる。
【０１３９】
このようにページ記述言語生成モジュールを除いて、グループプリンタの設定画面の表示制御を行う為の情報を取得するようにすれば、サーバＰＣとクライアントとの通信負荷を第１の実施形態に比べて軽減できると共に、クライアント側のメモリ量も軽減することができるようになる。
【０１４０】
更にインターネットプロトコルに従う各種通信をクライアントとサーバＰＣとの間で行わせることにより、第１実施形態にて説明してきたインターネットを介したインターネットプリンティングに適用することなども想定される。
【０１４１】
〔その他の実施形態〕
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成される。
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１４２】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピーディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０１４３】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１４４】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１４５】
以上説明したように、上記実施形態によれば、複数の物理プリンタ（メンバプリンタ）の各々に対応するセットアップ用データを格納するサーバ（プリンタサーバ）とこのサーバを介して物理プリンタを利用可能なクライアントを含む印刷システムにおいて、まずサーバにおいて、複数の物理プリンタを含んで構成される仮想プリンタ（グループプリンタ）が登録される（Ｓ９−４〜Ｓ９−６）。そして、クライアントにおいて、サーバに登録された仮想プリンタの一つが指定されると（Ｓ１０−５、Ｓ１０−６）、指定された仮想プリンタがクライアントよりサーバに通知される。この指定された仮想プリンタの通知を受けて、指定された仮想プリンタとこの仮想プリンタに含まれる物理プリンタのためのセットアップ用データ（例えばプリンタドライバ）がサーバより当該クライアントに送信される（Ｓ１０−８〜Ｓ１０−１２）。
【０１４６】
このため、クライアントでは所望の仮想プリンタを指定するだけで、当該仮想プリンタに設定された出力方法のみならず当該仮想プリンタを構成する物理プリンタのセットアップ用データを自動的に取得することができる。従って、例えば、セットアップ用データが指定された仮想プリンタに含まれる物理プリンタのプリンタドライバを含むようにすれば、仮想プリンタを指定することによって当該仮想プリンタに含まれる物理プリンタのドライバが自動的にインストールされることになる。すなわち、サーバにて管理されるメンバプリンタを含むグループプリンタを、クライアントにて容易にセットアップする仕組みが提供されることになる。ユーザはサーバに管理されるグループプリンタを指定するだけで、関連するメンバプリンタを字装置に取り込むことができることになる。更にこの場合には図９のフローチャートに従って設定された仮想プリンタポートや出力方法などの各種設定をもクライアントにセットアップすることが可能となる。よって、ユーザによる、仮想プリンタの出力方法や、仮想プリンタポートや、メンバプリンタの関連付け及びメンバプリンタのプリンタポートなどの煩雑な各種設定を軽減することが可能となる。
【０１４７】
また、上記実施形態によれば、クライアントは、送信工程で送信されたセットアップ用データに基づいて、仮想プリンタの設定用インターフェースを提供する。このため、各クライアントで仮想プリンタによる出力形態や出力方法等を所望に設定することが可能となる。
【０１４８】
また、特に上記第２実施形態によれば、上記セットアップ用データとして、設定用インターフェースの各設定項目の有効／無効を判定するのに利用可能な情報を含むデータがクライアントに提供される。実際のＰＤＬデータをプリンタサーバにて生成する構成とした場合、ＰＤＬを生成するモジュール部分はクライアントに取り込む必要性は本来はない。この場合、クライアントには、コンフリクト処理を行うための情報が提供されればよいことになる。すなわち、クライアントへ提供されるメンバプリンタの情報はプリンタドライバそのものに限定されるものではなく、コンフリクト処理に必要な部分のみがクライアントに取得されるようにしてもよい。
【０１４９】
また、上記実施形態によれば、セットアップ用データは、指定された仮想プリンタに含まれる物理プリンタのプリンタドライバを含み、クライアントは送信された物理プリンタドライバに対して所有する機能を問い合わせ、該物理プリンタドライバが所有する機能を取得し、取得された物理プリンタドライバの能力に応じて仮想プリンタの設定用インターフェースにおける設定可能な項目を判定し、この判定結果に基づいて設定用インターフェースにおける設定画面を表示制御する。特に、実施形態では、上記のような設定用インターフェースの提供機能を仮想プリンタドライバに持たせている。
【０１５０】
すなわち、実施形態によれば、仮想プリンタ（グループプリンタ）に束ねられた複数の物理プリンタ（メンバプリンタ）に対して印刷ジョブを制御する印刷処理システムにおいて、１つの仮想プリンタが共有プリンタとして設定されているとき、該グループプリンタがそれぞれのメンバプリンタの能力を問い合わせ、ＵＩの制御を行うことを可能としている。また、サーバ上で設定された各メンバのプリンタ情報を、クライアント側で取得し、表示することを可能としている。こうして、クライアントは、取り込んだメンバプリンタドライバを利用して適切なコンフリクト処理が施されたグループプリンタ設定画面を表示することが可能となる。
【０１５１】
また、上記実施形態によれば、設定用インターフェースを介して設定された設定に基づいて、仮想プリンタに含まれる物理プリンタに対して設定指示を行われる。この結果、仮想プリンタドライバによる設定用インターフェースを持ち知恵設定された内容で印刷を実行することができ、ユーザは所望の印刷結果を得られることになる。
【０１５２】
【発明の効果】
以上説明したように、本発明によれば、複数のメンバプリンタから構成されるグループプリンタを利用して印刷を行う環境において、効率よくクライアントにグループプリンタとメンバプリンタをインストールすることが可能となる。
【図面の簡単な説明】
【図１】実施形態による印刷システムの構成を説明するブロック図である。
【図２】実施形態による情報処理置の構成を説明するブロック図である。
【図３】図２に示したＲＡＭ２０２のメモリマップの一例を示す図である。
【図４】図２に示したＦＤ２０４のメモリマップの一例を示す図である。
【図５】図２に示したＦＤドライブ２０３に対して挿入されるＦＤ２０４との関係を示す図である。
【図６】汎用印刷ファイルの構造を示す図である。
【図７】グループプリンタのＵＩの例を示す図である。
【図８】グループプリンタのＵＩの例を示す図である。
【図９】サーバにおけるセットアップの手順を示したローチャートである。
【図１０】クライアントにおけるセットアップの手順を示したフローチャートである。
【図１１】セットアップ画面の例を示す図である。
【図１２】プリンタ管理情報のテーブルの様子を示す図である。
【図１３】実施形態による情報処理装置のプリント制御モジュール構成を説明するブロック図である。
【図１４】グループプリンタドライバのＵＩ制御を説明するフローチャートである。
【図１５】メンバプリンタの構成と、設定可能項目の対応を示す図である。
【図１６】共通設定項目・拡張設定項目と各設定項目の対応を示す図である。
【図１７】グループプリンタドライバのＵＩ表示のための機能コンフリクトの例を示す図である。
【図１８】グループプリンタドライバのＵＩ制御を説明するフローチャートである。
【図１９】グループプリンタドライバのＵＩ制御を説明するフローチャートである。
【図２０】グループプリンタドライバのＵＩ制御を説明するフローチャートである。
【図２１】グループプリンタのＵＩの例を示す図である。
【図１】
2004240589.tif 000003
【図２】
2004240589.tif 000004
【図３】
2004240589.tif 000005
【図４】
2004240589.tif 000006
【図５】
2004240589.tif 000007
【図６】
2004240589.tif 000008
【図７】
2004240589.tif 000009
【図８】
2004240589.tif 000010
【図９】
2004240589.tif 000011
【図１０】
2004240589.tif 000012
【図１１】
2004240589.tif 000013
【図１２】
2004240589.tif 000014
【図１３】
2004240589.tif 000015
【図１４】
2004240589.tif 000016
【図１５】
2004240589.tif 000017
【図１６】
2004240589.tif 000018
【図１７】
2004240589.tif 000019
【図１８】
2004240589.tif 000020
【図１９】
2004240589.tif 000021
【図２０】
2004240589.tif 000022
【図２１】
2004240589.tif 000023