(57)【要約】【課題】  作成した論理プリンタの条件により仮想プリンタを作成するに際し、システム設定を容易に、且つ、ユーザの要望に沿ってより柔軟に行うことができる情報処理装置及びその制御方法を提供する。【解決手段】  ネットワークを介して複数の論理プリンタと通信可能で、複数の論理プリンタに対する出力制御機能を備える情報処理装置であって、複数の論理プリンタのうち所定の論理プリンタの属性をユーザ指定の条件属性と比較し該比較に基づいて仮想プリンタを自動的に作成する。また、本情報処理装置では、所定の論理プリンタは優先度付けが行われ、この優先度を用いて仮想プリンタが作成される。【選択図】  図１３
2005165393.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して複数の出力デバイスと通信可能で、当該複数の出力デバイスに対する出力制御機能を備える情報処理装置であって、
仮想プリンタ作成処理における条件属性を取得する取得手段と、
前記取得手段により取得された前記条件属性に基づいた仮想プリンタを複数の論理プリンタを用いて自動的に作成する仮想プリンタ作成手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記仮想プリンタ作成手段は、前記取得手段により取得された前記条件属性に対応した論理プリンタを用いて仮想プリンタを自動的に作成することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記仮想プリンタ作成手段は、複数種類の仮想プリンタを作成することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記仮想プリンタ作成手段は、所定の論理プリンタの優先度を高くするようにして仮想プリンタを作成することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記仮想プリンタ作成手段は、オペレーティングシステムにデフォルトで利用するように設定されている論理プリンタの種別に応じた複数種類の仮想プリンタを作成することを特徴とする請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項６】
さらに、論理プリンタが存在しない場合に論理プリンタを作成する論理プリンタ作成手段を有し、
前記仮想プリンタ作成手段は、前記論理プリンタ作成手段により作成された論理プリンタと前記取得手段により取得された条件属性とに基づいて、仮想プリンタを作成することを特徴とする請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項７】
さらに、論理プリンタが存在しない場合に前記取得手段により取得された条件属性に基づく論理プリンタを作成する論理プリンタ作成手段を有し、
前記仮想プリンタ作成手段は、前記論理プリンタ作成手段により作成された前記条件属性に基づく論理プリンタを用いて仮想プリンタを作成することを特徴とする請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項８】
さらに、ネットワークを介して通信可能な前記複数の出力デバイスの探索を行う探索手段を有し、
前記論理プリンタ作成手段は、前記探索手段の探索結果に基づいて論理プリンタを作成することを特徴とする請求項６または７に記載の情報処理装置。
【請求項９】
さらに、予め前記情報処理装置内に設定された論理プリンタのポートを更新する更新手段を有することを特徴とする請求項１乃至８の何れか１項に記載の情報処理装置。
【請求項１０】
前記更新手段は、新たにポートを作成し、予め前記情報処理装置内に設定された論理プリンタに割り当てることを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記更新手段は、前記取得手段により取得された条件属性に対応する既存ポートを更新するようにすることを特徴とする請求項１０に記載の情報処理装置。
【請求項１２】
さらに、サーバに設定されたサーバポートを参照する参照手段を有し、
前記更新手段は、前記参照手段により参照されたサーバに設定されたサーバポートに基づいて、前記情報処理装置の前記ポートの作成を行うことを特徴とする請求項９乃至１１のいずれか１項に記載の情報処理装置。
【請求項１３】
前記サーバに設定されたポート情報は、前記サーバによりネットワークを介して通信可能な出力デバイスの探索を行うことにより作成されたものであることを特徴とする請求項１２に記載の情報処理装置。
【請求項１４】
仮想出力デバイス作成処理における条件属性を取得する取得手段と、
前記取得手段により取得された前記条件属性に基づいて、複数の出力デバイスからなる複数種類の仮想出力デバイスを自動的に作成する仮想出力デバイス作成手段と、
を有することを特徴とする情報処理装置。
【請求項１５】
ネットワークを介して複数の出力デバイスと通信可能で、当該複数の出力デバイスに対する出力制御を実行する情報処理方法であって、
仮想プリンタ作成処理における条件属性を取得する取得工程と、
前記取得工程により取得された前記条件属性に基づいた仮想プリンタを複数の論理プリンタを用いて自動的に作成する仮想プリンタ作成工程と、
を有することを特徴とする情報処理方法。
【請求項１６】
前記仮想プリンタ作成工程では、前記取得工程により取得された前記条件属性に対応した論理プリンタを用いて仮想プリンタが自動的に作成されることを特徴とする請求項１５に記載の情報処理方法。
【請求項１７】
前記仮想プリンタ作成工程では、複数種類の仮想プリンタが作成されることを特徴とする請求項１５又は１６に記載の情報処理方法。
【請求項１８】
前記仮想プリンタ作成工程では、所定の論理プリンタの優先度を高くするようにして仮想プリンタが作成されることを特徴とする請求項１５乃至１７のいずれか１項に記載の情報処理方法。
【請求項１９】
前記仮想プリンタ作成工程は、オペレーティングシステムにデフォルトで利用するように設定されている論理プリンタの種別に応じた複数種類の仮想プリンタが作成されることを特徴とする請求項１５乃至１８の何れか１項に記載の情報処理方法。
【請求項２０】
さらに、論理プリンタが存在しない場合に論理プリンタを作成する論理プリンタ作成工程を有し、
前記仮想プリンタ作成工程では、前記論理プリンタ作成工程において作成された論理プリンタと前記取得工程において取得された条件属性とに基づいて、仮想プリンタが作成されることを特徴とする請求項１５乃至１９の何れか１項に記載の情報処理方法。
【請求項２１】
さらに、論理プリンタが存在しない場合に前記取得工程において取得された条件属性に基づく論理プリンタを作成する論理プリンタ作成工程を有し、
前記仮想プリンタ作成工程では、前記論理プリンタ作成手段により作成された前記条件属性に基づく論理プリンタを用いて仮想プリンタが作成されることを特徴とする請求項１５乃至１９の何れか１項に記載の情報処理方法。
【請求項２２】
さらに、ネットワークを介して通信可能な前記複数の出力デバイスの探索を行う探索工程を有し、
前記論理プリンタ作成工程では、前記探索工程による探索結果に基づいて論理プリンタが作成されることを特徴とする請求項２０又は２１に記載の情報処理方法。
【請求項２３】
さらに、予め設定された論理プリンタのポートを更新する更新工程を有することを特徴とする請求項１５乃至２２の何れか１項に記載の情報処理方法。
【請求項２４】
前記更新工程では、新たにポートが作成され、予め設定された論理プリンタに割り当てられることを特徴とする請求項２３に記載の情報処理方法。
【請求項２５】
前記更新工程では、前記取得工程において取得された条件属性に対応する既存ポートが更新されるようにすることを特徴とする請求項２４に記載の情報処理方法。
【請求項２６】
さらに、サーバに設定されたサーバポートを参照する参照工程を有し、
前記更新工程では、前記参照工程において参照された、サーバに設定されたサーバポートに基づいて、前記ポートの作成を行うことを特徴とする請求項２３乃至２５のいずれか１項に記載の情報処理方法。
【請求項２７】
前記サーバに設定されたポート情報は、前記サーバによりネットワークを介して通信可能な出力デバイスの探索を行うことにより作成されたものであることを特徴とする請求項２６に記載の情報処理方法。
【請求項２８】
仮想出力デバイス作成処理における条件属性を取得する取得工程と、
前記取得工程において取得された前記条件属性に基づいて、複数の出力デバイスからなる複数種類の仮想出力デバイスを自動的に作成する仮想出力デバイス作成工程と、
を有することを特徴とする情報処理方法。
【請求項２９】
請求項１５乃至２８のいずれか１項に記載の情報処理方法を実行することを特徴とするプログラム。
【請求項３０】
請求項２９に記載のプログラムを記憶したことを特徴とする、コンピュータで読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプリンタを用いた印刷処理技術に関する。
【背景技術】
【０００２】
近年においては、例えば、印刷品位の高いレーザービームプリンタが、低価格化の進展により、印刷そのものを業務とする業種・部門だけでなく、一般オフィスにおいても広く使用されるようになってきた。またオフィスで利用されるコンピュータ機器のネットワーク化も近年非常に著しい。これらを背景に、一般オフィスにおいて複数のプリンタをネットワークに接続して使用するケースも珍しくなくなってきている。
【０００３】
このようなプリンタの使用形態が一般的になるにつれて、ネットワークに接続された複数のプリンタをいかに有効利用するかが新たな課題となってきている。
【０００４】
上記の課題に対する解答の一つとして、Ｗｉｎｄｏｗｓ（登録商標）オペレーションシステムで動作する、以下の要素から構成されるシステムが、これまでに考案されている。（１）  オペレーションシステム上にプリンタデバイスに対応して登録された、ネットワーク上のデバイスに印刷を行わせるために論理的なプリンタ（以後「論理プリンタ」と呼ぶ）
（２）  オペレーションシステム上に登録された、プリンタデバイスとは直接の対応関係は持たず、一つまたは複数の論理プリンタを配下に置き、自らに対して発行されたプリントジョブをもとに、前記配下の論理プリンタに対して印刷ジョブを発行するプリンタ（以後「仮想プリンタ」と呼ぶこともある）
（３）  論理プリンタに対して発行されたプリントジョブをオペレーションシステムから受け取るポートモニタ（このポートモニタの設定や状態のことをポート部やポート情報やポート設定情報などと呼ぶことある）
（４）デバイスに送信すべきプリントジョブデータを一時的に保持し、指示を受けた時にデバイスに対して出力する出力ポート（このポートの設定や状態のことをポート部やポート情報やポート設定情報などと呼ぶことある）
（５）プリンタデバイスの状態の監視、ポートモニタとの連携、またポートの制御等を行うことにより、プリントジョブの流れの全般的な制御を司る印刷ジョブ制御システム
上記の要素からなるシステムにより、単一のデバイスを用いた場合には得られない付加価値を持った印刷システムが実現されている。
上記の付加価値とは、たとえば次のような例が挙げられる。プリントジョブ毎に処理の優先順序を設定することで、複数のプリントジョブが同時に処理待ち状態となった場合に、プリントジョブが有する優先順序に基づき処理順序を決定することができる。したがって、緊急に印刷処理する必要のあるドキュメント等のプリントジョブを優先的に印刷することが可能となる。また、例えば、出力ポートが、プリントジョブを送信しようとしたプリンタデバイスでエラーが発生していた場合、他のプリンタデバイスを代わりに選択して印刷処理させるという代行印刷機能、或いは印刷時間短縮のために一つのプリントジョブを論理的に分割して複数のプリンタデバイスに並行して印刷処理させるという分散印刷機能等が利用可能となる。
【０００５】
上記の印刷ジョブ制御システムを稼動させるために、ユーザはソフトウェアを構成するモジュールをコンピュータにインストールするだけでなく、当該印刷ジョブ制御システムで使用するための論理プリンタや仮想プリンタを作成し、必要な準備を行う。このとき、プリンタデバイスの種類やネットワーク上のアドレスなど、環境に応じて設定が必要になる。これはＷｉｎｄｏｗｓ（登録商標）オペレーションシステムの場合、以下のような方法で行う。
【０００６】
例えば、上記のようなポートモニタやポートを作成するにしても、ポートモニタやポートの作成に必要なプリンタのネットワークアドレス、データ転送方法など、様々な設定を行なう必要があり、非常に煩雑な作業を要していた。これは、単に作業が面倒というだけでなく、エンドユーザ自身が、設定に必要な情報の入手が難しい、あるいは入力が求められている情報についての理解不足によって困惑が生じるといった問題が起こりやすい。さらには、作成しようとする論理プリンタの数が多くなるとその作業自体が煩雑になり、それだけ設定ミスが起きやすくなる。
【０００７】
これまでに、上記の欠点を解消するために、例えば、特開２００１−１１７８３４号公報には、ポートモニタの構築、ポートの構築を含む一連のドライバインストール手順を容易にする技術が開示されている。
【０００８】
また、この特許文献には、クライアントとプリンタデバイスとからなるシステムにおいて、まず、クライアントがクライアント情報（ＯＳの種類、ＯＳのバージョン、使用可能な通信プロトコル、ポートモニタの種類及びバージョン）と、プリンタ情報(プリンタの型式、ＩＰアドレス、通信プロトコル、ファックスドライバを必要とするかの情報）と、に基づき、適切なポートモニタ及びポートを構築しドライバを関連付ける仕組みが開示されている。
【特許文献１】特開２００１−１１７８３４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、特開２００１−１１７８３４号公報に開示されている技術においては、単独の論理プリンタを構築を想定したものであり、上に述べた仮想プリンタの構築においては改善の余地があった。つまり、以下のような問題点があった。
（１）あくまで単独の物理プリンタを作成することを想定したものであり、作成した論理プリンタの条件により、どのようにして仮想プリンタを作成するかについて改善の余地があった。
（２）ユーザ先に既に所定の論理プリンタが存在している場合に、その論理プリンタに関連付けられた情報（ポートやポートモニタ）を新たな論理プリンタの作成にあたって有効に活用していなかった。
【００１０】
本願発明は上記問題点を鑑みて為されたものであり、システム設定を容易に、且つ、ユーザの要望に沿ってより柔軟に行うことができる印刷ジョブ制御システムの設定の仕組みを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明による情報処理装置は、ネットワークを介して複数の出力デバイスと通信可能で、当該複数の出力デバイスに対する出力制御機能を備える情報処理装置であって、仮想プリンタ作成処理における条件属性を取得する取得手段と、前記取得手段により取得された前記条件属性に基づいた仮想プリンタを複数の論理プリンタを用いて自動的に作成する仮想プリンタ作成手段と、を有することを特徴とする。
【００１２】
また、本発明による情報処理装置は、仮想出力デバイス作成処理における条件属性を取得する取得手段と、前記取得手段により取得された前記条件属性に基づいて、複数の出力デバイスからなる複数種類の仮想出力デバイスを自動的に作成する仮想出力デバイス作成手段と、を有することを特徴とする。
【００１３】
さらに、本発明による情報処理方法は、ネットワークを介して複数の出力デバイスと通信可能で、当該複数の出力デバイスに対する出力制御を実行する情報処理方法であって、仮想プリンタ作成処理における条件属性を取得する取得工程と、前記取得工程により取得された前記条件属性に基づいた仮想プリンタを複数の論理プリンタを用いて自動的に作成する仮想プリンタ作成工程と、を有することを特徴とする。
【００１４】
また、本発明による情報処理方法は、仮想出力デバイス作成処理における条件属性を取得する取得工程と、前記取得工程において取得された前記条件属性に基づいて、複数の出力デバイスからなる複数種類の仮想出力デバイスを自動的に作成する仮想出力デバイス作成工程と、を有することを特徴とする。
なお、本発明は、コンピュータプログラム及びコンピュータ読み取り可能な記憶媒体でも実現される。
【００１５】
上記課題を解決するその他の構成については、以下の発明を実施するための最良の形態によって明らかになるものである。
【発明の効果】
【００１６】
本発明によれば、仮想プリンタ作成処理における条件を予め指定しておけば、条件に適合した、本印刷ジョブ制御システムで使用するための仮想プリンタを論理プリンタを用いて作成するようになる。それにより、設定の自動化がより進み、システムの導入におけるユーザの手間を軽減することができるようになる。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照して本発明を実施するための最良の形態について詳細に説明する。
【００１８】
[第１の実施の形態]
＜印刷処理システムの構成例＞
図１は、実施形態に係る印刷処理システムの構成を示す図である。
【００１９】
同図において、１０１、１０２、１０３、１０４は、ネットワーク１０６に接続され、相互に通信可能なネットワークコンピュータであり、典型的にはパーソナルコンピュータ（ＰＣ）である。
【００２０】
これらのうち、１０２，１０３，１０４はクライアントコンピュータ（以下、クライアント）であり、それぞれイーサネット（登録商標）などのネットワークケーブルによってネットワーク１０６に接続され、アプリケーションプログラム等の各種のプログラムを実行可能であり、印刷データをプリンタに対応するプリンタ言語に変換する機能を有するプリンタドライバを搭載している。ここで、各クライアントは複数のプリンタドライバをサポートするものとする。
【００２１】
これに対し１０１はサーバコンピュータ（以下、サーバ）であり、ネットワークケーブルによってネットワーク１０６に接続され、ネットワークで使用されるファイルを蓄積したり、ネットワーク１０６の使用状態を監視する。このサーバは、ネットワーク１０６に接続されているプリンタを管理する印刷ジョブ制御システム７００としても機能する。具体的には、プリントサーバ１０１は、クライアントコンピュータ１０２、１０３、１０４から印刷要求が出されたプリントデータを含む印刷ジョブを格納して印刷する機能や、クライアントコンピュータ１０２〜１０４から印字データを含まないジョブ情報を受け取って印刷順序を管理し、印刷順序になったクライアントに対して印字データを含む印刷ジョブの送信許可を通知する機能、後述するネットワークプリンタ（プリンタデバイス）１０５のステータスや印刷ジョブの各種情報を取得して、クライアントコンピュータ１０２〜１０４に通知する機能などを有している。
【００２２】
１０５は、印刷制御装置としてのネットワークプリンタであり、図示しないネットワークインタフェースを介してネットワーク１０６と接続されており、クライアントコンピュータから送信されてくる印字データを含む印刷ジョブを解析し、１ページずつドットイメージに変換して印刷する。なお、同図にネットワークプリンタ１０５は１台しか示されていないが、他のネットワークプリンタが複数接続されているものとする。各ネットワークプリンタの機能は相違するものであってもよい。
【００２３】
また、１０６はネットワークであり、クライントコンピュータ１０２〜１０４、プリントサーバ１０１、ネットワークプリンタ１０５等と接続している。
【００２４】
＜ネットワークコンピュータのハードウエア構成例＞
図２は、クライアント１０２〜１０４とプリントサーバ１０１として使用されるコンピュータの構成を説明するブロック図である。なお、本実施形態においてはこのように、クライントコンピュータ１０２〜１０４もプリントサーバ１０１も同様あるいは同等のハードウエア構成とするが、それぞれ専用のハードウエア構成であっても構わない。
【００２５】
図２において、２００は装置全体の制御を行うＣＰＵであり、ハードディスク（ＨＤ）２０５に格納されているアプリケーションプログラム、プリンタドライバプログラム、ＯＳや、本実施形態のネットワークプリンタ制御プログラム等を実行し、ＲＡＭ２０２にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
【００２６】
２０１は記憶手段としてのＲＯＭであり、内部には、基本Ｉ／Ｏプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。２０２は一時記憶手段としてのＲＡＭであり、ＣＰＵ２００の主メモリ、ワークエリア等として機能する。
【００２７】
２０３は記憶媒体読み込み手段としてのフロッピディスクドライブであり、後述する図５に示すようにＦＤドライブ２０３を通じて、記憶媒体としてのＦＤ２０４に記憶されたプログラム等を本コンピュータにロードすることができる。２０４は記憶媒体であるフロッピディスク（ＦＤ）であり、コンピュータが読み取り可能にプログラムが格納された記憶媒体である。なお、記憶媒体はＦＤに限らず、ＣＤ−ＲＯＭ、ＣＤＲ、ＣＤＲＷ、ＰＣカード、ＤＶＤ、ＩＣメモリカード、ＭＯ、メモリスティック等、任意である。
【００２８】
２０５は外部記憶手段の一つであり、大容量メモリとして機能するハードディスク（ＨＤ）であり、アプリケーションプログラム、プリンタドライバプログラム、ＯＳ、ネットワークプリンタ制御プログラム、関連プログラム等を格納している。更に、スプール手段であるスプーラはここに確保される。スプール手段は、クライアントではクライアントスプーラのことであり、プリントサーバではサーバスプーラのことである。また、プリントサーバでは、クライアントから受けたジョブ情報を格納し、順序制御を行うためのテーブルもこの外部記憶手段に生成されて格納される。
【００２９】
２０６は指示入力手段であるキーボードであり、ユーザがクライアントコンピュータに対して、また、オペレータや管理者がプリントサーバに対して、デバイスの制御コマンドの命令等を入力指示するものである。２０７は表示手段であるディスプレイであり、キーボード２０６から入力したコマンドや、プリンタの状態等を表示したりするものである。
【００３０】
２０８はシステムバスであり、クライアントやプリントサーバであるコンピュータ内のデータの流れを司るものである。２０９は入出力手段であるインタフェースであり、該インタフェース２０９を介して情報処理装置は外部装置とのデータのやり取りを行う。
【００３１】
なお、上記コンピュータの構成はその一例であり、図２の構成例に限定されるものではない。例えば、データやプログラムの格納先は、その特徴に応じてＲＯＭ、ＲＡＭ、ＨＤなどで変更することも可能である。
【００３２】
図３は、図２に示したＲＡＭ２０２のメモリマップの一例を示す図であり、ＦＤ２０４からロードされる上記ネットワークプリンタ制御プログラムが、ＲＡＭ２０２にロードされ実行可能となった状態のメモリマップである。
【００３３】
なお、本実施形態では、ネットワークプリンタ制御プログラムおよび関連データをＦＤ２０４から直接ＲＡＭ２０２にロードして実行させる例を示すが、これ以外にも、ネットワークプリンタ制御プログラムを動作させる度に、既にネットワークプリンタ制御プログラムがＦＤ２０４からインストールされているＨＤ２０５から、ＲＡＭ２０２にロードするようにしてもよい。また、本ネットワークプリンタ制御プログラムを記憶する媒体は、ＦＤ以外にＣＤ−ＲＯＭ、ＣＤＲ、ＰＣカード、ＤＶＤ、ＩＣメモリカードであってもよい。さらに、本ネットワークプリンタ制御プログラムをＲＯＭ２０１に記憶しておき、これをメモリマップの一部となすように構成し、直接ＣＰＵ２００で実行することも可能である。また、以上の各装置と同等の機能を実現するソフトウェアをもって、ハードウェア装置の代替として構成することもできる。
【００３４】
また、以下では、本ネットワークプリンタ制御プログラムのことを、簡単に印刷制御プログラムまたはプリンタドライバと呼ぶこともある。印刷制御プログラムは、クライアントにおいては、印刷ジョブの印刷先の変更を指示したり、印刷順序を変更する指示をするための制御を行うプログラムを含む。一方、プリントサーバにおいては、印刷ジョブの順序制御を行ったり、印刷ジョブの印刷終了や印刷先変更要求などを通知するためのプログラムを含んでいる。また、このような制御を行う本実施形態の印刷制御プログラムは、クライアントにインストールされるモジュールと、プリントサーバにインストールされるモジュールを別々に分けてもよいし、ひとつの印刷制御プログラムが、実行される環境によりクライアント用として機能したり、プリントサーバ用として機能するようにしてもよい。あるいは、一台のコンピュータに、クライアント用の機能を持つモジュールとプリントサーバ用として機能するモジュールとをともにインストールし、同時にあるいは時分割で、擬似的に平行動作させる構成も可能である。
【００３５】
３０１は基本Ｉ／Ｏプログラムであり、コンピュータの電源がＯＮされたときに、ＨＤ２０５からＯＳがＲＡＭ２０２に読み込まれ、ＯＳの動作を開始させるＩＰＬ（イニシャルプログラムローデイング）機能などを有しているプログラムが入っている領域である。３０２はオペレーティングシステム（ＯＳ）であり、３０３はネットワークプリンタ制御プログラムで、ＲＡＭ２０２上に確保される領域に記憶される。３０４は関連データで、ＲＡＭ２０２上に確保される領域に記憶される。３０５はワークエリアで、ＣＰＵ２００が本プリンタ制御プログラムを実行する領域が確保されている。
【００３６】
図４は、図２に示したＦＤ２０４のメモリマップの一例を示す図である。
【００３７】
図４において、４０１はデータの情報を示すボリューム情報であり、４０２はディレクトリ情報、４０３は本実施形態で説明する印刷制御プログラムであるネットワークプリンタ制御プログラム、４０４はその関連データである。ネットワークプリンタ制御プログラム４０３は、本実施形態で説明するフローチャートに基づいてプログラム化したものであり、本実施形態では、クライアント及びサーバ共に、同様の構成をとっている。
【００３８】
図５は、図２に示したＦＤドライブ２０３に対して挿入されるＦＤ２０４との関係を示す図であり、図２と同一のものには同一の符号を付してある。図５において、ＦＤ２０４には、本実施形態で説明するネットワークプリンタ制御プログラムおよび関連データが格納されている。
【００３９】
＜印刷処理システムにおけるソフトウエア構成例＞
ここで、本実施形態における用語の技術的意味について説明しておく。
【００４０】
複数のプリンタを１つのプリンタとして仮想的に束ねる仮想プリンタを「グループプリンタ」、束ねられるプリンタを「メンバプリンタ」とよぶ。また、グループプリンタおよびメンバプリンタには、所定の出力ポートが対応付けられた仮想プリンタドライバおよびデバイスドライバが対応しているので、グループプリンタ及びメンバプリンタをドライバに対応して考えることもできる。そして、後述する図１８乃至２１のフローチャートにおいて仮想プリンタを作成する処理について説明する。
【００４１】
グループプリンタを更に具体的に説明すると、アプリケーションからＯＳを介して生成される描画命令に基づいて中間形式ファイル（汎用印刷ファイル）を生成するためのデータを生成する仮想ドライバをグループプリンタドライバと呼ぶ。そして、後述するジョブ制御プリントサービスにより、先の中間形式のファイルに基づいてページ記述言語を生成させるべく各個別のプリンタドライバに印刷指示がなされるが、この個別の各プリンタドライバに対応するプリンタをメンバプリンタと呼ぶ。また、各メンバプリンタは最終的には特定のデバイスに対応することとなる。
【００４２】
一方、本実施形態において、アプリケーションにおける印刷指示に応じてWindows（登録商標）等のＯＳを介して出力される描画命令（一般的にＤＤＩ或いはＧＤＩと呼ばれている）あるいはＥＭＦ（EnhancedMetafi1eFormat：拡張メタファイル）を解釈しページ記述言語を生成しデバイスへ出力させるようなプリンタドライバを通常プリンタドライバ、このときのデバイスを通常デバイスと呼び、グループプリンタやメンバプリンタと区別する。なお、ＯＳとしてはWindows（登録商標）に限定されるものではなく、描画命令を備えるＯＳであれば適用可能であることは言うまでもない。
【００４３】
図６は、本システムのクライアントサーバモデルにおいて、Microsoft Word（登録商標）などの一般的なアプリケーションから発行された描画コマンドを含む印刷ジョブが、印刷ジョブ制御システムにおいてどのように処理されるかを示した図である。
【００４４】
通常、印刷の指示がされると、アプリケーションプログラムは一連の描画命令をＯＳを介して生成させる。この生成された描画命令はプリンタドライバを経て所定の形式に変換された後、ウインドウズ（登録商標）スプーラ（Windows（登録商標） Spooler）に渡される。Windows（登録商標） Spoolerは、ユーザがユーザインタフェースを介して選択し指示したポートモニタにプリントジョブデータを渡して、プリンタデバイスに送信させる手順をとる。本実施形態では、今述べた通常の動作に対してユーザはあらかじめ印刷ジョブ制御システム用のポートモニタ６２１（以降、ジョブ制御ポートモニタと略記）を指定して印刷を指示する。
【００４５】
アプリケーションプログラム６０１は一連の描画命令をＯＳを介して生成させる。ここで、ＯＳを介して生成された描画命令は、グループプリンタドライバ６０３或はＰＤＬDriver602の何れか指定されたプログラムに引き渡させる。
【００４６】
ＯＳを介して生成された描画命令を受け取ったグループプリンタドライバ６０３では、汎用印刷ファイルを生成するための汎用ドキュメントデータを生成し、プリンタデバイスへプリントジョブデータを送信するＯＳに標準で装備されたＴＣＰ／ＩＰ  Ｓｔａｎｄａｒｄ  Ｐｏｒｔなどのポートモニタではなく、ジョブ制御ポートモニタ６２１にプリントジョブデータとして送信する。また、プリンタドライバインタフェースを介して設定された用紙サイズ、ステープル指示等の印刷設定情報も、ジョブ制御ポートモニタ６２１に送信される。
【００４７】
ジョブ制御ポートモニタ６２１は、プリントジョブデータである汎用印刷ドキュメントデータをプリンタデバイス１０５に送信するのではなく、印刷ジョブ制御システム用プリントサービス６２２（以降、ジョブ制御プリントサービスと略記）に送信する。ジョブ制御プリントサービス６２２は、プリントジョブデータに対して、後述するような印刷ジョブ制御処理を行う。
【００４８】
一方、ＯＳを介して生成された描画命令がＰＤＬDriver602に投入された場合には、ＰＤＬDriver602よって頁記述言語が生成され、該生成された頁記述言語は、印刷処理を行うよう設定されたＰＤＬDriver602対応するジョブ制御ポートモニタ６２１、ジョブ制御サービス622を介して対応するデバイスに送信される。
【００４９】
印刷ジョブ制御システム用プリントマネージャ６２３（以降、ジョブ制御プリントマネージャと略記）は、ユーザがジョブ制御プリントサービス６２２内部でプリントジョブがどのような状態にあるかを調べたり、プリントジョブを操作したりするためのユーザインタフェースを提供するプログラムである。ジョブ制御プリントマネージャ６２３は、ジョブ制御プリントサービス６２２のソフトウェアのインタフェース（ＡＰＩ：Application Program Interface）を介して、ジョブ制御プリントサービス６２２と情報・指示をやり取りしている。更に詳細な処理としては、プリントマネージャー６２３がジョブ制御プリントサービス６２２に対してデバイスを指定してのイベントを発行し、ジョブ制御プリントサービス６２２は発行されたイベントに基づくデバイスのステータスを監視して、該監視に基づく結果をプリントマネージャー６２３に通知する。
【００５０】
印刷ジョブ制御システム用サーバ６３０（以降、ジョブ制御サーバと略記）は、個々のクライアント１０２〜１０４上のジョブ制御プリントサービス６２２がプリンタデバイス１０５にプリントジョブデータを送信するタイミングを集中制御（スケジューリング）している。印刷ジョブ制御システム用マネージメントコンソール６３３（以降、ジョブ制御マネージメントコンソールと略記）は、ジョブ制御サーバ６３０が持つソフトウェアがアクセスするためのＡＰＩを介して、ジョブ制御サーバ６３０と情報・指示をやり取りすることで、印刷ジョブ制御システム全体を監視することができる。
【００５１】
また、ジョブ制御サーバ６３０は、デバイス情報コントロールモジュール６３１を用いて各プリンタデバイス１０５と通信を行い、各プリンタ内の印刷ジョブや動作状態に関する情報を入手したり、操作を行ったりする。入手した情報は、クライアント１０２〜１０４側のジョブ制御プリントサービス６２２に渡すことができる。
【００５２】
＜印刷処理システムの動作例＞
次に、本実施形態におけるグループプリンタドライバ６０３からの印刷について説明する。
【００５３】
グループプリンタドライバ６０３は汎用印刷ファイル中の印刷指示書（後述の図８にて説明）の指示にしたがって、アプリケーションプログラム６０１が生成した一連の描画コマンドをプリンタデバイスやＯＳの種類に依存しない汎用中間フォーマットデータ（前述の汎用ドキュメントデータに相当）に変換する。この汎用中間フォーマットデータは、Windows（登録商標） Spooler６０４からジョブ制御ポートモニタ６２１を経て（図６の（ａ））、ジョブ制御プリントサービス６２２に導かれる（図６の（ｂ））。ここで、汎用中間フォーマットデータは、汎用印刷ファイルに構築される。この汎用印刷ファイルの構成については後述する。
【００５４】
ジョブ制御プリントサービス６２２は、このプリントジョブに対して行うジョブ制御の種類に応じて、汎用印刷ファイルをもとに描画コマンドを生成し（図６の（ｃ））、続いてＰＤＬドライバ６０２がその描画コマンドをプリンタデバイス１０５が解釈可能なＰＤＬ形式のファイルにする。
【００５５】
図６では代行機能仮想プリンタ（後述の図１８で作成される仮想プリンタ）から印刷ジョブが投入された場合に、ジョブ制御プリントサービス６２２で、このプリントジョブに対してプリンタ側のエラーを検知して代行印刷を行う例を示しており、実線で示されるのは当初印刷を予定していたメンバジョブであり、破線については代行印刷のために生成されたのジョブを示している（図６の（ｃ））。ＰＤＬドライバ６０２で生成されたＰＤＬファイルはWindows（登録商標） Spooler６０４、ジョブ制御ポートモニタ６２１を経て（図６の（ｄ））、再びジョブ制御プリントサービス６２２に渡される（図６の（ｅ））。ジョブ制御プリントサービス６２２は、ジョブ制御サーバ６３０の指示に従ってＰＤＬのプリントジョブデータをプリンタデバイス１０５に送信する（図６の（ｆ））。
【００５６】
また、分散印刷仮想プリンタ（後述の図１９、図２０で作成される仮想プリンタ）のＵＩを介しての設定に基づく汎用印刷ファイルがグループプリンタドライバ６０３により行なわれ、ジョブ制御プリントサービス６２２に投入される（図６の（ａ）、（ｂ））。この汎用印刷ファイルの印刷指示書には分散メンバーの論理プリンタを特定する情報が含まれている。ジョブ制御プリントサービス６２２は、汎用印刷ファイル中の印刷指示書の指示にしたがって、１つの汎用印刷ファイルを複数のプリントジョブに論理的に分割してそれぞれ別のプリンタデバイス（分散メンバー）に送信する。ジョブ制御プリントサービス６２２は汎用中間フォーマットデータに基づく印刷指示を（図６の（ｃ）、（ｄ）、(e）、（ｆ））分散メンバプリンタの数だけ繰り返し行なう。
【００５７】
また、カラーモノクロ分散仮想プリンター（後述の図２１で作成される仮想プリンタ）については、グループプリンタドライバ６０３で汎用中間フォーマットデータを作成する際に描画コマンド中のカラー属性の有無を物理ページ毎に判別し汎用印刷ファイルを作成する。そして、作成された汎用印刷ファイルはジョブ制御プリントサービス６２２に投入される（図６の（ａ）、（ｂ））。
【００５８】
そして、汎用印刷ファイルの印刷指示書に従い、カラー属性が含まれる物理ページの汎用中間フォーマットデータをカラー論理プリンタに処理させ（図６の（ｃ）→カラーＰＤＬ  Ｄｒｉｖｅｒ６０２→（ｄ）→（ｅ）→（ｆ）→）、カラー属性が含まれない物理ページの汎用中間フォーマットデータをモノクロ論理プリンタに処理させる（図６の（ｃ）→モノクロＰＤＬ  Ｄｒｉｖｅｒ６０２→（ｄ）→（ｅ）→（ｆ）→）すればよい。
【００５９】
＜汎用印刷ファイルの構成例＞
図８は、構築された汎用印刷ファイルの構成の一例を示した図である。
【００６０】
本実施形態で使用される汎用印刷ファイルは、印刷指示部８ａ（前述の印刷指示書に相当）とドキュメントデータ部８ｂとからなる。印刷指示部８ａは、ドキュメントの情報と印刷指示とを記述した部分である。また、ドキュメントデータ８ｂは、上に説明した如くアプリケーションのドキュメントのデータを汎用的な形式のデータに変換したものであり、プリンタ言語やＯＳの種類に依存しない或は依存しにくい形式のデータフォーマットとなっている。
【００６１】
アプリケーションデータを変換した後の変換後データ（汎用印刷データ）としては、印刷リソースデータとして利用可能でかつワードプロセッサアプリケーション等により再度編集可能な形式のデータであることが想定され、実質的な標準形式のうち、例えば、ＸＭＬ形式や、ＷＩＮＤＯＷＳシステムにより提供されるＥＭＦ形式、或はAdobe Systems IncorporatedによるＰＤＦ（Portable Document Format）形式やＳＶＧ形式などが汎用形式の汎用印刷データとして採用できる。
【００６２】
また、図示はされてはいないが、汎用印刷ファイルには、各メンバプリンタに対応したDEVMODEも含まれているものとする。該DEVMODEには、後述の図１２にて詳しく説明する共通設定項目及び拡張設定項目の双方が含まれるものとする。
【００６３】
更に詳細に説明すると、印刷指示部８ａは、ヘッダ部８０１、ページ情報部８０２、ドキュメント属性部８０３、印刷体裁指示部８０４、出力方法指定部８０５、メンバプリンタ数８０６、メンバプリンタドライバ名８０７などから構成されている。
【００６４】
ヘッダ部８０１は、本ファイルのバージョン識別やファイル情報などの情報を格納する部分である。ページ情報部８０２は、ドキュメントデータ部８ｂのドキュメントデータのページ数、各ページのサイズなどの情報を格納する部分である。
【００６５】
印刷体裁指示部８０４は、グループプリンタドライバのＵＩや、メンバプリンタの個別のＵＩを介して設定された印刷ページ範囲、印刷部数、ドキュメントデータの面付け情報（Ｎ−ＵＰや製本印刷など）、ステイプル指示やパンチ指示など、出力体裁に関する情報を格納する部分である。尚、ステイプル、パンチ指示については、Ｐａｇｅ単位で指定（サブセットステイプ等）されることもある。尚、各メンバプリンタの個別のＵＩを介して設定された内容は印刷指示部８０４に反映されると共に、各メンバプリンタに対応するDEVMODEにも反映されて保存される。
【００６６】
出力方法指定部８０５は、出力方法として、分散印刷、同報印刷、代行印刷、カラーモノクロ分散印刷、通常印刷（代行しない印刷）などの出力方法に関する情報を格納する部分である。この出力方法指定部８０５に代行印刷が設定されている場合には、更に優先順位情報（第一候補、第二候補・・・）を付したプリンタ情報が含まれる。
【００６７】
メンバプリンタ数８０６は、グループプリンタドライバが関連付けているメンバプリンタの数を格納する部分である。メンバプリンタドライバ名８０７は、メンバプリンタのプリンタドライバ名を格納する部分である。このメンバプリンタドライバ名８０７は、前述のメンバプリンタ数８０６の数だけの格納エリアを持っている。
【００６８】
前述の図６で説明したジョブ制御プリントサービス６２２では、汎用印刷中間フォーマットデータより汎用印刷ファイルを生成する際、グループプリンタドライバのＧＵＩ上での設定を印刷指示部８ａへ記憶する。更に、グループプリンタドライバから受け取った汎用印刷中間フォーマットデータを、汎用印刷ファイルのドキュメントデータ部８ｂに記録する処理も、ジョブ制御プリントサービス６２２により実行される。
【００６９】
＜Windows（登録商標） Print Systemと印刷ジョブ制御システムの関係例＞
次に、図７でWindows（登録商標）が提供するPrint Systemと印刷ジョブ制御システムとにおける印刷ジョブの関係と処理概要をさらに詳しく述べる。ここで、図６と同じ機能は同じ参照番号を付与しており、その機能については詳説しない。
【００７０】
図７中では、印刷ジョブ制御システム７００は、制御プログラムが動作するプリントサーバ１０１とクライアント１０２〜１０４の物理的なマシンをまたいだ、印刷ジョブ制御システムの範囲を示している。また、プリントサーバが管理している出力ポート（Output Port）７１１は、クライアントのジョブ制御プリントサービス６２２のプロキシ出力ポート（Proxy Output Port）７１２とそれぞれ関連付けられ、このプロキシ出力ポートは自ポートに関連づけられた各クライアント上のプロキシ出力ポートの全てを統一的に管理している。本実施形態では、実際のプリントジョブデータは各々のクライアントのプロキシ出力ポート７１２に保持される。また、クライアント１０２〜１０４にジョブ制御サーバと同様の機能が備えられ、クライアント１０２〜１０４の各々が単独で本形態の印刷処理を実行する場合には、図７中のＰｒｏｘｙ  ＯｐｕＰｕｔ  ＰｏｒｔがＯｐｕＰｕｔ  Ｐｏｒｔに置き換えられるものとして考えることが出来る。
【００７１】
ジョブ制御サーバ６３０は、プリントジョブデータ自体の送信処理は行わず、ジョブ制御プリントサービス６２２に対して印刷ジョブの送信指示のみを行う。その指示に応じて、クライアントのジョブ制御プリントサービス６２２はプリントジョブデータをプリントデバイス１０５に送信する。
【００７２】
次に、印刷ジョブ制御システム７００が、代行印刷といった付加価値印刷を行う場合の処理を説明する。
【００７３】
印刷ジョブ制御システム７００が、代行印刷といった付加価値的な印刷を行う場合には、前述のようにユーザまたはアプリケーション６０１は、グループプリンタドライバ６０３に割り当てられたプリンタに印刷ジョブを発行しなければならない。ジョブ制御プリントサービス６２２は、グループプリンタドライバ６０３によって処理された汎用印刷中間フォーマットデータをジョブ制御ポートモニタ６２１を介して受け取る。ジョブ制御プリントサービス６２２は、この汎用印刷中間フォーマットデータより汎用印刷ファイルを構築し（図７の７１５）、先に説明した印刷指示部８ａの指示内容に従う印刷指示をデスプーラ（Despooler）７０１に対して行う。そして、Despooler７０１を介してＰＤＬドライバが割り当てられた別のプリンタにジョブ（メンバジョブ）を発行して、印刷を行わせる。
【００７４】
このとき、Despooler７０１は、ジョブ制御プリントサービス６２２の汎用印刷ファイルの印刷指示部８ａの解釈に基づく指示に応じて、ドキュメントデータ部８ｂのドキュメントデータを加工してWindows（登録商標）のＧＤＩに変換し、プリンタドライバに対して印刷指示を行い、印刷ジョブを発行する。例えば、印刷体裁指定部８０４に２−ＵＰに相当する指示が記録されていた場合、用紙１枚に２ページ分のドキュメントデータを縮小レイアウトするようにDEVMODEを介してメンバプリンタに対して指示する。また、印刷体裁指定部８０４にステイプル指示がある場合にはDEVMODEを介してステイプルの指示を行う。また、代行印刷時には、印刷指示部８ａに記述されている代行先メンバプリンタにジョブを発行する。尚、２−ＵＰ等の縮小レイアウトを処理する場合に、Despooler自身が印刷体裁指定部８０４の内容に基づき縮小レイアウトするようにして、メンバプリンタにはDEVMODEを介して１−ＵＰを指示するようにしても良い。
【００７５】
また、Despooler７０１はメンバプリンタにジョブを発行する際、メンバプリンタドライバに対応する印刷指示として、メンバプリンタのDEVMODEを作成する必要があるが、このDEVMODEは印刷指示部８ａ或は各メンバプリンタに対応して保存されたDEVMODEに記載された内容を適宜各メンバプリンタDEVMODEに反映させて生成する。
【００７６】
クライアント側のジョブ制御プリントサービス６２２は、ＰＤＬドライバ６０２によってレンダリングされたそれぞれのメンバジョブのＰＤＬデータをジョブ制御ポートモニタ６２１を介して受け取り、受け取ったジョブ（ＰＤＬデータ）に関する情報をプリントサーバ側に知らせ、ジョブデータは自身のプロキシ出力キュー（Proxy Output Port）７１２で一時保持する。その後、ジョブ制御サーバ６３０からの送信指示を受けた後にプリンタデバイス１０５に送信する。
次に、本発明の第一の実施形態における、印刷ジョブ制御システム７００における設定の制御について説明する。
【００７７】
＜印刷ジョブ制御システム設定プログラム９００の内部構成及び動作＞
図９は、図１に示したＰＣ１０１で動作する印刷ジョブ制御システム７００の設定を行うための設定プログラム（＝９００）の内部的なソフトウェアモジュール構成を具体的に示した図である。ここでは印刷ジョブ制御システム７００自体の構成の詳細は本発明の趣旨からははずれるため省略する。ただし、当該システムはＷｉｎｄｏｗｓ（登録商標）におけるポートモニタ及びポートとして固有のものを割り当てた論理プリンタを使用することに留意する必要がある。尚、図７中ではポートモニタとポートとが区別されて示されているが、ポートモニタが所定のポートをモニタする際には、ポートモニタは前記所定のポートの設定（例えばＩＰアドレスや通信方式）を共有しているのでので、よってポートモニタとポートとは特に区別することなく、Output Portとジョブ制御ポートモニタの組を１つの実体と見るようにしても良い。よってポートモニタ及びポートの設定や状態のことを単なるポート或いはポート部やポート情報やポート設定情報などと呼ぶこともある。
【００７８】
本実施形態および他の実施形態において、各モジュール及び各フローチャートは、図２のコンピュータ（情報処理装置）１０２におけるＣＰＵ２００によって制御されている。なお、図９及び図１０の各モジュールは、ハードウエア構成として実現しても良い。
【００７９】
印刷ジョブ制御システム７００が接続されるネットワークシステムは図６に示されるものである。
【００８０】
図１３は、ネットワークを介して複数のプリンタデバイスと通信可能な図９、図１０に示される機能を備えた情報処理装置において実行されるフローチャートであり、仮想プリンタ作成処理における条件属性を取得し、該取得された条件属性に基づいたユーザの所望する仮想プリンタを複数の論理プリンタを用いて自動的に作成する処理を示す。
【００８１】
まず、後述の図１３のステップＳ１３０１の処理、つまり既存の論理プリントの情報収集処理に係る図９の説明を行う。ここで、既存の論理プリンタに、本印刷ジョブ制御システム固有のポートモニタに関連付けられた論理プリンタを含めるものとして説明するが、対象をそうでない論理プリンタのみとするようにしても良い。
【００８２】
全体制御モジュール９０１はまずインストール済み論理プリンタ解析モジュール９０２を呼び出す。インストール済み論理プリンタ解析モジュール９０２は、本印刷ジョブ制御システム７００専用の論理プリンタを作成しようとする以前に汎用的な論理プリンタが存在しているかどうかをまず調べ、存在する場合はその設定内容を抽出してインストール済み論理プリンタ情報記憶モジュール９１６内部のインストール済み論理プリンタ情報テーブルに保存する。
【００８３】
インストール済み論理プリンタ解析モジュール９０２は配下に論理プリンタ検出モジュール９０３、ポートモニタ解析モジュール９０４、フィルタ情報記憶モジュール９１１、インストール済み論理プリンタの対応機種判別モジュール９１２を持つ。
【００８４】
論理プリンタ検出モジュール９０３はＯＳにインストールされている全ての論理プリンタを検出し、インストール済み論理プリンタ解析モジュール９０２にその情報を渡す。
【００８５】
ポートモニタ解析モジュール９０４はさらに配下にポートモニタタイプ判別モジュール９０５、ＩＰアドレス取得モジュール９０７、プリントジョブ送信方式取得モジュール９０９を持つ。
【００８６】
ポートモニタタイプ判別モジュール９０５は、検出された論理プリンタに割り当てられているポートモニタ及びポートが印刷ジョブ制御システム設定プログラム９００に対応可能なものであるかどうかを判定する。対応可能であると判断されれば、対応可能な種類のポートモニタ及びポートごとに、ポート付け替え処理を可能とするためのプラグインモジュールが存在することになる。このプラグインモジュールによってデバイスのＩＰアドレスが取得される。なお、本実施例ではＷｉｎｄｏｗｓ（登録商標）に標準で用意されているＳｔａｎｄａｒｄ ＴＣＰ／ＩＰポートのみに対応するものとし、図９にはＳｔａｎｄａｒｄ ＴＣＰ／ＩＰポート判別プラグインモジュール９０６のみが示されている。また、本形態におけるＩＰアドレスとは、所謂Internet Protocol アドレスに限定されるものではなく、通信に用いることができる情報であれば、ＩＤやＭＡＣアドレスなどの様々なアドレス情報に置き換えることができるものとする。以下、アドレス情報の代表としてＩＰアドレスを例に説明を行なう。
【００８７】
ポートモニタ解析モジュール９０４は、ポートモニタタイプ判別モジュール９０５によって印刷ジョブ制御システム７００がサポートするポートモニタ及びポートが割り当てられていると判定された論理プリンタについて、ＩＰアドレス取得モジュール９０７を呼び出す。ＩＰアドレス取得モジュール９０７は、ポートモニタ及びポートに設定されているＩＰアドレスをポートモニタ及びポートのタイプに応じたＩＰアドレスプラグインモジュール（本実施例ではＳｔａｎｄａｒｄ ＴＣＰ／ＩＰポートＩＰアドレス取得プラグインモジュールを図示している）を介して取得してポートモニタ解析モジュール９０４に返す。
【００８８】
さらに、プリントジョブ送信方式取得モジュール９０９も呼び出す。プリントジョブ送信方式取得モジュール９０９は、ポートモニタ及びポートに設定されているＬＰＲあるいはＲＡＷのプリンタデバイスへのプリントジョブデータの転送方法、さらにＬＰＲの場合はキュー名、ＲＡＷの場合にはポート番号を取得する。これはポートモニタ及びポートのタイプに応じたＩＰアドレスプラグインモジュール（本実施例ではＳｔａｎｄａｒｄ ＴＣＰ／ＩＰポートＩＰアドレス取得プラグインモジュールを図示している）を介して行われる。結果はポートモニタ解析モジュール９０４に返す。ポートモニタ解析モジュール９０４はポートモニタ及びポートから収集したこれらの情報を上位のインストール済み論理プリンタ解析モジュール９０２に渡す。
【００８９】
次に、インストール済み論理プリンタ解析モジュール９０２はポートモニタ及びポートの解析が終わると、次にインストール済み論理プリンタ対応機種判別モジュール９１１を呼ぶ。インストール済み論理プリンタ対応機種判別モジュール９１２は、インストール済み論理プリンタのドライバ名取得モジュール９１３により当該論理プリンタに割り当てられているプリンタドライバ名をまず取得し、さらにドライバ名／機種変換モジュール９１４を呼び出して、取得したプリンタドライバ名からプリンタデバイスの種類を割り出す。  インストール済み論理プリンタ解析モジュール９０２は、割り出されたプリンタデバイスの種類から、そのデバイスの印刷速度、ステイプル機能の有無、両面印刷機能の有無、カラー印刷能力の有無等の情報を機種属性情報ＤＢモジュール９１５に問い合わせることにより入手する。
【００９０】
ポートモニタ解析モジュール９０４は、以上により得られたＩＰアドレス、ＬＰＲキュー名の情報を上位のインストール済み論理プリンタ解析モジュール９０２に返し、インストール済み論理プリンタ解析モジュール９０２は返された情報をインストール済み論理プリンタ情報記憶モジュール９１６に記憶させる。インストール済み論理プリンタ情報記憶モジュール９１６は、インストール済み論理プリンタ名により整理されたテーブルに記憶すべき情報を格納する。
【００９１】
さらに、インストール済み論理プリンタ解析モジュール９０２は、入手された上記のデバイス属性とフィルタ情報記憶モジュール９１１に保持されたプリンタ選択条件とを照らし合わせ、選択条件を満たす論理プリンタのみ、インストール済み論理プリンタ情報記憶モジュール９１６内のインストール済み論理プリンタ情報テーブルにポートモニタ及びポート置換のフラグを立てる。
【００９２】
すなわち、論理プリンタ情報記憶モジュールに記憶される情報は、たとえば論理プリンタ毎に次のようなものとなる。
（１）サポート対象のポートモニタ及びポートが割り当てられていると判定された論理プリンタのＩＰアドレス、
（２）ポートモニタ及びポートに設定されているＬＰＲあるいはＲＡＷのプリンタデバイスへのプリントジョブデータの転送方法、
（３）データの転送方法がＬＰＲの場合はキュー名、ＲＡＷの場合にはポート番号、
（４）論理プリンタに割り当てられているプリンタドライバ名、
（５）論理プリンタに割り当てられているプリンタデバイスの種類、
（６）印刷速度、ステイプル機能の有無、両面印刷機能の有無、カラー印刷能力のうち、フィルタ情報記憶モジュール９１１によって指定された条件を満たすもの、である。
【００９３】
これら情報が、既に設定済みの論理プリンタから得られ、保持され、ユーザ先に既に存在している論理プリンタに関連付けられた情報が、新たな論理プリンタの作成にあたって有効に活用されることとなる。る。本実施形態では、印刷ジョブ制御システム設定プログラム９００はＴＣＰ／ＩＰにのみ対応するものとしていることから、ＩＰアドレス等を取得して記憶するものとなっている。しかしながら、既に設定されている論理プリンタについては、その論理プリンタに対応するポートが設定されており、上記（１）で記憶される項目は、その設定済ポートということになる。ＴＣＰ／ＩＰ対応の論理プリンタであればそのポートとしてＩＰアドレスが設定されていることから、そのＩＰアドレスが論理プリンタ情報記憶モジュールに記憶される。同様に、他のプロトコルに対応する論理プリンタであったとしても、印刷ジョブ制御システム設定プログラム９００の対応を条件として、論理プリンタ対応ポートが取得され記憶される。
【００９４】
次に、後述の図１３のステップＳ１３０２の処理に係る図９の説明を行う。全体制御モジュール９０１は、インストール済み論理プリンタ解析モジュール９０４の処理が終わると、次にインストール済み論理プリンタ変更モジュール９１７を呼び出す。インストール済み論理プリンタ変更モジュール９１７は、インストール済み論理プリンタ情報記憶モジュール９１６に格納された情報を読み出して以下の処理を行う。
【００９５】
まず、ひとつのインストール済み論理プリンタを選択する。次に、この論理プリンタについて前述の処理によってポートモニタ置換のフラグが付加されているかどうかが調べられる。ポートモニタ置換のフラグが立っている場合は、本印刷ジョブ制御システム専用ポートモニタ作成モジュール９１８を呼び出し、ポートモニタ９２０のインスタンス（オプジェクト指向プログラミングで実行時に作成されるオブジェクトの実体を指す。）を一つ作成する。そして、作成したポートモニタ９２０のインスタンスを先に選択したインストール済み論理プリンタに既に割り当てられているものに代えて新たに割り当てる。以上の手順を、インストール済み論理プリンタ変換モジュール９１７はインストール済み論理プリンタ情報記憶モジュール９１６中のインストール済み論理プリンタ情報テーブルの各エントリについて実行する。
【００９６】
以上の処理により、インストール済み論理プリンタのポートモニタ及びポートが本印刷ジョブ制御システム固有のポートモニタ及びポートに置き換えられた場合は続いて図１３のステップＳ１３０６の、Ｓ１４１１或いはＳ１６０８の条件属性に対応した論理プリンタを用いて仮想プリンタを自動的に作成する仮想プリンタ９２２の作成に移る（後述）。置き換えられなかった場合は、以下に示す図１３のステップＳ１３０４の手順によって本印刷ジョブ制御システム固有のポートモニタ及びポートを持った論理プリンタ９２１を新規に作成する処理を行う。ここで、固有のポートモニタ及びポートとしては図６のジョブ制御ポートモニタ及びＯｕｔ  ＰｕｔＰｏｒｔの組み合わせが相当する。
【００９７】
次に、図１３のステップＳ１３０４の処理に係る図１０の説明を行う。全体制御モジュール９０１はプリンタデバイス情報収集モジュール１００１を呼び出す。呼ばれたプリンタデバイス情報収集モジュール１００１は配下のネットワークプリンタデバイス探索モジュール１００２を呼び出す。ネットワークプリンタデバイス探索モジュール１００２は、ネットワーク上に、ネットワーク管理プロトコル（例えばＳＮＭＰプロトコル）に則ったパケットのブロードキャストを行うことにより、ネットワークに接続されているプリンタデバイスの検索を行う。ブロードキャストに応答したプリンタデバイスから返されるパケットはそのデバイスの機種名、ＩＰアドレス、デバイス名、MACアドレスの情報を持っている。ネットワークプリンタデバイス探索モジュール１００２は全ての有効な応答パケットに含まれている機種名、ＩＰアドレス、デバイス名、MACアドレスの情報をプリンタデバイス情報収集モジュール１００１に返す。
【００９８】
プリンタデバイス情報収集モジュール１００１は、返された前記の情報（機種名、ＩＰアドレス、デバイス名、MACアドレス）を論理プリンタ情報記憶モジュール１００５に保存させる。なおこのＳＮＭＰプロトコルによるデバイスの情報収集の手順は、ＩＥＴＦにより標準化されており、一般に用いられているものである。読み出した機種名がサポート機種の場合、機種名をもとにこのプリンタデバイスの属性（印刷速度、ステイプル機能の有無、両面印刷機能の有無、カラー印刷機能の有無）を機種属性情報ＤＢモジュール９１５から取得する。一方、フィルタ情報記憶モジュール９１１からフィルタファイルに記憶されているフィルタ情報を取得し、両者を比較することにより論理プリンタを作成すべきかどうかを判定する。その結果、作成すべきであると判定された場合、つまりプリンタデバイスの属性がフィルタファイルで指定された条件を満たす場合は、プリンタデバイス情報記憶モジュール１００５が持つプリンタデバイス情報テーブルにおいて当該プリンタデバイスに対応するエントリの論理プリンタ作成フラグを立てる。
【００９９】
次に、後述の図１３のステップＳ１３０５の処理に係る図１０の説明を行う。全体制御モジュール９０１は、プリンタデバイス情報収集モジュール１００２の処理が終わると、次に論理プリンタ自動作成モジュール１００６を呼び出す。論理プリンタ自動作成モジュール１００６は、プリンタデバイス情報記憶モジュール１００５に格納された機種名、ＩＰアドレス、論理プリンタ作成フラグを各エントリについて読み出す。
【０１００】
論理プリンタ作成フラグが立っていた場合は、論理プリンタを作成する。すなわち機種名をドライバ名変換モジュール１００７に渡し、機種名に対応するプリンタドライバの名称を取得する。次に、機種名をジョブ送信方式情報取得モジュール１００８に渡し、プリントジョブのプリンタデバイスへの送信方式とそれに関連する初期設定情報を取得する。本実施例では前者はＬＰＲまたはＲＡＷ、後者はＬＰＲの場合にはＬＰＲキュー名、ＲＡＷの場合にはポート番号を持つ。この取得する情報はジョブ送信方式情報取得モジュール１００８が管理する静的な情報であり、各機種に対してあらかじめ一意に決められている。
【０１０１】
論理プリンタ自動作成モジュール１００６は、プリンタデバイス情報記憶モジュール１００５から取得したＩＰアドレスに加え、ジョブ送信方式情報取得モジュール１００８から得られた上記情報を印刷ジョブ制御システム７００専用ポートモニタ作成モジュール９１８に渡す。印刷ジョブ制御システム７００専用ポートモニタ作成モジュール９１８は配下のポートモニタ初期値取得モジュール１００９に機種名とジョブ送信方式情報を渡して、ポートモニタ及びポートの各種設定値の初期値を生成させ、入手する。これと前記のＩＰアドレス、ジョブ送信方式情報を用いて印刷ジョブ制御システム７００専用のポートモニタ９２０のインスタンスを作成する。
【０１０２】
論理プリンタ作成モジュール１００６は、上記で作成されたポートモニタ及びポートと上記で取得したプリンタドライバ名を用いて論理プリンタを作成する。
【０１０３】
次に、後述の図１３のステップＳ１３０６の処理に係る図１０の説明を行う。仮想プリンタ作成モジュール１０１０は、論理プリンタ９２１を用い、それらの属性に応じて代行機能、分散、カラー／モノクロ分散の機能を持つ仮想プリンタを適宜作成する。また、この仮想プリンタ作成モジュール１０１０には、後述の図１８乃至２１において作成される仮想プリンタに対応するグループプリンタドライバ６０３が予め含まれているものとする。以下、その詳細を述べる。（以下においては、特に断らない限り論理プリンタは全て本印刷ジョブ制御システム固有のポートモニタ及びポートを割り当てられたものに限ることとする。）ここで仮想プリンタ作成の対象となる論理プリンタは上述の手順により作成された論理プリンタ９２１のみとするようにしても良いし、予め装置内にインストールされた本印刷ジョブ制御システム固有のポートモニタが関連付けられた論理プリンタ９２１を含めるようにしても良い。
【０１０４】
仮想プリンタ作成モジュール１０１０は、まず論理プリンタ９２１のインスタンスが実際に存在するかどうかを調べる。存在しない場合は仮想プリンタを作成せずに処理を終了する。存在する場合は、論理プリンタ９２１のインスタンスの属性に応じて代行機能、分散印刷機能、カラー／モノクロ分散印刷機能を持った仮想プリンタ９２２のインスタンスを状況に応じてそれぞれ作成する。以下、それぞれの処理の詳細を述べる。なお、具体的な手順についてはフローチャートを用いて後述する。
【０１０５】
（代行機能仮想プリンタ）
まず、代行機能を持った仮想プリンタ９２２のインスタンスを作成する処理を以下の要領で行う。尚、ここでいう代行機能プリンタとは自動代行プリンタ或いは代行時にユーザが選択可能な代行候補プリンタを指す。
（１）論理プリンタの中にオペレーティングシステムにおける「通常使うプリンタ（デフォルトで利用するように設定されているプリンタ）」が存在する場合、この論理プリンタを優先度１（代行前に最初に利用される論理プリンタ）のメンバプリンタとする。存在しない場合、プリンタ属性を考慮して優先度１のメンバプリンタを決定する。例えばモノクロデバイスの論理プリンタのうち、デバイスの印刷速度の最も高速なものを優先度１のメンバプリンタとする。また、モノクロデバイスの論理プリンタが存在しない場合はカラーデバイスの論理プリンタのうち、デバイスの印刷速度の最も高速なものを優先度１のメンバプリンタとするなどが想定される。（印刷速度の最速な論理プリンタが複数存在する場合は、それらの論理プリンタの名前の辞書順の最も若いものに優先度１を割り当てる。）
（２）優先度２以下のメンバプリンタには、例えば前記優先度１の論理プリンタとカラー属性において同じ全ての論理プリンタが選択される。また、優先度２以下のメンバプリンタは印刷速度の速い順に優先度を割り当てたり、同じ印刷速度同士では論理プリンタ名の辞書順の若い順に優先度を割り当てたりしても良い。
（３）仮想プリンタ作成モジュール１０１０は、上記の方針に従って優先度を割り振られた一つまたは複数の論理プリンタをメンバプリンタとする自動代行印刷の仮想プリンタ９２２のインスタンスを作成する。
【０１０６】
（分散印刷仮想プリンタ）
続いて、仮想プリンタ作成モジュール１０１０は、論理プリンタ９２１の属性に応じて所定のプリンタの優先度を高くして分散印刷の仮想プリンタ９２２のインスタンスを作成する。例えば以下の要領により作成する。尚、ここでいう分散印刷仮想プリンタの分散割合としてはプリンタの印刷速度（能力）に基づくなど特に限定されない。
（１）同一カラー属性（カラーまたはモノクロ）の論理プリンタが複数存在する場合のみ分散印刷の仮想プリンタのインスタンスを作成する。
（２）モノクロデバイスの論理プリンタが複数存在し、かつ「通常使うプリンタ」が、その中の一つがである場合、この論理プリンタを優先度１のメンバプリンタとする。
（３）カラーデバイスの論理プリンタが複数存在し、かつその中の一つが「通常使うプリンタ」である場合、この論理プリンタを優先度１のメンバプリンタとする。
（４）「通常使うプリンタ」と同じカラー属性の論理プリンタが一つしかない場合、もう一方のカラー属性の論理プリンタから優先度１のメンバプリンタを選択する。
（５）「通常使うプリンタ」が本システム固有のポートモニタ及びポートを持つ論理プリンタ中に存在しない場合は、モノクロデバイスの論理プリンタをメンバプリンタとする。ただしモノクロデバイスの論理プリンタが一つしか存在しない場合はカラーデバイスの論理プリンタをメンバとする。いずれの場合もデバイスの印刷速度の最も速い論理プリンタを優先度１のメンバプリンタとする。
（６）優先度２以下のメンバプリンタは印刷速度の速い順に優先度を割り当てる。同じ印刷速度同士では論理プリンタ名の辞書順の若い順に優先度を割り当てる。
（７）仮想プリンタ作成モジュール１０１０は、上記の方針に従って優先度を割り振られた一つまたは複数の論理プリンタをメンバプリンタとする自動代行印刷の仮想プリンタ９２２のインスタンスを作成する。
【０１０７】
（カラー／モノクロ分散仮想プリンタ）
さらに続いて仮想プリンタ作成モジュール１０１０は、論理プリンタ９２２の属性に基づき所定のプリンタの優先度を高くしてカラー／モノクロ分散印刷の仮想プリンタ９２２のインスタンスを作成する。以下の要領で作成する。
（１）カラーデバイス、モノクロデバイスの論理プリンタが少なくとも一つずつ存在する場合のみ、カラー／モノクロ分散印刷の仮想プリンタのインスタンスを作成する。
（２）カラーデバイス、モノクロデバイスの論理プリンタの中に「通常使うプリンタ」が存在し、それがカラーデバイスの論理プリンタである場合はカラー印刷用のメンバプリンタとして選択する。モノクロ印刷用のメンバプリンタとしては最もデバイスの印刷速度の速い論理プリンタを選択する。「通常使うプリンタ」がモノクロデバイスの論理プリンタであった場合は、カラー、モノクロについて上と逆の処理を行う。
（３）カラーデバイス、モノクロデバイスの論理プリンタの中に「通常使うプリンタ」が存在しない場合は、カラー印刷用、モノクロ印刷用のメンバプリンタとしてそれぞれ最もデバイスの印刷速度の速い論理プリンタを選択する。
（４）仮想プリンタ作成モジュール１０１０は、上記の方針に従って選択された論理プリンタをメンバプリンタとして、カラー／モノクロ分散印刷の仮想プリンタ９２２のインスタンスを作成する。
【０１０８】
以上述べた、インストール済み論理プリンタのポートモニタ及びポートの変更から、あるいはネットワーク上のデバイスの探索をもとにした論理プリンタの作成から始まり仮想プリンタの作成に終わる一連の処理は、通常、印刷ジョブ制御システム７００のインストール時に行われる。前述のようにフィルタ情報記憶モジュール９１１には、プリントデバイスや論理プリンタを選択する条件に関する情報が保持されているが、この情報をユーザから取得する方法について次に述べる。上に述べた一連の処理は、インストールが完了してから実際に稼動するまでに行うことも論理上可能であるが、インストール時に行う方法の方が手間がかからず便利である。本実施の形態ではそのような場合について説明する。
【０１０９】
図１１は、印刷ジョブ制御システム７００のインストーラの一画面である。この画面では「オートセットアップを行う」と「マニュアルセットアップを行う」という選択肢が用意されているが、ユーザが前者を選択すると図１２に示す「Ａｕｔｏ  Ｓｅｔｕｐ機能指定画面」を表示する。尚、図１２に示される指定画面はこれに限定されるものではなく、例えば、プリンタ言語の条件や、サドルステッチ等の製本仕上げ機構の条件や、プリンタデバイスが所定のネットワーク環境内のもとなるようにするＩＰアドレスのアドレス範囲など、様々な条件を含めるようにしても良い。
【０１１０】
この図１２の設定画面を介して、仮想プリンタ作成処理における条件が指定される。この条件とは、どのような機能或いは属性を持った仮想プリンタを作成するかの指定に該当する。また、仮想プリンタのメンバーを構成する論理プリンタの条件とも捉えることが出来る。
【０１１１】
指定された情報はいったん既定のファイルに保存される。フィルタ情報記憶モジュール９１１は初期化時にこのファイルからフィルタ情報を読み込んで内部に保持し、以後の処理において用いる。また、フィルタ情報記憶モジュールに記憶されるフィルタ情報は外部からコンピュータに読み込ませたファイルによるものでも良い。例えば、印刷システム管理者により電子メールファイルを介して配布されたファイルを読み込みフィルタ情報記憶モジュール９１１に記憶させるようにしても良い。
【０１１２】
（まとめ）
以上に述べた実施形態により次の処理が行われる。
（１）ユーザの指定した或いは外部から読み込んだファイルに基づく条件を用いてポートモニタ及びポートを本印刷ジョブ制御システム７００専用のものに変更するべきインストール済みの論理プリンタを決定する。
（２）インストール済みの論理プリンタがなかった場合は、本印刷ジョブ制御システム７００専用のポートモニタ及びポートを作成すべきネットワーク上のプリントデバイスを決定し、さらに作成されたポートモニタ及びポートを割り当てられた論理プリンタをユーザの指定した或いは外部から読み込んだファイルに基づく条件を用いて作成する。
（３）（１）または（２）)によって作成された論理プリンタを用いて本印刷ジョブ制御システム７００固有のサービスを提供する仮想プリンタを作成する。
【０１１３】
本実施の形態によれば、仮想プリンタを作成すべきデバイス（論理プリンタ）の機能・性能をユーザがあらかじめ指定しておけば、条件に見合った論理プリンタを自動的に抽出し本印刷ジョブ制御システムで使用するための仮想プリンタまで作成するようになる。それにより、設定の自動化がより進み、システムの導入における手間を軽減することができるようになる。
【０１１４】
＜印刷ジョブ制御システム設定プログラム９００の処理フロー＞
図１３は、印刷ジョブ制御システム設定プログラム９００の機能の概要をフローチャートにより示したものである。以下に各ステップについて説明する。
【０１１５】
ステップＳ１３０１では、ＯＳに既に登録された各論理プリンタについてデバイスの属性を調べ、ユーザが指定した条件にもとづいて、本印刷ジョブ制御システム固有のポートモニタ及びポートを割り当てるべき論理プリンタが決定される。
【０１１６】
ステップＳ１３０２では、ステップＳ１３０１の結果にもとづいて、新たに本印刷ジョブ制御システム固有のポートモニタ及びポートが作成され、既存の論理プリンタに割り当てられる。
【０１１７】
ステップＳ１３０３では、ステップＳ１３０１、Ｓ１３０２の結果、新たに作成された本印刷ジョブ制御システム固有のポートモニタ及びポートを割り当てられた論理プリンタが存在するかどうかが判断される。存在する場合、処理は仮想プリンタの作成処理ステップＳ１３０６に進み、存在しない場合はネットワーク上のデバイスを検索し情報を収集するステップＳ１３０４に進む。
【０１１８】
ステップＳ１３０４では、ネットワーク上のデバイスを検索し情報が収集される。検索されたデバイスそれぞれについて、ユーザが指定した条件にもとづいて論理プリンタを作成するかどうかが判断される。
【０１１９】
ステップＳ１３０５では、ステップＳ１３０４の結果にもとづいて、新たに本印刷ジョブ制御システム固有のポートモニタ及びポートが作成され、さらにそれを用いて新たに論理プリンタが作成される。
【０１２０】
ステップＳ１３０６では、本印刷ジョブ制御システム固有のポートモニタ及びポートを割り当てられた論理プリンタを一つまたは複数用いて、それらの属性に応じて仮想プリンタが適宜作成される。
【０１２１】
図１４は、上記のステップＳ１３０１をさらに詳細に示したものである。
【０１２２】
ステップＳ１４０１では、インストール済みの論理プリンタに関する情報を保持するインストール済み論理プリンタ情報テーブルが初期化される。このテーブルはインストール済み論理プリンタ情報記憶モジュール９１６によって管理されている。なお、ここで「初期化」とは、テーブルの準備をする処理をいう。
【０１２３】
ステップＳ１４０２では、論理プリンタ検出モジュール９０３が、Ｗｉｎｄｏｗｓ（登録商標） スプーラＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ Ｐｒｏｇｒａｍ Ｉｎｔｅｒｆａｃｅ）９１９を用いてＯＳ上にインストールされている論理プリンタ（９２１）のリスト情報を取得する。ここで、既に本印刷ジョブ制御システム固有のポートモニタを割当てられた論理プリンタは検索されたとしても無視するようにすれば後述の各ステップの処理や図１５の処理を省略することが出来る。
【０１２４】
ステップＳ１４０３では、インストール済み論理プリンタ解析モジュール９０２が、ステップＳ１４０２の結果に基づいて、論理プリンタが一つでも検出されたかどうかを判断する。
【０１２５】
ステップＳ１４０４では、ステップＳ１４０３で論理プリンタが一つ以上検出された場合に、インストール済み論理プリンタ解析モジュール９０２が、そのひとつひとつについてステップＳ１４０５以下の処理を行うよう制御している。そのために、ステップＳ１４０５以下の処理を行っていない論理プリンタが存在するかどうかが判断される。
【０１２６】
ステップＳ１４０５では、ステップＳ１４０５以下の処理を行っていない論理プリンタのなかから一つの論理プリンタがプログラム内部によって選択される。選択の順序については特に制限は無いが、例えば、検索された順序で選択されるようにしてもよい。
【０１２７】
ステップＳ１４０６では、ポートモニタタイプ判別モジュール９０５とそのプラグインモジュールであるＳｔａｎｄａｒｄ ＴＣＰ／ＩＰポート判別プラグインモジュール９０６によって、ステップＳ１４０５で選択された論理プリンタに割り当てられたポートモニタ及びポートがＳｔａｎｄａｒｄ ＴＣＰ／ＩＰポートであるかどうか判断される。
【０１２８】
ステップＳ１４０７では、インストール済み論理プリンタ解析モジュール９０２が、ポートモニタ解析モジュール９０４から受け取ったインストール済み論理プリンタの名称をインストール済み論理プリンタ情報記憶モジュール９１６に渡してインストール済み論理プリンタ情報テーブルに記憶させる。
【０１２９】
ステップＳ１４０８では、インストール済み論理プリンタ解析モジュール９０２が、ポートモニタ解析モジュール９０４から受け取ったインストール済み論理プリンタに割り当てられたポートモニタ及びポートの持つＩＰアドレスを取得する。
【０１３０】
ステップＳ１４０９では、ステップＳ１４０８で取得されたＩＰアドレスが、インストール済み論理プリンタ情報記憶モジュール９１６に渡してインストール済み論理プリンタ情報テーブルに記憶させる。
【０１３１】
ステップＳ１４１０では、インストール済み論理プリンタ解析モジュール９０２が、ポートモニタ解析モジュール９０４から受け取ったインストール済み論理プリンタに割り当てられたポートモニタ及びポートの持つプリントジョブ送信方式とそれに関する情報をインストール済み論理プリンタ情報記憶モジュール９１６に渡してインストール済み論理プリンタ情報テーブルに記憶させる。
【０１３２】
ステップＳ１４１１では、インストール済み論理プリンタ解析モジュール９０２が、インストール済み論理プリンタの対応機種判別モジュール９０５から受け取ったプリンタデバイスの機種名を取得し、機種属性ＤＢモジュール９１５から当該機種に関する属性情報（印刷速度、ステイプル機能の有無、両面印刷機能の有無、カラー／モノクロ）を取得する。また、論理プリンタに対応するプリンタデバイスの情報をデバイスコンフィグレーションにより、ネットワークを介してプリンタデバイスから情報処理装置側に取得するように指定もよい。例えば、ステップＳ１４０８において取得されたＩＰアドレスをもとに、プリンタデバイスと通信を行なうことができる。
【０１３３】
ステップＳ１４１２では、仮想プリンタ作成処理における条件属性を取得する。例えば先の図１２のような設定画面を介して入力されフィルタ情報記憶モジュール９１１保持されるデバイスの選択条件となる属性情報（条件属性）を取得する。
【０１３４】
ステップＳ１４１３では、ステップＳ１４１１で取得したデバイスの属性情報とステップＳ１４１２で取得したデバイスの選択条件となる属性情報が比較され、適合する場合には処理はステップＳ１４１４に進む。適合しない場合には処理はステップＳ１４０４に戻る。
【０１３５】
ステップＳ１４１４では、インストール済み論理プリンタ情報記憶モジュール９１６中のインストール済み論理プリンタ情報テーブルにおける、当該論理プリンタのポートモニタ変更フラグを立て条件に見合うプリンタをチェックする処理を行なう。
【０１３６】
ステップＳ１４１５では、既存の論理プリンタ情報を収集すべく、ステップＳ１４１２で取得したデバイスの属性情報（印刷速度、ステイプル機能の有無、両面印刷機能の有無、カラー／モノクロ）をインストール済み論理プリンタ情報記憶モジュール９１６に渡してインストール済み論理プリンタ情報テーブルに記憶させる。
【０１３７】
このように全ての既存の論理プリンタ情報が収集できれば、ステップＳ１３０１の処理は終了し、ステップＳ１３０２の処理に進む。
【０１３８】
図１５は、図１３におけるステップＳ１３０２をさらに詳細に示したものである。
【０１３９】
ステップＳ１５０１では、インストール済み論理プリンタ情報記憶モジュール９１６中のインストール済み論理プリンタ情報記憶テーブルに未処理のものがあるかどうかを判断する。ここで、「未処理のもの」とは、ステップＳ１５０２以下の処理を行っていない既存プリンタを意味する。なお、図１４の一連の処理で、インストール済の既存プリンタが存在しなかった場合には、ステップＳ１５０１の処理でＹＥＳとなってステップＳ１５０２以降の処理には進まないこととなる。
【０１４０】
ステップＳ１５０２では、インストール済み論理プリンタ情報記憶モジュール９１６中のインストール済み論理プリンタ情報記憶テーブルにおいてステップＳ１５０２以下の処理について未処理のものが１つづつ選択される。
【０１４１】
ステップＳ１５０３では、インストール済み論理プリンタ情報記憶モジュール９１６から、ステップＳ１５０２で選択した論理プリンタに関係するＩＰアドレスおよび機種名が取得される。
【０１４２】
ステップＳ１５０４では、ステップＳ１５０２で選択された論理プリンタに関して、インストール済み論理プリンタ情報記憶モジュール９１６中のインストール済み論理プリンタ情報記憶テーブルのポートモニタ変更フラグが立っている場合は、処理はステップＳ１５０５に進む。当該フラグが立っていない場合には、処理はステップＳ１５０１に戻る。  ステップＳ１５０５では、インストール済み論理プリンタ情報記憶モジュール９１６から、ステップＳ１５０２で選択された論理プリンタに関係するプリントジョブの送信方式とそれに関する情報が取得される。
【０１４３】
ステップＳ１５０６では、ステップＳ１５０３、Ｓ１５０５で取得した情報を用いて本印刷ジョブ制御システム７００固有のポートモニタ及びポートのインスタンスが作成される。尚、ステップＳ１５０４で本印刷ジョブ制御システム７００に固有のポートモニタ及びポートを持つ既存の論理プリンタに対してポートモニタ変更フラグが立っていた場合には、ステップＳ１５０６、Ｓ１５０７の処理を省略する。
【０１４４】
ステップＳ１５０７では、予め情報処理装置内に設定された論理プリンタの既存のポート情報を更新する。具体的には、ステップＳ１５０２で選択した論理プリンタにステップＳ１５０６で作成したポートモニタ及びポートのインスタンスを割り当てる。
【０１４５】
また、既存の論理プリンタの用紙サイズ、解像度などのデフォルト印刷設定や、オペレーティングシステムで「通常使うプリンタ」となっているデフォルトプリンタ設定などを、更新後の論理プリンタに継承するようにする。こうすることにより、ユーザが事前に設定した様々な情報を再度設定する必要がなくなる。このステップＳ１５０７において更新されたポート情報（論理プリンタ）が用いられ仮想プリンタが作成される。論理プリントとはプリンタドライバと出力ポートとの組合せ、或いは、プリンタドライバを用いずにアプリケーションやＯＳに、プリンタにとって中間形式データ（例えばＰＤＦ（アドビシステムズ社））を作成する機能が備えられている場合には、ポートそのものが論理プリンタとなる。
【０１４６】
そして、インストール済の論理プリンタ全てについて、ステップＳ１５０２以下の処理が施されれば、既存論理プリンタの変更処理Ｓ１３０２が終了し、ステップＳ１３０３に処理が移行する。
【０１４７】
図１６は、図１３におけるステップＳ１３０４をさらに詳細に示したものであり、ステップＳ１３０３でのＮＯに対応して論理プリンタが存在しない場合にフィルタ情報記憶モジュール９１１から取得された条件属性に基づく論理プリンタを作成する処理に相当する。
【０１４８】
ステップＳ１６０１では、探索により見つかったプリンタデバイスに関する情報を保持するプリンタデバイス情報テーブルが初期化される。このテーブルはプリンタデバイス情報記憶モジュール１００５が管理している。
【０１４９】
ステップＳ１６０２では、ネットワークにＳＮＭＰ（Ｓｉｍｐｌｅ Ｎｅｔｗｏｒｋ Ｍａｎａｇｅｍｅｎｔ Ｐｒｏｔｏｃｏｌ）のパケットをブロードキャストし、その応答を受信することによって、ネットワーク上に動作しているプリンタデバイスが検出される。応答パケット内にはＭＩＢ（Ｍａｎａｇｅｍｅｎｔ Ｉｎｆｏｒｍａｔｉｏｎ Ｂａｓｅ）オブジェクトの値として機種名が含まれている。また、パケットの送信先を調べることによりＩＰアドレスを取得することができる。これらの情報をプリンタデバイス情報記憶モジュール１００５に渡し、プリンタデバイス情報テーブルに保存される。
【０１５０】
ステップＳ１６０３では、ステップＳ１６０２の結果、プリンタデバイスが一つでも検出されたかどうかが判断される。
【０１５１】
ステップＳ１６０４では、ステップＳ１６０３でプリンタデバイスが一つ以上検出された場合には、プリンタデバイス情報収集モジュール１００１において、そのひとつひとつについてステップＳ１６０５以下の処理を行うよう制御される。そのために、処理を行っていないプリンタデバイスが存在するかどうかが判断される。
【０１５２】
ステップＳ１６０５では、処理を行っていないプリンタデバイスのなかから一つのデバイスが選択される。選択の方法には特に制限はない。
【０１５３】
ステップＳ１６０６では、ステップＳ１６０５で選択されたプリンタデバイスの、ステップＳ１６０２でデバイスから取得した機種名を見て、当該印刷ジョブ制御システム７００が対応可能な機種の場合には処理はステップＳ１６０４に戻り、次のプリンタデバイスの処理にスキップする。それ以外の場合は処理はステップＳ１６０７に進む。
【０１５４】
ステップＳ１６０７では、プリンタデバイス情報収集モジュール１００１が、ステップＳ１６０５で選択したプリンタデバイスについて、ステップＳ１６０２で取得したＩＰアドレスと機種名がプリンタデバイス情報記憶モジュール１００５に渡され、その中のプリンタデバイス情報テーブルに記憶される。
【０１５５】
ステップＳ１６０８では、ステップＳ１６０５で選択したプリンタデバイスの、ステップＳ１６０２でデバイスから取得した機種名から、機種属性ＤＢモジュール９１１から当該機種に関する属性情報（印刷速度、ステイプル機能の有無、両面印刷機能の有無、カラー／モノクロ）が取得される。またステップＳ１４１１と同様に、プリンタデバイスから直接に機能やオプション装備の属性情報を取得するようにしても良い。
【０１５６】
ステップＳ１６０９では、ユーザが指定した、仮想プリンタ作成処理における条件属性を取得する。例えば、外部からファイルとして読み込まれ、フィルタ情報記憶モジュール９１１に保持されるデバイスの選択条件となる属性情報（条件属性）を取得する。
【０１５７】
ステップＳ１６１０では、ステップＳ１６０８で取得されたデバイスの属性情報とステップＳ１６０９で取得されたデバイスの選択条件となる属性情報が比較され、適合する場合には処理はステップＳ１６１１に進む。適合しない場合には処理はステップＳ１６０４に戻る。
【０１５８】
ステップＳ１６１１では、プリンタデバイス情報記憶モジュール１００５中のプリンタデバイス情報記憶テーブルにおける当該デバイスについて、論理プリンタ作成フラグが立てられる。
【０１５９】
ステップＳ１６１２では、プリンタデバイス情報収集モジュール９０２が、ステップＳ１６０８で取得したデバイスの属性情報（印刷速度、ステイプル機能の有無、両面印刷機能の有無、カラー／モノクロ）をプリンタデバイス情報記憶モジュール９０４に渡して格納する。
【０１６０】
そして、検索された全てのプリンタデバイスについて、ステップＳ１６０５以下の処理が終了すると、ネットワーク上のプリンタデバイスの情報収集処理（Ｓ１３０４）は終了する。
【０１６１】
図１７は、上記のステップＳ１３０５をさらに詳細に示したものである。
【０１６２】
ステップＳ１７０１では、プリンタデバイス情報記憶モジュール１００５中のプリンタデバイス情報記憶テーブルにステップＳ１７０２の処理について未処理のプリンタデバイスのエントリがあるかどうかが判断される。
【０１６３】
ステップＳ１７０２では、プリンタデバイス情報記憶モジュール１００５中のプリンタデバイス情報記憶テーブルに未処理のプリンタデバイスからプリンタデバイスを一つ選択する。
【０１６４】
ステップＳ１７０３では、ステップＳ１７０２で選択されたデバイスについて、プリンタデバイス情報記憶モジュール１００５中のプリンタデバイス情報記憶テーブルに論理プリンタ作成フラグ（ステップＳ１６１１で付加されるべきフラグ）が立っているか判断され、フラグが立っていれば処理はステップＳ１７０４に進む。フラグが立っていなければ、処理はステップＳ１７０１に戻る。
【０１６５】
ステップＳ１７０４では、プリンタデバイス情報記憶モジュール１００５からステップＳ１７０２で選択したプリンタデバイスに関係する機種名とＩＰアドレスが取得される。
【０１６６】
ステップＳ１７０５では、ドライバ名変換モジュール１００７が、ステップＳ１７０４で取得された機種名をもとにドライバ名を生成して論理プリンタ作成モジュール１００６に返す。
【０１６７】
ステップＳ１７０６では、ジョブ送信方式情報取得モジュール１００８が、ステップＳ１７０４で取得された機種名をもとにジョブ送信方式とその設定情報を生成して論理プリンタ作成モジュール１００６に返す。
【０１６８】
ステップＳ１７０７では、ポートモニタ初期値取得モジュール１００９が、ステップＳ１７０４で取得された機種名をもとにポートモニタ設定の初期値を生成して印刷ジョブ制御システム専用ポートモニタ作成モジュール９１８に返す。ここで、初期値とは、ポートを作成する際に必要な値で、ここではデフォルト値を取得するようにしている。なぜなら、例えばポート優先度、動作時間帯等、ポートにはデバイスの属性からは決まらないいくつかの設定項目があるからであり、これらは初期値としてデフォルト値に設定される。
【０１６９】
ステップＳ１７０８では、ステップＳ１７０４で取得されたＩＰアドレスと、ステップＳ１７０７で生成されたポートモニタ設定の初期値をもとに、ポート設定のためのＡＰＩ関数が呼び出され、新たにポートモニタ及びポートが作成される。
【０１７０】
ステップＳ１７０９では、ステップＳ１７０５で取得されたドライバ名と、ステップＳ１７０８で作成されたポートモニタ及びポートとをもとに新たに論理プリンタが作成される。このステップＳ１７０９において作成された論理プリンタ（ポート或いはポートとプリンタドライバの組合せ）が用いられ仮想プリンタが作成される。尚、プリンタドライバは予め設定プログラムに含まれているものとする。例えば、図１０の論理プリンタ自動作成モジュール１００６に予め複数種類のプリンタドライバが含まれている。無論、外部からダウンロードするようにしても良い。
【０１７１】
そして、プリンタデバイス情報テーブルに登録されたプリンタデバイス全てについてステップＳ１７０２以下の処理が行われたら、新規論理プリンタの作成処理（ステップＳ１３０５）が終了する。
【０１７２】
図１８〜図２１は、図１３のステップＳ１３０６すなわち新規仮想プリンタの作成処理をさらに詳細に示したものである。
【０１７３】
ステップＳ１８０１では、仮想プリンタ作成モジュール１０１０はステップＳ１３０５までの処理の結果、本印刷ジョブ制御システム固有のポートモニタ及びポートを持つ論理プリンタが一つ以上作成されたかどうかをチェックする。作成されなかった場合は新規仮想プリンタの作成処理を終了する。一つ以上作成された場合はステップＳ１８０２に進む。
【０１７４】
ステップＳ１８０２では、ステップＳ１００２で作成された論理プリンタの中にＷｉｎｄｏｗｓ（登録商標）の「通常使うプリンタ」が存在するかどうかが調べられる。存在する場合は処理はステップＳ１８０３に進み、存在しない場合はステップＳ１８０４に進む。
【０１７５】
ステップＳ１８０３では、「通常使うプリンタ」を優先度１のメンバプリンタとして選択する処理がなされる。
【０１７６】
ステップＳ１８０４では、モノクロデバイスの論理プリンタが存在する場合に、その中で最もデバイスの印刷速度の速いものを代行機能仮想プリンタにおける優先度１のメンバプリンタとして選択する処理がなされる。存在しない場合は例えばカラーデバイスの論理プリンタの中で最も印刷速度の速いなどの所定の条件に従う論理プリンタが優先度１のメンバプリンタとして選択される。また、最も印刷速度の速い論理プリンタが複数存在する場合は、論理プリンタの名前の辞書順で最も若いものが選択される。更に、ユーザに優先度１のプリンタ或いは「通常使うプリンタ」を設定画面を介して指示させ設定するようにしても良い。
【０１７７】
ステップＳ１８０５では、ステップＳ１８０３またはステップＳ１８０４で選択した優先度１の論理プリンタのプリンタデバイスがカラーデバイスかモノクロデバイスかを判断する。カラーデバイスの場合はステップＳ１８０６に進み、モノクロデバイスの場合はステップＳ１８０７に進む。このＳ１８０５の処理に分岐に基づき、オペレーティングシステムにデフォルトで利用するように設定されている論理プリンタの種別に応じた代行印刷の仮想プリンタが後述するステップＳ１８０９において作成される。つまりかカラー論理プリンタが「通常使うプリンタ」に設定されていれば、カラー論理プリンタをメンバーにした仮想プリンタが作成され、モノクロ論理プリンタが「通常使うプリンタ」に設定されていれば、モノクロ論理プリンタをメンバーにした仮想プリンタが作成される。また、カラーモノクロ論理プリンタ及びカラー論理プリンタが各々１つしかない場合には、フローチャートには図示されていないが、モノクロ論理プリンタとモノクロ論理プリンタとを用いた代行印刷の仮想プリンタを作成するものとする。
【０１７８】
ステップＳ１８０６では、その他の全てのカラーデバイス用論理プリンタが列挙される。
【０１７９】
ステップＳ１８０７では、その他の全てのモノクロデバイス用論理プリンタが列挙される。
【０１８０】
ステップＳ１８０８では、ステップＳ１８０６またはステップＳ１８０７で列挙された論理プリンタに対して、デバイスの印刷速度の速い順に優先度２以降の値が割り振られる。印刷速度の同じ論理プリンタが複数存在する場合は、論理プリンタの名前の辞書順で最も若いものが選択される。ここで選択された複数のプリンタは図６、図７で説明した代行印刷時に利用される。
【０１８１】
ステップＳ１８０９では、ステップＳ１８０８までで決定したメンバプリンタとその優先度を用いて自動代行印刷の仮想プリンタが作成される。
【０１８２】
続いて分散印刷の仮想プリンタの作成処理が実行される（図１９）。
【０１８３】
ステップＳ１９０１では、本印刷ジョブ制御システム固有のポートモニタ及びポートを持つ論理プリンタが２つ以上存在するかどうかチェックされる。存在する場合はステップＳ１９０２に進み、存在しない場合は新規仮想プリンタの作成処理を終了する。
【０１８４】
ステップＳ１９０２では、「通常使うプリンタ」がモノクロデバイスの論理プリンタかカラーデバイスの論理プリンタかが判断される。モノクロデバイスの場合はステップＳ１９０３に進み、カラーデバイスの場合は図２０のステップＳ２００１に進む。不明の場合もステップＳ１９０３に進む。このステップＳ１９０２における分岐に基づき、オペレーティングシステムにデフォルトで利用するように設定されている論理プリンタの種別に応じてユーザにとって良く利用するプリンタの優先度を高くした分散印刷仮想プリンタが後述のステップＳ１９０８、Ｓ２００６において行なわれる。
【０１８５】
ステップＳ１９０３では、モノクロデバイスの論理プリンタが二つ以上存在するかどうか調べられ、二つ以上存在する場合はステップＳ１９０４に進み、一つまたは存在しない場合はステップＳ１９０９に進む。
【０１８６】
ステップＳ１９０４では、「通常使うプリンタ」が本印刷ジョブ制御システム７００固有のポートモニタ及びポートを持つ論理プリンタに含まれるかどうか調べられ、含まれる場合はステップＳ１９０５に進み、含まれない場合はステップＳ１９０６に進む。
【０１８７】
ステップＳ１９０５では、「通常使うプリンタ」が優先度１のメンバプリンタとして選択される。
【０１８８】
ステップＳ１９０６では、モノクロデバイスの論理プリンタの中で最もデバイスの印刷速度が速いものが優先度１のメンバプリンタとして選択される。
【０１８９】
ステップＳ１９０７では、その他のモノクロデバイスの論理プリンタが全て列挙され、列挙され論理プリンタに対して、デバイスの印刷速度の速い順に優先度２以降の値が割り振られる。印刷速度の同じ論理プリンタが複数存在する場合は、論理プリンタの名前の辞書順で最も若いものが選択される。
【０１９０】
ステップＳ１９０８では、ステップＳ１９０７までで決定されたメンバプリンタとその優先度を用いて分散印刷の仮想プリンタが作成される。
【０１９１】
ステップＳ１９０９では、カラーデバイスの論理プリンタが二つ以上存在するかどうか調べられ、二つ以上存在する場合はステップＳ１９１０に進み、一つまたは存在しない場合は図２０のステップＳ２００１に進む。
【０１９２】
ステップＳ１９１０では、カラーデバイスの論理プリンタの中で最もデバイスの印刷速度が速いものが優先度１のメンバプリンタとして選択される。
【０１９３】
ステップＳ１９１１では、その他のカラーデバイスの論理プリンタが全て列挙され、列挙した論理プリンタに対して、デバイスの印刷速度の速い順に優先度２以降の値が割り振られる。印刷速度の同じ論理プリンタが複数存在する場合は、論理プリンタの名前の辞書順で最も若いものが選択される。
【０１９４】
ステップＳ１９１２では、ステップＳ１９１１までで決定されたメンバプリンタとその優先度を用いて分散印刷の仮想プリンタが作成される。
【０１９５】
図２０は、分散印刷の仮想プリンタの作成処理の図１９からの続きである。
【０１９６】
ステップＳ２００１では、カラーデバイスの論理プリンタが二つ以上存在するかどうか調べられ、二つ以上存在する場合はステップＳ２００２に進み、一つまたは存在しない場合はステップＳ２００７に進む。
【０１９７】
ステップＳ２００２では、「通常使うプリンタ」が本印刷ジョブ制御システム固有のポートモニタ及びポートを持つ論理プリンタに含まれるかどうか調べられ、含まれる場合はステップＳ２００３に進み、含まれない場合はステップＳ２００４に進む。
【０１９８】
ステップＳ２００３では、「通常使うプリンタ」が優先度１のメンバプリンタとして選択される。
【０１９９】
ステップＳ２００４では、カラーデバイスの論理プリンタの中で最もデバイスの印刷速度が速いものが優先度１のメンバプリンタとして選択される。
【０２００】
ステップＳ２００５では、その他のカラーデバイスの論理プリンタが全て列挙され、列挙された論理プリンタに対して、デバイスの印刷速度の速い順に優先度２以降の値が割り振られる。印刷速度の同じ論理プリンタが複数存在する場合は、論理プリンタの名前の辞書順で最も若いものが選択される。
【０２０１】
ステップＳ２００６では、ステップＳ２００５までで決定されたメンバプリンタとその優先度を用いて分散印刷の仮想プリンタが作成される。
【０２０２】
ステップＳ２００７では、モノクロデバイスの論理プリンタが二つ以上存在するかどうか調べられ、二つ以上存在する場合はステップＳ２００８に進み、一つまたは存在しない場合は図２１のステップＳ２１０１に進む。
【０２０３】
ステップＳ２００８では、モノクロデバイスの論理プリンタの中で最もデバイスの印刷速度が速いものが優先度１のメンバプリンタとして選択される。
【０２０４】
ステップＳ２００９では、その他のモノクロデバイスの論理プリンタが全て列挙され、列挙された論理プリンタに対して、デバイスの印刷速度の速い順に優先度２以降の値が割り振られる。印刷速度の同じ論理プリンタが複数存在する場合は、論理プリンタの名前の辞書順で最も若いものが選択される。
【０２０５】
ステップＳ２０１０では、ステップＳ１９１１までで決定されたメンバプリンタとその優先度を用いて分散印刷の仮想プリンタが作成される。その後、処理は図２１のステップＳ２１０１に進む。
【０２０６】
図２１はカラー／モノクロ分散の仮想プリンタを作成する処理を示す図である。
【０２０７】
ステップＳ２１０１では、本印刷ジョブ制御システム固有のポートモニタ及びポートを持つ、モノクロデバイスおよびカラーデバイスのための論理プリンタがそれぞれ１つ以上存在するかどうかチェックされる。
【０２０８】
ステップＳ２１０２では、本印刷ジョブ制御システム固有のポートモニタ及びポートを持つカラーデバイス用論理プリンタでかつ「通常使うプリンタ」に設定されているものがあるかどうか調べられる。ある場合は、処理はステップＳ２１０３に進み、ない場合はステップＳ２１０４に進む。
【０２０９】
ステップＳ２１０３では、「通常使うプリンタ」がカラー印刷用のメンバプリンタとして選択される。
【０２１０】
ステップＳ２１０４では、カラーデバイス用で、最も印刷速度の速いデバイスのための論理プリンタがカラー印刷用のメンバプリンタとして選択される。
【０２１１】
ステップＳ２１０５では、印刷ジョブ制御システム固有のポートモニタ及びポートを持つモノクロデバイス用論理プリンタでかつ「通常使うプリンタ」に設定されているものがあるかどうか調べられる。ある場合は、処理はステップＳ２１０３に進み、ない場合はステップＳ２１０４に進む。
【０２１２】
ステップＳ２１０６では、「通常使うプリンタ」がモノクロ印刷用のメンバプリンタとして選択される。
【０２１３】
ステップＳ２１０７では、モノクロデバイス用で、最も印刷速度の速いデバイスのための論理プリンタがモノクロ印刷用のメンバプリンタとして選択される。
【０２１４】
ステップＳ２１０８では、以上で選択されたカラー印刷用、モノクロ印刷用論理プリンタをメンバプリンタとしたカラー／モノクロ分散印刷の仮想プリンタが作成される。
【０２１５】
このように、図１８乃至２１のフローチャートにより、仮想プリンタ作成手段により、ユーザの所望する条件に対応した論理プリンタを用いて複数種類の仮想プリンタがまとめて作成され、ユーザの手間を軽減することが出来る。
【０２１６】
図２２は、上記実施形態による処理の結果本印刷ジョブ制御システム固有のポートモニタ及びポートが複数個作成された様子を示すものであり、チェックボックスへのチェックが示すようにプリンタＡのプロパティーの閲覧からポートの情報を参照したことを示している。図２２には、ポート、ポートモニタの説明、プリンタ（プリンタ名）が含まれている。また、図中の「ジョブ制御ポートモニタ」は図６におけるジョブ制御ポートモニタ６２１を示している。また、本実施の形態では、図２２でＳｔａｎｄａｒｄ  ＴＣＰ/ＩＰ  Ｐｏｒｔのポートモニタにプリンタが割当てられていないように、ポートを書き換えても以前のポートが残っているため、印刷ジョブ制御プログラムをアンインストールしたとしても、以前のポート環境に容易に復帰できるようになる。このため、ユーザにとって非常に便利である。また、クライアント側に論理プリンタが予め登録されている場合には、その論理プリンタの登録情報を有用に利用することができる。
【０２１７】
図２２においては紙面の都合上、ポート名が表記しきれないので、念のためここで説明する。上から、ＩＰ_177_24.111.131、ＩＰ_177_24.111.132、ＩＰ_177_24.111.133、オリジナル論理ポート_177_24.111.131（プリンタＡ）、オリジナル論理ポート_177_24.111.132（プリンタＢ）、オリジナル論理ポート_177_24.111.133（プリンタＣ）、割合分散Port、代行印刷Port、カラーモノクロ分散Poｒｔである。
【０２１８】
図２３は、上記実施形態による処理の結果、本印刷ジョブ制御システム固有のポートモニタ及びポートが割り当てられた論理プリンタおよび仮想プリンタが作成された様子を示す。ここでは自動代行印刷、分散印刷、カラー／モノクロ分散印刷の全ての方法の仮想プリンタが作成されたことを示している。
【０２１９】
＜本実施形態の具体的適用例＞
図２３で示された結果となるのは、たとえば以下のケースが考えられる。
【０２２０】
（ケース１）
プリンタデバイスとしてデバイスＡ（モノクロ）、デバイスＢ（モノクロ）、デバイスＣ（カラー）、デバイスＤ（カラー）がネットワーク上に存在し、本印刷ジョブ制御システムをインストールする前にすでにデバイスＡ、デバイスＢ，デバイスＣのための標準TCP/IPポートを持った論理プリンタ、プリンタＡ（通常使うプリンタ）、プリンタＢ、プリンタＣが存在した。また、図１２を介した条件にプリンタＤが適合していなかった。
→ この場合、本発明の処理によれば、デバイスＡ、デバイスＢ，デバイスＣのポートモニタが本印刷ジョブ制御システム固有のポートモニタに置き換わる。さらに、プリンタＡ、プリンタＢをメンバに持つ代行印刷の仮想プリンタおよび分散印刷の仮想プリンタ、プリンタＡとプリンタＣをメンバに持つカラー／モノクロ分散印刷の仮想プリンタがおのおの作成される。
【０２２１】
（ケース２）
プリンタデバイスとしてデバイスＡ（モノクロ）、デバイスＢ（モノクロ）、デバイスＣ（カラー）がネットワーク上に存在し、本印刷ジョブ制御システムをインストールする前にはそれらのデバイスのための標準TCP/IPポートを持ったプリンタが存在しなかった。
【０２２２】
この場合、本発明の処理によれば、デバイスＡ、デバイスＢ，デバイスＣに対応する論理プリンタ、プリンタＡ、プリンタＢ、プリンタＣが作成される。さらにプリンタＡ，プリンタＢをメンバに持つ自動代行印刷、分散印刷の仮想プリンタ、プリンタＡとプリンタＣをメンバに持つカラー／モノクロ分散印刷の仮想プリンタがそれぞれ作成される。
【０２２３】
[第２の実施の形態]
上記の第１の実施形態では、図７の制御システム７００におけるジョブ制御プリントサービス６２２とジョブ制御サーバ６３０が一体となった形に適用した場合について説明した。すなわちジョブ制御サーバ６３０におけるＯｕｔｐｕｔ ＰｏｒｔＡ ７１１ＡおよびＯｕｔｐｕｔ ＰｏｒｔＢ ７１１Ｂは、Ｐｒｏｘｙ Ｏｕｔｐｕｔ ＰｏｒｔＡ ７１２ＡおよびＰｒｏｘｙ Ｏｕｔｐｕｔ ＰｏｒｔＢ ７１２Ｂと同様にＷｉｎｄｏｗｓ（登録商標） Ｐｒｉｎｔ Ｓｙｓｔｅｍからのジョブを受け付け、汎用印刷ファイル構築７１５、Ｄｅ−ｓｐｏｏｌｅｒ７０１を経て再度Ｗｉｎｄｏｗｓ（登録商標） Ｐｒｉｎｔ Ｓｙｓｔｅｍにジョブを投入することも可能である。これはちょうどＰｒｏｘｙ Ｏｕｔｐｕｔ ＰｏｒｔＡ ７１２ＡおよびＰｒｏｘｙ Ｏｕｔｐｕｔ ＰｏｒｔＢ ７１２ＢがＯｕｔｐｕｔ ＰｏｒｔＡ ７１１ＡおよびＯｕｔｐｕｔ ＰｏｒｔＢ ７１１Ｂに置き換わった形である。
【０２２４】
しかしながら、図７のジョブ制御プリントサービス６２２に対しても、上記第一の実施形態に若干の変更を加えることにより本発明は適用し得る。すなわち、図１３におけるステップＳ１３０１既存の論理プリンタの情報収集処理において、ジョブ制御プリントサービス６２２が動作する環境上に存在する論理プリンタに関する情報を収集し、ステップＳ１３０２既存論理プリンタの変更処理においてはジョブ制御サーバ６３０上のＯｕｔｐｕｔ Ｐｏｒｔ（７１１Ａおよび７１１Ｂに相当）を参照し、既存の論理プリンタと同じデバイスに対応するインスタンスが存在する場合にＰｒｏｘｙ Ｏｕｔｐｕｔ Ｐｏｒｔ（７１２Ａまたは７１２Ｂに相当）のインスタンスを新たに作成して前記論理プリンタに割り当てる。引き続き、ステップＳ１３０６新規仮想プリンタ作成処理に進む。このとき、Ｐｒｏｘｙ Ｏｕｔｐｕｔ Ｐｏｒｔ（７１２Ａまたは７１２Ｂに相当）には、Ｏｕｔｐｕｔ Ｐｏｒｔ（７１１Ａおよび７１１Ｂに相当）のデバイス情報（ＩＰアドレス、通信方式、デバイス名,デバイスモデル名、両面やステイプルなどのデバイスの各種機能）が反映される。
【０２２５】
ここで、プリントサーバに保持されるポート情報について説明を行なう。ジョブ制御サーバ６３０におけるポート情報は例えば上に説明した図１３のフローチャートの処理を実行することにより実現する。また、ジョブ制御サーバ６３０における所定のプリンタデバイスに対応するポート情報は、印刷システム管理者やサービスマンが予め作成したポート情報を設定するようにしても良いし、ジョブ制御サーバ６３０によりネットワークを介して通信可能なプリンタデバイスの探索を行うことにより作成するようにしても良い。この時の探索処理は、図１５及び図１６において説明した処理と基本的に同様のものとするので、詳しい説明は省略する。
【０２２６】
一方、上記処理の中で、既存の論理プリンタがジョブ制御プリントサービス６２２の動作する環境に存在しない場合は、第１の実施形態ではステップＳ１３０４でネットワーク上のデバイスを探索し、見出されたデバイスから該デバイスに関する情報を取得していた。これに対して第２の実施形態ではジョブ制御サーバ６３０上にＯｕｔｐｕｔ Ｐｏｒｔ（出力ポート）のインスタンスが存在するかどうかを調べ、見出された各Ｏｕｔｐｕｔ Ｐｏｒｔのインスタンス（７１１Ａおよび７１１Ｂ）に設定されているデバイス情報（ＩＰアドレス、通信方式、デバイス名,デバイスモデル名、両面やステイプルなどのデバイスの各種機能）を取得する。そして、ステップＳ１６０９、Ｓ１６１０と同様に、フィルタ情報記憶モジュール９１１に保持された条件属性に基づき見出された各ＯｕｔｐｕｔＰｏｒｔ（出力ポート）を選択するか或いは無視するかを判断する。
【０２２７】
次に、ステップＳ１３０５においてと同様に、前記見出され且つ選択されたＯｕｔｐｕｔ Ｐｏｒｔのインスタンス（７１１Ａおよび７１１Ｂ）に対応するＰｒｏｘｙ Ｏｕｔｐｕｔ Ｐｏｒｔのインスタンス（７１２Ａおよび７１２Ｂ）をジョブ制御プリントサービス６２２の動作する環境に作成し（ステップＳ１７０８に対応）、作成されたＰｒｏｘｙ Ｏｕｔｐｕｔ Ｐｏｒｔ（出力ポート）を用いてさらに論理プリンタを作成する（ステップＳ１７０９に対応）。
【０２２８】
このＰｒｏｘｙ Ｏｕｔｐｕｔ Ｐｏｒｔには、先に取得したデバイス情報（ＩＰアドレス、通信方式、デバイス名,機種名、両面やステイプルなどのデバイスの各種機能）が設定されている。そして、図１７のステップＳ１７０４乃至１７０９と同様の処理を行い、機種名を元にＰｒｏｘｙ Ｏｕｔｐｕｔ Ｐｏｒｔにプリンタドライバを関連付ける。
【０２２９】
続いて第１の実施形態と同様に、新規仮想プリンタ作成処理であるステップＳ１３０６に進む。
【０２３０】
[第３の実施の形態]
上記の第１及び第２の実施形態では、フィルタ情報記憶モジュール９１１に保持された選択条件（条件属性）を、本印刷ジョブ制御システム固有のポートモニタ及びポートを持つ論理プリンタを作成する際の判断で使用しているが、もう一つの実施形態として、フィルタリングを、ポートモニタ及びポートを作成する段階ではなく、仮想プリンタを作成する段階で行うということが可能である。すなわち、後者の実施形態では、まず本印刷ジョブ制御システム７００に固有のポートモニタ及びポートを持つ論理プリンタを用意し、フィルタ情報記憶モジュール９１１に保持された条件を、仮想プリンタを作成する際にメンバプリンタとして使用する論理プリンタを抽出する際に使用する。
【０２３１】
そこで、本発明の第３の実施形態における、印刷ジョブ制御システム７００における設定の制御について次に説明する。
【０２３２】
第３の実施形態における制御の流れは基本的に第１の実施形態と同様であるが、以下の点において異なる。
（１）図１４においてステップＳ１４１２、Ｓ１４１３が省略される。これにより図１５のステップＳ１５０４の判断は常にＹＥＳとなり、インストール済みの論理プリンタ（論理プリンタの既存ポート）は対応するプリンタデバイスが対応機種であればポートモニタ及びポートを本印刷ジョブ制御システム固有のものにステップＳ１５０７で置き換えられる（更新される）ことになる。
（２）図１６においてステップＳ１６０９、Ｓ１６１０が省略される。これにより図１７のステップＳ１７０３の判断は常にＹＥＳとなり、探索によって見つかったプリンタデバイスが対応機種であれば必ず論理プリンタを作成することになる。
（３）図１８においてステップＳ１８０１の次に以下のステップが追加される。これを図２４として示す。すなわち、ユーザが指定したデバイスの選択条件を取得するステップＳ２４０２と、その選択条件となるデバイス属性と存在する論理プリンタの属性とを比較して選択条件に適合しない論理プリンタは以降の論理プリンタの参照では無視するようにするステップＳ２４０３とを追加する。
【０２３３】
以上、第１及び第２の実施形態によれば、本印刷ジョブ制御システム７００の設定プログラムは、（ア）システム固有のポートモニタ及びポートを作成するとき、（イ）システム固有のポートモニタ及びポートを割り当てた論理プリンタを作成するとき、（ウ）仮想プリンタを作成するとき、のいずれかにおいてユーザの所望する性能・機能を持ったプリンタデバイスを用いて、本印刷ジョブ制御システム固有の拡張機能を実現するための仮想プリンタを自動的に作成することができる。
【０２３４】
それにより、ユーザが自分でプリンタデバイスの性能・機能を調べて、どのデバイスを用いた仮想プリンタを作成すべきかを自ら判断することなく仮想プリンタを作成し、本印刷ジョブ制御システム７００によって提供される拡張機能を享受することができる。このことはユーザの設定作業にかかわる手間を低減させることに寄与する。
【０２３５】
[第４の実施の形態]
上記の第１乃至第３の実施形態では、論理プリンタを基に仮想プリンタ（仮想出力デバイス）を作成するというものであったが、本発明はこれに限定されるものではなく、論理プリンタではなく、プリンタデバイスそのものを対象にして仮想出力デバイスを作成するようにしても良い。この仮想出力デバイスとは複数のプリンタデバイスを用いるようにすることにより、代行機能や、分散機能の付加価値を持ち合わせた仮想的なプリンタデバイスを意味する。
【０２３６】
具体的には、上に説明した図１２の画面を仮想出力デバイスの条件属性を指定する設定画面として、図１８〜図２１における各々のステップで「論理プリンタ」を対象にしていたが、「本システムが取り扱い可能なプリンタデバイス」を対象にするようにすれば良い。この「本システムが取り扱い可能なプリンタデバイス」とは、ジョブ制御プリントサービス６２２と、各種情報の通信が可能で、図１６のＳ１６０８をプリンタデバイスから取得するようにし、Ｓ１６１１のプリンタデバイスに対している作成フラグを立てるようにし、図１７のステップＳ１７０３をステップＳ１６１１で立てられたプリンタデバイスに対するフラグを調べるようにし実行するようにすれば良い。
【０２３７】
仮想出力デバイス作成処理における条件属性を取得し該取得された条件属性に基づいて、図１８乃至図２１のフローに基づく複数のプリンタデバイスからなる複数種類の仮想出力デバイスを自動的に作成する仮想出力デバイス作成の仕組みを情報処理装置において実現できる。
【図面の簡単な説明】
【０２３８】
【図１】本発明を適用するネットワークシステムの構成例を示す図である。
【図２】本発明を適用したパーソナルコンピュータ（ＰＣ）の構成例を示すブロック図である。
【図３】本発明を適用したＰＣのメモリマップの例を示す図である。
【図４】本発明を適用したプログラムを含む媒体の内部構成例を示す図である。
【図５】本発明を適用したプログラムを含む媒体の例を示す図である。
【図６】本発明を適用する印刷ジョブ制御システムのブロック図である。
【図７】本発明を適用する印刷ジョブ制御システムにおけるプリントジョブの処理の流れを説明する図である。
【図８】本発明を適用する印刷ジョブ制御システムにおけるプリントジョブが持つ情報を説明する図である。
【図９】本発明を適用した印刷ジョブ制御システム設定プログラムのモジュール構成の一部を示すブロック図である。
【図１０】本発明を適用した印刷ジョブ制御システム設定プログラムのモジュール構成の残りの一部を示すブロック図である。
【図１１】本発明を適用した実施形態における印刷ジョブ制御システムのインストーラのインストールモードを選択するための画面を示す図である。
【図１２】本発明を適用した実施形態における印刷ジョブ制御システムのインストーラのデバイス選択条件をユーザが入力するための画面を示す図である。
【図１３】本発明を適用した実施形態における印刷ジョブ制御システムの設定プログラムの処理の流れの概要を示す図である。
【図１４】図１３に示したフローチャートのステップＳ１３０１の詳細を示すフローチャートである。
【図１５】図１３に示したフローチャートのステップＳ１３０２の詳細を示すフローチャートである。
【図１６】図１３に示したフローチャートのステップＳ１３０４の詳細を示すフローチャートである。
【図１７】図１３に示したフローチャートのステップＳ１３０５の詳細を示すフローチャートである。
【図１８】図１３に示したフローチャートのステップＳ１３０６の詳細を示すフローチャートの一部である。
【図１９】図１３に示したフローチャートのステップＳ１３０６の詳細を示すフローチャートの一部である。
【図２０】図１３に示したフローチャートのステップＳ１３０６の詳細を示すフローチャートの一部である。
【図２１】図１３に示したフローチャートのステップＳ１３０６の詳細を示すフローチャートの一部である。
【図２２】本発明を適用した実施形態における印刷ジョブ制御システムの設定プログラムの処理の結果作成された固有のポートモニタ及びポートがＷｉｎｄｏｗｓ（登録商標）のプリンタプロパティダイアログにおいてリスト表示されているところを示す図である。
【図２３】本発明を適用した実施形態における印刷ジョブ制御システムの設定プログラムの処理の結果作成された論理プリンタ、仮想プリンタがＷｉｎｄｏｗｓ（登録商標）のプリンタフォルダ内でアイコンとして表示されているところを示す図である。
【図２４】本発明を適用した第２実施形態における、図１３に示したフローチャートのステップＳ１３０６の詳細を示すフローチャートの一部である。
【図１】
2005165393.tif 000003
【図２】
2005165393.tif 000004
【図３】
2005165393.tif 000005
【図４】
2005165393.tif 000006
【図５】
2005165393.tif 000007
【図６】
2005165393.tif 000008
【図７】
2005165393.tif 000009
【図８】
2005165393.tif 000010
【図９】
2005165393.tif 000011
【図１０】
2005165393.tif 000012
【図１１】
2005165393.tif 000013
【図１２】
2005165393.tif 000014
【図１３】
2005165393.tif 000015
【図１４】
2005165393.tif 000016
【図１５】
2005165393.tif 000017
【図１６】
2005165393.tif 000018
【図１７】
2005165393.tif 000019
【図１８】
2005165393.tif 000020
【図１９】
2005165393.tif 000021
【図２０】
2005165393.tif 000022
【図２１】
2005165393.tif 000023
【図２２】
2005165393.tif 000024
【図２３】
2005165393.tif 000025
【図２４】
2005165393.tif 000026
【手続補正書】
【提出日】平成16年12月10日(2004.12.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ネットワークを介して複数の出力デバイスと通信可能で、当該複数の出力デバイスに対する出力制御機能を備える情報処理装置であって、
仮想プリンタ作成処理における条件属性を取得する取得手段と、
前記取得手段により取得された前記条件属性に基づいた仮想プリンタを複数の論理プリンタを用いて作成する仮想プリンタ作成手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記仮想プリンタ作成手段は、複数種類の仮想プリンタを作成することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記仮想プリンタ作成手段は、所定の論理プリンタの優先度を高くするようにして仮想プリンタを作成することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記仮想プリンタ作成手段は、オペレーティングシステムにデフォルトで利用するように設定されている論理プリンタの種別に応じた複数種類の仮想プリンタを作成することを特徴とする請求項１乃至３の何れか１項に記載の情報処理装置。
【請求項５】
さらに、論理プリンタが存在しない場合に論理プリンタを作成する論理プリンタ作成手段を有し、
前記仮想プリンタ作成手段は、前記論理プリンタ作成手段により作成された論理プリンタと前記取得手段により取得された条件属性とに基づいて、仮想プリンタを作成することを特徴とする請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項６】
さらに、ネットワークを介して通信可能な前記複数の出力デバイスの探索を行う探索手段を有し、
前記論理プリンタ作成手段は、前記探索手段の探索結果に基づいて論理プリンタを作成することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
さらに、予め前記情報処理装置内に設定された論理プリンタのポートを更新する更新手段を有することを特徴とする請求項１乃至６の何れか１項に記載の情報処理装置。
【請求項８】
仮想出力デバイス作成処理における条件属性を取得する取得手段と、
前記取得手段により取得された前記条件属性に基づいて、複数の出力デバイスからなる複数種類の仮想出力デバイスを作成する仮想出力デバイス作成手段と、
を有することを特徴とする情報処理装置。
【請求項９】
ネットワークを介して複数の出力デバイスと通信可能で、当該複数の出力デバイスに対する出力制御を実行する情報処理方法であって、
仮想プリンタ作成処理における条件属性を取得する取得工程と、
前記取得工程により取得された前記条件属性に基づいた仮想プリンタを複数の論理プリンタを用いて作成する仮想プリンタ作成工程と、
を有することを特徴とする情報処理方法。
【請求項１０】
前記仮想プリンタ作成工程では、複数種類の仮想プリンタが作成されることを特徴とする請求項９に記載の情報処理方法。
【請求項１１】
前記仮想プリンタ作成工程では、所定の論理プリンタの優先度を高くするようにして仮想プリンタが作成されることを特徴とする請求項９又は１０に記載の情報処理方法。
【請求項１２】
前記仮想プリンタ作成工程は、オペレーティングシステムにデフォルトで利用するように設定されている論理プリンタの種別に応じた複数種類の仮想プリンタが作成されることを特徴とする請求項９乃至１１の何れか１項に記載の情報処理方法。
【請求項１３】
さらに、論理プリンタが存在しない場合に論理プリンタを作成する論理プリンタ作成工程を有し、
前記仮想プリンタ作成工程では、前記論理プリンタ作成工程において作成された論理プリンタと前記取得工程において取得された条件属性とに基づいて、仮想プリンタが作成されることを特徴とする請求項９乃至１２の何れか１項に記載の情報処理方法。
【請求項１４】
さらに、ネットワークを介して通信可能な前記複数の出力デバイスの探索を行う探索工程を有し、
前記論理プリンタ作成工程では、前記探索工程による探索結果に基づいて論理プリンタが作成されることを特徴とする請求項１３に記載の情報処理方法。
【請求項１５】
さらに、予め設定された論理プリンタのポートを更新する更新工程を有することを特徴とする請求項９乃至１４の何れか１項に記載の情報処理方法。
【請求項１６】
仮想出力デバイス作成処理における条件属性を取得する取得工程と、
前記取得工程において取得された前記条件属性に基づいて、複数の出力デバイスからなる複数種類の仮想出力デバイスを作成する仮想出力デバイス作成工程と、
を有することを特徴とする情報処理方法。
【請求項１７】
請求項９乃至１６のいずれか１項に記載の情報処理方法を実行することを特徴とするプログラム。
【請求項１８】
請求項１７に記載のプログラムを記憶したことを特徴とする、コンピュータで読み取り可能な記憶媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
上記課題を解決するために、本発明による情報処理装置は、ネットワークを介して複数の出力デバイスと通信可能で、当該複数の出力デバイスに対する出力制御機能を備える情報処理装置であって、仮想プリンタ作成処理における条件属性を取得する取得手段と、
前記取得手段により取得された前記条件属性に基づいた仮想プリンタを複数の論理プリンタを用いて作成する仮想プリンタ作成手段と、を有することを特徴とする。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
また、本発明による情報処理装置は、仮想出力デバイス作成処理における条件属性を取得する取得手段と、前記取得手段により取得された前記条件属性に基づいて、複数の出力デバイスからなる複数種類の仮想出力デバイスを作成する仮想出力デバイス作成手段と、を有することを特徴とする。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
さらに、本発明による情報処理方法は、ネットワークを介して複数の出力デバイスと通信可能で、当該複数の出力デバイスに対する出力制御を実行する情報処理方法であって、仮想プリンタ作成処理における条件属性を取得する取得工程と、前記取得工程により取得された前記条件属性に基づいた仮想プリンタを複数の論理プリンタを用いて作成する仮想プリンタ作成工程と、を有することを特徴とする。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
また、本発明による情報処理方法は、仮想出力デバイス作成処理における条件属性を取得する取得工程と、前記取得工程において取得された前記条件属性に基づいて、複数の出力デバイスからなる複数種類の仮想出力デバイスを作成する仮想出力デバイス作成工程と、を有することを特徴とする。なお、本発明は、コンピュータプログラム及びコンピュータ読み取り可能な記憶媒体でも実現される。