(57)【特許請求の範囲】
【請求項１】
アプリケーションプログラムにより生成された印刷すべき印刷データを複数のプリンタ用に分配して、各分配された印刷データを、前記プリンタの機種に対応したプリンタドライバを介して各プリンタに出力する分散印刷制御装置であって、
前記プリンタドライバを記憶するプリンタドライバ記憶手段と、
前記複数のプリンタが同一機種であるときに、該機種のプリンタについての性能情報を前記プリンタドライバ記憶手段に記憶された前記機種のプリンタドライバから取り込み、該取り込んだプリンタについての性能情報から仮想的なプリンタの性能情報を決定して、前記アプリケーションプログラムに対して前記決定した性能情報に基づくデータ変換処理を実行させて、前記アプリケーションプログラムから前記仮想的なプリンタに適合する中間印刷データを得る仮想プリンタドライバ実行手段と、
前記中間印刷データを前記複数のプリンタに割り当てる印刷データ割当手段と、
前記中間印刷データを、前記プリンタドライバによるデータ変換の処理を行なうことなしに、前記印刷データ割当手段による割り当てに従って前記各プリンタにそれぞれ送る出力データ制御手段と
を備える分散印刷制御装置。
【請求項２】
前記印刷データ割当手段にて割り当てられた前記中間印刷データの区切りの所定の単位が、印刷データで示す文書のページの単位である請求項１に記載の分散印刷制御装置。
【請求項３】
前記仮想プリンタドライバ実行手段により生成された中間印刷データを、外部記憶装置に中間印刷ファイルとして一旦格納するよう構成した請求項１または２に記載の分散印刷制御装置。
【請求項４】
外部からの指示を受けて、前記外部記憶装置に記憶される前記中間印刷ファイルを読み出し、該中間印刷ファイルの中間印刷データを用いて、前記各プリンタへの分散印刷を再実行するよう構成した請求項３に記載の分散印刷制御装置。
【請求項５】
前記印刷データ割当手段および出力データ制御部を再実行することで前記分散印刷の再実行を行なうよう構成した請求項４に記載の分散印刷制御装置。
【請求項６】
請求項１ないし５のいずれかに記載の分散印刷制御装置であって、
前記各プリンタ毎に設けられたプリンタドライバから、前記プリンタの性能についての情報を取り込む性能情報取込手段と、
該性能情報取込手段により取り込んだ全てのプリンタの性能から前記複数のプリンタが同一機種であることを判別する同一機種判別手段と
を備える分散印刷制御装置。
【請求項７】
請求項１ないし６のいずれかに記載の分散印刷制御装置であって、
前記印刷データの分配についての入力用ウィンドウを表示するとともに、入力装置からの入力データに基づいて、前記印刷データを前記複数のプリンタ用に分配するための各種情報を設定する分配情報設定手段を備え、
前記印刷データ割当手段は、前記分配情報設定手段により設定された各種情報に基づいて前記中間印刷データの割り当てを行なうよう構成した分散印刷制御装置。
【請求項８】
前記印刷データを前記複数のプリンタ用に分配するための各種情報のうちの一つが、当該分散印刷制御装置に接続される複数のプリンタから選択される所定のグループ内のプリンタに分配先を制限するための情報である請求項７に記載の分散印刷制御装置。
【請求項９】
前記仮想プリンタドライバ実行手段により生成された中間印刷データを中間印刷ファイルとし、該中間印刷ファイルと前記分配情報設定手段により設定した各種情報を示すデータとを、外部記憶装置に一旦格納するよう構成した請求項７または８に記載の分散印刷制御装置。
【請求項１０】
前記複数のプリンタのうちの少なくとも一つを、コンピュータネットワークにより接続した構成である請求項１ないし９のいずれかに記載の分散印刷制御装置。
【請求項１１】
アプリケーションプログラムにより生成された印刷すべき印刷データを複数のプリンタ用に分配して、各分配された印刷データを各プリンタに出力する分散印刷制御装置であって、
前記プリンタの機種毎に設けられたプリンタドライバを記憶するプリンタドライバ記憶手段と、
前記プリンタドライバ記憶手段に記憶された各プリンタドライバから前記複数のプリンタの性能についての情報を取り込み、特に前記複数のプリンタが同一機種であるときに、該機種のプリンタの性能についての情報を前記機種のプリンタドライバから取り込み、前記取り込んだプリンタについての性能情報から仮想的なプリンタの性能情報を決定して、前記アプリケーションプログラムに対して前記決定した性能情報に基づくデータ変換処理を実行させて、前記アプリケーションプログラムから前記仮想的なプリンタに適合する中間印刷データを得る仮想プリンタドライバ実行手段と、
前記中間印刷データを前記複数のプリンタに割り当てる印刷データ割当手段と、
前記複数のプリンタが同一機種であるか否かを判別する同一機種判別手段と、
前記複数のプリンタが同一機種であると判別されたときには、前記中間印刷データを、前記プリンタドライバによるデータ変換の処理を行なうことなしに、前記印刷データ割当手段による割り当てに従って前記各プリンタにそれぞれ送り、一方、前記複数のプリンタが同一機種でないと判別されたときには、前記中間印刷データを、前記プリンタドライバによるデータ変換の処理を行なって、前記印刷データ割当手段による割り当てに従って前記各プリンタにそれぞれ送る出力データ制御手段と
を備える分散印刷制御装置。
【請求項１２】
アプリケーションプログラムにより生成された印刷すべき印刷データを複数のプリンタ用に分配して、各分配された印刷データを、前記プリンタの機種に対応したプリンタドライバを介して各プリンタに出力する分散印刷制御方法であって、
（ａ）前記プリンタドライバを記憶装置に予め用意する工程と、
（ｂ）前記複数のプリンタが同一機種であるときに、該機種のプリンタについての性能情報を前記記憶装置に記憶された前記機種のプリンタドライバから取り込み、該取り込んだプリンタについての性能情報から仮想的なプリンタの性能情報を決定して、前記アプリケーションプログラムに対して前記決定した性能情報に基づくデータ変換処理を実行させて、前記アプリケーションプログラムから前記仮想的なプリンタに適合する中間印刷データを得る工程と
（ｃ）前記中間印刷データを前記複数のプリンタに割り当てる工程と、
（ｄ）前記中間印刷データを、前記プリンタドライバによるデータ変換の処理を行なうことなしに、前記工程（ｃ）による割り当てに従って前記各プリンタにそれぞれ送る工程と
を備える分散印刷制御方法。
【請求項１３】
アプリケーションプログラムにより生成された印刷すべき印刷データを複数のプリンタ用に分配して、各分配された印刷データを、前記プリンタの機種に対応したプリンタドライバを介して各プリンタに出力する分散印刷制御方法であって、
請求項２ないし１０のいずれかに記載の分散印刷制御装置の構成に対応した構成を備える分散印刷制御方法。
【請求項１４】
アプリケーションプログラムにより生成された印刷すべき印刷データを複数のプリンタ用に分配して、各分配された印刷データを各プリンタに出力する分散印刷制御方法であって、
（ａ）前記プリンタの機種毎に設けられたプリンタドライバを記憶装置に予め用意する工程と、
（ｂ）前記記憶装置に記憶された各プリンタドライバから前記複数のプリンタの性能についての情報を取り込み、特に前記複数のプリンタが同一機種であるときに、該機種のプリンタの性能についての情報を前記機種のプリンタドライバから取り込み、前記取り込んだプリンタについての性能情報から仮想的なプリンタの性能情報を決定して、前記アプリケーションプログラムに対して前記決定した性能情報に基づくデータ変換処理を実行させて、前記アプリケーションプログラムから前記仮想的なプリンタに適合する中間印刷データを得る工程と、
（ｃ）前記中間印刷データを前記複数のプリンタに割り当てる工程と、
（ｄ）前記複数のプリンタが同一機種であるか否かを判別する工程と、
（ｅ）前記複数のプリンタが同一機種であると判別されたときには、前記中間印刷データを、前記プリンタドライバによるデータ変換の処理を行なうことなしに、前記工程（ｃ）による割り当てに従って前記各プリンタにそれぞれ送り、一方、前記複数のプリンタが同一機種でないと判別されたときには、前記中間印刷データを、前記プリンタドライバによるデータ変換の処理を行なって、前記工程（ｃ）による割り当てに従って前記各プリンタにそれぞれ送る工程と
を備える分散印刷制御方法。
【請求項１５】
アプリケーションプログラムにより生成された印刷すべき印刷データを複数のプリンタ用に分配して、各分配された印刷データを、前記プリンタの機種に対応したプリンタドライバを介して各プリンタに出力する分散印刷制御装置において用いられるコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
（ａ）前記プリンタドライバを記憶装置に予め用意する機能と、
（ｂ）前記複数のプリンタが同一機種であるときに、該機種のプリンタについての性能情報を前記記憶装置に記憶された前記機種のプリンタドライバから取り込み、該取り込んだプリンタについての性能情報から仮想的なプリンタの性能情報を決定して、前記アプリケーションプログラムに対して前記決定した性能情報に基づくデータ変換処理を実行させて、前記アプリケーションプログラムから前記仮想的なプリンタに適合する中間印刷データを得る機能と
（ｃ）前記中間印刷データを前記複数のプリンタに割り当てる機能と、
（ｄ）前記中間印刷データを、前記プリンタドライバによるデータ変換の処理を行なうことなしに、前記機能（ｃ）による割り当てに従って前記各プリンタにそれぞれ送る機能と
を、コンピュータに実現させるためのコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１６】
前記機能（ｃ）により割り当てられる前記中間印刷データの区切りの所定の単位が、印刷データで示す文書のページの単位である請求項１５に記載のコンピュータ読み取り可能な記録媒体。
【請求項１７】
前記機能（ｂ）により生成された中間印刷データを、外部記憶装置に中間印刷ファイルとして一旦格納するよう構成した請求項１５または１６に記載のコンピュータ読み取り可能な記録媒体。
【請求項１８】
外部からの指示を受けて、前記外部記憶装置に記憶される前記中間印刷ファイルを読み出し、該中間印刷ファイルの中間印刷データを用いて、前記各プリンタへの分散印刷を再実行するよう構成した請求項１７に記載のコンピュータ読み取り可能な記録媒体。
【請求項１９】
請求項１５ないし１８のいずれかに記載のコンピュータ読み取り可能な記録媒体であって、
（ｅ）前記印刷データの分配についての入力用ウィンドウを表示するとともに、入力装置からの入力データに基づいて、前記印刷データを前記複数のプリンタ用に分配するための各種情報を設定する機能を、さらにコンピュータに実現させ、前記機能（ｃ）は、前記機能（ｅ）により設定された各種情報に基づいて前記中間印刷データの割り当てを行なうよう構成するとともに、
（ｆ）前記機能（ｂ）で得た中間印刷データを中間印刷ファイルとし、該中間印刷ファイルと前記機能（ｅ）により設定した各種情報を示すデータとを、外部記憶装置に出力する機能を、さらにコンピュータに実現させるコンピュータ読み取り可能な記録媒体。
【請求項２０】
アプリケーションプログラムにより生成された印刷すべき印刷データを複数のプリンタ用に分配して、各分配された印刷データを、前記プリンタの機種に対応したプリンタドライバを介して各プリンタに出力する分散印刷制御装置において用いられるコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
請求項５ないし８、請求項１０のいずれかに記載の分散印刷制御装置の構成に対応した構成をコンピュータに実現させるためのコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項２１】
アプリケーションプログラムにより生成された印刷すべき印刷データを複数のプリンタ用に分配して、各分配された印刷データを各プリンタに出力する分散印刷制御装置において用いられるコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
（ａ）前記プリンタの機種毎に設けられたプリンタドライバを記憶装置に予め用意する機能と、
（ｂ）前記記憶装置に記憶された各プリンタドライバから前記複数のプリンタの性能についての情報を取り込み、特に前記複数のプリンタが同一機種であるときに、該機種のプリンタの性能についての情報を前記機種のプリンタドライバから取り込み、前記取り込んだプリンタについての性能情報から仮想的なプリンタの性能情報を決定して、前記アプリケーションプログラムに対して前記決定した性能情報に基づくデータ変換処理を実行させて、前記アプリケーションプログラムから前記仮想的なプリンタに適合する中間印刷データを得る機能と、
（ｃ）前記中間印刷データを前記複数のプリンタに割り当てる機能と、
（ｄ）前記複数のプリンタが同一機種であるか否かを判別する機能と、
（ｅ）前記複数のプリンタが同一機種であると判別されたときには、前記中間印刷データを、前記プリンタドライバによるデータ変換の処理を行なうことなしに、前記機能（ｃ）による割り当てに従って前記各プリンタにそれぞれ送り、一方、前記複数のプリンタが同一機種でないと判別されたときには、前記中間印刷データを、前記プリンタドライバによるデータ変換の処理を行なって、前記機能（ｃ）による割り当てに従って前記各プリンタにそれぞれ送る機能と
を、コンピュータに実現させるためのコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、アプリケーションプログラムにより生成された印刷すべき印刷データを複数のプリンタに分散して出力する技術に関する。
【０００２】
【従来の技術】
近年、コンピュータネットワークを用いることで、パーソナルコンピュータ等の一の情報処理装置に対して複数のプリンタを容易に接続することが可能となった。こうした一の情報処理装置に複数のプリンタを接続した構成では、情報処理装置で作成した印刷データを各プリンタに分散して出力することができ、全体としての印刷時間の短縮を図ることができる。例えば、情報処理装置からアプリケーションプログラムによって作成した文書を３部印刷しようとする場合、３台のプリンタに１部ずつ分散して印刷を行なうことで、理論的には１部の印刷に要する時間で３部の印刷を済ますことができる。
【０００３】
【発明が解決しようとする課題】
しかしながら、上記従来の技術では、分散印刷を行なおうとするとき、アプリケーションプログラムから各プリンタのプリンタドライバに対して印刷データをプリンタ毎に個別に出力する必要があった。このために、作業者は、アプリケーションプログラムにおいて印刷の作業を分散先のプリンタの数の回数だけ行なう必要があり、作業性が悪いという問題があった。
【０００４】
この発明は、汎用のアプリケーションプログラムからでも作業性よく分散印刷を行なうことができるようにすることを目的としている。
【０００５】
【課題を解決するための手段およびその作用・効果】
前述した課題の少なくとも一部を解決するための手段として、以下に示す構成をとった。
【０００６】
この発明の第１の分散印刷制御装置は、
アプリケーションプログラムにより生成された印刷すべき印刷データを複数のプリンタ用に分配して、各分配された印刷データを、前記プリンタの機種に対応したプリンタドライバを介して各プリンタに出力する分散印刷制御装置であって、
前記プリンタドライバを記憶するプリンタドライバ記憶手段と、
前記複数のプリンタが同一機種であるときに、該機種のプリンタについての性能情報を前記プリンタドライバ記憶手段に記憶された前記機種のプリンタドライバから取り込み、該取り込んだプリンタについての性能情報から仮想的なプリンタの性能情報を決定して、前記アプリケーションプログラムに対して前記決定した性能情報に基づくデータ変換処理を実行させて、前記アプリケーションプログラムから前記仮想的なプリンタに適合する中間印刷データを得る仮想プリンタドライバ実行手段と、
前記中間印刷データを前記複数のプリンタに割り当てる印刷データ割当手段と、
前記中間印刷データを、前記プリンタドライバによるデータ変換の処理を行なうことなしに、前記印刷データ割当手段による割り当てに従って前記各プリンタにそれぞれ送る出力データ制御手段と
を備えることを要旨としている。
【０００７】
上記構成の分散印刷制御装置によれば、アプリケーションプログラムからは仮想的なプリンタドライバに対して一の印刷命令を行なうだけで、中間印刷データを得ることができ、この中間印刷データから同一機種である各プリンタへの分散印刷が自動的に行なわれる。このために、作業者は、アプリケーションプログラム上で印刷の作業を一度行なえばよく、作業性に優れているという効果を奏する。また、この分散印刷制御装置では、アプリケーションプログラムにより生成された印刷データをプリンタに適合させるために行なうデータ変換の処理を、仮想プリンタドライバ実行手段により１度行なうだけでよく、各プリンタ毎に何度も行なう必要がない。このために、同一機種のプリンタへの分散印刷を高速度で行なうことができるという効果も奏する。
【０００８】
上記構成の分散印刷制御装置において、前記印刷データ割当手段にて割り当てられる前記中間印刷データの区切りの所定の単位が、印刷データで示す文書のページの単位であるものとすることができる。この構成によれば、印刷すべき文書のページを区切りとして、各プリンタへの分散印刷を行なうことができる。
【０００９】
上記構成の分散印刷制御装置において、前記仮想プリンタドライバ実行手段により生成された中間印刷データを、外部記憶装置に中間印刷ファイルとして一旦格納するよう構成することができる。この構成によれば、中間印刷データの再利用が可能となる。
【００１０】
上記中間印刷ファイルを外部記憶装置に格納させる分散印刷制御装置において、外部からの指示を受けて、前記外部記憶装置に記憶される前記中間印刷ファイルを読み出し、該中間印刷ファイルの中間印刷データを用いて、前記各プリンタへの分散印刷を再実行するように構成することができる。この構成によれば、印刷した印刷物に不備があったり、印刷の部数が不足していたりして再印刷を行ないたいという場合に、アプリケーションプログラムを起動せずに印刷を行なうことができる。
【００１１】
上記再印刷を行なう構成の分散印刷制御装置において、前記印刷データ割当手段および出力データ制御部を再実行することで前記分散印刷の再実行を行なうよう構成することができる。この構成によれば、印刷データの分散の割り当てを、印刷データ割当手段にて変更した上で再印刷を行なうことができる。
【００１２】
上記第１の分散印刷制御装置において、前記各プリンタ毎に設けられたプリンタドライバから、前記プリンタの性能についての情報を取り込む性能情報取込手段と、該性能情報取込手段により取り込んだ全てのプリンタの性能から前記複数のプリンタが同一機種であることを判別する同一機種判別手段とを備える構成とすることができる。この構成によれば、各プリンタ毎に設けられたプリンタドライバからプリンタの性能の情報を取り込むことが可能となり、それら性能の情報からプリンタが同一機種であることを判別することができる。
【００１３】
上記第１の分散印刷制御装置において、前記印刷データの分配についての入力用ウィンドウを表示するとともに、入力装置からの入力データに基づいて、前記印刷データを前記複数のプリンタ用に分配するための各種情報を設定する分配情報設定手段を備え、前記印刷データ割当手段は、前記分配情報設定手段により設定された各種情報に基づいて前記中間印刷データの割り当てを行なうよう構成することができる。この構成によれば、プリンタの分散先を定めるために必要な各種情報を、分配情報設定手段によって指定することができる。
【００１４】
上記分配情報設定手段を備える構成の分散印刷制御装置において、前記印刷データを前記複数のプリンタ用に分配するための各種情報のうちの一つが、当該分散印刷制御装置に接続される複数のプリンタから選択される所定のグループ内のプリンタに分配先を制限するための情報であるとすることができる。この構成によれば、接続された全てのプリンタの内から予め定めたグループ内のプリンタに印刷の分散先を限ることができる。このため、作業者は印刷物の出力先を予め限られた範囲内とすることができ、この結果、作業性に優れている。
【００１５】
上記分配情報設定手段を備える構成の分散印刷制御装置において、前記仮想プリンタドライバ実行手段により生成された中間印刷データを中間印刷ファイルとし、該中間印刷ファイルと前記分配情報設定手段により設定した各種情報を示すデータとを、外部記憶装置に一旦格納するよう構成することもできる。この構成によれば、上記各種情報を示すデータが外部記憶装置に格納されていることから、中間印刷ファイルに基づく再印刷時において、分配情報設定手段による処理のデフォルト値を上記データに基づいて定めることができる。このため、単なる印刷のやり直しのような設定情報の変更を必要としない場合に、データの再入力が不要であることから、再印刷時の作業性に、より一層優れている。
【００１６】
上記第１の分散印刷制御装置において、前記複数のプリンタのうちの少なくとも一つを、コンピュータネットワークにより接続した構成とすることができる。この構成によれば、コンピュータネットワークを用いることで、多数のプリンタに容易に接続することが可能となる。
【００１７】
この発明の第２の分散印刷制御装置は、
アプリケーションプログラムにより生成された印刷すべき印刷データを複数のプリンタ用に分配して、各分配された印刷データを各プリンタに出力する分散印刷制御装置であって、
前記プリンタの機種毎に設けられたプリンタドライバを記憶するプリンタドライバ記憶手段と、
前記プリンタドライバ記憶手段に記憶された各プリンタドライバから前記複数のプリンタの性能についての情報を取り込み、特に前記複数のプリンタが同一機種であるときに、該機種のプリンタの性能についての情報を前記機種のプリンタドライバから取り込み、前記取り込んだプリンタについての性能情報から仮想的なプリンタの性能情報を決定して、前記アプリケーションプログラムに対して前記決定した性能情報に基づくデータ変換処理を実行させて、前記アプリケーションプログラムから前記仮想的なプリンタに適合する中間印刷データを得る仮想プリンタドライバ実行手段と、
前記中間印刷データを前記複数のプリンタに割り当てる印刷データ割当手段と、
前記複数のプリンタが同一機種であるか否かを判別する同一機種判別手段と、
前記複数のプリンタが同一機種であると判別されたときには、前記中間印刷データを、前記プリンタドライバによるデータ変換の処理を行なうことなしに、前記印刷データ割当手段による割り当てに従って前記各プリンタにそれぞれ送り、一方、前記複数のプリンタが同一機種でないと判別されたときには、前記中間印刷データを、前記プリンタドライバによるデータ変換の処理を行なって、前記印刷データ割当手段による割り当てに従って前記各プリンタにそれぞれ送る出力データ制御手段と
を備えることを要旨としている。
【００１８】
上記構成の第２の分散印刷制御装置によれば、アプリケーションプログラムからは仮想的なプリンタドライバに対して一の印刷命令を行なうだけで、中間印刷データを得ることができ、この中間印刷データから各プリンタへの分散印刷が自動的に行なわれる。このために、作業者は、アプリケーションプログラム上で印刷の作業を一度行なえばよく、作業性に優れているという効果を奏する。
【００１９】
また、この第２の分散印刷制御装置では、分散先である複数のプリンタが同一機種であろうと異機種であろうと共に分散印刷を行なうことができ、特に、同一機種のプリンタへの分散印刷を行なうときには、アプリケーションプログラムにより生成された印刷データをプリンタに適合させるために行なうデータ変換の処理を、仮想プリンタドライバ実行手段により１度行なうだけでよく、各プリンタ毎に何度も行なう必要がない。このために、プリンタの機種に関わらない分散印刷を可能としながら、同一機種のプリンタへの分散印刷を高速度で行なうことができるという効果も奏する。
【００２０】
この発明の第１の分散印刷制御方法は、
アプリケーションプログラムにより生成された印刷すべき印刷データを複数のプリンタ用に分配して、各分配された印刷データを、前記プリンタの機種に対応したプリンタドライバを介して各プリンタに出力する分散印刷制御方法であって、
（ａ）前記プリンタドライバを記憶装置に予め用意する工程と、
（ｂ）前記複数のプリンタが同一機種であるときに、該機種のプリンタについての性能情報を前記記憶装置に記憶された前記機種のプリンタドライバから取り込み、該取り込んだプリンタについての性能情報から仮想的なプリンタの性能情報を決定して、前記アプリケーションプログラムに対して前記決定した性能情報に基づくデータ変換処理を実行させて、前記アプリケーションプログラムから前記仮想的なプリンタに適合する中間印刷データを得る工程と
（ｃ）前記中間印刷データを前記複数のプリンタに割り当てる工程と、
（ｄ）前記中間印刷データを、前記プリンタドライバによるデータ変換の処理を行なうことなしに、前記工程（ｃ）による割り当てに従って前記各プリンタにそれぞれ送る工程と
を備えることを要旨としている。
【００２１】
この構成の第１の分散印刷制御方法は、この発明の第１の分散印刷制御装置と同様な作用・効果を有しており、アプリケーションプログラムから作業性よく分散印刷を行なうことができるとともに、同一機種のプリンタへの分散印刷を高速度で行なうことができる。
【００２２】
この発明の第２の分散印刷制御方法は、
アプリケーションプログラムにより生成された印刷すべき印刷データを複数のプリンタ用に分配して、各分配された印刷データを各プリンタに出力する分散印刷制御方法であって、
（ａ）前記プリンタの機種毎に設けられたプリンタドライバを記憶装置に予め用意する工程と、
（ｂ）前記記憶装置に記憶された各プリンタドライバから前記複数のプリンタの性能についての情報を取り込み、特に前記複数のプリンタが同一機種であるときに、該機種のプリンタの性能についての情報を前記機種のプリンタドライバから取り込み、前記取り込んだプリンタについての性能情報から仮想的なプリンタの性能情報を決定して、前記アプリケーションプログラムに対して前記決定した性能情報に基づくデータ変換処理を実行させて、前記アプリケーションプログラムから前記仮想的なプリンタに適合する中間印刷データを得る工程と、
（ｃ）前記中間印刷データを前記複数のプリンタに割り当てる工程と、
（ｄ）前記複数のプリンタが同一機種であるか否かを判別する工程と、
（ｅ）前記複数のプリンタが同一機種であると判別されたときには、前記中間印刷データを、前記プリンタドライバによるデータ変換の処理を行なうことなしに、前記工程（ｃ）による割り当てに従って前記各プリンタにそれぞれ送り、一方、前記複数のプリンタが同一機種でないと判別されたときには、前記中間印刷データを、前記プリンタドライバによるデータ変換の処理を行なって、前記工程（ｃ）による割り当てに従って前記各プリンタにそれぞれ送る工程と
を備えることを要旨としている。
【００２３】
この構成の第２の分散印刷制御方法は、この発明の第２の分散印刷制御装置と同様な作用・効果を有しており、アプリケーションプログラムから作業性よく分散印刷を行なうことができる。また、プリンタの機種に関わらない分散印刷を可能としながら、同一機種のプリンタへの分散印刷を高速度で行なうことができる。
【００２４】
この発明の第１の記録媒体は、
アプリケーションプログラムにより生成された印刷すべき印刷データを複数のプリンタ用に分配して、各分配された印刷データを、前記プリンタの機種に対応したプリンタドライバを介して各プリンタに出力する分散印刷制御装置において用いられるコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
（ａ）前記プリンタドライバを記憶装置に予め用意する機能と、
（ｂ）前記複数のプリンタが同一機種であるときに、該機種のプリンタについての性能情報を前記記憶装置に記憶された前記機種のプリンタドライバから取り込み、該取り込んだプリンタについての性能情報から仮想的なプリンタの性能情報を決定して、前記アプリケーションプログラムに対して前記決定した性能情報に基づくデータ変換処理を実行させて、前記アプリケーションプログラムから前記仮想的なプリンタに適合する中間印刷データを得る機能と
（ｃ）前記中間印刷データを前記複数のプリンタに割り当てる機能と、
（ｄ）前記中間印刷データを、前記プリンタドライバによるデータ変換の処理を行なうことなしに、前記機能（ｃ）による割り当てに従って前記各プリンタにそれぞれ送る機能と
を、コンピュータに実現させるためのコンピュータプログラムを記録したことを要旨としている。
【００２５】
上記構成の第１の記録媒体も、上記発明の第１の分散印刷制御装置と同様な作用・効果を有しており、アプリケーションプログラムから作業性よく分散印刷を行なうことができるとともに、同一機種のプリンタへの分散印刷を高速度で行なうことができる。
【００２６】
この発明の第２の記録媒体は、
アプリケーションプログラムにより生成された印刷すべき印刷データを複数のプリンタ用に分配して、各分配された印刷データを各プリンタに出力する分散印刷制御装置において用いられるコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
（ａ）前記プリンタの機種毎に設けられたプリンタドライバを記憶装置に予め用意する機能と、
（ｂ）前記記憶装置に記憶された各プリンタドライバから前記複数のプリンタの性能についての情報を取り込み、特に前記複数のプリンタが同一機種であるときに、該機種のプリンタの性能についての情報を前記機種のプリンタドライバから取り込み、前記取り込んだプリンタについての性能情報から仮想的なプリンタの性能情報を決定して、前記アプリケーションプログラムに対して前記決定した性能情報に基づくデータ変換処理を実行させて、前記アプリケーションプログラムから前記仮想的なプリンタに適合する中間印刷データを得る機能と、
（ｃ）前記中間印刷データを前記複数のプリンタに割り当てる機能と、
（ｄ）前記複数のプリンタが同一機種であるか否かを判別する機能と、
（ｅ）前記複数のプリンタが同一機種であると判別されたときには、前記中間印刷データを、前記プリンタドライバによるデータ変換の処理を行なうことなしに、前記機能（ｃ）による割り当てに従って前記各プリンタにそれぞれ送り、一方、前記複数のプリンタが同一機種でないと判別されたときには、前記中間印刷データを、前記プリンタドライバによるデータ変換の処理を行なって、前記機能（ｃ）による割り当てに従って前記各プリンタにそれぞれ送る機能と
を、コンピュータに実現させるためのコンピュータプログラムを記録したことを要旨としている。
【００２７】
上記構成の第２の記録媒体も、この発明の第２の分散印刷制御装置と同様な作用・効果を有しており、アプリケーションプログラムから作業性よく分散印刷を行なうことができる。また、プリンタの機種に関わらない分散印刷を可能としながら、同一機種のプリンタへの分散印刷を高速度で行なうことができる。
【００２８】
【発明の他の態様】
この発明は、以下のような他の態様も含んでいる。その第１の態様は、この発明の記録媒体による機能と同様の機能を持つコンピュータプログラムとしての態様である。その第２の態様は、そのコンピュータプログラムを含むことで搬送波内に具現化されたデータ信号としての態様である。第３の態様は、コンピュータプログラムを通信経路を介して供給するプログラム供給装置としての態様である。この第３の態様では、コンピュータプログラムをコンピュータネットワーク上のサーバなどに置き、通信経路を介して、必要なプログラムをコンピュータにダウンロードし、これを実行することで、上記の装置や方法を実現することができる。
【００２９】
【発明の実施の形態】
以上説明したこの発明の構成・作用を一層明らかにするために、以下この発明の実施の形態を実施例に基づき説明する。
【００３０】
１．ハードウェアの全体構成
図１はこの発明の一実施例を適用するコンピュータシステムのハードウェアの概略構成を示すブロック図である。図示するように、この一実施例のコンピュータシステムは、コンピュータ１０を備え、このコンピュータ１０には、実質的にコンピュータ機能を有する複数のプリンタ７０，８０，…が、ローカルエリアネットワーク（ＬＡＮ）により構築されたコンピュータネットワーク９０を介して接続されている。なお、コンピュータネットワーク９０は、ＬＡＮに替えて、インターネットや、イントラネットや、ワイドエリアネットワーク（ＷＡＮ）など、各種ネットワークに替えることができる。
【００３１】
コンピュータ１０には、周辺機器としてのＣＲＴディスプレイ１２が接続され、さらにはローカルにてもう一台のプリンタ６０が接続されている。また、コンピュータ１０は、コンピュータ本体１６とキーボード１８とマウス２０を備える。このコンピュータ本体１６には、フロッピィディスク２２の内容を読み取るフロッピィディスクドライブ２４が搭載されている。
【００３２】
コンピュータ本体１６は、中央演算処理装置としてのＣＰＵ３０を中心にバスにより相互に接続されたＲＯＭ３１、ＲＡＭ３２、表示画像メモリ３３、マウスインタフェース３４、キーボードインタフェース３５、ＦＤＣ３６、ＨＤＣ３７、ＣＲＴＣ３８、プリンタインタフェース３９およびネットワーク制御回路４０を備える。
【００３３】
ＲＯＭ３１は、内蔵されている各種プログラム等を記憶する読み出し専用のメモリである。ＲＡＭ３２は、各種データ等を記憶する読み出し・書込み可能なメモリである。表示画像メモリ３３はＣＲＴディスプレイ１２に表示する画像の画像データを記憶するメモリである。マウスインタフェース３４は、マウス２０とのデータ等のやり取りを司るインタフェースである。キーボードインタフェース３５は、キーボード１８からのキー入力を司るインタフェースである。ＦＤＣ３６は、フロッピィディスクドライブ（ＦＤＤ）２４を制御するフロッピィディスクコントローラである。ＨＤＣ３７は、ハードディスクドライブ（ＨＤＤ）４１を制御するハードディスクコントローラである。ＣＲＴＣ３８は、表示画像メモリ３３に記憶される表示画像データに基づいてＣＲＴディスプレイ１２における画像の表示を制御するＣＲＴコントローラである。プリンタインタフェース３９は、ローカルにて接続されるプリンタ１４へのデータの出力を制御するインタフェースである。ネットワーク制御回路４０は、ネットワークカードなどから成り、コンピュータネットワーク９０に接続されている。
【００３４】
このコンピュータシステムでは、オペレーティングシステムはＨＤＤ４１に記憶されており、コンピュータ本体１６に電源を投入すると、ＨＤＤ４１のブートブロックに書き込まれたローダに従ってＲＡＭ３２の所定の領域にロードされる。また、プリンタ６０，７０，８０の機種毎に用意されるプリンタドライバ（以下、実プリンタドライバと呼ぶ）は、フロッピィディスク２２に予め格納されており、所定のインストールプログラムを起動することで、フロッピィディスクドライブ２４からコンピュータ１０にインストールされる。このインストールされた実プリンタドライバは、ＨＤＤ４１に記憶されており、コンピュータ１０に電源を投入したときに、オペレーティングシステムに組み込まれ、ＲＡＭ３２の所定の領域にロードされる。
【００３５】
また、このコンピュータシステムでは、仮想的なプリンタについての情報を定める仮想的なプリンタドライバ（仮想プリンタドライバ）１１０を備えている。この仮想プリンタドライバ１１０は、実際のプリンタドライバと同様に、フロッピィディスク２２に予め格納されており、所定のインストールプログラムを起動することで、フロッピィディスクドライブ２４からコンピュータ１０にインストールされる。このインストールされた仮想プリンタドライバ１１０は、ＨＤＤ４１に記憶されており、コンピュータ１０に電源を投入したときに、オペレーティングシステムに組み込まれ、ＲＡＭ３２の所定の領域にロードされる。なお、仮想プリンタドライバ１１０のコンピュータプログラムは、フロッピィディスク２２に格納されたものに替えて、ＣＤ−ＲＯＭ、光磁気ディスク、ＩＣカード等の他の携帯型記録媒体（可搬型記録媒体）に格納された構成としてもよい。また、このコンピュータプログラムは、外部のコンピュータネットワーク（例えばインターネット）に接続される特定のサーバから、コンピュータネットワークを介して提供されるプログラムデータをダウンロードして、ＲＡＭ３２またはＨＤＤ４１に転送することにより得るようにすることもできる。
【００３６】
プリンタ６０，７０，８０は、ドラムにレーザ光を当てて像を作り、トナーで現像して用紙に転写する所謂レーザプリンタである。なお、プリンタ６０，７０，８０としては、インクジェットプリンタ、熱転写プリンタなど、各種プリンタを適用することができる。
【００３７】
２．分散印刷処理の様子
かかる構成のコンピュータシステムによれば、大まかには、コンピュータ本体１６により、印刷すべき印刷データを作成し、この印刷データをコンピュータ本体１６に接続されているプリンタ６０，７０，８０に分散して印刷させる分散印刷処理を行なう。こうした分散印刷処理の様子について以下詳しく説明する。
【００３８】
図２は、分散印刷処理の全体の様子を概略的に示すブロック図である。図３は、分散印刷処理に用いられる仮想プリンタドライバ１１０の処理の様子を示すブロック図である。図４は、分散印刷処理の一部を実現する分散印刷ユーティリティプログラム（以下、単に「分散印刷ユーティリティ」と呼ぶ）１２０の処理の様子を示すブロック図である。
【００３９】
図２に示すように、コンピュータ本体１６の内部で動作しているアプリケーションプログラム１００は、画像の処理を行って画像データを生成し、この画像データを印刷すべく印刷命令を発行する。アプリケーションプログラム１００から印刷命令が発行されると、仮想プリンタドライバ１１０が、印刷命令を受けて、この仮想プリンタドライバ１１０が想定する仮想的なプリンタの性能についての性能情報をアプリケーションプログラム１００に返す。詳細には、図３に示すように、仮想プリンタドライバ１１０は、印刷命令受信部１１１により、アプリケーションプログラム１００から発行される印刷命令を受信して、その印刷命令を受信した旨を印刷命令受信部１１１から受けた性能情報返信部１１２により、仮想的なプリンタの性能についての性能情報をアプリケーションプログラム１００に返す。
【００４０】
ここで仮想的なプリンタの性能というのは、分散先となり得る全てのプリンタのうちの最も性能の高いプリンタについての性能である。一般に、性能の高いプリンタは、高級なプログラム言語により描画を行なっている。例えば、数式等を用いた高度な描画命令により図形を表わすものは高級なプログラム言語であり、ビットマップを用いた程度の低い描画命令により図形を表わすものは低級なプログラム言語である。したがって、この実施例では、仮想的なプリンタの性能を上述したように分配先となり得る全てのプリンタのうちの最も高いプリンタについての性能と定めることで、この仮想プリンタドライバ１１０において高級なプログラム言語に従うデータ変換処理（レンダリング処理）を可能としている。すなわち、高級なプログラム言語は前述したように、高度な描画命令を使用するものであるから、この仮想プリンタドライバ１１０では、もっとも高性能なプリンタに合わせて効率的なレンダリング処理を実現し得るようにしている。
【００４１】
なお、分散先となり得るプリンタというのは、コンピュータ本体１６にローカルもしくはネットワークで接続される全てのプリンタのうちのプロパティ設定部１１３により設定されるプリンタグループに属するプリンタであり、ここでは、プリンタ６０，７０，８０が該当するものとする。なお、この実施例では、これら３台のプリンタ６０，７０，８０が同一機種である場合には、３台のプリンタのうち  のいずれか一つのプリンタの性能が仮想的なプリンタの性能として定められている。
【００４２】
詳細には、上記プリンタ６０，７０，８０の機種毎に用意される実プリンタドライバ１３０，１４０，１５０（プリンタ６０，７０，８０が同一機種の場合には、一の実プリンタドライバ１３０が用意されるだけである）から分散印刷ユーティリティ１２０が取り込んだ各プリンタ６０，７０，８０の性能情報を、性能情報入力部１１４により取り込んで、仮想プリンタ性能決定部１１５により、これら各プリンタ６０，７０，８０の性能情報から最も高いものを抽出して、これを仮想的なプリンタの性能情報とする。なお、各プリンタ６０，７０，８０の性能情報が同一である場合には、最初に読み込んだプリンタ６０の性能情報を仮想的なプリンタ性能情報とする。性能情報返信部１１２は、こうして定めた仮想的なプリンタの性能情報をアプリケーションプログラム１００に返している。
【００４３】
また、仮想プリンタドライバ１１０は、プロパティ設定部１１３により、ユーザインタフェース１１６を動作させて印刷のための各種情報を設定・記憶するが、この印刷のための各種情報のうちのいくつかの情報を上記性能情報とともに性能情報返信部１１２を介してアプリケーションプログラム１００に返す。印刷のための各種情報としては、印刷品質、色補正、ハーフトーンの種類等の印刷の基本設定に関するもの、用紙のサイズ、印刷方向等の用紙設定に関するもの、分散先となり得るプリンタを指定するプリンタグループに関するもの、分散印刷する場合の分散形態に関するもの等があるが、ここでは、これら情報の内のプリンタグループおよび分散形態に関するものを除いた情報をアプリケーションプログラム１００に送る。
【００４４】
アプリケーションプログラム１００は、性能情報やこれら情報を受け取り、上記生成した画像データを性能情報やこれら情報に基づいて、プリンタ（ここでは仮想的なプリンタ）に適合した印刷データに変換して、この変換後の印刷データを仮想プリンタドライバ１１０に送る。この印刷データの変換の処理は、前述したように効率的なレンダリング処理を実現するもので、実プリンタドライバにより実現される色変換やハーフトーン等の処理についてはここでは実施されない。
【００４５】
図２に示すように、仮想プリンタドライバ１１０は、アプリケーションプログラム１００から送られてきた印刷データを中間印刷データとし、その中間印刷データをまとめたデータセットを中間印刷ファイルＭＦとしてＨＤＤ４１に一旦格納する。詳細には、図３に示すように、アプリケーションプログラム１００から送られてきた印刷データを印刷データ受信部１１７により受信して、その後、その印刷データを中間印刷データとし、その中間印刷データを中間印刷ファイルＭＦとして、中間印刷データ出力部１１８によりＨＤＤ４１に出力する。
【００４６】
なお、分散先となり得るプリンタ６０，７０，８０が同一機種である場合には、仮想プリンタドライバ１１０は、その同一機種のプリンタに対応した実プリンタドライバをコールして、実プリンタドライバ１３０と同じデータ変換の処理を行なっている。すなわち、分散先となり得るプリンタ６０，７０，８０が同一機種である場合には、上記中間印刷データは一の実プリンタドライバ１３０から得られる最終印刷データと実質的に同一のものとなる。ここで、実プリンタドライバ１３０から得られる最終印刷データというのは、アプリケーションプログラム１００から各プリンタ６０，７０，８０の実プリンタドライバ１３００に対して直接印刷を指示した場合に実プリンタドライバ１３０から出力される印刷データのことであり、仮想プリンタドライバ１１０では実施されなかった各プリンタに対応した色変換やハーフトーン等の処理も施されたものである。上記のように中間印刷データが最終印刷データと同一のものとなるのは、分散先となり得るプリンタ６０，７０，８０が同一機種である場合に、仮想プリンタドライバ１１０は、どのプリンタ６０，７０，８０とも一致する性能情報をアプリケーションプログラムに返すことになることから、実プリンタドライバ１３０と全く同じ働きをするためである。
【００４７】
中間印刷ファイルＭＦは、ＨＤＤ４１に格納されてるが、ＨＤＤ４１に替えてＲＡＭ３２に格納する構成としたり、フロッピィディスク２２に格納する構成としたりすることもでき、さらには、他の外部記憶装置に格納する構成とすることもできる。こうした中間印刷ファイルＭＦの中間印刷データを、その後、分散印刷ユーティリティ１２０は読み取る。また、仮想プリンタドライバ１１０は、プロパティ設定部１１３で設定された各種情報をプリンタプロパティデータＰＤとしてプロパティデータ出力部１１９を介して分散印刷ユーティリティ１２０に送る処理も行なう。なお、このプリンタプロパティデータＰＤについても、中間印刷ファイルＭＦと対にＨＤＤ４１に格納する。
【００４８】
図２に示すように、分散印刷ユーティリティ１２０は、中間印刷ファイルＭＦを構成する中間印刷データと、上記プリンタプロパティデータＰＤとを受け取り、その中間印刷データを、プリンタプロパティデータＰＤに含まれるプリンタグループと分散形態に関する情報に従って各プリンタ６０，７０，８０用に分配して、各プリンタ６０，７０，８０に対応して設けられた実プリンタドライバ１３０，１４０，１５０に送る。分散印刷ユーティリティ１２０によるこうした処理について、次に詳しく説明する。
【００４９】
図４に示すように、分散印刷ユーティリティ１２０は、まず、中間印刷データ入力部１２１により、中間印刷ファイルＭＦを構成する中間印刷データを取り込むとともに、プロパティデータ入力部１２２により、仮想プリンタドライバ１１０から送られてくるプリンタプロパティデータＰＤを受け取る。次いで、そのプリンタプロパティデータＰＤに含まれるプリンタグループと分散形態に関する情報に基づいて、割り振り決定部１２３により中間印刷データの割り振りを決定する。ここでいう割り振りというのは、中間印刷データをページ単位に分け、プリンタグループに属するプリンタ６０，７０，８０がそれぞれ引き受けるべきページを定めることである。
【００５０】
こうして決定された割り振りの情報は出力データ制御部１２４に送られる。出力データ制御部１２４は、中間印刷データ入力部１２１で取り込んだ中間印刷データの各ページを、上記割り振りの情報に基づいて、上記プリンタ６０，７０，８０の実プリンタドライバ１３０，１４０，１５０に対して振り分けながらそれぞれ出力する。なお、この実プリンタドライバ１３０，１４０，１５０へのデータ出力の際には、具体的には次のような作業を経て行なう。
【００５１】
まず、分散先となり得る全てのプリンタが同一機種であるか否かを判別する。そして、同一機種でない、すなわち異機種であると判別された場合には、次の処理を行なう。まず、上記割り振りの情報から定まる割り振り先のプリンタに対して実プリンタドライバ１３０，１４０，１５０を介して設定変更を指示する処理を、プリンタ設定部１２５により行なう。次いで、出力命令出力部１２６により割り振り先のプリンタの実プリンタドライバ１３０，１４０，１５０に対して出力命令を発行して、その出力命令の発行を受けた実プリンタドライバ１３０，１４０，１５０から返送されてくるプリンタ６０，７０，８０の性能についての性能情報を、性能情報入力部１２７により受け取る。
【００５２】
出力データ制御部１２４は、性能情報入力部１２７から受け取った性能情報と、プロパティデータ入力部１２２から受け取ったプリンタプロパティデータＰＤに含まれる印刷の基本設定に関する情報や用紙設定に関する情報等（プリンタグループと分散形態に関する情報を除く）に基づいて、中間印刷データの割り振るべきページを割り振り先のプリンタ６０，７０，８０に適合したデータに変換する処理を行なう（以下、このデータ変換の処理をレンダリング処理と呼ぶ）。また、出力データ制御部１２４は、これら変換後の印刷データを最終印刷データとして、最終印刷データ出力部１２８を介して実プリンタドライバ１３０，１４０，１５０に送る。実プリンタドライバ１３０，１４０，１５０は、仮想プリンタドライバでは実施されなかった各プリンタに対応した色変換やハーフトーン等の処理を最終印刷データに施して、その最終印刷データを各プリンタ６０，７０，８０に送信する。
【００５３】
一方、分散先となり得るプリンタが同一機種と判別された場合には、次の処理を行なう。まず、上記割り振りの情報から定まる割り振り先のプリンタ６０，７０，８０に対して実プリンタドライバ１３０，１４０，１５０を介して設定変更を指示する処理を、プリンタ設定部１２５により行なう。次いで、中間印刷データの割り振るべきページを、上記割り振りの情報から定まる割り振り先のプリンタ６０，７０，８０の実プリンタドライバ１３０に対して最終印刷データ出力部１２８を介して送る。プリンタ６０，７０，８０が同一機種である場合には、前述したように、中間印刷データは色変換やハーフトーン等の処理が施されたものであることから、実プリンタドライバ１３０は、その中間印刷データをそのまま最終印刷データとして各プリンタ６０，７０，８０に送信する。
【００５４】
また、分散印刷ユーティリティ１２０は、実プリンタドライバ１３０，１４０，１５０からの信号に基づいて各プリンタ６０，７０，８０の状態を監視するプリンタ監視部１２９を備えている。プリンタ監視部１２９は、各プリンタの混み具合やプリンタのエラー状態（故障は勿論のこと、用紙詰まり、用紙切れの状態等も含む）を監視するものである。出力データ制御部１２４は、このプリンタ監視部１２９からの信号を受け取り、上記印刷データの出力に際して、混み合っていたりエラー状態にあるプリンタについては出力先を変更したり、出力を一旦中止したりする処理を行なう。
【００５５】
なお、実プリンタドライバ１３０，１４０，１５０から送られてくる各プリンタ６０，７０，８０の性能情報は、前述したように分散印刷ユーティリティ１２０で利用されるとともに、性能情報出力部１２ａを介して仮想プリンタドライバ１１０にも送られる。
【００５６】
３．仮想プリンタドライバ
仮想プリンタドライバ１１０がコンピュータ１０にインストールされたときに、オペレーティングシステムがどのような状態に変わるかを、次に説明する。なお、この説明に当たり、この仮想プリンタドライバ１１０が動作するオペレーティングシステムとして、Ｗｉｎｄｏｗｓ９５（マイクロソフト社の商標）を例にとって説明する。
【００５７】
ユーザ（作業者）は、コンピュータ１０を次のように操作して、印刷のための各種情報を設定するダイアログボックスをＣＲＴディスプレイ１２の画面上に開く。すなわち、［スタート］→［設定］→［プリンタ］の操作を行なうことで、「プリンタ」ウィンドウを開く。図５は、この「プリンタ」ウィンドウを示す説明図である。仮想プリンタドライバ１１０がコンピュータ１０にインストールされた場合、図示するように、「プリンタ」ウィンドウＷＮ１には、プリンタ６０，７０，８０の機種毎に用意される実プリンタドライバ１３０，１４０，１５０のアイコンＩＣ１，ＩＣ２，ＩＣ３に加えて、仮想プリンタドライバ１１０に対応する例えば「分散印刷」と表記されたアイコンＩＣ４が表示されることになる。即ち、仮想プリンタドライバ１１０も実プリンタドライバと同様に、インストールされると、その仮想プリンタドライバ１１０に対応したアイコンＩＣ４が「プリンタ」ウィンドウＷＮ１に表示されることになる。
【００５８】
なお、その「プリンタ」ウィンドウ上の仮想プリンタドライバ１１０に対応した「分散印刷」のアイコンＩＣ４をダブル・クリックして、その仮想プリンタドライバ１１０についてのウィンドウを開き、その後、そのウィンドウから［プリンタ］→［プロパティ］の操作を行なうと、その仮想のプリンタについての各種情報を設定する「分散印刷プロパティ」のダイアログボックスが表示される。作業者は、この「分散印刷プロパティ」のダイアログボックスに従ってマウス２０およびキーボード１８を操作することにより、各種の設定情報を入力することが可能となる。なお、この「分散印刷プロパティ」のダイアログボックスが、前述したユーザインタフェース１１６に相当する。
【００５９】
４．ユーザインタフェース
図６は、「分散印刷プロパティ」のダイアログボックスＷＮ２を例示する説明図である。図示するように、「分散印刷プロパティ」のダイアログボックスＷＮ２には、「分散設定」、「プリンタ」の２種類のカードＣＤ１，ＣＤ２が用意されている。「分散設定」のカードＣＤ１は、分散印刷する場合の分散形態に関わる情報等を設定するためのものである。「プリンタ」のカードＣＤ２は、分散先となり得るプリンタグループに関わる情報、印刷の基本設定に関する情報および用紙設定に関する情報等を設定するためのものである。両カードＣＤ１，ＣＤ２のいずれかが、作業者によって、マウス２０を操作することにより選択されて、ダイアログボックスＷＮ２に表示される。図６には、「分散設定」のカードＣＤ１が表示された状態が例示されている。なお、カードＣＤ１，ＣＤ２の内容の組み分けは、上記例に限る訳ではなく、１枚のカードで全ての内容を含む構成としてもよく、あるいは、より細かく分けて３枚以上のカードに分ける構成としてもよい。
【００６０】
図示するように、「分散設定」のカードＣＤ１には、「ドキュメント」、「リカバリ」、「指定日時」の３つのフィールドｆｄ１，ｆｄ２，ｆｄ３が設けられている。「ドキュメント」のフィールドｆｄ１は、文書の印刷形態を設定するためのもので、「部数」についてのデータ入力欄ｉｄ１、「部単位で印刷する」のチェックボックスｉｄ２、「部、ページ単位でまとめる」のチェックボックスｉｄ３、「ジョブのまとめ方」についてのデータ入力欄ｉｄ４、「区切りページ」についてのデータ入力欄ｉｄ５が設けられている。各データ入力欄（チェックボックスを含む、以下同じ）ｉｄ１〜ｉｄ５は次のような仕様にて設計されている。
【００６１】
１）「部数」のデータ入力欄ｉｄ１：
印刷する部数を入力する。アプリケーションプログラム１００で設定された内容がデフォルトとして入力される。
２）「部単位で印刷する」のチェックボックスｉｄ２：
このチェックボックスｉｄ２がオン状態のとき、丁合い印刷となり、オフ状態のとき、スタック印刷となる。ここで、丁合い印刷とは、部単位で、各部はページ順にて出力を行なうものであり、スタック印刷とは、ページ単位で、同一ページを部数分まとめて出力を行なうものである。
３）「部、ページ単位でまとめる」のチェックボックスｉｄ３：
このチェックボックスｉｄ３がオン状態のときには、上記部単位もしくはページ単位の一集合が複数のプリンタに渡ることを禁止し、オフ状態のときには、その一集合が複数のプリンタに渡ることを許可する。
【００６２】
４）「ジョブのまとめ方」のデータ入力欄ｉｄ４：
このデータ入力欄ｉｄ４における「プリンタ単位」のラジオボタンが選択されると、一のプリンタから出力する全ページを一つのまとまりとして扱う。このラジオボタンが選択されると、ネットワークに接続された共有プリンタ７０，８０において他の使用者の印刷結果との混在がなくなる。一方、「部、ページ番号単位」のラジオボタンが選択されると、上記部単位やページ単位の一集合ごとを一つのまとまりとして扱う。ローカルのプリンタ６０に分散する場合や他の使用者の印刷結果と混在しても問題ないような場合に利用する。
【００６３】
５）「区切りページ」のデータ入力欄ｉｄ５：
区切りページとは、他の使用者の印刷結果と上記まとまりの単位で混在した場合に判別できるように、上記まとまりの先頭や末尾に設けるページである。「先頭」のチェックボックスがクリックされた場合には、まとまりの先頭位置に区切りページを印刷する。「末尾」のチェックボックスがクリックされた場合には、まとまりの末尾位置に区切りページを印刷する。なお、区切りページには、印刷する文書名や部数、ページ数、使用者名などが印刷される。
【００６４】
なお、この「ドキュメント」のフィールドｆｄ１には、上記データ入力欄ｉｄ１〜ｉｄ５の他に、上記データ入力欄ｉｄ１〜ｉｄ５の設定内容によって決定される分散形態を表わす分散形態表示欄ｄｄが設けられている。この分散形態表示欄ｄｄは、データ入力欄ｉｄ１〜ｉｄ５の設定内容によって決定される分散形態がどのようなものであるかをイラスト画像にて示すものである。
【００６５】
次に、データ入力欄ｉｄ１〜ｉｄ５の設定の内容によって分散形態表示欄ｄｄのイラスト画像がどのように決まるかを、図７および図８を用いて説明する。まず最初に、「部数」のデータ入力欄ｉｄ１、「部単位で印刷する」のチェックボックスｉｄ２、「部、ページ単位でまとめる」のチェックボックスｉｄ３によってイラスト画像がどのように決まるかを説明する。
【００６６】
図７は、データ入力欄ｉｄ１と２つのチェックボックスｉｄ２，ｉｄ３の設定の内容によって分散形態表示欄ｄｄのイラスト画像がどのように変わるかを示す説明図である。図示の表において、列は、部単位で印刷するか否か、すなわち、「部単位で印刷する」のチェックボックスｉｄ２がオン状態であるかオフ状態であるかによって定まり、行は、部、ページ単位でまとめないか否か、すなわち、「部、ページ単位でまとめる」のチェックボックスｉｄ３がオフ状態であるかオン状態であるかによって定まる。この表は、「部数」データ入力欄ｉｄ１から設定される部数が４部である場合の一例である。
【００６７】
「部単位で印刷する」で、かつ「部、ページ単位でまとめない」の場合には、表中第１行、第１列のセルＣ１１に示すように、１台目のプリンタ６０には、丁合で第１部の第１ページと第２ページが次いで第２部の第１ページが印刷され、２台目のプリンタ７０には、第２部の第２ページ、第３部の第１ページと第２ページが印刷され、３台目のプリンタ８０には、第４部の第１ページと第２ページが印刷されることを示すイラスト画像が表示される。
【００６８】
「部単位で印刷しない」で、かつ「部、ページ単位でまとめない」の場合には、表中第１行、第２列のセルＣ１２に示すように、スタック印刷となることから、１台目のプリンタ６０には、第１ページが３部印刷され、２台目のプリンタ７０には、第１ページの必要部数の残り分と第２ページが２部印刷され、３台目のプリンタ８０には、第２部の必要部数の残り分とが印刷されることを示すイラスト画像が表示される。
【００６９】
「部単位で印刷する」で、かつ「部、ページ単位でまとめる」の場合には、表中第２行、第１列のセルＣ２１に示すように、１台目のプリンタ６０は、１単位が複数のプリンタに渡ることを禁止することから、第１部の第１ページから第２部の第２ページまで印刷され、２台目のプリンタ７０には、第３部の第１ページと第２ページが印刷され、３台目のプリンタ８０には、第４部の第１ページと第２ページが印刷されることを示すイラスト画像が表示される。
【００７０】
「部単位で印刷しない」で、かつ「部、ページ単位でまとめる」の場合には、表中第２行、第２列のセルＣ２２に示すように、１台目のプリンタ６０には、第１ページが必要部数分印刷され、２台目のプリンタ７０には、第２ページが必要部数分印刷されることを示すイラスト画像が表示される。
【００７１】
次に、データ入力欄ｉｄ１〜ｉｄ３の設定内容から決まるイラスト画像が、「ジョブのまとめ方」のデータ入力欄ｉｄ４と「区切りページ」のデータ入力欄ｉｄ５によってどのように変わるかを説明する。図８は、データ入力欄ｉｄ４，ｉｄ５によって分散形態表示欄ｄｄのイラスト画像がどのように決まるかを示す説明図である。図８に示したイラスト画像の一例は、データ入力欄ｉｄ１〜ｉｄ３の内容によって図７中のセルＣ１１に示すようにイラスト画像が決定した場合に、データ入力欄ｉｄ４，ｉｄ５の設定内容に応じてさらにどのように変わるかを示すものである。
【００７２】
図８の表において、列は、「ジョブのまとめ方」のデータ入力欄ｉｄ４において「プリンタ単位」、「部、ページ番号単位」のいずれのラジオボタンが選択されたかによって定まり、行は、「区切りページ」のデータ入力欄ｉｄ５において「先頭」、「末尾」の両チェックボックスがどのように指示されているかによって定まる。
【００７３】
「ジョブのまとめ方」のデータ入力欄ｉｄ４において、「プリンタ単位」のラジオボタンがクリックされている場合、表中の第１行、第１列のセルＣＥ１１に示すように、図７のセルＣ１１とそのイラスト画像は変わらず、一のプリンタから印刷される全ページはまとめられた形となる。一方、「部、ページ番号単位」のラジオボタンがクリックされている場合には、第１行、第２列のセルＣＥ１２に示すように、部、もしくはページ単位の集合がまとめられ、それらは次の集合との間で一旦分けられる。なお、実際は、「プリンタ単位」のラジオボタンがクリックされている場合も「部、ページ番号単位」のラジオボタンがクリックされている場合にも、区切りページがないことから同じ印刷結果となる。
【００７４】
「区切りページ」のデータ入力欄ｉｄ５から区切りページがあると判別された場合には、表中の第２行目、第３行目、第４行目に示すように、第１行目にてまとめられた区分に対して、先頭、末尾、または両者に区切りページ（図中黒塗りの部分）が差し込まれた形にイラスト画像は定められる。この表によって決定されるイラスト画像が、分散形態表示欄ｄｄに表示される。
【００７５】
図６に戻り、「リカバリ」のフィールドｆｄ２は、分散印刷されるプリンタでエラーが発生した場合に他のプリンタでリカバリさせる際のリカバリ先を指定するためのものである。この「リカバリ」のフィールドｆｄ２には、「リカバリしない」、「出力先を指定する」、「リカバリ先を自動で選択する」の３つのラジオボタンが設けられている。「リカバリしない」のラジオボタンが選択された場合には、分散印刷されるプリンタでエラーが発生した場合にもリカバリをしないものとする。「出力先を指定する」のラジオボタンが選択された場合には、「プリンタ」のデータ入力欄から入力された出力先をリカバリ先とする。「リカバリ先を自動で選択する」のラジオボタンが選択された場合には、エラーが発生したプリンタと同機種のプリンタをリカバリ先とする。同機種のプリンタがなければ空いているプリンタをリカバリ先とする。
【００７６】
「指定日時」のフィールドｆｄ３は、印刷時間を指定するもので、「印刷日時を指定する」のチェックボックスが指定された場合には、「指定日時」の欄から入力された時間に印刷が開始される。
【００７７】
「分散印刷プロパティ」のダイアログボックスＷＮ２に表示される「プリンタ」のカードＣＤ２について、図９を用いて次に説明する。図示するように、「プリンタ」のカードＣＤ２には、「プリンタグループ」のフィールドｆｄ４と、「用紙設定」のフィールドｆｄ５と、内容表示欄ｆｄ６が設けられている。
【００７８】
「プリンタグループ」のフィールドｆｄ４は、文書を分散して印刷するプリンタのグループを指定するためのもので、「グループ名」のデータ入力欄ｉｄ１１と「プリンタ」の表示欄ｉｄ１２と「グループ設定」のボタンｉｄ１３とが設けられている。「グループ名」のデータ入力欄ｉｄ１１は、そのグループの名前を設定するためのものであり、予め設定されたグループ名が選択肢として用意される。「プリンタ」の表示欄ｉｄ１２は、「グループ名」のデータ入力欄ｉｄ１から設定されたグループに属するプリンタ名を表示する。「グループ設定」のボタンｉｄ１３は、図示しない新たなウィンドウを開き作業者からのデータ入力を受け付けることで、「グループ名」のデータ入力欄ｉｄ１１に用意される選択肢の追加、削除を行なう。「プリンタグループ」のフィールドｆｄ４によって指定されるグループに属する全てのプリンタ、すなわち、「プリンタ」の表示欄ｉｄ１２に表示される各プリンタに対して、コンピュータ１０は分散印刷を行なうことになる。すなわち、コンピュータ本体１６にローカルまたはコンピュータネットワーク９０にて接続される全てのプリンタの中でも、この「プリンタグループ」のフィールドｆｄ４によって指定されるグループのプリンタ群だけが印刷の分散先となることになる。なお、以下の説明では、前述した３台のプリンタ６０，７０，８０を含むグループが指定されているものとして話を進める。
【００７９】
「用紙設定」のフィールドｆｄ５は、用紙や印刷品質を設定するためのもので、「用紙サイズ」、「用紙方向」、「用紙種類」、「色」、「解像度」をそれぞれ設定するデータ入力欄ｉｄ１４，ｉｄ１５，ｉｄ１６，ｉｄ１７が設けられている。
【００８０】
「用紙サイズ」のデータ入力欄ｉｄ１４は、使用する用紙サイズを用紙の種類と共に設定するもので、例えば、「Ａ４  ２１０×２９７ｍｍ」、「Ａ４横  ２１０×２９７ｍｍ」、「洋封筒  １２０×２３５」、「ハガキ  １００×１４７ｍｍ」等が選択肢として用意されている。「用紙方向」のデータ入力欄ｉｄ１５は、プリンタにおいて用紙のセットされる方向を示すものであり、「縦」と「横」とが選択可能である。「用紙種類」のデータ入力欄ｉｄ１６は、用紙の種類を設定するもので、「普通紙」、「スーパーファイン専用紙」、「専用光沢紙」が選択肢として用意されている。「色」のデータ入力欄ｉｄ１７は、プリンタ１４に使用するインクの種類を設定するもので、「カラー」と「モノクロ」とが選択肢として用意されている。「解像度」のデータ入力欄ｉｄ１８は、印刷する解像度を設定するもので、「はやい」、「きれい」の２種類が選択肢として用意されている。ここで、「はやい」、「きれい」は、例えば、順に３６０×３６０（ｄｏｔ）、７２０×７２０（ｄｏｔ）の解像度を示すものである。
【００８１】
内容表示欄ｆｄ６は、「プリンタグループ」のフィールドｆｄ１と「用紙設定」のフィールドｆｄ５から設定された内容のうちの所望のデータを表示する。
【００８２】
以上のように構成された「分散印刷プロパティ」のダイアログボックスＷＮ２に従って、作業者はマウス２０およびキーボード１８を操作することにより、各種の設定情報がプリンタプロパティデータとしてコンピュータ本体１６に入力されることになる。なお、このデータ入力の際に、各プリンタ６０，７０，８０の性能情報によっては上記入力データの取り込みは制限されるように構成されている。例えば、各プリンタ６０，７０，８０の性能情報から、これらプリンタ６０，７０，８０は共にＡ４までの用紙サイズのみ印刷可能な場合には、「分散印刷プロパティ」のダイアログボックスＷＮ２の「用紙サイズ」のデータ入力欄ｉｄ１４は、Ａ４より大きい用紙サイズは選択肢から除外する構成として、Ａ４より大きい用紙サイズについての入力データは取り込み不可能としている。
【００８３】
５．コンピュータプログラム
図３に示した仮想プリンタドライバ１１０にて実現される各部１１１〜１１９は、実際は、コンピュータプログラムである仮想プリンタドライバ１１０とその仮想プリンタドライバ１１０に従ってＣＰＵ３０により実行される各種処理とにより実現されている。また、図４に示した分散印刷ユーティリティ１２０にて実現される各部１２１〜１２９は、実際は、コンピュータプログラムである分散印刷ユーティリティ１２０とその分散印刷ユーティリティ１２０に従ってＣＰＵ３０により実行される各種処理とにより実現されている。
【００８４】
上記分散印刷ユーティリティ１２０は、仮想プリンタドライバ１１０と同様に、フロッピィディスク２２に予め格納されており、所定のインストールプログラムを起動することで、フロッピィディスクドライブ２４からコンピュータ１０にインストールされる。このインストールされた分散印刷ユーティリティ１２０は、ＨＤＤ４１に記憶されており、コンピュータ１０に電源を投入したときに、オペレーティングシステムに組み込まれ、ＲＡＭ３２の所定の領域にロードされる。なお、分散印刷ユーティリティ１２０は、仮想プリンタドライバ１１０と同様に、フロッピィディスク２２に格納されたものに替えて、ＣＤ−ＲＯＭ、光磁気ディスク、ＩＣカード等の他の携帯型記録媒体（可搬型記録媒体）に格納された構成としてもよい。また、この分散印刷ユーティリティ１２０は、外部のコンピュータネットワーク（例えばインターネット）に接続される特定のサーバから、コンピュータネットワークを介して提供されるプログラムデータをダウンロードして、ＲＡＭ３２またはＨＤＤ４１に転送することにより得るようにすることもできる。
【００８５】
図１０は、仮想プリンタドライバ１１０で記述される処理ルーチンを、アプリケーションプログラム１００で記述される処理ルーチンとともに示すフローチャートである。図示するように、このコンピュータ本体１６のＣＰＵ３０は、まず、アプリケーションプログラム１００に処理を移して、画像の処理を行って画像データを作成する処理を行なう（ステップＳ２１０）。このアプリケーションプログラム１００は、文書や絵図等を作成する汎用のアプリケーションプログラムであり、それぞれのアプリケーションプログラム特有の機能を使って画像データが作成される。
【００８６】
次いで、ＣＰＵ３０は、この作成されたアプリケーションプログラムに備えられる［印刷］のコマンドを実行することで、分散印刷を行なう旨の印刷命令を発行する処理を行なう（ステップＳ２２０）。詳細には、印刷のコマンドが操作されたときに、ＣＲＴディスプレイ１２に「印刷」のダイアログボックス（図示せず）が表示されるが、ここで「ＯＫ」のボタンがクリックされるのを受けて、アプリケーションプログラムは仮想プリンタドライバ１１０に対して印刷命令を発行する処理を行なう。なお、この「印刷」のダイアログボックスにおいて「プロパティ」のボタンがクリックされた場合には、仮想プリンタドライバ１１０に従う処理ルーチンにより、「分散印刷プロパティ」のダイアログボックスを表示させ、キーボード１８とマウス２０からの入力データを読み取ることで、分散印刷に係わる各種情報を設定する処理を行なっており、その後、印刷命令が発行される。上記印刷命令の発行は、アプリケーションプログラムからオペレーティングシステムを介して行なう構成とすることもできる。
【００８７】
アプリケーションプログラム１００に従う処理により印刷命令が発行されると、ＣＰＵ３０は、仮想プリンタドライバ１１０に処理を移して、アプリケーションプログラム１００による処理から印刷命令を取り込んだか否かを判別する（ステップＳ３１０）。ここで、印刷命令を取り込んでいないと判別されると、ステップＳ３１０の判別処理を繰り返し実行して、アプリケーションプログラム１００からの印刷命令が取り込まれるのを待つ。一方、ステップＳ３１０で印刷命令が取り込まれたと判別されたときには、以下の処理を実行する。
【００８８】
ＣＰＵ３０は、まず、プリンタ６０，７０，８０の機種毎に用意される実プリンタドライバ１３０，１４０，１５０から分散印刷ユーティリティ１２０が取り込んだ各プリンタ６０，７０，８０の性能情報を、分散印刷ユーティリティ１２０から取り込む（ステップＳ３２０）。その後、ＣＰＵ３０は、これら各プリンタ６０，７０，８０の性能情報から最も高いものを抽出して、これを仮想プリンタの性能情報と決定する（ステップＳ３３０）。なお、ステップＳ３３０では、各プリンタ６０，７０，８０の性能情報が同一である場合には、各プリンタ６０，７０，８０の性能情報のうちのいずれか一つのプリンタの性能、ここでは最初に読み込んだプリンタ６０の性能情報を仮想プリンタの性能情報と決定する。その後、ＣＰＵ３０は、この仮想プリンタの性能情報をアプリケーションプログラム１００に送る（ステップＳ３４０）。
【００８９】
仮想プリンタドライバ１１０から仮想プリンタの性能情報が送られてくると、ＣＰＵ３０は、アプリケーションプログラム１００に処理を移して、その仮想プリンタの性能情報を取り込む（ステップＳ２４０）。次いで、ＣＰＵ３０は、その性能情報と、仮想プリンタドライバ１１０で設定入力された各種情報のうちの印刷の基本設定に関する情報、用紙設定に関する情報等（プリンタグループと分散形態に関する情報を除く）とに基づいて、ステップＳ２１０で作成した画像データを仮想プリンタに適合した印刷データに変換する（ステップＳ２５０）。
【００９０】
なお、前述したように、各プリンタ６０，７０，８０が異機種である場合には、この印刷データの変換の処理は、効率的なレンダリング処理を実現するもので、実プリンタドライバにより実現される色変換やハーフトーン等の処理は含まない。一方、各プリンタ６０，７０，８０が同一機種である場合には、その同一機種のプリンタに対応した実プリンタドライバ１３０をコールして、実プリンタドライバ１３０と同じデータ変換の処理を行なうことで、実プリンタドライバ１３０により実現される色変換やハーフトーン等の処理も行なっている。その後、この変換後の印刷データを仮想プリンタドライバ１１０に送る（ステップＳ２６０）。ＣＰＵ３０は、ステップＳ２６０の処理を終えると、アプリケーションプログラム１００の処理ルーチンを終了する。
【００９１】
アプリケーションプログラム１００から仮想プリンタに適合した印刷データが送られてくると、ＣＰＵ３０は、仮想プリンタドライバ１１０に処理を移して、その印刷データを取り込む（ステップＳ３５０）。続いて、ＣＰＵ３０は、その取り込んだ印刷データを中間印刷データとして、その中間印刷データをＨＤＤ４１に出力する（ステップＳ３６０）。この結果、この中間印刷データをまとめたデータセットが中間印刷ファイルＭＦとしてＨＤＤ４１に格納される。
【００９２】
分散先となり得るプリンタ６０，７０，８０が同一機種である場合、中間印刷ファイルＭＦとして格納される中間印刷データは、前述したように、これらプリンタ６０，７０，８０の実プリンタドライバ１３０，１４０，１５０により得られる最終印刷データと実質的に同一のものである。このために、ステップＳ３６０では、中間印刷データがこの種のデータ、すなわち最終印刷データと同一のデータであるか否かを示すフラグデータを、中間印刷データとともに中間印刷ファイルＭＦに書き込む処理も行なっている。なお、最終印刷データと同一のものであるか否かの判別は、ステップＳ３３０によって行なわれる分散先となり得るプリンタ６０，７０，８０の性能情報の比較によって知ることが可能となっている。
【００９３】
ステップＳ３３０で中間印刷ファイルＭＦがＨＤＤ４１に出力されると、次いで、仮想プリンタドライバ１１０で設定入力した各種情報を示すプリンタプロパティデータＰＤを、中間印刷ファイルＭＦと対に格納されるようＨＤＤ４１に出力する（ステップＳ３７０）。その後、ＣＰＵ３０は、仮想プリンタドライバ１１０の処理ルーチンを終了する。
【００９４】
図１１は、分散印刷ユーティリティ１２０で記述される処理ルーチンを示すフローチャートである。この処理ルーチンは、仮想プリンタドライバ１１０の処理ルーチンを終了後、自動的に起動されるものである。処理が開始されると、ＣＰＵ３０は、まず、ＨＤＤ４１から中間印刷ファイルＭＦの中間印刷データを取り込む（ステップＳ４１０）。次いで、ＣＰＵ３０は、仮想プリンタドライバ１１０で設定された各種情報であるプリンタプロパティデータＰＤをＨＤＤ４１から取り込む（ステップＳ４２０）。
【００９５】
続いて、ＣＰＵ３０は、ステップＳ４２０で取り込んだプリンタプロパティデータＰＤに含まれるプリンタグループと分散形態に関する情報に基づいて、ステップＳ４１０で取り込んだ中間印刷データの割り振りを決定する処理を行なう（ステップＳ４３０）。詳しくは、中間印刷データをページ単位に分け、「分散印刷プロパティ」のダイアログボックスＷＮ２で設定した分散形態、即ち、「分散設定」のカードＣＤ１の分散形態表示欄ｄｄに表示された図８に例示した分散形態が実現されるように、プリンタグループに属するプリンタ６０，７０，８０がそれぞれ引き受けるべきページを定める。この結果、こうして定めた各プリンタに割り当てられたページについての情報は出力先リストデータとしてＲＡＭ３２に記憶される。
【００９６】
図１２は、その出力先リストデータの一例を示す説明図である。図示の例は、３ページから構成される文書を３台のプリンタ６０，７０，８０に１部ずつ印刷する場合を示している。図示するように、３台のプリンタ６０，７０，８０に対して１ページから３ページまでの各ページがそれぞれ、印刷するページ番号として定められる。
【００９７】
ステップＳ４３０で各ページの出力先の割り振りが決まると、次いで、ＣＰＵ３０は、分散先となり得るプリンタが同一機種であるか否かを判別する（ステップＳ４３２）。この判別は、ステップＳ４１０で取り込んだ中間印刷ファイルＭＦに備えられる前述したフラグデータの値によってなされる。すなわち、フラグデータが、中間印刷データが最終印刷データと同一であることを示す値である場合には、各プリンタは同一機種であると判別し、印刷データが最終印刷データと同一でないことを示す値である場合には、各プリンタは異機種であると判別する。ステップＳ４３２で、同一機種でないと判別されると、異機種プリンタ出力処理ルーチンを実行し（ステップＳ４３４）、一方、同一機種であると判別されると、同一機種プリンタ出力処理ルーチンを実行する（ステップＳ４３６）。ステップＳ４３４またはＳ４３６の実行後、「エンド」に抜けてこの分散印刷ユーティリティの処理を終了する。
【００９８】
図１３は、異機種プリンタ出力処理ルーチンの詳細を示すフローチャートである。図示するように、ＣＰＵ３０は、まず、印刷の対象となるプリンタを示すプリンタカウンタＣ１を値１にセットする（ステップＳ４４０）。ここで、プリンタカウンタＣ１は、値１のとき１台目のプリンタ６０を、値２のとき２台目のプリンタ７０を、値３のとき３台目のプリンタ７０というように分散先の各プリンタを示すものとする。
【００９９】
次いで、ＣＰＵ３０は、プリンタカウンタＣ１の値に対応するプリンタに対して設定変更を指示する処理を行なう（ステップＳ４５０）。この処理は、印刷しようとするプリンタに対してプリンタドライバを介して印刷の用意を促すもので、上記ステップＳ４２０で取り込んだプリンタプロパティデータＰＤに含まれる印刷の基本設定に関する情報と用紙設定に関する情報のうちから必要な設定情報をプリンタドライバに対して指示を行なう。例えば、用紙の種類は「専用光沢紙」であるということをプリンタドライバに知らせることで、プリンタに対してその用紙に適した印刷が可能な状態となるように定める。
【０１００】
続いて、ＣＰＵ３０は、印刷の対象となるページ数を示すページカウンタＣ２を値１にセットする（ステップＳ４６０）。その後、ＣＰＵ３０は、ステップＳ４３０で求めた出力先リストデータに、プリンタカウンタＣ１およびページカウンタＣ２で特定されるプリンタに割り振られたページが含まれるか否かを判別する（ステップＳ４７０）。ここで、出力先リストデータに含まれると判別されると、以下の処理を行なう。まず、プリンタカウンタＣ１の値に対応するプリンタに対して印刷を実行させるべく、そのプリンタの実プリンタドライバ１３０（１４０，１５０）に対して出力命令を発行する（ステップＳ４８０）。その出力命令の発行を受けた実プリンタドライバ１３０（１４０，１５０）からは、プリンタ６０（７０，８０）の性能についての性能情報が返送されてくることから、次いで、ＣＰＵ３０は、その性能情報を取り込む（ステップＳ４９０）。
【０１０１】
続いて、その性能情報と、ステップＳ４２０で取り込んだプロパティデータに含まれる印刷の基本設定に関する情報、用紙設定に関する情報等（プリンタグループと分散形態に関する情報を除く）に基づいて、ページカウンタＣ２で特定されるページについてのプリンタカウンタＣ１で特定されるプリンタへの最終印刷データを作成する処理を行なう（ステップＳ５００）。詳しくは、ステップＳ４１０で取り込んだ中間印刷データの中からページカウンタＣ２の値に対応したページのページデータを抽出し、この抽出したページデータを、上記性能情報、印刷の基本設定に関する情報および用紙設定に関する情報等に基づいて、プリンタカウンタＣ１の値に対応したプリンタ６０（７０，８０）に適合したデータに変換することにより、最終印刷データを作成する。
【０１０２】
その後、ＣＰＵ３０は、その最終印刷データをプリンタカウンタＣ１の値に対応したプリンタ６０（７０，８０）の実プリンタドライバ１３０（１４０，１５０）に出力する（ステップＳ５１０）。実プリンタドライバ１３０，１４０，１５０では、前述したように、仮想プリンタドライバでは実施されなかった各プリンタに対応した色変換やハーフトーン等の処理を最終印刷データに施して、その最終印刷データを各プリンタ６０，７０，８０に送信する。
【０１０３】
なお、ステップＳ４８０ないしＳ５１０で印刷を実行させる前に、実プリンタドライバ１３０，１４０，１５０からの信号に基づいて各プリンタ６０，７０，８０の状態を監視する処理を行ない、この監視結果が、出力先のプリンタが混み合っていたりエラー状態であるときには、その出力先へのプリンタについては出力先を変更したり、出力を一旦中止したりする処理を行なうよう構成することもできる。
【０１０４】
その後、ＣＰＵ３０は、ページカウンタＣ２の値を１だけインクリメントする（ステップＳ５２０）。なお、ステップＳ４７０で否定判別されたときには、ステップＳ４８０ないしＳ５１０を読み飛ばして直ちにステップＳ５２０に進む。その後、ＣＰＵ３０は、ページカウンタＣ２の値が最終ページを示す値ＬＣ２を超えたか否かを判別する（ステップＳ５３０）。ここで、最終ページを示す値ＬＣ２を超えていないと判別されると、処理をステップＳ４７０に戻して、上記値１を増加したページについての最終印刷データの作成および出力の処理を行なう。
【０１０５】
一方、ステップＳ５３０でページカウンタＣ２の値が最終ページを示す値ＬＣ２を超えたと判別されたときには、ＣＰＵ３０は、プリンタカウンタＣ１の値を１だけインクリメントして（ステップＳ５４０）、そのプリンタカウンタＣ１の値が最後のプリンタを示す値ＬＣ１を超えたか否かを判別する（ステップＳ５５０）。ここで、最後のプリンタを示す値ＬＣ１を超えていないと判別されると、処理をステップＳ４５０に戻して、上記値１を増加したプリンタカウンタＣ１で示される次のプリンタ７０（８０，６０）についての各ページの最終印刷データの作成および出力の処理を行なう。一方、ステップＳ５５０でプリンタカウンタＣ１の値が最終ページを示す値ＬＣ１を超えたと判別されたときには、全てのプリンタについての印刷を要する全てのページの最終印刷データの作成・出力が終了したとして、「リターン」に抜けて、異機種プリンタ出力処理ルーチンを終了する。
【０１０６】
なお、この異機種プリンタ出力処理ルーチンは、前述したように、１ページから最終ページまでの最終印刷データの作成および出力の処理を第１のプリンタから最終のプリンタまで各プリンタ単位で順に行なうよう記述されているが、これはフローチャートの記載上の便宜のためにこのように記述されたものであり、実際は、１ページから最終ページまでの最終印刷データの作成および出力の処理を、各プリンタ毎に時分割によりマクロ的に並行処理されるよう構成されている。
【０１０７】
図１４は、ステップＳ４３６で実行される同一機種プリンタ出力処理ルーチンの詳細を示すフローチャートである。図示するように、ＣＰＵ３０は、まず、印刷の対象となるプリンタを示すプリンタカウンタＣ１を値１にセットする（ステップＳ６１０）。ここで、プリンタカウンタＣ１は、値１のとき１台目のプリンタ６０を、値２のとき２台目のプリンタ７０を、値３のとき３台目のプリンタ７０というように分散先の各プリンタを示すものとする。
【０１０８】
次いで、ＣＰＵ３０は、プリンタカウンタＣ１の値に対応するプリンタに対して設定変更を指示する処理を行なう（ステップＳ６２０）。この処理は、印刷しようとするプリンタに対してプリンタドライバを介して印刷の用意を促すもので、上記ステップＳ４２０で取り込んだプリンタプロパティデータＰＤに含まれる印刷の基本設定に関する情報と用紙設定に関する情報のうちから必要な設定情報をプリンタドライバに対して指示を行なう。例えば、用紙の種類は「専用光沢紙」であるということをプリンタドライバに知らせることで、プリンタに対してその用紙に適した印刷が可能な状態となるように定める。
【０１０９】
続いて、ＣＰＵ３０は、印刷の対象となるページ数を示すページカウンタＣ２を値１にセットする（ステップＳ６３０）。その後、ＣＰＵ３０は、ステップＳ４３０で求めた出力先リストデータに、プリンタカウンタＣ１およびページカウンタＣ２で特定されるプリンタに割り振られたページが含まれるか否かを判別する（ステップＳ６３５）。ここで、出力先リストデータに含まれると判別されると、ＣＰＵ３０は、ステップＳ４１０で取り込んだ中間印刷データの中からページカウンタＣ２の値に対応したページのページデータを抽出し、この抽出したページデータをそのまま最終印刷データとして、プリンタカウンタＣ１の値に対応したプリンタ６０（７０，８０）の実プリンタドライバ１３０に出力する（ステップＳ６４０）。実プリンタドライバ１３０は、各プリンタ６０，７０，８０が同一機種である場合には、前述したように、中間印刷データは色変換やハーフトーン等の処理が施されたものであることから、実プリンタドライバ１３０は、そのまま最終印刷データを各プリンタ６０，７０，８０に送信するだけである。その後、ステップＳ６５０に処理を進める。
【０１１０】
なお、この実施例では、最終印刷データを実プリンタドライバ１３０を介して各プリンタ６０，７０，８０に送信するように構成していたが、これに替えて、実プリンタドライバ１３０を介さずに直接、分散先である各プリンタ６０，７０，８０に送信する構成とすることもできる。
【０１１１】
一方、ステップＳ６３５で、出力先リストデータに含まれないと判別された場合には、ステップＳ６４０の処理を実行することなしにステップＳ６５０に処理を進める。ステップＳ６５０では、ＣＰＵ３０は、ページカウンタＣ２の値を１だけインクリメントする。続いて、ＣＰＵ３０は、ページカウンタＣ２の値が最終ページを示す値ＬＣ２を超えたか否かを判別する（ステップＳ６６０）。ここで、最終ページを示す値ＬＣ２を超えていないと判別されると、処理をステップＳ６３５に戻して、上記値１を増加したページについての最終印刷データの出力の処理を行なう。一方、ステップＳ６６０でページカウンタＣ２の値が最終ページを示す値ＬＣ２を超えたと判別されたときには、ＣＰＵ３０は、プリンタカウンタＣ１の値を１だけインクリメントして（ステップＳ６７０）、そのプリンタカウンタＣ１の値が最後のプリンタを示す値ＬＣ１を超えたか否かを判別する（ステップＳ６８０）。ここで、最後のプリンタを示す値ＬＣ１を超えていないと判別されると、処理をステップＳ６２０に戻して、上記値１を増加したプリンタカウンタＣ１で示される次のプリンタ７０（８０，６０）についての各ページの最終印刷データの出力を行なう。一方、ステップＳ６８０で、プリンタカウンタＣ１の値が最終ページを示す値ＬＣ１を超えたと判別されたときには、全てのプリンタについての印刷を要する全てのページの最終印刷データの出力が終了したとして、「リターン」に抜けて、同一機種プリンタ出力処理ルーチンを終了する。
【０１１２】
なお、この同一機種プリンタ出力処理ルーチンは、前述したように、１ページから最終ページまでの最終印刷データの出力の処理を第１のプリンタから最終のプリンタまで各プリンタ単位で順に行なうよう記述されているが、これはフローチャートの記載上の便宜のためにこのように記述されたものであり、実際は、１ページから最終ページまでの最終印刷データの出力の処理を各プリンタ毎に多重プログラミングにより並行処理されるよう構成されている。
【０１１３】
図１５は、以上のように構成されたコンピュータシステムによって分散印刷が行なわれる手順を、従来例と比較しつつ示すタイミングチャートである。図示の例は、３ページから構成される文書を３台のプリンタに１部ずつ印刷する場合についてが示されている。図示の中段に示すように、この実施例では、３台のプリンタが異機種である場合（ここでは、３台をプリンタ６０′，７０′，８０′とする）、最初、中間印刷データの作成がなされ（▲１▼）、次いで、その中間印刷データの１ページ目のページデータが、並行処理により、プリンタ６０′用、プリンタ７０′用、プリンタ８０′用と順に各プリンタに適合するようにレンダリング処理される（▲２▼、▲３▼、▲４▼）。なお、プリンタ６０′用に変換されたデータ（最終印刷データ）のプリンタ６０′への送信の処理は、次のプリンタ７０′用へのレンダリング処理と並列に行なわれており、同様に、プリンタ７０′への送信の処理もプリンタ８０′への送信も次のレンダリング処理と並列に行なわれる。次いで、中間印刷データの２ページ目のページデータが、並行処理により、プリンタ６０′用、プリンタ７０′用、プリンタ８０′用と順に各プリンタに適合するようにレンダリング処理され（▲５▼、▲６▼、▲７▼）、続いて、中間印刷データの３ページ目のページデータが、並行処理により、プリンタ６０′用、プリンタ７０′用、プリンタ８０′用と順に各プリンタに適合するようにレンダリング処理される（▲８▼、▲９▼、○１０：図１５中の１０以上の数字を○で囲んだ記号をこの明細書では○に数字を並べた文字列により示すものとする）。こうして全ての印刷が終了する。
【０１１４】
また、図示の下段に示すように、プリンタ６０，７０，８０が同一機種である場合には、まず中間印刷データの作成により、プリンタ６０に適合（７０，８０にも適合）するようにレンダリング処理がなされ（○１１）、次いで、その中間印刷データの１ページ目のページデータが、並行処理により、プリンタ６０用、プリンタ７０用、プリンタ８０用と順に各プリンタへ送られる（○１２，○１３，○１４）。続いて、中間印刷データの２ページ目のページデータが、並行処理により、プリンタ６０用、プリンタ７０用、プリンタ８０用と順に各プリンタへ送られ（○１５，○１６，○１７）、さらに、中間印刷データの３ページ目のページデータが、並行処理により、プリンタ６０用、プリンタ７０用、プリンタ８０用と順に各プリンタへ送られる（○１８，○１９，○２０）。
【０１１５】
これらに対して、従来例では、図示の上段に示すように、まず、１ページ目のページデータを１台目のプリンタＡに適合するようにレンダリング処理がなされ、その後、そのレンダリング処理により変換されたデータをプリンタＡに送信する。次いで、２ページ目のページデータを１台目のプリンタＡに適合するようにレンダリング処理がなされ、その後、その変換されたデータをプリンタＡに送信する。続いて、３ページ目のページデータを１台目のプリンタＡに適合するようにレンダリング処理がなされ、その後、その変換されたデータをプリンタＡに送信する。さらにその後、２台目のプリンタＢについても、１台目のプリンタＡと同様に、１ページ目、２ページ目、３ページ目と順に、レンダリング処理およびプリンタへの送信が行なわれる。その後、３台目のプリンタＣについても、１台目のプリンタＡと同様に、１ページ目、２ページ目、３ページ目と順に、レンダリング処理およびプリンタへの送信が行なわれる。
【０１１６】
したがって、この実施例では、印刷しようとするプリンタが異機種の場合には、レンダリング処理とプリンタへの送信の処理とが並列に行なわれることから、従来例と比較して、印刷に要する全体の時間を短縮することができるという効果を奏する。また、この実施例では、印刷しようとするプリンタが同一機種の場合には、中間印刷データを作成するだけで、各プリンタ６０，７０，８０用に個別に行なうデータ変換の処理が不要となることから、印刷しようとするプリンタが異機種の場合と比べてもさらに、印刷に要する全体の時間を短縮することができる。
【０１１７】
また、この実施例によれば、アプリケーションプログラム１００からは仮想プリンタドライバ１１０に対して一の印刷命令を行なうだけで、中間印刷データを得ることができ、この中間印刷データから各プリンタ６０，７０，８０への分散印刷が自動的に行なわれる。このために、作業者は、アプリケーションプログラム上で［印刷］のコマンドを一度行なえばよく、作業性に優れているという効果を奏する。
【０１１８】
この実施例では、「分散印刷プロパティ」のダイアログボックスＷＮ２から分散形態に関わる情報や分散先となり得るプリンタグループに関わる情報を設定することができる。このために、作業者はプリンタの分散先を定めるために必要な各種情報を容易に設定することができる。特にこの実施例では、プリンタグループに関わる情報を設定することにより、コンピュータネットワーク９０に接続された全てのプリンタの内から予め定めたグループ内のプリンタに印刷の分散先を制限することができることから、作業者は印刷物の出力先を予め限られた範囲内とすることができ、この結果、作業性に優れている。
【０１１９】
６．中間印刷ファイルの再利用について
分散印刷ユーティリティは、上述したように、ＨＤＤ４１に格納された中間印刷ファイルＭＦを利用して分散印刷を行なっているが、この分散印刷ユーティリティの終了後においても、中間印刷ファイルＭＦを用いて再印刷を行なうことが可能な構成とすることができる。こうした構成を上記実施例の変形例として次に説明する。
【０１２０】
図１６は、この変形例の分散印刷ユーティリティで記述される処理ルーチンを示すフローチャートである。この変形例は、前述した実施例と比較して、分散印刷ユーティリティで記述される処理ルーチンの内容が相違するだけで、ハードウェアの構成やその他のソフトウェアの構成については同じである。また、図１６に示すように、分散印刷ユーティリティで記述される処理ルーチンのステップＳ４１０ないしＳ４３６についても上記実施例と同じである。ステップＳ４３４またはＳ４３６の処理を終えると、次いで、ＣＰＵ３０は、終了ジョブリストが掲載されるウィンドウをＣＲＴディスプレイ１２に表示する処理を行なう（ステップＳ７００）。
【０１２１】
図１７は、終了ジョブリストが掲載されるウィンドウＷＮ３を例示する説明図である。図示するように、このウィンドウＷＮ３は、メイン画面ＳＣ１とその左側に位置するサブ画面ＳＣ２とに分かれており、さらにメイン画面ＳＣ１は上下に２分割され、その上部にジョブ用リスト欄ＬＳＴ１が設けられ、下部に分散状況用リスト欄ＬＳＴ２が設けられている。
【０１２２】
サブ画面ＳＣ２には、ジョブ用リスト欄ＬＳＴ１に表示される内容を印刷ジョブリストと終了ジョブリストのいずれかに切り替えるアイコンＩＣ１１，ＩＣ１２が設けられている。図１７の例は、アイコンＩＣ１２がクリックされて、ジョブ用リスト欄ＬＳＴ１に終了ジョブリストが表示された状態が示されている。終了ジョブリストは、これまでに印刷が完了しているジョブ（印刷の一単位）の一覧を示すものである。終了ジョブリストには、印刷文書名を示す「ドキュメント名」、印刷する部数を示す「部数」、文書のページ数を示す「ページ数」、分散形態を示す「分散形態」、印刷の状態を示す「状態」、ジョブの所有者を示す「オーナー」、印刷を開始した日時を示す「開始日時」の各フィールドが設けられている。
【０１２３】
分散状況用リスト欄ＬＳＴ２は、ジョブ用リスト欄ＬＳＴ１に表示された複数のジョブの中で選択状態にあるジョブについての分散状況を表示するものである。この分散状況用リスト欄ＬＳＴ２は、各行が一の分散先に対応しており、各行は、分散先のプリンタを示す「プリンタ名」、印刷結果の回収順を示す「回収順」、分散先での印刷文書の開始ページを示す「開始ページ」、その印刷文書の終了ページを示す「終了ページ」、その印刷文書の枚数を示す「枚数」、分散先での印刷の状態を示す「進行状態」、分散先での印刷の開始日時を示す「開始日時」等の各フィールドが設けられている。
【０１２４】
図１６のステップＳ７００が実行されることで、上記構成のウィンドウＷＮ３がＣＲＴディスプレイ１２に表示されることになる。なお、ここでは、このウィンドウＷＮ３が、ステップＳ４３４またはＳ４３６の実行後、直ちに表示されるように構成されているが、これに替えて、ウィンドウＷＮ３をデスクトップのタスクバーに最小化する構成としてもよい。タスクバーに設けられたウィンドウＷＮ３をアクティブにするボタンが、マウス２０によってクリックされて始めて、このウィンドウＷＮ３を表示することになる。
【０１２５】
ステップＳ７００で終了ジョブリストのウィンドウＷＮ３が表示されると、次いで、ＣＰＵ３０は、ウィンドウＷＮ３上からのマウス２０またはキーボード１８による入力操作を読み取り、一旦印刷が完了したジョブを再印刷する指令がなされたか否かを判別する（ステップＳ７１０）。この再印刷の指令は、例えば次のようなものである。終了ジョブリスト内の再印刷すべきジョブの位置で右クリックし、それによって表示されるダイアログボックス上の「再印刷」を選択するというもので、マウス２０によるこうした操作がなされたと判断されたときに、再印刷する指令がなされたものとする。
【０１２６】
ステップＳ７１０で、再印刷するという指令がなされたと判別されると、次いで、ＣＰＵ３０は、再印刷用のウィンドウをＣＲＴディスプレイ１２に表示する処理を行なう（ステップＳ７２０）。図１８は、再印刷用のウィンドウＷＮ４を例示する説明図である。図示するように、このウィンドウＷＮ４には、「分散設定」、「プリンタ」、「オプション」の３種類のカードＣＤ１１，ＣＤ１２，ＣＤ１３が用意されている。
【０１２７】
「分散設定」のカードＣＤ１１は、再印刷時の分散形態に関わる情報等を設定するためのものである。「プリンタ」のカードＣＤ１２は、再印刷時の分散先となり得るプリンタグループに関わる情報、印刷の基本設定に関する情報および用紙設定に関する情報等を設定するためのものである。「オプション」のカードＣＤ１３はその他の追加情報を設定するためのものである。「分散設定」のカードＣＤ１１は、図６を用いて前述した「分散印刷プロパティ」のダイアログボックスＷＮ２に表示される「分散設定」のカードＣＤ１と同じデータ入力用のフィールドを幾つか有し、さらには、再印刷する指令がなされた印刷文書名を示す「ドキュメント名」のフィールドｆｄ１１と文書のページ数を示す「ページ数」のフィールドｆｄ１２等を有する。「プリンタ」のカードＣＤ１２は、前述した「分散印刷プロパティ」のダイアログボックスＷＮ２に表示される「プリンタ」のカードＣＤ２と同一である。なお、「分散設定」のカードＣＤ１１や「プリンタ」のカードＣＤ１２の各フィールドのデフォルトの値は、先に印刷したときの設定内容、即ちステップ４２０で取り込んだプリンタプロパティデータＰＤの内容がそのまま保持されているものとする。
【０１２８】
作業者は、ＣＲＴディスプレイ１２に表示された再印刷用のウィンドウＷＮ４を見て、再印刷する文書やその再印刷時の分散形態等を確認し、必要に応じて、印刷部数を変更したり出力先のプリンタグループを変更したりし、「分散設定」のカードＣＤ１１に設けられた「印刷」のボタンＢＴをクリックする。ＣＰＵ３０は、ステップＳ７２０で再印刷用のウィンドウＷＮ４の表示を終えると、続いて、再印刷用のウィンドウＷＮ４上からのマウス２０またはキーボード１８による入力操作を読み取り、「印刷」のボタンＢＴ１がクリックされて印刷開始の指令がなされたか否かを判別する（ステップＳ７３０）。
【０１２９】
ステップＳ７３０で印刷開始の指令がなされたと判別されると、ＣＰＵ３０は、処理をステップＳ４１０に戻し、ＨＤＤ４１に残っている中間印刷ファイルＭＦを用いて上記再印刷を指定した文書についての再印刷を行なう。一方、ステップＳ７３０で、再印刷用のウィンドウＷＮ４上の「終了」のボタンＢＴ２がクリックされて印刷終了の指令がなされたと判別されると、ステップＳ７４０に処理を進めて、ＨＤＤ４１に格納された中間印刷ファイルＭＦおよびプリンタプロパティデータＰＤを削除し（ステップＳ７４０）、その後、「エンド」に抜けてこの分散印刷ユーティリティの処理を終了する。
【０１３０】
以上のように構成されたこの変形例では、分散印刷を一度終えた後でも、例えば、印刷物に不備があったり印刷物の部数が不足していたりして再印刷を行ないたいという場合に、アプリケーションプログラムを起動せずに印刷を行なうことができる。このため、再印刷時の作業性に優れているという効果を奏する。また、この変形例では、再印刷用のウィンドウＷＮ４を用いることで、分散印刷の形態や分散先等のプリンタプロパティデータＰＤの情報を最初の印刷時と変更して再印刷をすることができる。このために、再印刷時の作業性に、より優れている。
【０１３１】
また、この実施例では、中間印刷ファイルＭＦと共に、プリンタプロパティデータＰＤをＨＤＤ４１に格納していることから、再印刷時に用いる再印刷用のウィンドウＷＮ４のデフォルト値をプリンタプロパティデータＰＤに基づいて定めることができる。このため、単なる印刷のやり直しのようなプリンタプロパティデータＰＤの変更を必要としない場合に、データの再入力が不要であることから、再印刷時の作業性に、より一層優れている。
【０１３２】
本発明の他の実施形態について、次に説明する。上記実施例およびその変形例では、この発明の分散印刷装置として、印刷を行なう１台のコンピュータ１０から複数のプリンタ６０，７０，８０に対して直接印刷データを出力する構成としていたが、これに替えて、コンピュータネットワーク９０上に、サーバを用意し、サーバ上でプリンタを管理して分散印刷を行なうクライアント／サーバ方式の構成とすることもできる。この構成では、各クライアントに仮想プリンタドライバを内蔵し、サーバに分散印刷ユーティリティを内蔵するようにすればよい。
【０１３３】
以上、本発明の一実施例を詳述してきたが、本発明は、こうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲において種々なる態様にて実施することができるのは勿論のことである。
【図面の簡単な説明】
【図１】この発明の一実施例を適用するコンピュータシステムのハードウェアの概略構成を示すブロック図である。
【図２】分散印刷処理の全体の様子を概略的に示すブロック図である。
【図３】分散印刷処理に用いられる仮想プリンタドライバ１１０の処理の様子を示すブロック図である。
【図４】分散印刷処理の一部を実現する分散印刷ユーティリティ１２０の処理の様子を示すブロック図である。
【図５】「プリンタ」ウィンドウＷＮ１を示す説明図である。
【図６】「分散印刷プロパティ」のダイアログボックスＷＮ２に表示される「分散設定」のカードＣＤ１を示す説明図である。
【図７】データ入力欄ｉｄ１〜ｉｄ３の設定の内容によって分散形態表示欄のイラスト画像がどのように変わるかを示す説明図である。
【図８】データ入力欄ｉｄ４、ｉｄ５の設定の内容によって分散形態表示欄のイラスト画像がどのように変わるかを示す説明図である。
【図９】「分散印刷プロパティ」のダイアログボックスＷＮ２に表示される「プリンタ」のカードＣＤ２を示す説明図である。
【図１０】アプリケーションプログラム１００で記述される処理ルーチンと仮想プリンタドライバ１１０で記述される処理ルーチンを示すフローチャートである。
【図１１】分散印刷ユーティリティ１２０で記述される処理ルーチンを示すフローチャートである。
【図１２】出力先リストデータの一例を示す説明図である。
【図１３】異機種プリンタ出力処理ルーチンの詳細を示すフローチャートである。
【図１４】同一機種プリンタ出力処理ルーチンの詳細を示すフローチャートである。
【図１５】この実施例によって分散印刷が行なわれる手順を、従来例と比較しつつ示すタイミングチャートである。
【図１６】変形例における分散印刷ユーティリティで記述される処理ルーチンを示すフローチャートである。
【図１７】終了ジョブリストが掲載されるウィンドウＷＮ３を例示する説明図である。
【図１８】再印刷用のウィンドウＷＮ４を例示する説明図である。
【符号の説明】
１０…コンピュータ
１２…ＣＲＴディスプレイ
１４…プリンタ
１６…コンピュータ本体
１８…キーボード
２０…マウス
２２…フロッピィディスク
２４…フロッピィディスクドライブ
３０…ＣＰＵ
３１…ＲＯＭ
３２…ＲＡＭ
３３…表示画像メモリ
３４…マウスインタフェース
３５…キーボードインタフェース
３６…ＦＤＣ
３７…ＨＤＣ
３８…ＣＲＴＣ
３９…プリンタインタフェース
４０…ネットワーク制御回路
４１…ＨＤＤ
６０，７０，８０…プリンタ
９０…コンピュータネットワーク
１００…アプリケーションプログラム
１１０…仮想プリンタドライバ
１１１…印刷命令受信部
１１２…性能情報返信部
１１３…プロパティ設定部
１１４…性能情報入力部
１１５…仮想プリンタ性能決定部
１１６…ユーザインタフェース
１１７…印刷データ受信部
１１８…中間印刷データ出力部
１１９…プロパティデータ出力部
１２０…分散印刷ユーティリティ
１２１…中間印刷データ入力部
１２２…プロパティデータ入力部
１２３…割り振り決定部
１２４…出力データ制御部
１２５…出力命令出力部
１２６…性能情報入力部
１２７…最終印刷データ出力部
１２８…プリンタ監視部
１２９…性能情報出力部
１３０，１４０，１５０…実プリンタドライバ
ＩＣ１〜ＩＣ４…アイコン
ＭＦ…中間印刷ファイル
ＰＧ…ページカウンタ
ＷＮ１…ウィンドウ
ＷＮ２…「分散印刷プロパティ」のダイアログボックス
【図１】
0003726634.tif 000002
【図２】
0003726634.tif 000003
【図３】
0003726634.tif 000004
【図４】
0003726634.tif 000005
【図５】
0003726634.tif 000006
【図６】
0003726634.tif 000007
【図７】
0003726634.tif 000008
【図８】
0003726634.tif 000009
【図９】
0003726634.tif 000010
【図１０】
0003726634.tif 000011
【図１１】
0003726634.tif 000012
【図１２】
0003726634.tif 000013
【図１３】
0003726634.tif 000014
【図１４】
0003726634.tif 000015
【図１５】
0003726634.tif 000016
【図１６】
0003726634.tif 000017
【図１７】
0003726634.tif 000018
【図１８】
0003726634.tif 000019