(57)【要約】【課題】  ユーザに使い勝手のよい代行及び分散印刷システムを提供する。【解決手段】  プリンタ或いはデータベースから代行印刷対応機種の標準印刷ジョブ当りの印刷コスト（基準となる用紙サイズのデータの印刷に対し、消費電力、用紙代、トナー代から算定した印刷代）を取得する手段を設け、代行及び分散印刷設定のユーザインターフェースに、各メンバプリンタ毎のコスト情報を表示する等して、コスト順にメンバプリンタを並び替える手段を設ける。更にこの並び替えたプリンタのリストから、ユーザがメンバプリンタの優先順位を指定する手段を設ける。【選択図】        図１
2006171991.tif 000002
【特許請求の範囲】
【請求項１】
複数のコンピュータやプリンタ等の複数の印刷機能を有する入出力装置であるプリンタデバイスが、通信インタフェースを介して接続され、
送信側印刷要求を処理可能な、既定のプリンタデバイス等入出力装置のグループのグループプリンタに印刷要求を出す場合、優先順位の高い登録プリンタデバイスであるメンバプリンタから印刷を試行し、印刷が失敗した場合、優先順位に従って、印刷が成功するまで、他のメンバプリンタに代行させる機能を具備する代行印刷システム及びグループプリンタの各メンバプリンタに送信側印刷要求を頁単位で分割して送信することが可能な分散印刷システムをも備えた印刷システムにおいて、
プリンタデバイスとコンピュータ間で双方向通信手段を有し、
プリンタデバイス側に、
ホストコンピュータからの要求に応じて、プリンタデバイスの機種名等、機種を特定することのできる
機種情報や印刷機能情報等を通知するプリンタデバイス情報通知手段と、
ホストコンピュータ側に、
ネットワーク上でユーザが印刷可能な全プリンタデバイスをホストコンピュータ上に登録するプリンタ登録手段と、
ユーザがユーザインターフェース等で、グループプリンタのメンバプリンタとして、前記登録プリンタを任意に設定できるメンバプリンタ設定手段と、
前記メンバプリンタ設定手段において、全メンバプリンタに対し、一枚辺りの標準出力コスト情報が取得できる出力コスト取得手段と、
前記メンバプリンタ設定手段において、メンバプリンタの一覧を出力コストで並び替えて表示するコスト順表示手段と、
前記低コスト順に表示されたプリンタの全て或いは一部をその順にメンバプリンタの優先順として登録する手段を有することを特徴とする代行及び分散印刷システム。
【請求項２】
請求項１記載の出力コスト取得手段は、プリンタデバイスが自分自身のコスト情報を保持しておき、
ホストコンピュータからのコスト情報取得要求に対して、そのコスト情報を通知することを特徴とする代行及び分散印刷システム。
【請求項３】
請求項１記載の出力コスト取得手段は、ホストコンピュータ上で、対応可能な全プリンタに関して、機種毎のコスト情報から成るコスト情報リストを持ち、
前記プリンタデバイス情報通知手段により、プリンタから機種情報を取得し、
その得た機種情報を基に、前記コスト情報リストから出力コストを取得することを特徴とする代行及び分散印刷システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ機器とプリンタ装置とを接続して構成される、双方向通信を利用した機器制御言語を有した代行及び分散印刷システムに関するものである。
【背景技術】
【０００２】
従来の代行及び分散印刷のメンバプリンタ設定では、ネットワーク上のＩＰアドレス等のポート情報や機種名或いはプリンタドライバ名等が設定されたプリンタオブジェクトを候補として一覧表示し、ユーザがその一覧から機種名或いはプリンタドライバ名を頼りに自分で指定していた。
【特許文献１】特開平０９−３１９５３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記従来例では、ユーザが印刷単価の安いプリンタを選択しようとしても、機種毎の印刷単価を知っている必要があり、ユーザには困難であり、手間がかかった。
【０００４】
本発明は、上述の問題点に着目してなされたものであって、ユーザに使い勝手のよい代行及び分散印刷システムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
複数のコンピュータやプリンタ等の複数の印刷機能を有する入出力装置（以下、総じてプリンタデバイスと記述）或いはデータベースから代行及び分散印刷対応機種の標準印刷ジョブ当りの印刷コスト（基準となる用紙サイズのデータの印刷に対し、消費電力、用紙代、トナー代から算定した印刷代）を取得する手段を設け、代行及び分散印刷設定のユーザインターフェースに、コスト順に、優先順位の高い登録プリンタデバイス（以下、メンバプリンタと記述）を並び替える手段を設ける。
【０００６】
必要があれば、ユーザインターフェースにコスト情報を表示する手段を設ける。
【０００７】
更にユーザがこのコスト順に並び替えたプリンタのリストを見て、メンバプリンタの優先順位をその並び順或いは修正後、指定する手段を設ける。
【０００８】
すなわち、本発明は、複数のコンピュータやプリンタ等の複数の印刷機能を有する入出力装置であるプリンタデバイスが、通信インタフェースを介して接続され、
送信側印刷要求を処理可能な、既定のプリンタデバイス等入出力装置のグループ（以下、グループプリンタと記述）に印刷要求を出す場合、優先順位の高い登録プリンタデバイスであるメンバプリンタから印刷を試行し、印刷が失敗した場合、優先順位に従って、印刷が成功するまで、他のメンバプリンタに代行させる機能を具備する代行印刷システム及びグループプリンタの各メンバプリンタに送信側印刷要求を頁単位で分割して送信することが可能な分散印刷システムをも備えた印刷システムにおいて、
プリンタデバイスとコンピュータ間で双方向通信手段を有し、
プリンタデバイス側に、
ホストコンピュータからの要求に応じて、プリンタデバイスの機種名等、機種を特定することのできる
機種情報や印刷機能情報等を通知するプリンタデバイス情報通知手段と、
ホストコンピュータ側に、
ネットワーク上でユーザが印刷可能な全プリンタデバイスをホストコンピュータ上に登録するプリンタ登録手段と、
ユーザがユーザインターフェース等で、グループプリンタのメンバプリンタとして、前記登録プリンタを任意に設定できるメンバプリンタ設定手段と、
前記メンバプリンタ設定手段において、全メンバプリンタに対し、一枚辺りの標準出力コスト情報が取得できる出力コスト取得手段と、
前記メンバプリンタ設定手段において、メンバプリンタの一覧を出力コストで並び替えて表示するコスト順表示手段と、
前記低コスト順に表示されたプリンタの全て或いは一部をその順にメンバプリンタの優先順として登録する手段を有することを特徴とする代行及び分散印刷システムである。
【発明の効果】
【０００９】
本発明によれば、従来は、代行及び分散印刷のメンバプリンタ設定において、ユーザが印刷単価の安いプリンタを選択しようとしても、ユーザが機種毎の印刷単価を知っている必要があったため、ユーザには困難であり、手間がかかったが、印刷コストをプリンタから取得し、メンバプリンタ設定画面において、ユーザに印刷コストでプリンタをソートする手段を提供することでユーザに使い勝手のよいにシステムを提供できる。
【００１０】
また、デバイスが印刷コスト情報をサポートしていない場合でも、ホストコンピュータ側の設定ファイルに機種名に対するコスト情報を登録しておくことで、実施例１と同じくユーザが代行及び分散印刷のメンバプリンタ設定において、印刷コストに基づいた選定手段を与えることが可能となる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明を適用するのに好適である実施形態について説明を行う。
【実施例１】
【００１２】
図１は、本発明を適用可能な情報処理システムの構成を説明するブロック図である。なお、本システムにおけるクライアントコンピュータは、１台、または複数台接続されていることを仮定している。
【００１３】
図１において、１０２、１０３、１０４はクライアントコンピュータ（クライアント）としての情報処理装置であり、イーサネット（登録商標）などのネットワークケーブルによって、ネットワーク１０６に接続され、アプリケーションプログラム等の各種のプログラムを実行可能であり、印刷データをプリンタに対応するプリンタ言語に変換する機能を有するプリンタドライバを搭載している。なお、プリンタドライバは複数のプリンタドライバをサポートするものとする。また、プリンタとしては印刷装置であるところの、電子写真方式を最小したレーザービームプリンタやインクジェット方式を採用したインクジェットプリンタや熱転写方式を利用したプリンタ等様々な方式のものに適応できることも無論想定される。
【００１４】
１０１は本実施形態のサーバ（以下、プリントサーバと呼ぶ）としての情報処理装置であり、ネットワークケーブルによって、ネットワーク１０６に接続され、ネットワークで使用されるファイルを蓄積したり、ネットワーク１０６の使用状態を監視したりする。プリントサーバ１０１は、ネットワーク１０６に接続されている複数のプリンタを管理している。
【００１５】
構成としては、クライアント１０２〜１０４とプリントサーバ１０１は、一般的な情報処理装置であり、クライアントとプリントサーバには、それぞれ異なる制御を行う印刷制御プログラムが実行可能に格納されている。
【００１６】
また、プリントサーバ１０１は、一般的な情報処理装置であり、クライアント１０２〜１０４の機能を同時に持つこともできる。
【００１７】
本実施形態におけるプリントサーバ１０１は、さらにクライアントコンピュータ１０２、１０３、１０４から印刷要求が出された印字データを含む印刷ジョブを格納して印刷したり、または、クライアントコンピュータ１０２、１０３、１０４から印字データを含まないジョブ情報のみ受け取り、クライアントコンピュ―タ１０２、１０３、１０４の印刷順序を管理し、印刷順序になったクライアントに対して印字データを含む印刷ジョブの送信許可を通知したり、ネットワークプリンタ１０５のステータスや印刷ジョブの各種情報を取得し、クライアントコンピュータ１０２、１０３、１０４に通知したりする機能を揃えている。
【００１８】
１０５は印刷制御装置であるネットワークプリンタであり、図示省略したネットワークインタフェースを介してネットワーク１０６と接続されており、クライアントコンピュータから送信される印字データを含む印刷ジョブを解析して１ページずつドットイメージに変換して、１ページ毎に印刷する。１０６はネットワ―クであり、クライントコンピュータ１０２、１０３、１０４、サーバ１０１、ネットワークプリンタ１０５等と接続している。
【００１９】
図２は、本実施の形態における情報処理装置の構成を説明するブロック図であり、情報処理装置であるクライントコンピュータ１０２、１０３、１０４も同じ構成であり、更にサーバ１０１も同様あるいは同等のハードウェア構成とする。よって、クライアントとサーバの構成を説明するブロック図として説明する。
【００２０】
図２において、２００は情報処理装置の制御手段であるＣＰＵであり、ハードディスク（ＨＤ）２０５に格納されているアプリケーションプログラム、プリンタドライバプログラム、ＯＳや本発明のネットワークプリンタ制御プログラム等を実行し、ＲＡＭ２０２にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
【００２１】
２０１は記憶手段であるＲＯＭであり、内部には、基本Ｉ／Ｏプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。２０２は一時記憶手段であるＲＡＭであり、ＣＰＵ２００の主メモリ、ワークエリア等として機能する。
【００２２】
２０３は記憶媒体読み込み手段としてのフロッピー（登録商標）ディスク（ＦＤ）ドライブであり、後述する図５に示すようにＦＤドライブ２０３を通じて記憶媒体としてのＦＤ２０４に記憶されたプログラム等を本コンピュータシステムにロードすることができる。なお、記憶媒体は、ＦＤに限らず、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＰＣカード、ＤＶＤ、ＩＣメモリカード、ＭＯ、メモリスティック等、任意である。
【００２３】
２０４は記憶媒体であるフロッピー（登録商標）ディスク（ＦＤ）であり、コンピュータが読み取り可能なプログラムが格納された記憶媒体である。
【００２４】
２０５は外部記憶手段の一つであり、大容量メモリとして機能するハードディスク（ＨＤ）であり、アプリケーションプログラム、プリンタドライバプログラム、ＯＳ、ネットワークプリンタ制御プログラム、関連プログラム等を格納している。さらにスプール手段であるスプーラはここに確保される。スプール手段は、クライアントではクライアントスプーラのことであり、プリントサーバではサーバスプーラのことである。また、プリントサーバでは、クライアントから受けたジョブ情報を格納し、順序制御を行うためのテーブルもこの外部記憶手段に生成されて格納される。
【００２５】
２０６は指示入力手段であるキーボードであり、ユーザがクライアントコンピュータに対して、また、オペレータや管理者がプリントサーバに対して、デバイスの制御コマンドの命令等を入力指示するものである。
【００２６】
２０７は表示手段であるディスプレイであり、キーボード２０６から入力したコマンドや、プリンタの状態等を表示したりするものである。
【００２７】
２０８はシステムバスであり、クライアントやプリントサーバであるコンピュータ内のデータの流れを司るものである。
【００２８】
２０９は入出力手段であるインタフェースであり、該インタフェース２０９を介して情報処理装置は外部装置とのデータのやり取りを行う。
【００２９】
図３は、図２に示したＲＡＭ２０２のメモリマップの一例を示す図であり、ＦＤ２０４からロードされる上記ネットワークプリンタ制御プログラムが、ＲＡＭ２０２にロードされ実行可能となった状態のメモリマップである。
【００３０】
本実施形態では、ＦＤ２０４からネットワークプリンタ制御プログラムおよび関連データを直接ＲＡＭ２０２にロードして実行させる例を示すが、これ以外にも、ＦＤ２０４からネットワークプリンタ制御プログラムを動作させる度に、既にネットワークプリンタ制御プログラムがインストールされているＨＤ２０５からＲＡＭ２０２にロードするようにしてもよい。
【００３１】
また、本ネットワークプリンタ制御プログラムを記憶する媒体は、ＦＤ以外にＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＰＣカード、ＤＶＤ、ＩＣメモリカードであってもよい。さらに、本ネットワークプリンタ制御プログラムをＲＯＭ２０１に記憶しておき、これをメモリマップの一部となすように構成し、直接ＣＰＵ２００で実行することも可能である。
【００３２】
また、以上の各装置と同等の機能を実現するソフトウェアをもって、ハードウェア装置の代替として構成することもできる。
【００３３】
また、本ネットワークプリンタ制御プログラムのことを、簡単に印刷制御プログラムと呼ぶこともある。印刷制御プログラムは、クライアントにおいて印刷ジョブの印刷先の変更を指示したり、印刷順序を変更する指示をするための制御を行うプログラムを含み、また、プリントサーバにおいて、印刷ジョブの順序制御
を行ったり、印刷ジョブの印刷終了や印刷先変更要求などを通知するためのプログラムを含んでいる。また、このような制御を行う本発明の印刷制御プログラムは、クライアントにインストールされるモジュールと、プリントサーバにインストールされるモジュールを別々に分けてもよいし、ひとつの印刷制御プログラムが、実行される環境によりクライアント用として機能したり、またはプリントサーバ用として機能するようにしてもよい。あるいは一台のコンピュータに、クライアント用の機能を持つモジュールと、プリントサーバ用として機能するモジュールをともにインストールし、同時に、あるいは時分割で擬似的に平行動作させる構成も可能である。
【００３４】
３０１は基本Ｉ／Ｏプログラムであり、本制御装置の電源がＯＮされたときに、ＨＤ２０５からＯＳがＲＡＭ２０２に読み込まれ、ＯＳの動作を開始させるＩＰＬ（イニシャルプログラムローデイング）機能などを有しているプログラムが入っている領域である。
【００３５】
３０２はオペレーティングシステム（ＯＳ）であり、３０３はネットワークプリンタ制御プログラムで、ＲＡＭ２０２上に確保される領域に記憶される。３０４は関連データで、ＲＡＭ２０２上に確保される領域に記憶される。３０５はワークエリアで、ＣＰＵ２００が本プリンタ制御プログラムを実行する領域が確保されている。
【００３６】
図４は、図２に示したＦＤ２０４のメモリマップの一例を示す図である。図４において、４００は前記ＦＤ２０４のデータ内容であり、４０１はデータの情報を示すボリューム情報であり、４０２はディレクトリ情報、４０３は本実施形態で説明する印刷制御プログラムであるネットワークプリンタ制御プログラム、４０４はその関連データである。４０３のネットワークプリンタ制御プログラムは、実施形態で説明するフローチャートに基づいてプログラム化したものであり、本実施例では、クライアント、サーバ共、同様の構成をとっている。
【００３７】
図５は、図２に示したＦＤドライブ２０３に対して挿入されるＦＤ２０４との関係を示す図であり、図２と同一のものには同一の符号を付してある。
【００３８】
図５において、ＦＤ２０４には、本実施形態で説明するネットワークプリンタ制御プログラムおよび関連データを格納している。
【００３９】
次に本実施の形態における、プリンタを複数台使用して、前述の分散、同報、代行といった印刷処理を行う、印刷ジョブ制御システムについて説明する。
【００４０】
なお、本実施の形態では、複数のプリンタデバイスの夫々に対応する個々のプリンタドライバに対して一元的に印刷設定を指示可能で、且つ、Ｄｅ−ｓｐｏｏｌｅｒ（後述にて詳しく説明）が各プリンタドライバに描画命令を通知する為の汎用印刷ファイルを生成する為の基データ（汎用ドキュメントデータ）を生成するドライバをグループプリンタドライバと呼ぶ。また、プリンタデバイスに依存した個々のプリンタドライバをメンバプリンタドライバと呼ぶ。
【００４１】
図６は本システムのクライアントサーバモデルにおいてＭｉｃｒｏＳｏｆｔＷｏｒｄ（登録商標）などの一般的なアプリケーションから発行された印刷ジョブが、印刷ジョブ制御システムにおいてどのように処理されるかを示した図である。図６において、６００はクライアントマシンで、印刷ジョブ制御システムのクライアントモジュールが動作するマシンを指す。
【００４２】
通常、印刷の指示がされるとアプリケーションプログラムはＯＳのグラフィック機能を介して一連の描画命令を生成させ、プリンタドライバを経てＷｉｎｄｏｗｓ（登録商標）Ｓｐｏｏｌｅｒに渡される。Ｗｉｎｄｏｗｓ（登録商標）Ｓｐｏｏｌｅｒは、ユーザが選択したポートモニタにプリントジョブデータを渡してプリンタデバイスに送信させる手順をとる。
【００４３】
本実施の形態では、ユーザはあらかじめ印刷ジョブ制御システム用のポートモニタ６２１（以降、本実施例ではジョブ制御ポートモニタと略記）を指定して印刷を指示する。アプリケーションプログラム６０１は一連のＯＳを介して描画命令を生成する。
【００４４】
描画命令を受け取ったグループプリンタドライバ６０３では、汎用印刷ファイルを生成する為の汎用ドキュメントデータを生成し、プリンタデバイスへプリントジョブデータを送信するポートモニタではなく、ジョブ制御ポートモニタ６２１にプリントジョブデータとして送信する。ジョブ制御ポートモニタ６２１はプリントジョブデータをプリンタデバイス６５０に送信するのではなく、印刷ジョブ制御システム用プリントサービス６２２（以降、本実施例ではジョブ制御プリントサービスと略記）に送信する。ジョブ制御プリントサービス６２２は、ジョブ制御サーバ６３０の管理するジョブ／デバイスの状態を管理する機能を備える。更に、デバイスとクライアントＰＣがピアツーピア接続環境で互いに動作するような場合には、ジョブ制御プリントサービス６２２はデバイスから通知されるデバイス状態やジョブの状態などの情報を管理したり、また、デバイスに対して所定の命令をする機能も備える。これは、複数のプリンタデバイス６５０のデバイス情報やジョブ情報を管理する機能に相当する。
【００４５】
印刷ジョブ制御システム用プリントマネージャ６２３（以降、本実施例ではジョブ制御プリントマネージャと略記）は、ユーザがジョブ制御プリントサービス６２２内部でプリントジョブがどのような状態にあるかを調べたり、プリントジョブを操作したりするためのユーザインターフェース（ＵＩ）を提供するプログラムである。
【００４６】
ジョブ制御プリントマネージャ６２３はジョブ制御プリントサービス６２２のソフトウェアのインタフェース（ＡＰＩ）を介して、ジョブ制御プリントサービス６２２と情報の送受信を実行し、主に、ジョブ制御プリントサービス６２２が管理する外部のプリンタデバイスの状態情報をイベントとして取得する機能を備える。イベントの通知の種別としては、トナー残量が少なくなった警告、クライアントとデバイスとの通信障害、メモリ不足、排紙トレー満載などのエラー／警告情報の通知や、エラー状態から正常状態に復帰した正常情報の通知などが想定される。
【００４７】
印刷ジョブ制御システム用サーバ６３０（以降、本実施例ではジョブ制御サーバと略記）は、個々のクライアント６００上のジョブ制御プリントサービス６２２がプリンタデバイス６５０にプリントジョブデータを送信するタイミングを集中制御（スケジューリング）している。また、印刷ジョブ制御システム用サーバ６３０はネットワークを介して通信可能な各デバイス（印刷装置）の印刷実行中、電力制御状態、障害情報（紙ジャム）等のステータスを監視し、ジョブ制御プリントサービス６２２にイベントを通知する機能を備える。ここで、プリンタステータスの状態変化の監視について、ジョブ制御プリントサービス６２２は直接的に状態の変化の通知（イベント）をプリンタデバイスから取得することもできる。
【００４８】
印刷ジョブ制御システム用マネージメントコンソール６３３（以降、本実施例ではジョブ制御マネージメントコンソールと略記）は、ジョブ制御サーバ６３０が持つソフトウェアがアクセスするためのＡＰＩを介してジョブ制御サーバ６３０と情報・指示をやり取りすることで、印刷ジョブ制御システム全体を監視することができる。
【００４９】
また、ジョブ制御サーバ６３０はデバイス情報コントロールモジュール６３１を用いて各プリンタデバイス６５０と通信を行い、各プリンタ内の印刷ジョブや動作状態に関する情報を入手したり、操作を行ったりする。入手した情報はクライアント６００側のジョブ制御プリントサービス６２２に渡すことができる。
【００５０】
次に本実施の形態におけるグループプリンタドライバ６０３からの印刷について説明する。
【００５１】
グループプリンタドライバ６０３はアプリケーションプログラムが生成した一連の描画コマンドを、上に説明した汎用ドキュメントデータを生成する。この汎用ドキュメントデータはジョブ制御プリントサービス６２２によってプリンタデバイスの種類に依存しない中間フォーマットのファイルである汎用印刷ファイルに変換される。この汎用印刷ファイルの構成については後述する。
【００５２】
この汎用印刷ファイルは前述したようにＷｉｎｄｏｗＳ（登録商標）スプーラ６０４からジョブ制御ポートモニタ６２１を経て（ａ）、ジョブ制御プリントサービス６２２に導かれる（ｂ）。ジョブ制御プリントサービス６２２はこのプリントジョブに対して行うジョブ制御の種類に応じて、汎用印刷ファイルをもとに描画コマンドを生成し（ｃ）、続いてＰＤＬドライバ６０２がその描画コマンドをプリンタデバイス６５０が解釈可能なＰＤＬファイルにする。図６では、ジョブ制御プリントサービス６２２で、このプリントジョブに対してプリントジョブをふたつに分けるジョブ制御が行われる例で、２つのメンバジョブが生成された例を２つの矢印（ｃ）で示している。ＰＤＬドライバ６０２で生成されたＰＤＬファイルはＷｉｎｄｏｗｓ（登録商標）スプーラ６０４、ジョブ制御ポートモニタ６２１を経て（ｄ）、再びジョブ制御プリントサービス６２２に渡される（ｅ）。ジョブ制御プリントサービス６２２は、ジョブ制御サーバ６３０の指示に従ってＰＤＬのプリントジョブデータをプリンタデバイス６５０に送信する（ｆ）。
【００５３】
ジョブ制御プリントサービス６２２は、汎用印刷ファイル中の印刷指示書の指示にしたがって、一つの汎用印刷ファイルを複数のプリントジョブに論理的に分割してそれぞれ別のプリンタデバイスに送信したり、一度送信したプリントジョブデータを別のプリンタデバイスに送信し直したりする。図Ａ中の（ｃ）（ｄ）（ｅ）（ｆ）はそのような場合のプリントジョブデータの経路を示している。
【００５４】
一方、汎用印刷ファイルをアプリケーションソフトウェアが作成し、そのアプリケーションソフトウェアが直接汎用印刷ファイルを印刷ジョブとして投入する場合、一般のアプリケーションとはグループプリンタドライバ６０３への情報の渡し方や、グループプリンタドライバ６０３での処理内容が異なる。前述のように、一般のアプリケーションの場合、アプリケーションはグループプリンタドライバ６０３に描画情報を渡す際、通常のプリンタドライバと同じようにＷｉｎｄｏｗＳ（登録商標）のＧＤＩ関数を呼び出し、グループプリンタドライバ６０３がそれに応じて汎用ドキュメントデータを生成し、該生成された汎用ドキュメントデータがジョブ制御プリントサービス６２２によって汎用印刷ファイルに生成される。これに対して汎用印刷ファイルを直接作成するアプリケーションの場合は、アプリケーションが汎用印刷ファイルをすでに持ち、それをグループプリンタドライバ６０３に供給する。グループプリンタドライバ６０３は必要に応じてあらかじめ設定された印刷方法に基づいて汎用印刷ファイル内部の印刷指示書を書き換えてＷｉｎｄｏｗＳ（登録商標）Ｓｐｏｏｌｅｒ６０４に送る。
【００５５】
図８は、汎用印刷ファイルの構成の一例を示した図である。
【００５６】
本実施の形態で使用される汎用印刷ファイルは、印刷指示部８−ａと、ドキュメントデータ部８−ｂからなる。印刷指示部は、ドキュメントの情報と印刷指示を記述した部分である。また、ドキュメントデータは、アプリケーションのデータを汎用的な形式のデータに変換したものであり、プリンタ言語に依存しないデータフォーマットとなっている。
【００５７】
印刷指示部はヘッダ部、ページ情報部、印刷体裁指示部、出力方法指定部、グループプリンタドライバ設定情報部、メンバプリンタ数、メンバプリンタドライバ名、メンバプリンタドライバ設定情報部などから構成されている。
【００５８】
ヘッダ部は本ファイルのバージョン識別やファイル情報などの情報を格納する部分である。
【００５９】
ページ情報部は、ドキュメントデータ部８−ｂのドキュメントデータのページ数、各ページのサイズなどの情報を格納する部分である。
【００６０】
印刷体裁指示部は、印刷ページ範囲、印刷部数、ドキュメントデータの面付け情報（Ｎ−ＵＰや製本印刷など）、ステイプル指示やパンチ指示など、出力体裁に関する情報を格納する部分である。
【００６１】
出力方法指定部は、出力方法として、分散印刷、カラーモノクロ分散印刷、代行印刷、同報印刷などの情報を格納する部分である。
【００６２】
グループプリンタドライバ設定情報部は、後述するグループプリンタドライバのＵＩの設定情報を格納する部分である。
【００６３】
メンバプリンタ数はグループプリンタドライバが関連付けているメンバプリンタの数を格納する部分である。
【００６４】
メンバプリンタドライバ名は、メンバプリンタのプリンタドライバ名を格納する部分である。
【００６５】
メンバプリンタドライバ設定情報部はメンバプリンタのドライバＵＩの設定情報として例えばＤＥＶＭＯＤＥ情報を格納する部分である。
【００６６】
このメンバプリンタドライバ名とメンバプリンタドライバ設定情報部は、前述のメンバプリンタ数に格納された数だけの格納エリアを持っている。
【００６７】
前述の図６で説明したグループプリンタドライバ６０３では、汎用印刷ファイルを生成する際、グループプリンタドライバＧＵＩ上の設定を印刷指示部８−ａへ記録する。更に、グループプリンタドライバ６０３はＧＤＩで受け取ったデータを汎用的なデータに変換しｈキュメントデータとして、本汎用印刷ファイルのドキュメントデータ部に記録することとなる。
【００６８】
次に図７でＷｉｎｄｏｗＳ（登録商標）が提供するＰｒｉｎｔＳｙＳｔｅｍと印刷ジョブ制御システムにおける印刷ジョブの関係と処理概要を更に詳しく述べる。
【００６９】
図７中で印刷ジョブ制御システム７００は、サーバとクライアントの制御プログラムが動作する物理的なマシンをまたいだ、印刷ジョブ制御システムの範囲を示している。また、サーバが管理している出力ポート（Ｏｕｔｐｕｔ  Ｐｏｒｔ）７１１は、クライアントのジョブ制御プリントサービス６２２のプロキシ出力ポート（Ｐｒｏｘｙ  Ｏｕｔｐｕｔ  Ｐｏｒｔ）７１２と関連付けられ、ひとつのポートに関連づけられた各クライアント上のプロキシ出力ポート全てを統一的に管理している。本実施例では、実際のプリントジョブデータはおのおののクライアントのプロキシ出力ポート７１２に保持される。ジョブ制御サーバ６３０は、プリントジョブデータ自体の送信処理は行わず、ジョブ制御プリントサービス６２２に対して印刷ジョブの送信指示のみを行う。その指示に応じてクライアントのジョブ制御プリントサービス６２２はプリントジョブデータをデバイス６５０に送信する。
【００７０】
次に、印刷ジョブ制御システム７００が、代行印刷、分散印刷、同報印刷などの付加価値的な印刷を行う場合の処理を説明する。
【００７１】
印刷ジョブ制御システム７００が、代行印刷、分散印刷、同報印刷などの付加価値的な印刷を行う場合には、前述のようにユーザまたはアプリケーション６０１はグループプリンタドライバ６０３が割り当てられたプリンタに印刷ジョブを発行しなければならない。ジョブ制御プリントサービス６２２は、グループプリンタドライバ６０３によって処理されたジョブデータをジョブ制御ポートモニタ６２１を介して汎用印刷ファイルとして受け取る。ジョブ制御プリントサービス６２２はこのジョブを受け取り、ＤｅＳｐｏｏｌｅｒ７０１を介してＰＤＬドライバが割り当てられた別のプリンタにジョブ（メンバジョブ）を発行して印刷を行わせる。
【００７２】
この時、ＤｅＳｐｏｏｌｅｒ７０１は前述の図８で説明した汎用印刷ファイルの印刷指示部８−ａを解釈し、ドキュメントデータ部８−ｂのドキュメントデータを加工して、Ｗｉｎｄｏｗｓ（登録商標）のＧＤＩに変換し、各プリンタドライバに対して印刷指示を行い印刷ジョブを発行する。例えば印刷体裁指定部に、２−ＵＰの指示が記録されていた場合、用紙１枚に２ページ分のドキュメントデータを縮小レイアウトする。また分散印刷あるいは同報印刷の場合には、それらの設定に応じて印刷指示部８−ａに記述されている複数のメンバプリンタにジョブを発行する。代行印刷の場合は、代行する条件が満たされた時に、自動代行では事前の設定、手動代行ではユーザの操作に応じてメンバジョブを発行する。また、上に説明したＤｅ−ｓｐｏｏｌｅｒとは別のモジュールに印各メンバプリンタドライバに対応する指示情報を刷指示部８−ａから抽出させ、該抽出された各メンバプリンタドライバに対する印刷指示をＤｅ−ｓｐｏｏｌｅｒに解釈させるような形態も想定される。
【００７３】
また、ＤｅＳｐｏｏｌｅｒ７０１は各メンバプリンタにジョブを発行する際、メンバプリンタドライバに対応する印刷指示として、各メンバプリンタのＤＥＶＭＯＤＥを作成する必要があるが、このＤＥＶＭＯＤＥは印刷指示部８−ａに記載された内容を適宜各メンバプリンタのＤＥＶＭＯＤＥに反映させて生成する。
【００７４】
クライアント側のジョブ制御プリントサービス６２２は、ＰＤＬドライバ６０２によってレンダリングされた、それぞれのメンバジョブのＰＤＬデータをジョブ制御ポートモニタ６２１を介して受け取り、受け取ったジョブに関する情報をサーバ側に知らせ、ジョブデータは自身のプロキシ出力キュー（Ｐｒｏｘｙ  Ｏｕｔｐｕｔ  Ｐｏｒｔ）７１２で一時保持する。その後、ジョブ制御サーバ６３０からの送信指示を受けた後にプリントデバイス６５０に送信する。
【００７５】
図９は本実施例の代行印刷及び分散印刷の制御方法について、ホストコンピュータ側の処理を表したフローチャートである。以下、フローチャートに従い、本実施例のホストコンピュータ側の処理を説明する。
【００７６】
本実施例では、グループプリンタドライバ６０３等が以下のメンバプリンタの設定機能を実装する。
【００７７】
まず、本実施例の印刷システムのプログラムの起動に際し、必要な初期化処理を行う（Ｓ９０１）。ここで、ホストに登録された全プリンタの機種名、印刷機能、コスト情報等の内、初期化に必要な情報を取得し、プリンタ情報リストＬを作成する。この作成処理については後で図１０を用いて説明する。以降、処理ループに入る。まず、グループプリンタのメンバプリンタ設定要求を検知したか判定する（Ｓ９０２）。Ｙｅｓの場合、現在のメンバプリンタ設定画面の初期化に必要な設定Ｓを設定ファイル或いはメモリ上から取得する（Ｓ９０３）。次に取得した設定Ｓで設定画面（ＵＩ）を初期化して、表示する（Ｓ９０４）。その設定ＵＩでユーザが設定変更の操作を行う（Ｓ９０５）。その操作が印刷コスト順でのプリンタのソート指示であるか判定し（Ｓ９０６）、Ｙｅｓの場合は設定ＵＩで表示する全てのプリンタに関して、プリンタ情報リストＬからコスト情報を取得するために、Ｌをコスト情報に関して更新する（Ｓ９０７）。Ｌはプログラムの開始時に作成するが、プログラムの実行中に新しいプリンタが追加される場合がある。その場合、そのプリンタに関してプリンタから印刷コスト情報を取得し、必要なら設定ファイルにも書き込み、Ｌを更新する。印刷コストとは、標準印刷ジョブ当りの印刷代であり、基準となる用紙サイズのデータの印刷に対し、消費電力、用紙代、トナー代から算定したものであり、本実施例ではプリンタデバイスから取得できるものとする。次に更新されたＬから全表示プリンタの印刷コスト情報を取得する（Ｓ９０８）。取得した印刷コストは代金であり、数値であるのでソート（並び換え）が可能であるので、これを安い順にソートし、設定ＵＩに表示する。必要ならコスト情報も表示し（Ｓ９０９）、Ｓ９０５に戻る。Ｓ９０６でＮｏの場合は設定画面でＯＫボタンが押下されたか判定し、Ｙｅｓの場合はユーザ設定を保存し、設定を終了し（Ｓ９１１）、Ｓ９０２に戻る。Ｓ９１０でＮｏの場合は設定画面でキャンセルボタンが押下されたか判定し、Ｙｅｓの場合は設定は保存せず、設定を終了し（Ｓ９１３）、Ｓ９０２に戻る。Ｓ９１２でＮｏの場合は適宜処理し（Ｓ９１４）、Ｓ９０５に戻る。Ｓ９１４は本発明の本質とは関係ないため、説明を省略する。
【００７８】
この具体例を図１２と図１３を用いて説明する。図１２は代行印刷プリンタの設定ＵＩの一例であり、中央のリストにメンバプリンタが上を優先順位高として表示されている。このＵＩでは、「プリンタの追加／削除」ボタン押下により図１３のようなＵＩを出して、メンバプリンタの追加／削除を行う。
【００７９】
また、図１２ではリスト上部の「コスト」バーを押下することにより、プリンタをコスト順に並び替え、それをメンバプリンタの優先順位とすることができる。最初の押下で安い順、次の押下で高い順とトグル機能を持たせることも可能である。また、図１２の例では、コスト順にソートしてから、ユーザがＵＩ右中央の「↑」或いは「↓」ボタンを押下して、プリンタの優先順位を変更することも可能である。
【００８０】
図１３のＵＩは代行印刷だけでなく、分散印刷のメンバプリンタの追加／削除にも使用される。
【００８１】
左のリストには、既にホストコンピュータに登録されている代行或いは分散印刷用グループプリンタのメンバプリンタとして登録可能なプリンタが一覧表示される。右のリストには代行或いは分散先としてユーザが左のリストで選択及び追加した出力先プリンタ（候補）が表示される。左のリストをＵＩ中央部のプリンタのソート方法を「コスト」に指定することでコスト順（この場合は安い順）に並び換え、ユーザに提示する。ユーザはその並び替えられたリストから一部或いは全てを選択し、「追加」ボタンを押下することで選択したプリンタが左での並びと同じ順で右のリストに移動する。「全て追加」ボタンは左のリストから同じ並びで全プリンタが右のリストに移動する。ユーザが設定を終了する時は、「ＯＫ」ボタンを押下すれば、右リストに選択した出力先プリンタが代行或いは分散印刷用グループプリンタのメンバプリンタとして登録される。
【００８２】
Ｓ９０１のプリンタ情報リストＬの作成について、図１０を用い、以下で説明する。
【００８３】
本実施例では、プログラムの初期化を迅速に行うために普遍の情報或いは初期化情報を保持するための設定ファイルを持つものとする。これを参照し、プログラムの内部データ／ＵＩを初期化する。プリンタ情報リストもここに保持するものとする。設定ファイルを持たない場合はデバイスと通信した結果と必要ならば他のプロセスへの問い合わせ（ＡＰＩ呼び出し）により、プリンタ情報リストＬを作成すればよい。まず、ホストコンピュータに登録されたプリンタ名のリストをＡＰＩか設定ファイルから取得し、プリンタ情報リストの値が保存された設定ファイルＦを読み込む（Ｓ１００１）。Ｓ１００１で取得した登録プリンタ数をＮし，インデックスカウンタ変数ｉを０で初期化する（Ｓ１００２）。次にｉとＮを比較し、ｉがＮより小か判定し（Ｓ１００３）、Ｙｅｓの場合は登録プリンタリストのｉ番目の要素Ｐｉの情報がＦに存在するか判定する（Ｓ１００４）。Ｙｅｓならば、Ｐｉに対し、機種、印刷機能、印刷コスト情報等、プログラムの初期化に必要な情報の内、未登録のデータがあるか判定する（Ｓ１００５）。
【００８４】
Ｓ１０５でＹｅｓ或いはＳ１００４でＮｏの場合は、プリンタＰｉへ未登録情報の取得要求を送信する。或いは、プリンタの情報を一括で管理するサーバコンピュータがある場合はそこへ取得要求を送信する（Ｓ１００６）。Ｓ１００６の後或いはＳ１００５でＮｏの場合はインデックスカウンタをインクリメントし（Ｓ１００７）、Ｓ１００３へ戻る。Ｓ１００３でＮｏの場合はプリンタから応答パケットを受信したか判定し（Ｓ１００８）、Ｙｅｓの場合はＳ１００６で行った要求の応答であるか判定し（Ｓ１００９）、Ｙｅｓの場合は応答パケットから該当の情報を取得し（Ｓ１０１０）、プリンタ情報リストＬに取得情報を追加し（Ｓ１０１１）、Ｓ１００３へ戻る。Ｓ１００８でＮｏの場合は、全登録プリンタの情報を更新したか、或いはタイマー処理によるタイムアウト等でリスト更新の中止要求がきたかを判定し（Ｓ１０１２）、Ｙｅｓの場合は設定ファイルＦにプリンタ情報リストＬのデータを変更があれば書き込み、保存し（Ｓ１０１３）、終了する。Ｓ１０１２でＮｏの場合は適宜処理を行い（Ｓ１０１４）、Ｓ１００３に戻るが、これは本発明の本質とは無関係であるので説明を省略する。
【００８５】
次に、図１１を用い、本実施例の代行及び分散印刷方法について、デバイス側の処理について説明する。
【００８６】
まず、デバイスをリセットし、初期化処理を行う（Ｓ１１０１）。次に、ホストコンピュータから受信があるか判定し（Ｓ１１０２），受信があった場合は機種、機能、印刷コスト情報等のプリンタ情報取得要求であるか判定し（Ｓ１１０３）、Ｙｅｓの場合は要求された情報を，ＲＡＭに書きこむ（Ｓ１１０４）。これにより、デバイスの送信手段により、要求側に処理結果が送信される（Ｓ１１０５）。Ｓ１１０３でＮｏの場合は、ホストコンピュータからの印刷要求であるか判定し（Ｓ１１０７），  印刷要求の場合は適宜印刷処理を行う（Ｓ１１０８）。Ｓ１１０２及びＳ１１０７でＮｏの場合は、終了コマンドを受信したか判定し（Ｓ１１０６及びＳ１１１１）、終了コマンドであった場合は処理を終了する（電源断）。Ｓ１１０６でＮｏの場合はＲＡＭに送信データがあるか確認し（Ｓ１１０９）、あれば送信処理を行う（Ｓ１１１０）。
【００８７】
Ｓ１１０９及びＳ１１１１でＮｏの場合はその他、適宜処理を行う（Ｓ１１１２及びＳ１１１３）。これは本発明の本質とは関係ないので説明を省略する。Ｓ１１０２でＮｏの場合はデバイスの電源ボタンが押下されるなどの終了命令があったか判定し、Ｙｅｓの場合は処理を終了する（電源断）。Ｓ１１０５及びＳ１１０８及びＳ１１１０及びＳ１１１２及びＳ１１１３の後はＳ１１０２に戻り、処理を繰り返す。
【実施例２】
【００８８】
実施例１では、プリンタデバイスから印刷コスト情報を取得するが、プリンタデバイスがこの情報をサポートしない場合には、実施例１の設定ファイルにそのデバイスに関する印刷コスト情報をあらかじめ登録しておけば、印刷コストは機種毎に固定の値であるため、使用することができる。また、管理サーバ経由で同情報を取得する場合でも、管理サーバ側に同設定ファイルを保持しておけばよい。
【００８９】
設定ファイルのフォーマットは、例えば、以下のようになる（抜粋）。
【００９０】
［Ｃａｎｏｎ  ＬＡＳＥＲ  ＳＨＯＴ  ＬＢＰ−２８１０］；；機種名
ＰｒｉｎｔＣｏｓｔ＝５．０；；Ｙｅｎ／Ｓｔａｎｄａｒｄ  Ｆｏｒｍａｔｔｅｄ  Ｐａｇｅ  Ｐｒｉｎｔｉｎｇ．
殆どのプリンタデバイスは機種名を取得できるため、この機種名はデバイスから取得し、機種名で設定ファイルを検索し、印刷コスト（ＰｒｉｎｔＣｏｓｔ）キーの値を取得すればよい。
【図面の簡単な説明】
【００９１】
【図１】本実施例のデバイス探索方法を実装した印刷システムを構成するモジュールと入出力装置を説明するブロック図
【図２】本実施例の形態における情報処理装置の構成を説明するブロック図
【図３】図２で示したブロック図におけるメモリマップを示す図
【図４】図３のメモリマップの一例を示す図
【図５】図２に示したＦＤドライブに挿入されるＦＤとの関係を示す図
【図６】本システムのクライアントサーバモデルの処理の流れを示した図
【図７】本システムのクライアントサーバモデルの印刷ジョブ制御システムを示した図
【図８】本システムの汎用印刷ファイルの構成の一例を示した図
【図９】本システムのホストコンピュータの処理を表すフローチャート
【図１０】本システムのホストコンピュータの処理の内、プリンタ情報リスト作成手順を表すフローチャート
【図１１】本システムのデバイスの処理を表すフローチャート
【図１２】本システムのデバイス代行印刷設定のユーザインターフェースの一例を示す図
【図１３】本システムの代行及び分散印刷のメンバプリンタ設定のユーザインターフェースの一例を示す図
【符号の説明】
【００９２】
１０１  サーバ
１０２、１０３、１０４  クライアント
１０５  ネットワークプリンタ
１０６  ネットワーク
【図１】
2006171991.tif 000003
【図２】
2006171991.tif 000004
【図３】
2006171991.tif 000005
【図４】
2006171991.tif 000006
【図５】
2006171991.tif 000007
【図６】
2006171991.tif 000008
【図７】
2006171991.tif 000009
【図８】
2006171991.tif 000010
【図９】
2006171991.tif 000011
【図１０】
2006171991.tif 000012
【図１１】
2006171991.tif 000013
【図１２】
2006171991.tif 000014
【図１３】
2006171991.tif 000015