(57)【要約】【課題】複数のプリンタを用いた印刷処理を行うシステムにおいて、仮想プリンタの出力方法の特性を加味した最適な印刷設定を行うことができるようにする。【解決手段】グループプリンタドライバＵＩ(12)では、エラー代行印刷に関与する複数のプリンタすべてに共通する項目の印刷設定を行うとともに、各プリンタにエラー代行印刷における代行先候補としての優先度を指定する。ここで、グループプリンタドライバＵＩ(12)の表示とともに、優先度第１位に指定されたプリンタ独自の印刷設定を行うためのプリンタドライバＵＩ(16)を同一画面上に表示する。【選択図】  図１９
2004213111.tif 000002
【特許請求の範囲】
【請求項１】
複数のメンバプリンタを利用して所定の出力方法を実行可能な印刷制御を行うためのコンピュータプログラムであって、
第１出力方法に対応した仮想プリンタが指示されることに応じて前記第１出力方法の仮想プリンタに関連した複数のメンバプリンタの機能に基づく第１ユーザインタフェースを起動する起動ステップを有し、
前記起動ステップは、第２出力方法に対応した仮想プリンタが指示されたことに応じて代表となる代表メンバプリンタに対応する第２ユーザインタフェースを起動する
ことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のプリンタを用いた印刷制御技術に関する。
【０００２】
【従来の技術】
近年、ネットワーク機器が一般に利用され、ネットワーク上に多数のパソコン（以下、ＰＣ）やプリンタが接続されるようになった。このようなネットワーク環境では、さまざまな形態の印刷ジョブ制御システムを構築して効率的な印刷を行わせることが可能である。印刷ジョブ制御システムとしては例えば、ページ数の多いドキュメントあるいは部数の多いドキュメントについては、印刷時間の短縮を図るために、いったん印刷ジョブをスプールし、複数のプリンタに頁ごとあるいは部数ごとに分散して出力するシステム（分散印刷システム）が知られている。
【０００３】
また、カラーページとモノクロページとが混在する１つのドキュメントに対して、印刷時のコストおよび印刷時間の短縮を図るために、カラーページはカラープリンタへ、モノクロページはモノクロプリンタへ分散して出力するシステム（カラー・モノクロ分散印刷システム）が知られている。
【０００４】
さらには、１つのドキュメントを一度の印刷指示で、複数のプリンタに同時に送信し印刷するシステム（同報印刷システム）や、印刷ジョブを送信したプリンタでエラーが発生した場合に、自動的に他のプリンタに切り替えて印刷するシステム（エラー代行印刷システム）も知られている。
【０００５】
ところで、ネットワークに接続された複数のプリンタを用いて構成される上記のような印刷ジョブ制御システムにおいて、印刷時の設定をプリンタ毎に行うのは煩わしい。そのため一般には、システムにおける各プリンタは１つの仮想プリンタ（グループプリンタドライバ）からの印刷指示に基づき動作するように構成し、これによりユーザはこのグループプリンタドライバ（印刷ユーティリティー）に対してのみ印刷設定を行えばすむようになっている。さらに仮想ジョブとしての分散印刷を採用した仮想プリンタにおいて、複数のプリンタの機能に基づく論理和／論理関の演算結果を仮想プリンタのユーザインタフェース（ＵＩ）に反映させ、複数のプリンタに対してまとめて設定を可能とする技術が知られている。
【０００６】
以上のような技術の詳細は、例えば特許文献１を参照されたい。
【０００７】
【特許文献１】
特開2001-290625号公報
【０００８】
【発明が解決しようとする課題】
しかし、仮想ジョブとしては、分散印刷の他にも、上述したようには、カラー・モノクロ分散印刷や同報印刷や代行印刷などの様々な出力方法に対応するものがあり、それら様々な種類の仮想ジョブ及び対応する仮想プリンタに対して、従来から知られているような規則に従う仮想プリンタのＵＩ制御を施すと、夫々の仮想ジョブの特性を十分に考慮したような使い勝手の良いＵＩを提供するにはいたっていなかった。
【０００９】
例えば、エラー代行印刷システムでは、代行時に使われる候補として複数のプリンタがあるような場合、グループプリンタドライバ設定用のＵＩ上で、すべてのメンバプリンタに共通の設定しかできないようにすると、最初に利用されるメンバプリンタの特性を十分に生かすことができないという問題が考えられる。
【００１０】
本発明はこのような課題に対処すべくなされたものであり、複数のプリンタを用いた印刷処理を行うシステムにおいて、仮想プリンタの出力方法の特性を加味した最適な印刷設定を行うことができるようにすることを目的とする。
【００１１】
【課題を解決するための手段】
本発明の一側面は、複数のメンバプリンタを利用して所定の出力方法を実行可能な印刷制御を行うためのコンピュータプログラムに係り、第１出力方法に対応した仮想プリンタが指示されることに応じて前記第１出力方法の仮想プリンタに関連した複数のメンバプリンタの機能に基づく第１ユーザインタフェースを起動する起動ステップを有し、前記起動ステップは、第２出力方法に対応した仮想プリンタが指示されたことに応じて代表となる代表メンバプリンタに対応する第２ユーザインタフェースを起動することを特徴とする。
【００１２】
【発明の実施の形態】
以下、図面を参照して本発明の好適な実施形態について詳細に説明する。
【００１３】
＜印刷処理システムの構成例＞
図１は、実施形態に係る印刷処理システムの構成を示す図である。
【００１４】
同図において、１０１、１０２、１０３、１０４は、ネットワーク１０６に接続され、相互に通信可能なネットワークコンピュータであり、典型的にはパーソナルコンピュータ（ＰＣ）である。
【００１５】
これらのうち、１０２，１０３，１０４はクライアントコンピュータ（以下、クライアント）であり、それぞれイーサネット（登録商標）などのネットワークケーブルによってネットワーク１０６に接続され、アプリケーションプログラム等の各種のプログラムを実行可能であり、印刷データをプリンタに対応するプリンタ言語に変換する機能を有するプリンタドライバを搭載している。ここで、各クライアントは複数のプリンタドライバをサポートするものとする。
【００１６】
これに対し１０１はサーバコンピュータ（以下、サーバ）であり、ネットワークケーブルによってネットワーク１０６に接続され、ネットワークで使用されるファイルを蓄積したり、ネットワーク１０６の使用状態を監視する。このサーバは、ネットワーク１０６に接続されているプリンタを管理するプリントサーバとしても機能する。具体的には、プリントサーバ１０１は、クライアントコンピュータ１０２、１０３、１０４から印刷要求が出されたプリントデータを含む印刷ジョブを格納して印刷する機能や、クライアントコンピュータ１０２〜１０４から印字データを含まないジョブ情報を受け取って印刷順序を管理し、印刷順序になったクライアントに対して印字データを含む印刷ジョブの送信許可を通知する機能、後述するネットワークプリンタ（プリンタデバイス）１０５のステータスや印刷ジョブの各種情報を取得して、クライアントコンピュータ１０２〜１０４に通知する機能などを有している。
【００１７】
１０５は、印刷制御装置としてのネットワークプリンタであり、図示しないネットワークインタフェースを介してネットワーク１０６と接続されており、クライアントコンピュータから送信されてくる印字データを含む印刷ジョブを解析し、１ページずつドットイメージに変換して印刷する。なお、同図にネットワークプリンタ１０５は１台しか示されていないが、他のネットワークプリンタが複数接続されているものとする。各ネットワークプリンタの機能は相違するものであってもよい。
【００１８】
また、１０６はネットワークであり、クライントコンピュータ１０２〜１０４、プリントサーバ１０１、ネットワークプリンタ１０５等と接続している。
【００１９】
＜ネットワークコンピュータのハードウエア構成例＞
図２は、クライアント１０２〜１０４とプリントサーバ１０１として使用されるコンピュータの構成を説明するブロック図である。なお、本実施形態においてはこのように、クライントコンピュータ１０２〜１０４もプリントサーバ１０１も同様あるいは同等のハードウエア構成とするが、それぞれ専用のハードウエア構成であっても構わない。
【００２０】
図２において、２００は装置全体の制御を行うＣＰＵであり、ハードディスク（ＨＤ）２０５に格納されているアプリケーションプログラム、プリンタドライバプログラム、ＯＳや、本実施形態のネットワークプリンタ制御プログラム等を実行し、ＲＡＭ２０２にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
【００２１】
２０１は記憶手段としてのＲＯＭであり、内部には、基本Ｉ／Ｏプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。２０２は一時記憶手段としてのＲＡＭであり、ＣＰＵ２００の主メモリ、ワークエリア等として機能する。
【００２２】
２０３は記憶媒体読み込み手段としてのフロッピディスクドライブであり、後述する図５に示すようにＦＤドライブ２０３を通じて、記憶媒体としてのＦＤ２０４に記憶されたプログラム等を本コンピュータにロードすることができる。２０４は記憶媒体であるフロッピディスク（ＦＤ）であり、コンピュータが読み取り可能にプログラムが格納された記憶媒体である。なお、記憶媒体はＦＤに限らず、ＣＤ−ＲＯＭ、ＣＤＲ、ＣＤＲＷ、ＰＣカード、ＤＶＤ、ＩＣメモリカード、ＭＯ、メモリスティック等、任意である。
【００２３】
２０５は外部記憶手段の一つであり、大容量メモリとして機能するハードディスク（ＨＤ）であり、アプリケーションプログラム、プリンタドライバプログラム、ＯＳ、ネットワークプリンタ制御プログラム、関連プログラム等を格納している。更に、スプール手段であるスプーラはここに確保される。スプール手段は、クライアントではクライアントスプーラのことであり、プリントサーバではサーバスプーラのことである。また、プリントサーバでは、クライアントから受けたジョブ情報を格納し、順序制御を行うためのテーブルもこの外部記憶手段に生成されて格納される。
【００２４】
２０６は指示入力手段であるキーボードであり、ユーザがクライアントコンピュータに対して、また、オペレータや管理者がプリントサーバに対して、デバイスの制御コマンドの命令等を入力指示するものである。２０７は表示手段であるディスプレイであり、キーボード２０６から入力したコマンドや、プリンタの状態等を表示したりするものである。
【００２５】
２０８はシステムバスであり、クライアントやプリントサーバであるコンピュータ内のデータの流れを司るものである。２０９は入出力手段であるインタフェースであり、該インタフェース２０９を介して情報処理装置は外部装置とのデータのやり取りを行う。
【００２６】
なお、上記コンピュータの構成はその一例であり、図２の構成例に限定されるものではない。例えば、データやプログラムの格納先は、その特徴に応じてＲＯＭ、ＲＡＭ、ＨＤなどで変更することも可能である。
【００２７】
図３は、図２に示したＲＡＭ２０２のメモリマップの一例を示す図であり、ＦＤ２０４からロードされる上記ネットワークプリンタ制御プログラムが、ＲＡＭ２０２にロードされ実行可能となった状態のメモリマップである。
【００２８】
なお、本実施形態では、ネットワークプリンタ制御プログラムおよび関連データをＦＤ２０４から直接ＲＡＭ２０２にロードして実行させる例を示すが、これ以外にも、ネットワークプリンタ制御プログラムを動作させる度に、既にネットワークプリンタ制御プログラムがＦＤ２０４からインストールされているＨＤ２０５から、ＲＡＭ２０２にロードするようにしてもよい。また、本ネットワークプリンタ制御プログラムを記憶する媒体は、ＦＤ以外にＣＤ−ＲＯＭ、ＣＤＲ、ＰＣカード、ＤＶＤ、ＩＣメモリカードであってもよい。さらに、本ネットワークプリンタ制御プログラムをＲＯＭ２０１に記憶しておき、これをメモリマップの一部となすように構成し、直接ＣＰＵ２００で実行することも可能である。また、以上の各装置と同等の機能を実現するソフトウェアをもって、ハードウェア装置の代替として構成することもできる。
【００２９】
また、以下では、本ネットワークプリンタ制御プログラムのことを、簡単に印刷制御プログラムまたはプリンタドライバと呼ぶこともある。印刷制御プログラムは、クライアントにおいては、印刷ジョブの印刷先の変更を指示したり、印刷順序を変更する指示をするための制御を行うプログラムを含む。一方、プリントサーバにおいては、印刷ジョブの順序制御を行ったり、印刷ジョブの印刷終了や印刷先変更要求などを通知するためのプログラムを含んでいる。また、このような制御を行う本実施形態の印刷制御プログラムは、クライアントにインストールされるモジュールと、プリントサーバにインストールされるモジュールを別々に分けてもよいし、ひとつの印刷制御プログラムが、実行される環境によりクライアント用として機能したり、プリントサーバ用として機能するようにしてもよい。あるいは、一台のコンピュータに、クライアント用の機能を持つモジュールとプリントサーバ用として機能するモジュールとをともにインストールし、同時にあるいは時分割で、擬似的に平行動作させる構成も可能である。
【００３０】
３０１は基本Ｉ／Ｏプログラムであり、コンピュータの電源がＯＮされたときに、ＨＤ２０５からＯＳがＲＡＭ２０２に読み込まれ、ＯＳの動作を開始させるＩＰＬ（イニシャルプログラムローデイング）機能などを有しているプログラムが入っている領域である。３０２はオペレーティングシステム（ＯＳ）であり、３０３はネットワークプリンタ制御プログラムで、ＲＡＭ２０２上に確保される領域に記憶される。３０４は関連データで、ＲＡＭ２０２上に確保される領域に記憶される。３０５はワークエリアで、ＣＰＵ２００が本プリンタ制御プログラムを実行する領域が確保されている。
【００３１】
図４は、図２に示したＦＤ２０４のメモリマップの一例を示す図である。
【００３２】
図４において、４０１はデータの情報を示すボリューム情報であり、４０２はディレクトリ情報、４０３は本実施形態で説明する印刷制御プログラムであるネットワークプリンタ制御プログラム、４０４はその関連データである。ネットワークプリンタ制御プログラム４０３は、本実施形態で説明するフローチャートに基づいてプログラム化したものであり、本実施形態では、クライアント及びサーバ共に、同様の構成をとっている。
【００３３】
図５は、図２に示したＦＤドライブ２０３に対して挿入されるＦＤ２０４との関係を示す図であり、図２と同一のものには同一の符号を付してある。図５において、ＦＤ２０４には、本実施形態で説明するネットワークプリンタ制御プログラムおよび関連データが格納されている。
【００３４】
＜印刷処理システムにおけるソフトウエア構成例＞
ここで、本実施形態における用語の技術的意味について説明しておく。
【００３５】
複数のプリンタを１つのプリンタとして仮想的に束ねる仮想プリンタを「グループプリンタ」、束ねられるプリンタを「メンバプリンタ」とよぶ。また、グループプリンタおよびメンバプリンタに所定の出力ポートが対応付けられた仮想プリンタドライバおよびデバイスドライバ対応しているので、グループプリンタ及びメンバプリンタをドライバに対応して考えることもできる。
【００３６】
グループプリンタを更に具体的に説明すると、アプリケーションからＯＳを介して生成される描画命令に基づいて中間形式ファイル（汎用印刷ファイル）を生成するためのデータを生成する仮想ドライバをグループプリンタドライバと呼ぶ。そして、後述するジョブ制御プリントサービスにより、先の中間形式のファイルに基づいてページ記述言語を生成させるべく各個別のプリンタドライバに印刷指示がなされるが、この個別の各プリンタドライバに対応するプリンタをメンバプリンタと呼ぶ。また、各メンバプリンタは最終的には特定のデバイスに対応することとなる。
【００３７】
一方、本実施形態において、アプリケーションにおける印刷指示に応じてWindows（登録商標）等のＯＳを介して出力される描画命令（一般的にＤＤＩ或いはＧＤＩと呼ばれている）あるいはＥＭＦ（EnhancedMetafi1eFormat：拡張メタファイル）を解釈しページ記述言語を生成しデバイスへ出力させるようなプリンタドライバを通常プリンタドライバ、このときのデバイスを通常デバイスと呼び、グループプリンタやメンバプリンタと区別する。なお、ＯＳとしてはWindows（登録商標）に限定されるものではなく、描画命令を備えるＯＳであれば適用可能であることは言うまでもない。また、デバイスであるプリンタとは区別してプリンタドライバとプリンタ出力ポートとの組み合わせをプリンタと呼ぶこともある。例えば、後述する図７のLogicalPort（ジョブ制御ポートモニタ）とグループプリンタドライバとの組み合わせを指定することを、グループプリンタを指定すると呼ぶこととする。
【００３８】
図６は、本システムのクライアントサーバモデルにおいて、Microsoft Word（登録商標）などの一般的なアプリケーションから発行された描画コマンドを含む印刷ジョブが、印刷ジョブ制御システムにおいてどのように処理されるかを示した図である。
【００３９】
通常、印刷の指示がされると、アプリケーションプログラムは一連の描画命令をＯＳを介して生成させる。この生成された描画命令はプリンタドライバを経て所定の形式に変換された後、ウインドウズスプーラ（Windows（登録商標） Spooler）に渡される。Windows（登録商標） Spoolerは、ユーザがユーザインタフェースを介して選択し指示したポートモニタにプリントジョブデータを渡して、プリンタデバイスに送信させる手順をとる。本実施形態では、今述べた通常の動作に対してユーザはあらかじめ印刷ジョブ制御システム用のポートモニタ６２１（以降、ジョブ制御ポートモニタと略記）を指定して印刷を指示する。
【００４０】
アプリケーションプログラム６０１は一連の描画命令をＯＳを介して生成させる。ＯＳを介して生成された描画命令を受け取ったグループプリンタドライバ６０３では、汎用印刷ファイルを生成するための汎用ドキュメントデータを生成し、プリンタデバイスへプリントジョブデータを送信する従来のポートモニタではなく、ジョブ制御ポートモニタ６２１にプリントジョブデータとして送信する。また、プリンタドライバインタフェースを介して設定された用紙サイズ、ステープル指示等の印刷設定情報も、ジョブ制御ポートモニタ６２１に送信される。
【００４１】
ジョブ制御ポートモニタ６２１は、プリントジョブデータである汎用印刷ドキュメントデータをプリンタデバイス１０５に送信するのではなく、印刷ジョブ制御システム用プリントサービス６２２（以降、ジョブ制御プリントサービスと略記）に送信する。ジョブ制御プリントサービス６２２は、プリントジョブデータに対して、後述するような印刷ジョブ制御処理を行う。
【００４２】
印刷ジョブ制御システム用プリントマネージャ６２３（以降、ジョブ制御プリントマネージャと略記）は、ユーザがジョブ制御プリントサービス６２２内部でプリントジョブがどのような状態にあるかを調べたり、プリントジョブを操作したりするためのユーザインタフェースを提供するプログラムである。ジョブ制御プリントマネージャ６２３は、ジョブ制御プリントサービス６２２のソフトウェアのインタフェース（ＡＰＩ：Application Program Interface）を介して、ジョブ制御プリントサービス６２２と情報・指示をやり取りしている。更に詳細な処理としては、プリントマネージャー６２３がジョブ制御プリントサービス６２２に対してデバイスを指定してのイベントを発行し、ジョブ制御プリントサービス６２２は発行されたイベントに基づくデバイスのステータスを監視して、該監視に基づく結果をプリントマネージャー６２３に通知する。
【００４３】
印刷ジョブ制御システム用サーバ６３０（以降、ジョブ制御サーバと略記）は、個々のクライアント１０２〜１０４上のジョブ制御プリントサービス６２２がプリンタデバイス１０５にプリントジョブデータを送信するタイミングを集中制御（スケジューリング）している。印刷ジョブ制御システム用マネージメントコンソール６３３（以降、ジョブ制御マネージメントコンソールと略記）は、ジョブ制御サーバ６３０が持つソフトウェアがアクセスするためのＡＰＩを介して、ジョブ制御サーバ６３０と情報・指示をやり取りすることで、印刷ジョブ制御システム全体を監視することができる。
【００４４】
また、ジョブ制御サーバ６３０は、デバイス情報コントロールモジュール６３１を用いて各プリンタデバイス１０５と通信を行い、各プリンタ内の印刷ジョブや動作状態に関する情報を入手したり、操作を行ったりする。入手した情報は、クライアント１０２〜１０４側のジョブ制御プリントサービス６２２に渡すことができる。
【００４５】
＜印刷処理システムの動作例＞
次に、本実施形態におけるグループプリンタドライバ６０３からの印刷について説明する。
【００４６】
グループプリンタドライバ６０３は、アプリケーションプログラム６０１が生成した一連の描画コマンドをプリンタデバイスやＯＳの種類に依存しない汎用中間フォーマットデータ（前述の汎用ドキュメントデータに相当）に変換する。この汎用中間フォーマットデータは、Windows（登録商標） Spooler６０４からジョブ制御ポートモニタ６２１を経て（図６の（ａ））、ジョブ制御プリントサービス６２２に導かれる（図６の（ｂ））。ここで、汎用中間フォーマットデータは、汎用印刷ファイルに構築される。この汎用印刷ファイルの構成については後述する。
【００４７】
ジョブ制御プリントサービス６２２は、このプリントジョブに対して行うジョブ制御の種類に応じて、汎用印刷ファイルをもとに描画コマンドを生成し（図６の（ｃ））、続いてＰＤＬドライバ６０２がその描画コマンドをプリンタデバイス１０５が解釈可能なＰＤＬ形式のファイルにする。
【００４８】
図６では、ジョブ制御プリントサービス６２２で、このプリントジョブに対してプリンタ側のエラーを検知して代行印刷を行う例を示しており、実線で示されるのは当初印刷を予定していたメンバジョブであり、破線については代行印刷のために生成されたのジョブを示している（図６の（ｃ））。ＰＤＬドライバ６０２で生成されたＰＤＬファイルはWindows（登録商標） Spooler６０４、ジョブ制御ポートモニタ６２１を経て（図６の（ｄ））、再びジョブ制御プリントサービス６２２に渡される（図６の（ｅ））。ジョブ制御プリントサービス６２２は、ジョブ制御サーバ６３０の指示に従ってＰＤＬのプリントジョブデータをプリンタデバイス１０５に送信する（図６の（ｆ））。
【００４９】
ジョブ制御プリントサービス６２２は、汎用印刷ファイル中の印刷指示書の指示にしたがって、１つの汎用印刷ファイルを複数のプリントジョブに論理的に分割してそれぞれ別のプリンタデバイスに送信したり、一度送信したプリントジョブデータを別のプリンタデバイスに送信し直したりする。図６中に示す（ｃ）、（ｄ）、（ｅ）、（ｆ）はそのような場合のプリントジョブデータの経路を示している。
【００５０】
一方、汎用印刷ファイルをアプリケーションソフトウェアが作成し、そのアプリケーションソフトウェアが直接汎用印刷ファイルを印刷ジョブとして投入する場合は、一般のアプリケーションとはグループプリンタドライバ６０３への情報の渡し方やグループプリンタドライバ６０３での処理内容が異なる。前述のように、一般のアプリケーションの場合には、アプリケーションはグループプリンタドライバ６０３に描画情報を渡す際、通常のプリンタドライバと同じようにWindows（登録商標）のＧＤＩ関数を呼び出し、グループプリンタドライバ６０３がそれに応じて汎用印刷ファイルを生成する。これに対して汎用印刷ファイルを直接作成するアプリケーションの場合は、アプリケーションが汎用印刷ファイルをすでに持ち、それをグループプリンタドライバ６０３に供給する。グループプリンタドライバ６０３は、必要に応じてあらかじめ設定された印刷方法に基づいて汎用印刷ファイル内部の印刷指示書を書き換えてWindows（登録商標）Spooler６０４に送る。
【００５１】
＜汎用印刷ファイルの構成例＞
図８は、構築された汎用印刷ファイルの構成の一例を示した図である。
【００５２】
本実施形態で使用される汎用印刷ファイルは、印刷指示部８ａ（前述の印刷指示書に相当）とドキュメントデータ部８ｂとからなる。印刷指示部８ａは、ドキュメントの情報と印刷指示とを記述した部分である。また、ドキュメントデータ８ｂは、上に説明した如くアプリケーションのドキュメントのデータを汎用的な形式のデータに変換したものであり、プリンタ言語やＯＳの種類に依存しない或は依存しにくい形式のデータフォーマットとなっている。
【００５３】
アプリケーションデータを変換した後の変換後データ（汎用印刷データ）としては、印刷リソースデータとして利用可能でかつワードプロセッサアプリケーション等により再度編集可能な形式のデータであることが想定され、実質的な標準形式のうち、例えば、ＸＭＬ形式や、ＷＩＮＤＯＷＳ（登録商標）システムにより提供されるＥＭＦ形式、或はAdobe Systems IncorporatedによるＰＤＦ（Portable Document Format）形式やＳＶＧ形式などが汎用形式の汎用印刷データとして採用できる。
【００５４】
また、図示はされてはいないが、汎用印刷ファイルには、各メンバプリンタに対応したDEVMODEも含まれているものとする。該DEVMODEには、後述の図１２にて詳しく説明する共通設定項目及び拡張設定項目の双方が含まれるものとする。
【００５５】
更に詳細に説明すると、印刷指示部８ａは、ヘッダ部８０１、ページ情報部８０２、ドキュメント属性部８０３、印刷体裁指示部８０４、出力方法指定部８０５、メンバプリンタ数８０６、メンバプリンタドライバ名８０７などから構成されている。
【００５６】
ヘッダ部８０１は、本ファイルのバージョン識別やファイル情報などの情報を格納する部分である。ページ情報部８０２は、ドキュメントデータ部８ｂのドキュメントデータのページ数、各ページのサイズなどの情報を格納する部分である。
【００５７】
印刷体裁指示部８０４は、グループプリンタドライバのＵＩや、メンバプリンタの個別のＵＩを介して設定された印刷ページ範囲、印刷部数、ドキュメントデータの面付け情報（Ｎ−ＵＰや製本印刷など）、ステイプル指示やパンチ指示など、出力体裁に関する情報を格納する部分である。尚、ステイプル、パンチ指示については、Ｐａｇｅ単位で指定（サブセットステイプ等）されることもある。尚、各メンバプリンタの個別のＵＩを介して設定された内容は印刷指示部８０４に反映されると共に、各メンバプリンタに対応するDEVMODEにも反映されて保存される。
【００５８】
出力方法指定部８０５は、出力方法として、分散印刷、同報印刷、代行印刷、通常印刷（代行しない印刷）などの出力方法に関する情報を格納する部分である。この出力方法指定部８０５に代行印刷が設定されている場合には、更に優先順位情報（第一候補、第二候補・・・）を付したプリンタ情報が含まれる。これら様々な出力方法の何れかは後述する図９のプリンタリスト１００２を介して選択された仮想プリンタの種別や、図１８の１２-aのコンボボックスを介して設定された出力方法に対応する。
【００５９】
メンバプリンタ数８０６は、グループプリンタドライバが関連付けているメンバプリンタの数を格納する部分である。メンバプリンタドライバ名８０７は、メンバプリンタのプリンタドライバ名を格納する部分である。このメンバプリンタドライバ名８０７は、前述のメンバプリンタ数８０６の数だけの格納エリアを持っている。
【００６０】
前述の図６で説明したジョブ制御プリントサービス６２２では、汎用印刷中間フォーマットデータより汎用印刷ファイルを生成する際、グループプリンタドライバのＧＵＩ上での設定を印刷指示部８ａへ記憶する。更に、グループプリンタドライバから受け取った汎用印刷中間フォーマットデータを、汎用印刷ファイルのドキュメントデータ部８ｂに記録する処理も、ジョブ制御プリントサービス６２２により実行される。
【００６１】
＜Windows（登録商標） Print Systemと印刷ジョブ制御システムの関係例＞
次に、図７でWindows（登録商標）が提供するPrintSystemと印刷ジョブ制御システムとにおける印刷ジョブの関係と処理概要をさらに詳しく述べる。ここで、図６と同じ機能は同じ参照番号を付与しており、その機能については詳説しない。
【００６２】
図７中では、印刷ジョブ制御システム７００は、制御プログラムが動作するプリントサーバ１０１とクライアント１０２〜１０４の物理的なマシンをまたいだ、印刷ジョブ制御システムの範囲を示している。また、プリントサーバが管理している出力ポート（Output Port）７１１は、クライアントのジョブ制御プリントサービス６２２のプロキシ出力ポート（Proxy Output Port）７１２とそれぞれ関連付けられ、ひとつのポートに関連づけられた各クライアント上のプロキシ出力ポートの全てを統一的に管理している。本実施形態では、実際のプリントジョブデータは各々のクライアントのプロキシ出力ポート７１２に保持される。
【００６３】
ジョブ制御サーバ６３０は、プリントジョブデータ自体の送信処理は行わず、ジョブ制御プリントサービス６２２に対して印刷ジョブの送信指示のみを行う。その指示に応じて、クライアントのジョブ制御プリントサービス６２２はプリントジョブデータをプリントデバイス１０５に送信する。
【００６４】
次に、印刷ジョブ制御システム７００が、代行印刷といった付加価値印刷を行う場合の処理を説明する。
【００６５】
印刷ジョブ制御システム７００が、代行印刷といった付加価値的な印刷を行う場合には、前述のようにユーザまたはアプリケーション６０１は、グループプリンタドライバ６０３に割り当てられたプリンタに印刷ジョブを発行しなければならない。ジョブ制御プリントサービス６２２は、グループプリンタドライバ６０３によって処理された汎用印刷中間フォーマットデータをジョブ制御ポートモニタ６２１を介して受け取る。ジョブ制御プリントサービス６２２は、この汎用印刷中間フォーマットデータより汎用印刷ファイルを構築し（図７の７１５）、先に説明した印刷指示部８ａの指示内容に従う印刷指示をデスプーラ（Despooler）７０１に対して行う。そして、Despooler７０１を介してＰＤＬドライバが割り当てられた別のプリンタにジョブ（メンバジョブ）を発行して、印刷を行わせる。
【００６６】
このとき、Despooler７０１は、ジョブ制御プリントサービス６２２の汎用印刷ファイルの印刷指示部８ａの解釈に基づく指示に応じて、ドキュメントデータ部８ｂのドキュメントデータを加工してWindows（登録商標）のＧＤＩに変換し、プリンタドライバに対して印刷指示を行い、印刷ジョブを発行する。例えば、印刷体裁指定部８０４に２−ＵＰに相当する指示が記録されていた場合、用紙１枚に２ページ分のドキュメントデータを縮小レイアウトするようにDEVMODEを介してメンバプリンタに対して指示する。また、印刷体裁指定部８０４にステイプル指示がある場合にはDEVMODEを介してステイプルの指示を行う。また、代行印刷時には、印刷指示部８ａに記述されている代行先メンバプリンタにジョブを発行する。尚、２−ＵＰ等の縮小レイアウトを処理する場合に、Despooler自身が印刷体裁指定部８０４の内容に基づき縮小レイアウトするようにして、メンバプリンタにはDEVMODEを介して１−ＵＰを指示するようにしても良い。
【００６７】
また、Despooler７０１はメンバプリンタにジョブを発行する際、メンバプリンタドライバに対応する印刷指示として、メンバプリンタのDEVMODEを作成する必要があるが、このDEVMODEは印刷指示部８ａ或は各メンバプリンタに対応して保存されたDEVMODEに記載された内容を適宜各メンバプリンタDEVMODEに反映させて生成する。
【００６８】
クライアント側のジョブ制御プリントサービス６２２は、ＰＤＬドライバ６０２によってレンダリングされたそれぞれのメンバジョブのＰＤＬデータをジョブ制御ポートモニタ６２１を介して受け取り、受け取ったジョブ（ＰＤＬデータ）に関する情報をプリントサーバ側に知らせ、ジョブデータは自身のプロキシ出力キュー（Proxy Output Port）７１２で一時保持する。その後、ジョブ制御サーバ６３０からの送信指示を受けた後にプリンタデバイス１０５に送信する。
【００６９】
＜グループプリンタドライバの制御処理＞
次に、本発明の実施形態における、印刷ジョブ制御システムのためのグループプリンタドライバ６０３の制御について説明する。
【００７０】
図９は、所定のアプリケーションから印刷設定を行うための指示がなされた場合にディスプレイ２０７に表示されるグラフィカルユーザインタフェース（以下「ＧＵＩ」、または「ＵＩ」という。）の一例を示す。
【００７１】
プリンタリスト１００２には複数のプリンタ名が示されており、リスト中のプリンタは仮想プリンタ（グループプリンタ）１００１や、通常のプリンタ（単独のプリンタドライバ及びデバイスに対応する）１００３の双方が含まれている。
【００７２】
そして、プロパティボタン１００４が押下（マウスによりクリック）されると現在のプリンタリスト１００２で選択されているプリンタのプロパティが表示される。図９の場合は代行印刷の出力方法に対応したグループプリンタＡが選択されている。
【００７３】
図１０は、実施形態におけるＵＩ表示処理を示すフローチャートである。このフローチャートに対応するプログラムはハードディスク（ＨＤ）２０５等の所定の記憶媒体に記憶された制御プログラムに含まれ、ＲＡＭ２０２にロードされＣＰＵ２００によって実行されるものである。
【００７４】
まず、ステップＳ１０１において、デフォルトあるいは図９のようなＵＩを介して選択されたグループプリンタの出力方法のチェックが行われる。このチェックは図８の出力方法指定部８０５を参照することで実現される。
【００７５】
ここで出力方法として代行印刷に対応するグループプリンタが選択されていたら、ステップＳ１０３に進み、それ以外の出力方法（例えば、分散印刷、同報印刷、カラーモノクロ印刷など）だったら、ステップＳ１０２へ進む。ステップＳ１０２では、指定された出力方法が代行印刷以外の分散印刷や同報印刷であることが特定され特定された出力方法に対応するＵＩ制御処理が行われる。ここで行われるＵＩ制御処理には論理和や論理積などの所定の規則に従った項目別の競合解消処理であるコンフリクト処理および表示処理を含む。これについては後ほど図１１乃至１５を用いて詳しく説明する。
【００７６】
ステップＳ１０５は、ステップＳ１０２で行ったコンフリクト処理の結果に基づき、グループプリンタドライバＵＩ或は後述の図１９に示すようなＵＩ表示を行い、ユーザの指示に応じた各項目の設定を行うステップである。ステップＳ１０２でのコンフリクト処理の結果、機能のないものについてはＵＩ上で設定が行えないよう、該当する項目をグレーアウト表示もしくは非表示といったＵＩ制御を行い、機能がある項目についてはＵＩ制御を行わない。
【００７７】
また、ステップＳ１０１で代行印刷に対応するグループプリンタを利用する指示が入力されていたら、上記したとおりステップＳ１０３に進む。ステップＳ１０３では、先に説明したグループプリンタドライバ６０３、或は、ジョブプリント制御サービス６２２が汎用ドキュメントデータを生成する際の設定項目を含むＵＩが表示される。ここでの設定項目には、例えば、グレイスケールで汎用ドキュメントデータを生成するか否かを指定する項目や、汎用ドキュメントデータの解像度を指定する項目や、汎用印刷ファイルに汎用ドキュメントデータを含める際の圧縮方式（jpeg圧縮方式やzip圧縮方式等）を指定する項目が含まれている。また、図１８中に含まれるような、代行印刷時のメンバプリンタの優先順位を変更設定するための設定項目や、メンバプリンタの追加／削除（12-ｂ）などの複数のメンバプリンタを対象とする仮想ジョブに特有の設定項目が含まれ、ステップＳ１０４にて提供されるＵＩを補足する。
【００７８】
一方、用紙サイズやステイプル指示などの設定項目は後述のステップＳ１０４にて提供されるＵＩにて設定可能となるように制御が施されるので、ステップＳ１０３において提供されるＵＩからは設定が無効になるよに制限が施される。
【００７９】
次にステップＳ１０４に進み、代行印刷における優先順位が最優先の代表メンバプリンタが特定され、該代表メンバプリンタのＵＩが表示部に表示される。
【００８０】
ここで提供されるＵＩは代表メンバプリンタのために予め容易されたプリンタドライバＵＩを流用したものに相当し、ここでのＵＩは流用される以外にも特定のプリンタデバイスを指定しての処理において、アプリケーションデータからPDLデータを生成するために利用されたりもする。
【００８１】
尚、ステップＳ１０３とステップＳ１０４の処理順序は特に限定されるものではなく、フローチャートに示される順序を逆にしても良いし、平行して処理させても良い。
【００８２】
そして、ステップＳ１０３及びステップＳ１０４の処理に基づくＵＩがステップＳ１０５においてクライアントの表示部に表示される。ここで、表示されたＵＩから設定された設定情報は、図８の印刷指示部８aや、各メンバプリンタに対応するＤＥＶＭＯＤＥに反映され印刷処理に利用される。
【００８３】
尚、代表メンバプリンタが機能制御不可なメンバプリンタの場合には、印刷指示部８aには、共通設定項目のみが反映され、拡張設定項目はＤＥＶＭＯＤＥに反映されることとなり、拡張設定項目については印刷指示の際にはＤＥＶＭＯＤＥの設定情報がＤｅｓｐｌｏｏｅｒにより利用される。
【００８４】
このように代行印刷における優先順位が第一候補プリンタのＵＩをダイレクトに提供することにより、ステップＳ１８０３などの能力取得の処理に伴うコンフリクト処理を行わないことでＵＩ表示を高速に行うことができると共に、第一候補のメンバプリンタの持つ機能を最大限に活用した詳細設定をすることが可能となる。
【００８５】
Ｓ１０７は、グループプリンタドライバＵＩ上に設定項目がない項目について、メンバプリンタのＵＩを開いて詳細を設定させるステップである。
【００８６】
なお、メンバプリンタドライバＵＩを開いた場合、グループプリンタドライバで設定可能な項目についても設定可能となり同一機能が両者に設定された場合に処理が二重にかかってしまうため、次に示すＵＩ制御を施し表示を行う。
【００８７】
（１）メンバプリンタが“機能制御可能”なドライバである場合、グループプリンタドライバＵＩ上の設定項目と競合する項目については、メンバプリンタドライバＵＩでの設定が行えないように、項目をグレーアウト表示もしくは非表示としてＵＩ制御する。
【００８８】
（２）メンバプリンタが“機能制御不可”なドライバである場合、共通設定項目についてはメンバプリンタドライバで設定された設定でＵＩ表示する。ＵＩ表示後、メンバプリンタドライバＵＩ上でその項目について変更がなされた場合、ドライバＵＩを閉じるステップでグループプリンタドライバで設定された設定項目の情報を対応するメンバプリンタドライバの共通設定項目に上書きし、メンバプリンタＵＩ上での設定変更を許さない。なお、機能制御可能／不可能については後ほど詳しく説明する。
【００８９】
以下、ステップＳ１０２におけるＵＩ制御処理について、図１１〜１６を用いて説明する。
【００９０】
図１１は、ステップＳ１０２におけるＵＩ制御処理の詳細を示すフローチャートである。
【００９１】
まず、ステップＳ１８０１で、ＯＳを介してＵＩ表示要求を認識すると、一連のＵＩ制御処理を開始する。
【００９２】
次に、ステップＳ１８０２で、印刷ジョブ制御システムＡＰＩを用いて、グループプリンタドライバを構成するメンバプリンタドライバの識別ＩＤを問い合わせ、獲得する。ここで、グループプリンタを構成する全てのメンバプリンタドライバとは、グループプリンタドライバに対応して予め登録された各プリンタドライバを指す。また、メンバプリンタドライバの識別ＩＤとしては、メンバプリンタドライバが登録される際に割り当てられた名称や、登録されたメンバプリンタドライバに対応してグループプリンタドライバのプログラムが割り当てた識別ＩＤなどに相当させることができる。
【００９３】
次に、ステップＳ１８０３で、ステップＳ１８０２で獲得した各メンバプリンタドライバの識別ＩＤに対応するメンバプリンタドライバの能力を取得する。具体的には、グループプリンタを構成する全てのメンバプリンタドライバに対して、ドライバの能力の取得がドライバ設定情報の拡張設定項目まで可能で、ドライバＵＩ制御が可能な“機能制御可能なドライバ”か、または、それ以外の“機能制御不可なドライバ”かを読み出して判定する。さらに具体的には、グループプリンタドライバによって、識別ＩＤに対応する各メンバプリンタドライバに問合せが行われ、問い合わせに対するメンバプリンタドライバからの応答に応じて“機能制御可能なドライバ”または“機能制御不可なドライバ”の機能制御可否の情報についての判定が行われる。なお、拡張設定項目については後ほど詳しく説明する。
【００９４】
続くステップＳ１８０４では、ステップＳ１８０３にて読み出された機能制御可否の情報より、メンバプリンタがどのような種別の各メンバプリンタドライバから構成されるかの判定を行う。
【００９５】
ここで、ステップＳ１８０３にて説明に用いた機能制御可能／不可能について詳しく説明すると、機能制御可能とは、例えば、図７中のジョブ制御プリントサービス６２２のソフトウェアモジュールから、拡張設定項目である印刷設定（例えば、製本とじ代（図１２Ｂ参照））の指示が行えたり、所定の設定項目をグレーアウト表示制御させることができることをいう。逆に、そのようなことができないことを機能制御不可という。具体的には、プリンタドライバの拡張設定項目を設定したり、グレーアウト表示などの表示制御を行うにはプリンタドライバの制御用に開発されたＳＤＫ（Software Development Kit）を使用する必要があり、プリンタドライバのＳＤＫをシステムに組み込めないような場合などは機能制御できないこととなる。例えば、他のベンダーが設計したプリンタドライバなどがこの制御機能不可のメンバプリンタに相当する。
【００９６】
説明を図１１のフローチャートに戻す。
【００９７】
ステップＳ１８０４の判定結果により、メンバプリンタ中に“機能制御可能”なドライバが一台でも含まれている場合には、Ｓ１８０５へ処理を進め、機能制御不可なドライバのみからメンバプリンタドライバが構成されている場合には、ステップＳ１８０６へ処理が進められる。ステップＳ１８０５およびＳ１８０６の詳細はそれぞれ、図１３および図１４を用いて後ほど詳しく説明する。
【００９８】
そして任意のタイミングにて、設定終了ボタンが押下されるとＳ１８０７の設定終了処理のステップでＹｅｓと判定され、ステップＳ１８０２に戻る。
【００９９】
ステップＳ１８０８では、グループプリンタドライバＵＩを介して設定された項目が、各メンバプリンタドライバの設定項目に矛盾がないかどうかをチェックする（ＵＩコンフリクトチェック）。たとえば、プリンタ１ではＡ４用紙にステイプル可能な位置は用紙左上のみであり、プリンタ２ではＡ４用紙にステイプル可能な位置は用紙左下のみであるといったように、プリンタにはデバイスのもつ機能に密接に関連した項目がある。本ステップでは、設定機能上ありえない組み合わせについてのコンフリクトチェックの他に、各メンバプリンタドライバに対して、グループプリンタドライバＵＩ上で設定した項目が、各メンバプリンタドライバの設定項目として反映可能かどうかを、各メンバプリンタドライバを対象にチェックが行われる。
【０１００】
ステップＳ１８０９では、コンフリクトチェックの結果を判定し、グループプリンタドライバＵＩ上で設定した設定項目が、全てのメンバプリンタで妥当であった場合には、ステップＳ１８１２に処理を進めグループプリンタドライバＵＩの表示を終了する。
【０１０１】
一方、コンフリクトチェック結果の判定で設定項目にコンフリクトが発生する項目があると判定された場合には、ステップＳ１８１０へ処理を進め、「グループプリンタドライバＵＩ上で設定項目を再設定するか、もしくは、現状の設定項目で印刷処理を行うか」といったメッセージと共に、再設定、強行ボタンを表示させる。ステップＳ１８１１では、再設定、強行ボタンのどちらが押されたかを判定し、再設定ボタンが押されたと判定された場合には、ステップＳ１８０４の処理に戻り、再度、表示制御処理が実行される。
【０１０２】
また、強行ボタンが押されたと判定された場合には、ステップＳ１８１２に処理を進めグループプリンタドライバＵＩの表示に関する一連の処理を終了し、再び一連の処理を繰り返す処理へ移行する。
【０１０３】
ここで、図１２Ａに、メンバプリンタの構成と設定可能項目との対応関係の例を示す。この例によれば、メンバプリンタ中に機能制御可能なドライバが一台もない場合に表示されるＵＩ（ステップＳ１８０６）からは図１２Ｂに例示されるような共通設定項目だけが設定可能であり、メンバプリンタ中に機能制御可能なドライバが一台でも含まれている場合に表示されるＵＩ（ステップＳ１８０５）からは共通設定項目の他に拡張設定項目が設定可能である。
【０１０４】
図１３は、ステップＳ１８０５の詳細な処理を示すフローチャートである。
【０１０５】
まず、ステップＳ２００１は、全てのメンバプリンタに対してステップS２００２、S２００４の各ステップに示される機能のコンフリクトチェックを行ったかどうかを判定するステップであり、全てのメンバプリンタのチェックが終了している場合はステップＳ２００５へ進み、終了していない場合にはステップＳ２００２へ進む。
【０１０６】
ステップＳ２００２は、共通設定項目に関して論理和／論理積などのコンフリクト処理を行うステップであり、各メンバプリンタドライバの個々の共通設定項目に関する能力を問い合わせて、機能のコンフリクト処理を行い、その結果に基づきグループプリンタドライバＵＩで表示する項目を選択する制御を行う。本ステップでは、全てのメンバプリンタを対象にコンフリクトチェックを行う。
【０１０７】
ステップＳ２００３は、メンバプリンタの判定を行うステップであり、機能制御可能であればステップＳ２００４へ進む。また、機能制御不可であれば、ステップＳ２００１へ戻る。ステップＳ２００４は、機能制御可能なプリンタに対して拡張設定項目の論理和／論理積などのコンフリクト処理を行うステップである。本ステップを終了するとステップＳ２００１へ戻る。
【０１０８】
ステップＳ２００５では、ステップＳ２００２，ステップＳ２００４で行われたコンフリクト処理の結果に基づきグループプリンタドライバＵＩに表示される項目を抽出し、抽出した項目に基づきＵＩ表示を行う。ユーザは表示された項目に従って、各メンバプリンタドライバ間で矛盾が生じることのない設定を容易に行うことができるようになる。
【０１０９】
なお、上記したコンフリクト処理の結果、いずれかのメンバプリンタドライバが有していない機能については、グループプリンタドライバＵＩにて設定が行えないように制御される。
【０１１０】
ステップＳ２００６では、ステップＳ２００２またはステップＳ２００４でコンフリクト対象とならなかった項目の設定を行うために、グループプリンタドライバを構成するいずれかのメンバプリンタのＵＩを開き詳細に設定させるよう指示がなされたか否かを判断する処理が行われる。
【０１１１】
グループプリンタドライバ（グループプリンタ）を構成するいずれかのメンバプリンタドライバ（メンバプリンタ）が指定されたと判断されると、処理をステップＳ２００７に移行させる。ステップＳ２００７の処理の詳細は図１４にて説明する。なお、図１３におけるステップＳ２００６、Ｓ２００７はステップＳ２００５の後に実行するように説明しているが、任意のタイミングで実行させるようにしてもよい。
【０１１２】
図１４は、ステップＳ２００７のより詳細な処理内容を示すフローチャートである。
【０１１３】
まず、ステップＳ２２０１で、ステップＳ２００６マウス等を介して指定されたメンバプリンタドライバが機能制御可能か否かの判定を行う。機能制御可能か否かについては上のステップＳ１８０３にて説明した通りである。
【０１１４】
そして、機能制御可能と判断された場合には、ステップＳ２２０２にて、共通設定項目および拡張設定項目を含めた項目の表示制御を行う。ここでは、図１０のステップＳ１０７におけるフローチャートにおいて説明した、（１）の規則と同様の規則に従い表示制御処理が施される。
【０１１５】
また、ステップＳ２２０１で、指定されたメンバプリンタドライバが機能制御不可なものと判定された場合には、図１０のフローチャートにおいて説明した（２）で示した規則に則して、メンバプリンタドライバの共通設定項目ＵＩに関して表示制御がなされる。
【０１１６】
図１５は、図１１のステップＳ１８０６の詳細を示すフローチャートである。
【０１１７】
まず、ステップＳ２１０１で、各メンバプリンタドライバの個々の共通設定項目に関する能力の問い合わせを行い、各項目の機能について、上に説明したような論理和／論理積などのコンフリクト処理を実行する。そして、その結果に基づきグループプリンタドライバＵＩにて設定可能とする項目の抽出を行い、ＵＩに表示する設定項目を決定する。
【０１１８】
次に、ステップＳ２１０２で、ステップＳ２１０１で行われたコンフリクト処理の結果に基づき抽出された設定項目を基にグループプリンタドライバＵＩの表示を行う。ステップＳ２１０１でのコンフリクト処理の結果、各メンバプリンタに共通してない機能の項目、および、拡張設定項目と判定された項目については、グループプリンタドライバのＵＩ上で設定が行えないよう、項目をグレーアウト表示もしくは非表示となるように制御が行われる。
【０１１９】
ステップＳ２１０３では、マウスなどのポインティングデバイスを介してメンバプリンタドライバが指定されたか否かの判定を行う。このメンバプリンタドライバの指定は、ステップＳ２１０２で表示されなかった拡張設定項目または各メンバプリンタが持つ固有の設定項目を設定するために、メンバプリンタドライバのＵＩを開き、詳細設定を行うためのものに対応する。メンバプリンタドライバが指定された場合にはステップＳ２１０４に進む。
【０１２０】
ステップＳ２１０４では、ステップＳ２１０３にて指定されたメンバプリンタドライバのＵＩを個別に表示し、表示したＵＩを介して入力された設定項目に対する設定指示に応じて詳細設定を行う。
【０１２１】
このステップＳ２１０４においては、対象となるメンバプリンタドライバが機能制御不可なものなので、グループプリンタＵＩを介して設定された共通設定項目が反映される。また、機能制御不可なプリンタであっても一部の項目において表示制御可能であれば、その項目についてはグループプリンタＵＩを介しての設定と重複して設定されないようにグレーアウト等の禁則処理が施される。
【０１２２】
また、ステップＳ２１０４において、個別に表示されたメンバプリンタＵＩを介して、グループプリンタでは禁則処理が施されていた拡張設定項目についての設定を行うことができ、ここで、設定された内容は、先に説明した印刷指示部８aに反映されることとなる。
【０１２３】
なお、上に説明したステップＳ２１０３、Ｓ２１０４の各ステップの処理は、ステップＳ２１０２の後に行うように説明しているが、任意のタイミングにて実行させるようにしてもよい。
【０１２４】
図１６は、図１１，１３，１４，１５に示したフローチャートに基づき、第１のＵＩ提供ステップとして表示されるグループプリンタドライバＵＩの表示例を示す図である。これは、「仕上げ」タブ１６０が選択されたことでグループプリンタドライバＵＩが印刷仕上げに関する設定画面を提供している例である。この例の場合、コンフリクト処理の結果、１６１，１６２，１６３の各項目が、このグループプリンタＵＩからは設定ができない項目としてグレーアウト表示され、選択不可の状態にされる。もちろん、グレーアウト表示ではなく、単に非表示とするようにしてもよい。一方、コンフリクト処理の結果、各メンバプリンタドライバが共通して備える機能に対応する設定項目についてはグレーアウト表示、もしくは非表示などの制御がなされず、選択指示可能な形態でユーザインタフェースに反映される。
【０１２５】
このようにして、グループプリンタドライバＵＩからは、所定の印刷処理に関与する各プリンタのすべてに共通する項目や所定のプリンタの機能に合わせた項目の印刷設定を効率良く行うことができる。また、所定の印刷処理（例えば代行印刷）に関与する各プリンタ間で共通しない機能については、第１のＵＩ提供ステップとして表示されるグループプリンタドライバＵＩからは設定不可／無効となるよう制御される。
【０１２６】
次に、実施形態におけるグループプリンタおよびメンバプリンタの登録処理について説明する。
【０１２７】
本実施形態では、グループプリンタドライバのＵＩを開くことにより、出力方法として例えば「割合分散印刷」、「カラー・モノクロ分散印刷」、「同報印刷」、「代行印刷」が選択でき、それぞれに対してメンバプリンタドライバの指定および設定を行うことにより、１つのプリンタドライバで複数の印刷指示が可能となるものである。
【０１２８】
図１７は、実施形態におけるグループプリンタドライバＵＩを用いた操作処理を示すフローチャートである。ここでは一例として、「代行印刷」が選択される場合について説明する。
【０１２９】
まず、ステップＳ１１１において、出力方法を指定する。前述のとおり、出力方法としては、「割合分散印刷」、「カラー・モノクロ分散印刷」、「同報印刷」、「代行印刷」が選択可能である。
【０１３０】
次に、ステップＳ１１２に進み、それぞれの出力方法に適したメンバプリンタの登録指定を行う。
【０１３１】
次に、ステップＳ１１３において、出力方法として代行印刷が選択されているかどうか判定し、選択されていなければ、そのままステップＳ１１５に進む。ここで、出力方法として代行印刷が選択されていた場合には、ステップＳ１１４に進み、第一候補プリンタドライバの出力方法の詳細設定を行う。ステップＳ１１５は、グループプリンドライバに対して詳細設定を行うステップである。
【０１３２】
次に、ステップＳ１１６で、ステップＳ１１４、Ｓ１１５で設定した内容を登録する。この設定項目の登録は、図８で説明した汎用印刷ファイルに記録することで実現される。例えば、上記設定項目は、本汎用印刷ファイルの印刷指示部８ａ中、特に、ステップＳ１１１の設定項目においては出力方法指定部８０５を利用して記録する。これら記録された各項目は各種ＵＩ表示時のデフォルト設定値として利用される。
【０１３３】
また、ステップＳ１１２の設定項目においては、メンバプリンタ数およびメンバプリンタドライバ名はメンバプリンタドライバ情報設定部を利用して記録する。また、ステップＳ１１４、Ｓ１１５の設定項目においては、グループプリンタドライバ設定情報部を利用して記録する。
【０１３４】
上記の説明は、「代行印刷」が選択される場合を前提にしたが、その他の出力方法が選択される場合も同様な操作手順である。
【０１３５】
次に、図１８、１９を用いて、本実施形態におけるＵＩについて具体的に説明する。
【０１３６】
図１８は、実施形態におけるグループプリンタドライバＵＩ１２の一例を示す図である。これは、「出力設定」タブ１６１が選択されたことでグループプリンタドライバＵＩが出力方法に関する設定画面を提供している例である。同図において、１２−ａは、前述の図９に対応するものとは別の出力方法を選択するためのコンボボックスである。図９を介しての選択と共に、ステップＳ１０１にも対応する。図１８においては、出力方法として代行が選択されている。
【０１３７】
１２−ｂは、メンバプリンタの追加/削除を行うための登録用のＵＩを開くためのボタンである。
【０１３８】
１２−ｃは、メンバプリンタを登録したあと、そのメンバプリンタの一覧を表示するリストボックスである。この一覧表示の内容は前述の１２−ａで指定した出力方法に従って、その表示内容も変更される。この中で、１２−ｆは前述の図１２のＳ１１２で説明した、登録したメンバプリンタを出力対象のプリンタより、一時的にはずしたり追加したりするチェックボックスである。このチェックボックスのチェックがありのときは、そのメンバプリンタを対象プリンタとみなし、チェックなしのときはそのメンバプリンタを一時的に対象プリンタからはずすことを意味している。すなわち、前述のステップＳ１１２で対象プリンタを選択したが、改めてこのチェックボックスで、選択された対象プリンタを一時的に対象外にすることが可能となる。
【０１３９】
また、図示の状態では出力方法として代行印刷が選択されているため（１２−ａ）、１２−ｄのボタンによって、メンバプリンタの印刷の際に使用される優先順位（第一候補、第二候補、第三候補・・の順番）を変更することができる。
【０１４０】
また、１２−ｅは、メンバプリンタドライバのプロパティ画面を開くためのボタンである。対象となるメンバプリンタは１２−ｃのリスト中から選択することができ、そのメンバプリンタについてのプロパティを設定をすることができる。
【０１４１】
図１８のＵＩ上で設定された内容は、図８の汎用印刷ファイルに記録される。たとえば、１２−ａで設定された出力方法は、図８の８０５に記録される。また、１２−ｂでメンバプリンタの追加や削除を行った場合、メンバプリンタの数、メンバプリンタ名はそれぞれ、図８の８０６，８０７に記録される。
【０１４２】
このようにして、グループプリンタドライバＵＩからは、図１６を用いて説明したとおり所定の印刷処理に関与する各プリンタのすべてに共通する項目の印刷設定を行うことができる他、所定の印刷処理（例えば代行印刷）のために、各プリンタの優先順位を設定することで当該複数のプリンタから一のプリンタを指定することができる。
【０１４３】
図１９は、図１０のステップＳ１０３、Ｓ１０４の処理に従いグループプリンタドライバＵＩとメンバプリンタドライバＵＩとを同時含ませて表示させた例を示す図である。
【０１４４】
ＵＩ１６は、グループプリンタドライバＵＩ１２における１２−ｃ、１２−ｄにより優先度第１位として設定されたプリンタドライバのＵＩに対応する。ＵＩ１６を介して設定された内容は、印刷指示部８aを含む図８の各対応項目に反映される。また、代表メンバプリンタに対応するDEVMODEにも反映され、後述するDespooler701の各メンバのドライバへの印刷指示の際に利用される。
【０１４５】
また、ＵＩ１２は、仮想ジョブ（分散印刷、同報印刷など）における代行印刷時の優先順位等の複数のメンバプリンタの構成を設定する為の項目など、仮想ジョブ設定ならでわの設定項目を含んでいる。仮想ジョブの設定を行うにあたって、ＵＩ１６を補助する機能を含んでいる。また、図１９のＵＩ１２中では示されてはいないが、設定項目は図１９中の項目に限定されるものではなく、「グレイスケール」、「解像度」、「圧縮方式」などの仮想ジョブ（分散印刷、代行印刷など）ならでわの設定項目を適宜含めるようにすることも想定される。無論、仮想ジョブならでわの設定項目は、図１９におけるＵＩ１２の「出力設定」と同じシートに含めても良いし、別シートに含めるようにしても良い。
【０１４６】
このように中間データを作成するための設定項目や、仮想ジョブ（分散印刷、同報印刷など）に複数のメンバプリンタの構成を設定する為の設定項目を含ませたＵＩ１２だけでなく、グループプリンタドライバＵＩ１２における１２−ｃ、１２−ｄにより優先度第１位として設定されたプリンタドライバの個別のＵＩ１６が、第２のＵＩ提供ステップとして同一画面上に並行して表示される。これにより、優先度第１位のプリンタについての詳細な印刷設定をわざわざ他のボタンの押下で呼び出すことなく容易に表示させることができる。
【０１４７】
尚、図１９では、ＵＩ１２とＵＩ１６とを別々に表示させているが、代行印刷の出力方法に対応した仮想プリンタが指示されたことに応じて代表となる優先順位１位のメンバプリンタに対応するＵＩに、複数のメンバプリンタの構成を設定する設定項目や、中間データを作成する為の設定項目を含めるようにしても良い。
【０１４８】
従来のグループドライバ設定ＵＩ上ではグループプリンタドライバ上で設定可能な項目（すなわち、共通設定項目）しかできず、様々な出力方法の形態があるにも関わらず、夫々の仮想出力方法における特性を加味した設定環境は提供されていなかった。さらに、従来におけるグループプリンタドライバ設定ＵＩ上では。共通設定項目に含まれない機能については、例えばマウスで、ＯＳにより提供される環境設定ＵＩを呼び出し、その環境設定ＵＩからプリンタ設定ＵＩ、さらにそのプリンタ設定ＵＩから印刷設定ＵＩを辿ったうえで別途設定しなければならないの一般的であった。
【０１４９】
これに対し、図１９に示すような実施形態におけるグループプリンタドライバＵＩ上では、例えば、エラーが稀にしか起こらず、ほとんどの場合で使用される優先順位第１位のメンバプリンタの詳細設定を、グループプリンタドライバに対する設定と平行して行うことが可能なる。一方、代行印刷以外の分散印刷、同報印刷などの出力方法に対しては図１１、１３、１４、１５に示したフローにより効率よく設定を行うことができるようになった。
【０１５０】
以上説明したように、本実施形態によれば、エラー代行印刷システムにおいて、グループプリンタドライバＵＩ上で、エラー代行印刷時の優先順位第一位のメンバプリンタに対する印刷設定を容易に行うことが可能となった。それにより、例えばエラーが稀にしか起こらない、ほとんどの場合に使用されるような優先度第一位のプリンタがわかっているとき、その詳細な設定を、わざわざそのプリンタの印刷設定画面を開くための操作を行わずとも、グループプリンタＵＩ上で手軽にできるようになった。
【０１５１】
（他の実施形態）
以上、本発明の実施形態を詳述したが、本発明は、例えばシステム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。また、本発明は、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【０１５２】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（図１０，１１，１３〜１５に示すフローチャートに対応したプログラム）を、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータがその供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。その場合、プログラムの機能を有していれば、その形態はプログラムである必要はない。
【０１５３】
従って、本発明の機能処理をコンピュータで実現するために、そのコンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明の特許請求の範囲には、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０１５４】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０１５５】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などがある。
【０１５６】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、そのホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明のクレームに含まれるものである。
【０１５７】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１５８】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０１５９】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【０１６０】
【発明の効果】
本発明によれば、複数のプリンタを用いた印刷処理を行うシステムにおいて、仮想プリンタの出力方法の特性を加味した最適な印刷設定を行うことができる。
【図面の簡単な説明】
【図１】実施形態における印刷処理システムの構成を示す図である。
【図２】実施形態における印刷処理システムにおけるコンピュータの構成を示すブロック図である。
【図３】実施形態におけるコンピュータのＲＡＭのメモリマップの一例を示す図である。
【図４】実施形態におけるＦＤのメモリマップの一例を示す図である。
【図５】実施形態におけるコンピュータのＦＤドライブに挿入されるＦＤとの関係を示す図である。
【図６】プリント制御モジュールの構成を示す図である。
【図７】実施形態における印刷制御系の構成を説明するための図である。
【図８】汎用印刷ファイルの構造例を示す図である。
【図９】実施形態における印刷設定用のＵＩの一例を示す図である。
【図１０】実施形態におけるＵＩ表示処理を示すフローチャートである。
【図１１】実施形態におけるＵＩ制御処理の詳細を示すフローチャートである。
【図１２Ａ】実施形態におけるメンバプリンタの構成と設定可能項目との対応関係を示す図である。
【図１２Ｂ】共通設定項目および拡張設定項目それぞれの具体的な設定項目の例を示す図である。
【図１３】実施形態におけるＵＩ制御処理の詳細を示すフローチャートである。
【図１４】実施形態におけるＵＩ制御処理の詳細を示すフローチャートである。
【図１５】実施形態におけるＵＩ制御処理の詳細を示すフローチャートである。
【図１６】実施形態におけるグループプリンタドライバＵＩの表示例を示す図である。
【図１７】実施形態におけるグループプリンタドライバＵＩを用いた操作処理を示すフローチャートである。
【図１８】実施形態におけるグループプリンタドライバＵＩの一例を示す図である。
【図１９】実施形態におけるグループプリンタドライバＵＩとメンバプリンタドライバＵＩとを同時表示させた例を示す図である。
【図１】
2004213111.tif 000003
【図２】
2004213111.tif 000004
【図３】
2004213111.tif 000005
【図４】
2004213111.tif 000006
【図５】
2004213111.tif 000007
【図６】
2004213111.tif 000008
【図７】
2004213111.tif 000009
【図８】
2004213111.tif 000010
【図９】
2004213111.tif 000011
【図１０】
2004213111.tif 000012
【図１１】
2004213111.tif 000013
【図１２Ａ】
2004213111.tif 000014
【図１２Ｂ】
2004213111.tif 000015
【図１３】
2004213111.tif 000016
【図１４】
2004213111.tif 000017
【図１５】
2004213111.tif 000018
【図１６】
2004213111.tif 000019
【図１７】
2004213111.tif 000020
【図１８】
2004213111.tif 000021
【図１９】
2004213111.tif 000022