JP3804395B2 - Distributed printing control apparatus, distributed printing control method, and recording medium - Google Patents
Distributed printing control apparatus, distributed printing control method, and recording medium Download PDFInfo
- Publication number
- JP3804395B2 JP3804395B2 JP2000106535A JP2000106535A JP3804395B2 JP 3804395 B2 JP3804395 B2 JP 3804395B2 JP 2000106535 A JP2000106535 A JP 2000106535A JP 2000106535 A JP2000106535 A JP 2000106535A JP 3804395 B2 JP3804395 B2 JP 3804395B2
- Authority
- JP
- Japan
- Prior art keywords
- printer
- page
- data
- print data
- printers
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Record Information Processing For Printing (AREA)
Description
【0001】
【発明の属する技術分野】
この発明は、印刷すべき印刷データを複数のプリンタに分散して出力する技術に関する。
【0002】
【従来の技術】
パーソナルコンピュータやワードプロセッサ等の情報処理装置によって文書を作成すると、その作成した文書をプリンタに出力するといったことが行なわれる。通常、プリンタは情報処理装置に直接接続される。また、プリンタはLAN(ローカルエリアネットワーク)等のコンピュータネットワークによって情報処理装置と間接的に接続されることもある。コンピュータネットワークには通常、複数のプリンタが接続されており、情報処理装置はこれらを共有することで、いずれのプリンタからも印刷が可能となる。作業者は、情報処理装置によって、ネットワークに接続された複数のプリンタの中から所望のプリンタを指定して、そのプリンタに印刷したい文書データを出力する。
【0003】
ところで、こうした一の情報処理装置に複数のプリンタが接続された構成では、情報処理装置で作成した印刷データを各プリンタに分散して出力することが可能となる。印刷データが大量にあるような場合、1台のプリンタでは印刷が完了するまでに長時間を要するが、複数のプリンタに印刷データを分けて出力すれば、印刷に要する時間を短縮することができる。
【0004】
【発明が解決しようとする課題】
しかしながら、上記従来の技術では、作業者が印刷しようとする文書を適当に切り分けて複数のプリンタに個別に印刷要求を行なう必要があった。このために、作業が非常に煩雑となり、作業性が悪いといった問題や、印刷に要する時間を十分に短縮することができないといった問題が発生した。
【0005】
この発明は、上記問題に鑑みてなされたもので、作業性よく、しかも短時間で分散印刷を行なうことができるようにすることを目的としている。
【0006】
【課題を解決するための手段およびその作用・効果】
前述した課題の少なくとも一部を解決するための手段として、以下に示す構成をとった。
【0007】
この発明の第1の分散印刷制御装置は、
アプリケーションプログラムにより生成された印刷すべき印刷データをページ単位で区分けして、複数のプリンタのそれぞれが引き受けるページを定めるデータ割当手段と、
前記印刷データを、前記データ割当手段によって定められる情報に従って各プリンタに分散出力するデータ出力制御手段と
を備えるとともに、必要に応じて前記印刷データを複数の部数印刷可能にした分散印刷制御装置であって、
前記データ割当手段は、
部単位で各ページをページ順に並べ、前記部数分の全てのページを分散先のプリンタの数に分けて、該分けられたそれぞれを前記複数のプリンタに割り当てるように構成されたものであり、
前記データ出力制御手段は、
各プリンタ用の分散出力として、割り当てられた先頭ページから順にページ単位で、該ページの印刷データを分散先のプリンタに適合する形に変換するデータ変換処理を行なった上で該印刷データを送信する送信処理を行なうと共に、一のプリンタ用の前記送信処理と次のプリンタ用の前記データ変換処理とを並列に行なうように構成されたものであり、
さらに、
前記プリンタの機種毎に設けられた複数のプリンタドライバを記憶するプリンタドライバ記憶手段と、
前記各プリンタドライバから分散先となり得る複数のプリンタの性能についての情報を取り込み、該取り込んだ複数のプリンタの性能についての情報から仮想的なプリンタの性能情報を決定して、前記アプリケーションプログラムに対して前記決定した性能情報に基づくデータ変換処理を実行させて、前記アプリケーションプログラムから前記仮想的なプリンタに適合する中間印刷データを得る仮想プリンタドライバ実行手段と、
を備え、該得られた中間印刷データを、前記データ割当手段およびデータ出力制御手段で用いる印刷データとすることを特徴としている。
【0008】
上記構成の分散印刷制御装置によれば、データ割当手段によって印刷データの各ページ単位がどのプリンタに引き受けられるかが定められることから、作業者はいちいち送り先のプリンタに個別に印刷要求を行なう必要がない。このため、作業性に優れている。また、この分散印刷制御装置では、印刷データの分散出力を各プリンタ宛毎に略並行に行なうと共に、各分散出力はそれぞれ、割り当てられた先頭頁から順に、各ページの印刷データを分散先のプリンタに適合する形に変換する処理を行なった上で印刷データの出力を行なうように構成されている。
【0009】
このため、上記プリンタに適合する印刷データを得る処理を、1台目のプリンタ宛用の先頭ページについて行ない、次いで、2台目のプリンタ宛用の先頭ページについて行ない、次いで、3台目のプリンタ宛用の先頭ページについて行なうというように先頭ページをプリンタの順に行なうことができる。このときに、2台目のプリンタ宛用の先頭ページについて処理を行なっているときに、1台目のプリンタ宛用の先頭ページについて処理行なった結果得られた印刷データをプリンタに出力するというように、上記プリンタに適合する印刷データを得る処理とその一つ前の印刷データをプリンタに出力する処理とを並行に実行することができる。したがって、従来例と比較して、印刷に要する全体の時間を短縮することができるという効果を奏する。
【0011】
また、アプリケーションプログラムからは仮想的なプリンタドライバに対して一の印刷命令を行なうだけで、中間印刷データを得ることができ、この中間印刷データから各プリンタへの分散印刷が自動的に行なわれる。このために、作業者は、アプリケーションプログラム上で印刷の作業を一度行なえばよく、作業性に優れているという効果を奏する。
【0026】
この発明の第1の分散印刷制御方法は、
(a)アプリケーションプログラムにより生成された印刷すべき印刷データをページ単位で区分けして、複数のプリンタのそれぞれが引き受けるページを定めるステップと、
(b)前記印刷データを、前記データ割当手段によって定められる情報に従って各プリンタに分散出力するステップと
を備えるとともに、必要に応じて前記印刷データを複数の部数印刷可能にした分散印刷制御方法であって、
前記ステップ(a)は、
部単位で各ページをページ順に並べ、前記部数分の全てのページを分散先のプリンタの数に分けて、該分けられたそれぞれを前記複数のプリンタに割り当てるように構成されたものであり、
前記ステップ(b)は、
各プリンタ用の分散出力として、割り当てられた先頭ページから順にページ単位で、該ページの印刷データを分散先のプリンタに適合する形に変換するデータ変換処理を行なった上で該印刷データを送信する送信処理を行なうと共に、一のプリンタ用の前記送信処理と次のプリンタ用の前記データ変換処理とを並列に行なうように構成されたものであり、
さらに、
(c)前記プリンタの機種毎に設けられた複数のプリンタドライバを記憶装置に予め記憶するステップと、
(d)前記各プリンタドライバから分散先となり得る複数のプリンタの性能についての情報を取り込み、該取り込んだ複数のプリンタの性能についての情報から仮想的なプリンタの性能情報を決定して、前記アプリケーションプログラムに対して前記決定した性能情報に基づくデータ変換処理を実行させて、前記アプリケーションプログラムから前記仮想的なプリンタに適合する中間印刷データを得るステップと、
を備え、該得られた中間印刷データを、前記ステップ(a)およびステップ(b)で用いる印刷データとすることを特徴としている。
【0027】
上記構成の第1の分散印刷制御方法は、上記発明の第1の分散印刷制御装置と同様な作用・効果を有しており、作業性の向上と分散印刷に要する時間の短縮化とを両立して分散印刷を行なうことができる。
【0032】
この発明の第1の記録媒体は、
アプリケーションプログラムにより生成された印刷すべき印刷データを複数のプリンタに分散印刷する分散印刷制御装置において用いられるコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
(a)印刷すべき印刷データをページ単位で区分けして、複数のプリンタのそれぞれが引き受けるページを定める機能と、
(b)前記印刷データを、前記機能(a)によって定められる情報に従って各プリンタに分散出力する機能と
を、コンピュータに実現させるとともに、
前記機能(a)は、
部単位で各ページをページ順に並べ、前記部数分の全てのページを分散先のプリンタの数に分けて、該分けられたそれぞれを前記複数のプリンタに割り当てるように構成されたものであり、
前記機能(b)は、
各プリンタ用の分散出力として、割り当てられた先頭ページから順にページ単位で、該ページの印刷データを分散先のプリンタに適合する形に変換するデータ変換処理を行なった上で該印刷データを送信する送信処理を行なうと共に、一のプリンタ用の前記送信処理と次のプリンタ用の前記データ変換処理とを並列に行なうように構成されたものであり、
さらに、
(c)前記プリンタの機種毎に設けられた複数のプリンタドライバを記憶装置に予め用意する機能と、
(d)前記各プリンタドライバから分散先となり得る複数のプリンタの性能についての情報を取り込み、該取り込んだ複数のプリンタの性能についての情報から仮想的なプリンタの性能情報を決定して、前記アプリケーションプログラムに対して前記決定した性能情報に基づくデータ変換処理を実行させて、前記アプリケーションプログラムから前記仮想的なプリンタに適合する中間印刷データを得る機能と
をコンピュータに実現させるとともに、
該機能(d)により得られた中間印刷データを、前記機能(a)および機能(b)で用いる印刷データとする
コンピュータプログラムを記録したことを特徴としている。
【0033】
上記構成の第1の記録媒体も、上記発明の第1の分散印刷制御装置および第1の分散印刷制御方法と同様な作用・効果を有しており、作業性の向上と分散印刷に要する時間の短縮化とを両立して分散印刷を行なうことができる。
【0038】
【発明の他の態様】
この発明は、以下のような他の態様も含んでいる。その第1の態様は、この発明の記録媒体による機能と同様の機能を持つコンピュータプログラムとしての態様である。その第2の態様は、そのコンピュータプログラムを含むことで搬送波内に具現化されたデータ信号としての態様である。第3の態様は、コンピュータプログラムを通信経路を介して供給するプログラム供給装置としての態様である。この第3の態様では、コンピュータプログラムをコンピュータネットワーク上のサーバなどに置き、通信経路を介して、必要なプログラムをコンピュータにダウンロードし、これを実行することで、上記の装置や方法を実現することができる。
【0039】
【発明の実施の形態】
以上説明したこの発明の構成・作用を一層明らかにするために、以下この発明の実施の形態を実施例に基づき説明する。
【0040】
1.ハードウェアの全体構成
図1はこの発明の一実施例を適用するコンピュータシステムのハードウェアの概略構成を示すブロック図である。図示するように、この一実施例のコンピュータシステムは、コンピュータ10を備え、このコンピュータ10には、実質的にコンピュータ機能を有する複数のプリンタ70,80,…が、ローカルエリアネットワーク(LAN)により構築されたコンピュータネットワーク90を介して接続されている。なお、コンピュータネットワーク90は、LANに替えて、インターネットや、イントラネットや、ワイドエリアネットワーク(WAN)など、各種ネットワークに替えることができる。
【0041】
コンピュータ10には、周辺機器としてのCRTディスプレイ12が接続され、さらにはローカルにてもう一台のプリンタ60が接続されている。また、コンピュータ10は、コンピュータ本体16とキーボード18とマウス20を備える。このコンピュータ本体16には、フロッピィディスク22の内容を読み取るフロッピィディスクドライブ24が搭載されている。
【0042】
コンピュータ本体16は、中央演算処理装置としてのCPU30を中心にバスにより相互に接続されたROM31、RAM32、表示画像メモリ33、マウスインタフェース34、キーボードインタフェース35、FDC36、HDC37、CRTC38、プリンタインタフェース39およびネットワーク制御回路40を備える。
【0043】
ROM31は、内蔵されている各種プログラム等を記憶する読み出し専用のメモリである。RAM32は、各種データ等を記憶する読み出し・書込み可能なメモリである。表示画像メモリ33はCRTディスプレイ12に表示する画像の画像データを記憶するメモリである。マウスインタフェース34は、マウス20とのデータ等のやり取りを司るインタフェースである。キーボードインタフェース35は、キーボード18からのキー入力を司るインタフェースである。FDC36は、フロッピィディスクドライブ(FDD)24を制御するフロッピィディスクコントローラである。HDC37は、ハードディスクドライブ(HDD)41を制御するハードディスクコントローラである。CRTC38は、表示画像メモリ33に記憶される表示画像データに基づいてCRTディスプレイ12における画像の表示を制御するCRTコントローラである。プリンタインタフェース39は、ローカルにて接続されるプリンタ14へのデータの出力を制御するインタフェースである。ネットワーク制御回路40は、ネットワークカードなどから成り、コンピュータネットワーク90に接続されている。
【0044】
このコンピュータシステムでは、オペレーティングシステムはHDD41に記憶されており、コンピュータ本体16に電源を投入すると、HDD41のブートブロックに書き込まれたローダに従ってRAM32の所定の領域にロードされる。また、プリンタ60,70,80の機種毎に用意される実プリンタドライバは、フロッピィディスク22に予め格納されており、所定のインストールプログラムを起動することで、フロッピィディスクドライブ24からコンピュータ10にインストールされる。このインストールされたプリンタドライバは、HDD41に記憶されており、コンピュータ10に電源を投入したときに、オペレーティングシステムに組み込まれ、RAM32の所定の領域にロードされる。
【0045】
また、このコンピュータシステムでは、仮想的なプリンタについての情報を定める仮想的なプリンタドライバ(仮想プリンタドライバ)110を備えている。この仮想プリンタドライバ110は、実際のプリンタドライバと同様に、フロッピィディスク22に予め格納されており、所定のインストールプログラムを起動することで、フロッピィディスクドライブ24からコンピュータ10にインストールされる。このインストールされた仮想プリンタドライバ110は、HDD41に記憶されており、コンピュータ10に電源を投入したときに、オペレーティングシステムに組み込まれ、RAM32の所定の領域にロードされる。なお、仮想プリンタドライバ110のコンピュータプログラムは、フロッピィディスク22に格納されたものに替えて、CD−ROM、光磁気ディスク、ICカード等の他の携帯型記録媒体(可搬型記録媒体)に格納された構成としてもよい。また、このコンピュータプログラムは、外部のコンピュータネットワーク(例えばインターネット)に接続される特定のサーバから、コンピュータネットワークを介して提供されるプログラムデータをダウンロードして、RAM32またはHDD41に転送することにより得るようにすることもできる。
【0046】
プリンタ60,70,80は、感光ドラムにレーザ光を当てて潜像を作り、トナーで現像して用紙に転写する所謂レーザプリンタである。なお、プリンタ60,70,80としては、インクジェットプリンタ、熱転写プリンタなど、各種プリンタを適用することができる。なお、ここでは、プリンタ60,70,80は、それぞれ異なる機種であるものとする。
【0047】
2.分散印刷処理の様子
かかる構成のコンピュータシステムによれば、大まかには、コンピュータ本体16により、印刷すべき印刷データを作成し、この印刷データをコンピュータ本体16に接続されているプリンタ60,70,80に分散して印刷させる分散印刷処理を行なう。こうした分散印刷処理の様子について以下詳しく説明する。
【0048】
図2は、分散印刷処理の全体の様子を概略的に示すブロック図である。図3は、分散印刷処理に用いられる仮想プリンタドライバ110の処理の様子を示すブロック図である。図4は、分散印刷処理の一部を実現する分散印刷ユーティリティプログラム(以下、単に「分散印刷ユーティリティ」と呼ぶ)120の処理の様子を示すブロック図である。
【0049】
図2に示すように、コンピュータ本体16の内部で動作しているアプリケーションプログラム100は、画像の処理を行って画像データを生成し、この画像データを印刷すべく印刷命令を発行する。アプリケーションプログラム100から印刷命令が発行されると、仮想プリンタドライバ110が、印刷命令を受けて、この仮想プリンタドライバ110が想定する仮想的なプリンタの性能についての性能情報をアプリケーションプログラム100に返す。詳細には、図3に示すように、仮想プリンタドライバ110は、印刷命令受信部111により、アプリケーションプログラム100から発行される印刷命令を受信して、その印刷命令を受信した旨を印刷命令受信部111から受けた性能情報返信部112により、仮想的なプリンタの性能についての性能情報をアプリケーションプログラム100に返す。
【0050】
ここで仮想的なプリンタの性能というのは、分散先となり得る全てのプリンタのうちの最も性能の高いプリンタについての性能である。一般に、性能の高いプリンタは、高級なプログラム言語により描画を行なっている。例えば、数式等を用いた高度な描画命令により図形を表わすものは高級なプログラム言語であり、ビットマップを用いた程度の低い描画命令により図形を表わすものは低級なプログラム言語である。したがって、この実施例では、仮想的なプリンタの性能を上述したように分配先となり得る全てのプリンタのうちの最も高いプリンタについての性能と定めることで、この仮想プリンタドライバ110において高級なプログラム言語に従うデータ変換処理(レンダリング処理)を可能としている。すなわち、高級なプログラム言語は前述したように、高度な描画命令を使用するものであるから、この仮想プリンタドライバ110では、もっとも高性能なプリンタに合わせて効率的なレンダリング処理を実現し得るようにしている。
【0051】
なお、分散先となり得るプリンタというのは、コンピュータ本体16にローカルもしくはネットワークで接続される全てのプリンタのうちのプロパティ設定部113により設定されるプリンタグループに属するプリンタであり、ここでは、プリンタ60,70,80が該当するものとする。
【0052】
詳細には、上記プリンタ60,70,80の機種毎に用意されるプリンタドライバ(以下、実プリンタドライバと呼ぶ)から分散印刷ユーティリティ120が取り込んだ各プリンタ60,70,80の性能情報を、性能情報入力部114により取り込んで、仮想プリンタ性能決定部115により、これら各プリンタ60,70,80の性能情報から最も高いものを選択して、これを仮想的なプリンタの性能情報とする。性能情報返信部112はこの仮想的なプリンタの性能情報をアプリケーションプログラム100に返している。
【0053】
なお、こうした仮想プリンタドライバ110で定める性能情報は、この実施例のように最も高性能のプリンタの性能とする構成に替えて、各プリンタ60,70,80の性能情報から選択した任意のものとすることもできる。さらに、各プリンタ60,70,80の性能情報に依存しない予め定めた性能情報とすることもできる。
【0054】
また、仮想プリンタドライバ110は、プロパティ設定部113により、ユーザインタフェース116を動作させて印刷のための各種情報を設定・記憶するが、この印刷のための各種情報のうちのいくつかの情報を上記性能情報とともに性能情報返信部112を介してアプリケーションプログラム100に返す。印刷のための各種情報としては、印刷品質、色補正、ハーフトーンの種類等の印刷の基本設定に関するもの、用紙のサイズ、印刷方向等の用紙設定に関するもの、分散先となり得るプリンタを指定するプリンタグループに関するもの、分散印刷する場合の分散形態に関するもの等があるが、ここでは、これら情報の内のプリンタグループおよび分散形態に関するものを除いた情報をアプリケーションプログラム100に送る。
【0055】
アプリケーションプログラム100は、性能情報やこれら情報を受け取り、上記生成した画像データを性能情報やこれら情報に基づいて、プリンタ(ここでは仮想的なプリンタ)に適合した印刷データに変換して、この変換後の印刷データを仮想プリンタドライバ110に送る。この印刷データの変換の処理は、前述したように効率的なレンダリング処理を実現するもので、実プリンタドライバにより実現される色変換やハーフトーン等の処理についてはここでは実施されない。
【0056】
図2に示すように、仮想プリンタドライバ110は、アプリケーションプログラム100から送られてきた印刷データを中間印刷データとして、その中間印刷データをまとめたデータセットを中間印刷ファイルMFとしてHDD41に一旦格納する。詳細には、図3に示すように、アプリケーションプログラム100から送られてきた印刷データを印刷データ受信部117により受信して、その後、その印刷データを中間印刷データとしてその中間印刷データをまとめたデータセットを、中間印刷データ出力部118によりHDD41に出力する。この中間印刷ファイルMFの中間印刷データは、その後、分散印刷ユーティリティ120により読み込まれる。なお、中間印刷ファイルMFは、HDD41に替えてRAM32に格納する構成としたり、フロッピィディスク22に格納する構成としたりすることもでき、さらには、他の外部記憶装置とすることもできる。また、仮想プリンタドライバ110は、プロパティ設定部113で設定された各種情報をプリンタプロパティデータとしてプロパティデータ出力部119を介して分散印刷ユーティリティ120に送る処理も行なう。
【0057】
図2に示すように、分散印刷ユーティリティ120は、中間印刷ファイルMFを構成する中間印刷データとプリンタプロパティデータとを受け取り、その中間印刷データを、プリンタプロパティデータに含まれるプリンタグループと分散形態に関する情報に従って各プリンタ60,70,80用に分配して、各プリンタ60,70,80に対応して設けられた実プリンタドライバ130,140,150に送る。分散印刷ユーティリティ120によるこうした処理について、次に詳しく説明する。
【0058】
図4に示すように、分散印刷ユーティリティ120は、まず、中間印刷データ入力部121により、中間印刷ファイルMFを構成する中間印刷データを取り込むとともに、プロパティデータ入力部122により、仮想プリンタドライバ110から送られてくるプリンタプロパティデータを受け取る。次いで、そのプリンタプロパティデータに含まれるプリンタグループと分散形態に関する情報に基づいて、割り振り決定部123により中間印刷データの割り振りを決定する。ここでいう割り振りというのは、中間印刷データをページ単位に分け、プリンタグループに属する各プリンタ60,70,80がそれぞれ引き受けるページを定めることである。
【0059】
こうして決定された割り振りの情報は出力データ制御部124に送られる。出力データ制御部124は、中間印刷データ入力部121で取り込んだ中間印刷データを、上記割り振りの情報に基づいて、上記プリンタ60,70,80の実プリンタドライバ130,140,150に対して振り分けながらそれぞれ出力する。なお、この実プリンタドライバ130,140,150へのデータ出力の際には、具体的には次のような作業を経て行なう。
【0060】
まず、割り振り先のプリンタに対してプリンタドライバを介して設定変更を指示する処理をプリンタ設定部125により行なう。次いで、出力命令出力部126により出力命令を発行して、その出力命令の発行を受けた実プリンタドライバ130,140,150から返送されてくるプリンタ60,70,80の性能についての性能情報を、性能情報入力部127により受け取る。出力データ制御部124は、性能情報入力部127から受け取った性能情報と、プロパティデータ入力部122から受け取ったプリンタプロパティデータに含まれる印刷の基本設定に関する情報、用紙設定に関する情報等(プリンタグループと分散形態に関する情報を除く)に基づいて、中間印刷データの割り振るべきページを割り振り先のプリンタ60,70,80に適合したデータに変換する(以下、このデータ変換の処理をレンダリング処理と呼ぶ)。
【0061】
出力データ制御部124は、これら変換後の印刷データを最終印刷データとして、最終印刷データ出力部128を介して実プリンタドライバ130,140,150に送る。実プリンタドライバ130,140,150は、仮想プリンタドライバでは実施されなかった各プリンタに対応した色変換やハーフトーン等の処理を最終印刷データに施して、その最終印刷データを各プリンタ60,70,80に送信する。
【0062】
さらに、分散印刷ユーティリティ120は、実プリンタドライバ130,140,150からの信号に基づいて各プリンタ60,70,80の状態を監視するプリンタ監視部129を備えている。プリンタ監視部129は、各プリンタの混み具合やプリンタのエラー状態(故障は勿論のこと、用紙詰まり、用紙切れの状態等も含む)を監視するものである。出力データ制御部124は、このプリンタ監視部129からの信号を受け取り、上記分配された印刷データの出力に際して、混み合っていたりエラー状態にあるプリンタについては出力先を変更したり、出力先を中止したりする処理を行なう。
【0063】
なお、実プリンタドライバ130,140,150から送られてくる各プリンタ60,70,80の性能情報は、前述したように分散印刷ユーティリティ120で利用されるとともに、性能情報出力部12aを介して仮想プリンタドライバ110にも送られる。
【0064】
3.仮想プリンタドライバ
仮想プリンタドライバ110がコンピュータ10にインストールされたときに、オペレーティングシステムがどのような状態に変わるかを、次に説明する。なお、この説明に当たり、この仮想プリンタドライバ110が動作するオペレーティングシステムとして、Windows95(マイクロソフト社の商標)を例にとって説明する。
【0065】
ユーザ(作業者)は、コンピュータ10を次のように操作して、印刷のための各種情報を設定するダイアログボックスをCRTディスプレイ12の画面上に開く。すなわち、[スタート]→[設定]→[プリンタ]の操作を行なうことで、「プリンタ」ウィンドウを開く。図5は、この「プリンタ」ウィンドウを示す説明図である。仮想プリンタドライバ110がコンピュータ10にインストールされた場合、図示するように、「プリンタ」ウィンドウWN1には、プリンタ60,70,80の機種毎に用意される実プリンタドライバ130,140,150のアイコンIC1,IC2,IC3に加えて、仮想プリンタドライバ110に対応する例えば「分散印刷」と表記されたアイコンIC4が表示されることになる。即ち、仮想プリンタドライバ110も実プリンタドライバと同様に、インストールされると、その仮想プリンタドライバ110に対応したアイコンIC4が「プリンタ」ウィンドウWN1に表示されることになる。
【0066】
なお、その「プリンタ」ウィンドウ上の仮想プリンタドライバ110に対応した「分散印刷」のアイコンIC4をダブル・クリックして、その仮想プリンタドライバ110についてのウィンドウを開き、その後、そのウィンドウから[プリンタ]→[プロパティ]の操作を行なうと、その仮想のプリンタについての各種情報を設定する「分散印刷プロパティ」のダイアログボックスが表示される。作業者は、この「分散印刷プロパティ」のダイアログボックスに従ってマウス20およびキーボード18を操作することにより、各種の設定情報を入力することが可能となる。なお、この「分散印刷プロパティ」のダイアログボックスが、前述したユーザインタフェース116に相当する。
【0067】
4.ユーザインタフェース
図6は、「分散印刷プロパティ」のダイアログボックスWN2を例示する説明図である。図示するように、「分散印刷プロパティ」のダイアログボックスWN2には、「分散設定」、「プリンタ」の2種類のカードCD1,CD2が用意されている。「分散設定」のカードCD1は、分散印刷する場合の分散形態に関わる情報等を設定するためのものである。「プリンタ」のカードCD2は、分散先となり得るプリンタグループに関わる情報、印刷の基本設定に関する情報および用紙設定に関する情報等を設定するためのものである。両カードCD1,CD2のいずれかが、作業者によって、マウス20を操作することにより選択されて、ダイアログボックスWN2に表示される。図6には、「分散設定」のカードCD1が表示された状態が例示されている。なお、カードCD1,CD2の内容の組み分けは、上記例に限る訳ではなく、1枚のカードで全ての内容を含む構成としてもよく、あるいは、より細かく分けて3枚以上のカードに分ける構成としてもよい。
【0068】
図示するように、「分散設定」のカードCD1には、「ドキュメント」、「リカバリ」、「指定日時」の3つのフィールドfd1,fd2,fd3が設けられている。「ドキュメント」のフィールドfd1は、文書の印刷形態を設定するためのもので、「部数」についてのデータ入力欄id1、「部単位で印刷する」のチェックボックスid2、「部、ページ単位でまとめる」のチェックボックスid3、「ジョブのまとめ方」についてのデータ入力欄id4、「区切りページ」についてのデータ入力欄id5が設けられている。各データ入力欄(チェックボックスを含む、以下同じ)id1〜id5は次のような仕様にて設計されている。
【0069】
1)「部数」のデータ入力欄id1:
印刷する部数を入力する。アプリケーションプログラム100で設定された内容がデフォルトとして入力される。
2)「部単位で印刷する」のチェックボックスid2:
このチェックボックスid2がオン状態のとき、丁合い印刷となり、オフ状態のとき、スタック印刷となる。ここで、丁合い印刷とは、部単位で、各部はページ順にて出力を行なうものであり、スタック印刷とは、ページ単位で、各ページは部数分出力を行なうものである。すなわち、チェックボックスid2がオン状態のときには、部単位で、チェックボックスid2がオフ状態のときには、ページ単位で順に印刷がなされることになる。
【0070】
3)「部、ページ単位でまとめる」のチェックボックスid3:
このチェックボックスid3がオン状態のときには、上記部単位もしくはページ単位の一集合が複数のプリンタに亘って印刷されることを禁止し、オフ状態のときには、その一集合が複数のプリンタに亘って印刷されることを許可する。なお、このチェックボックスid3がオフ状態のとき、すなわち、「部、ページ単位でまとめない」のときには、分散先の全てのプリンタでほぼ同時に印刷が終了するように、プリンタの印刷速度についての性能(以下、印刷速度性能と呼ぶ)に応じて各プリンタへの割り当て枚数を変えるといったことがなされている。なお、この印刷速度性能情報に応じて各プリンタへの割り当て枚数を変えるといった動作の状態を、以下、「速度優先モード」と呼ぶこととして、この点については後ほど詳述する。
【0071】
4)「ジョブのまとめ方」のデータ入力欄id4:
このデータ入力欄id4における「プリンタ単位」のラジオボタンが選択されると、一のプリンタから出力する全ページを一つのまとまりとして扱う。このラジオボタンが選択されると、ネットワークに接続された共有プリンタ70,80において他の使用者の印刷結果との混在がなくなる。一方、「部、ページ番号単位」のラジオボタンが選択されると、上記部単位やページ単位の一集合ごとを一つのまとまりとして扱う。ローカルのプリンタ60に分散する場合や他の使用者の印刷結果と混在しても問題ないような場合に利用する。
【0072】
5)「区切りページ」のデータ入力欄id5:
区切りページとは、他の使用者の印刷結果と上記まとまりの単位で混在した場合に判別できるように、上記まとまりの先頭や末尾に設けるページである。「先頭」のチェックボックスがクリックされた場合には、まとまりの先頭位置に区切りページを印刷する。「末尾」のチェックボックスがクリックされた場合には、まとまりの末尾位置に区切りページを印刷する。なお、区切りページには、印刷する文書名や部数、ページ数、使用者名などが印刷される。
【0073】
なお、この「ドキュメント」のフィールドfd1には、上記データ入力欄id1〜id5の他に、上記データ入力欄id1〜id5の設定内容によって決定される分散形態を表わす分散形態表示欄ddが設けられている。この分散形態表示欄ddは、データ入力欄id1〜id5の設定内容によって決定される分散形態がどのようなものであるかをイラスト画像にて示すものである。
【0074】
ここで、「部単位で印刷する」のチェックボックスid2が特許請求の範囲で言う「第3の指令」を入力する手段に相当し、「ジョブのまとめ方」のデータ入力欄id4における「プリンタ単位」のラジオボタンが特許請求の範囲で言う「第2の指令」を入力する手段に相当する。
【0075】
次に、データ入力欄id1〜id5の設定の内容によって分散形態表示欄ddのイラスト画像がどのように決まるかを、図7ないし図10を用いて説明する。まず最初に、「部数」のデータ入力欄id1、「部単位で印刷する」のチェックボックスid2、「部、ページ単位でまとめる」のチェックボックスid3によってイラスト画像がどのように決まるかを説明する。
【0076】
図7は、データ入力欄id1と2つのチェックボックスid2,id3の設定の内容によって分散形態表示欄ddのイラスト画像がどのように変わるかを示す説明図である。図示の表において、列は、部単位で印刷するか否か、すなわち、「部単位で印刷する」のチェックボックスid2がオン状態であるかオフ状態であるかによって定まり、行は、部、ページ単位でまとめないか否か、すなわち、「部、ページ単位でまとめる」のチェックボックスid3がオフ状態であるかオン状態であるかによって定まる。この表は、「部数」データ入力欄id1から設定される部数が4部である場合の一例である。
【0077】
「部単位で印刷する」で、かつ「部、ページ単位でまとめない」の場合には、表中第1行、第1列のセルC11に示すように、1台目のプリンタ60には、丁合で第1部の第1ページと第2ページが次いで第2部の第1ページが印刷され、2台目のプリンタ70には、第2部の第2ページ、第3部の第1ページと第2ページが印刷され、3台目のプリンタ80には、第4部の第1ページと第2ページが印刷されることを示すイラスト画像が表示される。
【0078】
「部単位で印刷しない」で、かつ「部、ページ単位でまとめない」の場合には、表中第1行、第2列のセルC12に示すように、スタック印刷となることから、1台目のプリンタ60には、第1ページが3部印刷され、2台目のプリンタ70には、第1ページの必要部数の残り分と第2ページが2部印刷され、3台目のプリンタ80には、第2部の必要部数の残り分とが印刷されることを示すイラスト画像が表示される。
【0079】
「部単位で印刷する」で、かつ「部、ページ単位でまとめる」の場合には、表中第2行、第1列のセルC21に示すように、1台目のプリンタ60は、1単位が複数のプリンタに渡ることを禁止することから、第1部の第1ページから第2部の第2ページまで印刷され、2台目のプリンタ70には、第3部の第1ページと第2ページが印刷され、3台目のプリンタ80には、第4部の第1ページと第2ページが印刷されることを示すイラスト画像が表示される。
【0080】
「部単位で印刷しない」で、かつ「部、ページ単位でまとめる」の場合には、表中第2行、第2列のセルC22に示すように、1台目のプリンタ60には、第1ページが必要部数分印刷され、2台目のプリンタ70には、第2ページが必要部数分印刷されることを示すイラスト画像が表示される。
【0081】
なお、図7の表中の第1行のセルC11,C12に示した例は、分散先のプリンタ60,70,80がほぼ同一の印刷速度性能を持つ場合についてのものである。各プリンタ60,70,80の印刷速度性能が同一であることから、各プリンタに割り当てる枚数はほぼ均等となっている。これに対して、分散先のプリンタ60,70,80の印刷速度性能が相違する場合には、各プリンタに割り当てる枚数はプリンタの機種によって相違するようになされている。これは、「速度優先」で分散の割り振りを決定するためである。例えば、1台目のプリンタ60の印刷速度性能が20ppm(Page Per Minute)、2台目のプリンタ70の印刷速度性能が40ppm、3台目のプリンタ70の印刷速度性能が40ppmであるとすると、各プリンタ60,70,80の印刷速度の性能比率は、1:2:2となる。速度優先モードで分散の割り振りを決めるときには(すなわち、表中の第1行に該当する「部、ページ単位でまとめない」ときには)、各プリンタへの割り当て枚数はこの性能比率に一致するように決められる。こうすることで、各プリンタ60,70,80ができるだけ同時に印刷を終了するようにすることができる。
【0082】
図8は、速度優先モードで分散の割り振りを決めた場合の一例を示す説明図である。5ページから構成される文書を4部、3台のプリンタ60,70,80に分散する場合について例示する。各プリンタ60,70,80の印刷速度性能は、前述したように20ppm、40ppm、40ppmであるとする。こうした場合は、印刷する全ページ数は20頁であることから、各プリンタ60,70,80の性能比率(1:2:2)から、1台目のプリンタ60に割り当てられるページ数は4ページ、2台目、3台目のプリンタ70,80に割り当てられるページ数はそれぞれ8ページになる。したがって、「部単位で印刷する」場合には、図8に示すように、1台目のプリンタ60には、丁合で第1部の第1ページから第4ページまでが印刷され、2台目のプリンタ70には、第1部の第5ページと第2部の第1ページから第5ページまでと第3部の第1ページおよび第2ページとが印刷され、3台目のプリンタ80には、第3部の第3ページから第5ページまでと第4部の第1ページから第5ページまでとが印刷されることになる。なお、「部単位で印刷しない」場合にも、スタック印刷において、同様に、各プリンタ60,70,80の性能比率(1:2:2)に応じて、各プリンタ60,70,80に割り当てられるページ数が定められている。
【0083】
この実施例では、図7の表中の第1行の「部、ページ単位でまとめない」場合には、前述したような速度優先モードで分散の割り振りを決定するように行なわれているが、これに対して、図7の表中の第2行の「部、ページ単位でまとめる」場合には、「ハンドリング優先」で分散の割り振りが行なわれるよう(以下、これを「ハンドリング優先モード」と呼ぶ)にした。図9は、ハンドリング優先モードで分散の割り振りを決めた場合の一例を示す説明図である。ハンドリング優先モードでは、部、ページ単位でまとめる、すなわちその単位の一集合が複数のプリンタに分割されないように分散することにより、プリンタからの回収が容易となるようになされている。図9では、図8で示した例と同様に、5ページから構成される文書を4部、3台のプリンタ60,70,80に分散する場合について例示している。図示するように、1台目のプリンタ60には、丁合で第1部の第1ページないし第5ページが印刷され、2台目のプリンタ70には、丁合で第2部の第1ページないし第5ページと第3部の第1ページないし第5ページが印刷され、3台目のプリンタ80には、丁合いで第4部の第1ページないし第5ページが印刷されることになる。なお、図9の例では、2台目のプリンタ70が2部を引き受ける構成としたが、これは、ハンドリング優先モードでありながら、さらに速度優先モードでもあるためである。速度優先モードにより前述した1:2:2の性能比率を達すべく、1台目のプリンタ60が1部を、2台目のプリンタ70が2部を、3台目のプリンタ80が2部となるところを残りの部数がないことから1部をそれぞれ引き受けることになる。
【0084】
一方、図7の表中の第2行の「部、ページ単位でまとめる」場合であっても、ハンドリング優先モードであるが速度優先モードでない構成とすることもできる。この場合には、部、ページ単位の一集合が複数のプリンタに渡ることを禁止したハンドリング優先モードでありながら、各プリンタの請け負う枚数は各プリンタの速度性能によらない均等なものとしている。図8,図9の例のように部数が分散先のプリンタの数で均等に割り切れない場合には、最初のプリンタ側から部数が増えるようになされており、例えば、5ページの文書を4部、3つのプリンタに分散するような場合、1台目のプリンタ60が2部を、2台目のプリンタ70が1部を、3台目のプリンタ80が1部をそれぞれ引き受けることになる。
【0085】
前述したように、図7の表中の第2行の「部、ページ単位でまとめる」場合には、ハンドリング優先モードで且つ速度優先モードである場合と、速度優先モードではないがハンドリング優先モードである場合との2つの状態を取り得る。この2つの状態の切換えは、この実施例では、「ジョブのまとめ方」のデータ入力欄id4の設定内容に従って行なっている。データ入力欄id4における「プリンタ単位」のラジオボタンが選択された場合には、一のプリンタから出力する全ページが一つのまとまりとして扱われることから、各プリンタの印刷速度性能が考慮されるように速度優先モードをとるようにし、データ入力欄id4における「部、ページ番号単位」のラジオボタンが選択された場合には、部単位やページ単位の一集合ごとを一つのまとまりとして扱うことから、速度優先モードをとらないようにした。データ入力欄id4における「部、ページ番号単位」のラジオボタンが選択された場合には、各プリンタの印刷速度性能に関係なく空いているプリンタに1部ずつ印刷し、残りの部数を空いたプリンタから順番に割り当てるようになされている。
【0086】
次に、データ入力欄id1〜id3の設定内容から決まるイラスト画像が、「ジョブのまとめ方」のデータ入力欄id4と「区切りページ」のデータ入力欄id5によってどのように変わるかを説明する。図10は、データ入力欄id4,id5によって分散形態表示欄ddのイラスト画像がどのように決まるかを示す説明図である。図10に示したイラスト画像の一例は、データ入力欄id1〜id3の内容によって図7中のセルC11に示すようにイラスト画像が決定した場合に、データ入力欄id4,id5の設定内容に応じてさらにどのように変わるかを示すものである。
【0087】
図10の表において、列は、「ジョブのまとめ方」のデータ入力欄id4において「プリンタ単位」、「部、ページ番号単位」のいずれのラジオボタンが選択されたかによって定まり、行は、「区切りページ」のデータ入力欄id5において「先頭」、「末尾」の両チェックボックスがどのように指示されているかによって定まる。
【0088】
「ジョブのまとめ方」のデータ入力欄id4において、「プリンタ単位」のラジオボタンがクリックされている場合、表中の第1行、第1列のセルCE11に示すように、図7のセルC11とそのイラスト画像は変わらず、一のプリンタから印刷される全ページはまとめられた形となる。一方、「部、ページ番号単位」のラジオボタンがクリックされている場合には、第1行、第2列のセルCE12に示すように、部、もしくはページ単位の集合がまとめられ、それらは次のまとまりとの間で一旦分けられる。なお、実際は、「プリンタ単位」のラジオボタンがクリックされている場合も「部、ページ番号単位」のラジオボタンがクリックされている場合にも、区切りページがないことから同じ印刷結果となる。
【0089】
「区切りページ」のデータ入力欄id5から区切りページがあると判別された場合には、表中の第2行目、第3行目、第4行目に示すように、第1行目にてまとめられた区分に対して、先頭、末尾、または両者に区切りページ(図中黒塗りの部分)が差し込まれた形にイラスト画像は定められる。この表によって決定されるイラスト画像が、分散形態表示欄ddに表示される。
【0090】
図6に戻り、「リカバリ」のフィールドfd2は、分散印刷されるプリンタでエラーが発生した場合に他のプリンタでリカバリさせる際のリカバリ先を指定するためのものである。この「リカバリ」のフィールドfd2には、「リカバリしない」、「出力先を指定する」、「リカバリ先を自動で選択する」の3つのラジオボタンが設けられている。「リカバリしない」のラジオボタンが選択された場合には、分散印刷されるプリンタでエラーが発生した場合にもリカバリをしないものとする。「出力先を指定する」のラジオボタンが選択された場合には、「プリンタ」のデータ入力欄から入力された出力先をリカバリ先とする。「リカバリ先を自動で選択する」のラジオボタンが選択された場合には、エラーが発生したプリンタと同機種のプリンタをリカバリ先とする。同機種のプリンタがなければ空いているプリンタをリカバリ先とする。
【0091】
「指定日時」のフィールドfd3は、印刷時間を指定するもので、「印刷日時を指定する」のチェックボックスが指定された場合には、「指定日時」の欄から入力された時間に印刷が開始される。
【0092】
「分散印刷プロパティ」のダイアログボックスWN2に表示される「プリンタ」のカードCD2について、図11を用いて次に説明する。図示するように、「プリンタ」のカードCD2には、「プリンタグループ」のフィールドfd4と、「用紙設定」のフィールドfd5と、内容表示欄fd6が設けられている。
【0093】
「プリンタグループ」のフィールドfd4は、文書を分散して印刷するプリンタのグループを指定するためのもので、「グループ名」のデータ入力欄id11と「プリンタ」の表示欄id12と「グループ設定」のボタンid13とが設けられている。「グループ名」のデータ入力欄id11は、そのグループの名前を設定するためのものであり、予め設定されたグループ名が選択肢として用意される。「プリンタ」の表示欄id12は、「グループ名」のデータ入力欄id1から設定されたグループに属するプリンタ名を表示する。「グループ設定」のボタンid13は、図示しない新たなウィンドウを開き作業者からのデータ入力を受け付けることで、「グループ名」のデータ入力欄id11に用意される選択肢の追加、削除を行なう。「プリンタグループ」のフィールドfd4によって指定されるグループに属する全てのプリンタ、すなわち、「プリンタ」の表示欄id12に表示される各プリンタに対して、コンピュータ10は分散印刷を行なうことになる。すなわち、コンピュータ本体16にローカルまたはコンピュータネットワーク90にて接続される全てのプリンタの中でも、この「プリンタグループ」のフィールドfd4によって指定されるグループのプリンタ群だけが印刷の分散先となることになる。
【0094】
「用紙設定」のフィールドfd5は、用紙や印刷品質を設定するためのもので、「用紙サイズ」、「用紙方向」、「用紙種類」、「色」、「解像度」をそれぞれ設定するデータ入力欄id14,id15,id16,id17,id18が設けられている。
【0095】
「用紙サイズ」のデータ入力欄id14は、使用する用紙サイズを用紙の種類と共に設定するもので、例えば、「A4 210×297mm」、「A4横 210×297mm」、「洋封筒 120×235」、「ハガキ 100×147mm」等が選択肢として用意されている。「用紙方向」のデータ入力欄id15は、プリンタにおいて用紙のセットされる方向を示すものであり、「縦」と「横」とが選択可能である。「用紙種類」のデータ入力欄id16は、用紙の種類を設定するもので、「普通紙」、「スーパーファイン専用紙」、「専用光沢紙」が選択肢として用意されている。「色」のデータ入力欄id17は、プリンタ14に使用するインクの種類を設定するもので、「カラー」と「モノクロ」とが選択肢として用意されている。「解像度」のデータ入力欄id18は、印刷する解像度を設定するもので、「はやい」、「きれい」の2種類が選択肢として用意されている。ここで、「はやい」、「きれい」は、例えば、順に360×360(dot)、720×720(dot)の解像度を示すものである。
【0096】
内容表示欄fd6は、「プリンタグループ」のフィールドfd1と「用紙設定」のフィールドfd5から設定された内容のうちの所望のデータを表示する。
【0097】
以上のように構成された「分散印刷プロパティ」のダイアログボックスWN2に従って、作業者はマウス20およびキーボード18を操作することにより、各種の設定情報がコンピュータ本体16に入力されることになる。なお、このデータ入力の際に、各プリンタ60,70,80の性能情報によっては上記入力データの取り込みは制限されるように構成されている。例えば、各プリンタ60,70,80の性能情報から、これらプリンタ60,70,80は共にA4までの用紙サイズしか印刷不可能な場合には、「分散印刷プロパティ」のダイアログボックスWN2の「用紙サイズ」のデータ入力欄id14は、A4より大きい用紙サイズは選択肢から除外する構成として、A4より大きい用紙サイズについての入力データは取り込み不可能としている。
【0098】
5.コンピュータプログラム
図3に示した仮想プリンタドライバ110にて実現される各部111〜119は、実際は、コンピュータプログラムである仮想プリンタドライバ110とその仮想プリンタドライバ110に従ってCPU30により実行される各種処理とにより実現されている。また、図4に示した分散印刷ユーティリティ120にて実現される各部121〜129は、実際は、コンピュータプログラムである分散印刷ユーティリティ120とその分散印刷ユーティリティ120に従ってCPU30により実行される各種処理とにより実現されている。
【0099】
上記分散印刷ユーティリティ120は、仮想プリンタドライバ110と同様に、フロッピィディスク22に予め格納されており、所定のインストールプログラムを起動することで、フロッピィディスクドライブ24からコンピュータ10にインストールされる。このインストールされた分散印刷ユーティリティ120は、HDD41に記憶されており、コンピュータ10に電源を投入したときに、オペレーティングシステムに組み込まれ、RAM32の所定の領域にロードされる。なお、分散印刷ユーティリティ120は、仮想プリンタドライバ110と同様に、フロッピィディスク22に格納されたものに替えて、CD−ROM、光磁気ディスク、ICカード等の他の携帯型記録媒体(可搬型記録媒体)に格納された構成としてもよい。また、この分散印刷ユーティリティ120は、外部のコンピュータネットワーク(例えばインターネット)に接続される特定のサーバから、コンピュータネットワークを介して提供されるプログラムデータをダウンロードして、RAM32またはHDD41に転送することにより得るようにすることもできる。
【0100】
図12は、仮想プリンタドライバ110で記述される処理ルーチンを、アプリケーションプログラム100で記述される処理ルーチンとともに示すフローチャートである。図示するように、このコンピュータ本体16のCPU30は、まず、アプリケーションプログラム100に処理を移して、画像の処理を行って画像データを作成する処理を行なう(ステップS210)。このアプリケーションプログラム100は、文書や絵図等を作成する汎用のアプリケーションプログラムであり、それぞれのアプリケーションプログラム特有の機能を使って画像データが作成される。
【0101】
次いで、CPU30は、この作成されたアプリケーションプログラムに備えられる[印刷]のコマンドを実行することで、分散印刷を行なう旨の印刷命令を発行する処理を行なう(ステップS220)。図13は、アプリケーションプログラム100上で[印刷]のコマンドが操作されたときにCRTディスプレイ12に表示される「印刷」のダイアログボックスWN3の一例を示す説明図である。図示するように、「印刷」のダイアログボックスWN3には、「プリンタ名」のデータ入力欄id21が設けられている。この「プリンタ名」のデータ入力欄id21に、図5で説明した「分散印刷」のアイコンIC4に対応する「分散印刷」の文字列が選択入力された状態で、「OK」のボタンid22がマウス20によりクリックされると、上記分散印刷を行なう旨の印刷命令がアプリケーションプログラム100から仮想プリンタドライバ110に対して発行される。なお、「印刷」のダイアログボックスWN3において、「プロパティ」のボタンid23がマウス20によりクリックされると、仮想プリンタドライバ110に従う分散情報設定ルーチンに処理を移して、「分散印刷プロパティ」のダイアログボックスWN2をCRTディスプレイ12に表示させ、キーボード18とマウス20からの入力データを読み取ることで、分散印刷に係わる各種情報を設定する処理を行なう。上記印刷命令の発行は、アプリケーションプログラムからオペレーティングシステムを介して行なう構成とすることもできる。
【0102】
図14は、CPU30にて実行される分散情報設定ルーチンを示すフローチャートである。図示するように、CPU30は、処理が開始されると、まず、図6に示した「分散印刷プロパティ」のダイアログボックスWN2をCRTディスプレイ12に表示する(ステップS301)。次いで、CPU30は、そのCRTディスプレイ12の表示画面を見た作業者によるキーボード18およびマウス20を用いたデータ入力の操作を受けて、各種データを入力する(ステップS302)。ここで入力される各種データは、図6および図11に示した「分散印刷プロパティ」のダイアログボックスWN2から入力可能なデータであり、分散印刷の分散形態に関する情報、プリンタグループに関する情報、印刷の基本設定に関する情報および用紙設定に関する情報が該当する。続いて、その入力した各種データに基づいて生成されたイラスト画像を、「分散印刷プロパティ」のダイアログボックスWN2内の分散形態表示欄ddに表示する。このイラスト画像は、前述した図7ないし図10に例示した画像である。その後、CPU30は、ステップ302で入力された各種データをプリンタプロパティデータとしてRAM32に記憶する(ステップS303)。その後、「リターン」に抜けてこのルーチンの処理を終了する。
【0103】
この分散情報設定ルーチンに従う処理を終えると、その後、前述したように、「印刷」のダイアログボックスWN3内の「OK」のボタンid22がマウス20によりクリックされるのを受けて、印刷命令の発行を行なう。なお、「プロパティ」のボタンid23がクリックされず直ちに「OK」のボタンid22がマウス20によりクリックされた場合には、前回、分散情報設定ルーチンを実行したときにRAM32に記憶されたプリンタプロパティデータ(初めての場合には予め用意されたイニシャルのプリンタプロパティデータ)がそのまま残っている。
【0104】
ステップS220で印刷命令が発行されると、CPU30は、仮想プリンタドライバ110に処理を移して、アプリケーションプログラム100による処理から印刷命令を取り込んだか否かを判別する処理を行なう(ステップS310)。ここで、印刷命令を取り込んでいないと判別されると、ステップS310の判別処理を繰り返し実行して、アプリケーションプログラム100からの印刷命令が取り込まれるのを待つ。一方、ステップS310で印刷命令が取り込まれたと判別されたときには、以下の処理を実行する。
【0105】
CPU30は、まず、プリンタ60,70,80の機種毎に用意される実プリンタドライバ130,140,150から分散印刷ユーティリティ120が取り込んだ各プリンタ60,70,80の性能情報を、分散印刷ユーティリティ120から取り込む(ステップS320)。その後、CPU30は、これら各プリンタ60,70,80の性能情報から最も高いものを抽出して、これを仮想プリンタの性能情報と決定する(ステップS330)。その後、CPU30は、この仮想プリンタの性能情報をアプリケーションプログラム100に送る(ステップS340)。
【0106】
仮想プリンタドライバ110から仮想プリンタの性能情報が送られてくると、CPU30は、アプリケーションプログラム100に処理を移して、その仮想プリンタの性能情報を取り込む(ステップS240)。次いで、CPU30は、その性能情報と、前述した分散情報設定ルーチンでRAM32に記憶したプリンタプロパティデータに含まれる印刷の基本設定に関する情報と用紙設定に関する情報等(プリンタグループと分散形態に関する情報を除く)とに基づいて、ステップS210で作成した画像データを仮想プリンタに適合した印刷データに変換する(ステップS250)。その後、この変換後の印刷データを仮想プリンタドライバ110に送る(ステップS260)。CPU30は、ステップS260の処理を終えると、アプリケーションプログラム100の処理ルーチンを終了する。
【0107】
アプリケーションプログラム100から仮想プリンタに適合した印刷データが送られてくると、CPU30は、仮想プリンタドライバ110に処理を移して、その印刷データを取り込む(ステップS350)。続いて、CPU30は、その取り込んだ印刷データを中間印刷データとして、その中間印刷データをHDD41に出力する(ステップS360)。この結果、この中間印刷データをまとめたデータセットが中間印刷ファイルMFとしてHDD41に格納される。CPU30は、ステップS360の処理を終えると、仮想プリンタドライバ110の処理ルーチンを終了する。
【0108】
図15および図16は、分散印刷ユーティリティ120で記述される処理ルーチンを示すフローチャートである。この処理ルーチンは、仮想プリンタドライバ110の処理ルーチンを終了後、起動されるものである。処理が開始されると、図15に示すように、CPU30は、まず、HDD41から中間印刷ファイルMFの中間印刷データを取り込む(ステップS410)。次いで、CPU30は、分散情報設定ルーチンで設定された各種情報であるプリンタプロパティデータを取り込む(ステップS420)。
【0109】
続いて、CPU30は、ステップS420で取り込んだプリンタプロパティデータに含まれるプリンタグループに関する情報と分散形態に関する情報に基づいて、ステップS410で取り込んだ中間印刷データの割り振りを決定する割り振り決定ルーチンを実行する(ステップS430)。この割り振り決定ルーチンは、中間印刷データを構成する各ページをプリンタグループに属する各プリンタ60,70,80に対してどのように割り振るかを定めるものである。即ち、「分散印刷プロパティ」のダイアログボックスWN2で設定した分散形態が実現されるように(即ち、「分散設定」のカードCD1の分散形態表示欄ddに表示された図10に例示した分散形態が実現されるように)、中間印刷データを構成する各ページをどのように各プリンタ60,70,80用に割り振るかを定めている。
【0110】
図17は、ステップS430で実行される割り振り決定ルーチンの詳細を示すフローチャートである。図示するように、処理がこのルーチンに移行すると、CPU30は、まず、ステップS410で取り込んだ中間印刷データから印刷するページの総数を拾得する(ステップS431)。次いで、ステップS420で取り込んだプリンタプロパティデータに含まれるプリンタグループに関する情報から分散先となり得るプリンタを判定する(ステップS432)。続いて、分散先と判定された各プリンタ60,70,80にそれぞれ用意された実プリンタドライバ130,140,150から各プリンタ60,70,80の性能情報を拾得する(ステップS433)。次いで、その収得した情報から各プリンタ60,70,80の印刷速度性能を求め、これら分散印刷速度性能から、印刷速度についてのプリンタ60,70,80の性能比率を算出する(ステップS434)。
【0111】
その後、CPU30は、速度優先モードにあるか否かを判別する(ステップS435)。この判別は、ステップS420で取り込んだプリンタプロパティデータに含まれる分散形態に関する情報を読み込んで、「部、ページ単位でまとめない」といった指示がなされているか否か、すなわち、チェックボックスid3がオフ状態となっているか否かによって判別する。ここで、速度優先モードである、すなわち、チェックボックスid3がオフ状態となっていると判別された場合には、上記ステップS434で算出した性能比率を考慮しつつ、ステップS410で取り込んだ中間印刷データの割り振りを決定する処理を行なう(ステップS436)。この処理は、詳しくは次のようにして行なう。まず、ステップS434で算出した性能比率と一致するように各プリンタへの割り当て枚数の比率を決める。例えば、各プリンタ60,70,80の性能比率が1:2:2である場合には、各プリンタ60,70,80の割り当て枚数を1:2:2とする。次いで、ステップS410で取り込んだ中間印刷データをページ単位に区分けして、「分散印刷プロパティ」のダイアログボックスWN2で設定した分散形態が実現されるように、プリンタグループに属するプリンタ60,70,80がそれぞれ引き受けるページを定める。なお、このページを定める際に、上記決定した各プリンタへの割り当て枚数の比率が実現されるようにする。こうして定められた各プリンタに割り当てられたページについての情報は出力先リストデータとしてRAM32に記憶される。
【0112】
図18は、その出力先リストデータの一例を示す説明図である。図示の例は、図8のように割り振りが決定された場合のものである。図示するように、1台目(プリンタに設定した順番が先頭)のプリンタ60に対して1,2,3,4の各ページがこの順に、2台目のプリンタ70に対して5、1,2,3,4,5,1,2の各ページがこの順に、3台目(プリンタに設定した順番が最後)のプリンタ80に対して3、4,5,1,2,3,4,5の各ページがこの順にそれぞれ、印刷するページ番号として定められる。
【0113】
一方、ステップS435で、速度優先モードでない、すなわち、チェックボックスid3がオン状態となっていると判別された場合には、部単位もしくはページ単位の一集合が複数のプリンタに渡らないように、すなわちハンドリング優先モードとなるように、ステップS410で取り込んだ中間印刷データの割り振りを決定する処理を行なう(ステップS437)。この処理は、詳しくは、ステップS410で取り込んだ中間印刷データをページ単位に区分けして、部単位もしくはページ単位(この選択はチェックボックスid2で決まる)の一集合が複数のプリンタに渡らないように、さらに、「分散印刷プロパティ」のダイアログボックスWN2で設定した分散形態が実現されるように、プリンタグループに属するプリンタ60,70,80がそれぞれ引き受けるページを定める。こうして定められた各プリンタに割り当てられたページについての情報は出力先リストデータとしてRAM32に記憶される。
【0114】
図19は、その出力先リストデータの一例を示す説明図である。図示の例は、図9のように割り振りが決定された場合のものである。図示するように、1台目のプリンタ60に対して1、2,3,4、5の各ページがこの順に、2台目のプリンタ70に対して1,2,3,4,5,1,2,3,4,5の各ページがこの順に、3台目のプリンタ80に対して1,2,3,4,5の各ページがこの順にそれぞれ、印刷するページ番号として定められる。
【0115】
ステップS436もしくはS437の終了後、「エンド」に抜けてこの処理ルーチンを一旦終了する。
【0116】
ステップS436または437で各ページの出力先の割り振りが決まると、次いで、この割り振りに従って実際に印刷がなされるように、以下の処理を実行する。まず、図16に示すように、CPU30は、印刷の対象となるプリンタを示すプリンタカウンタC1を値1にセットする(ステップS440)。ここで、プリンタカウンタC1は、値1のとき1台目のプリンタ60を、値2のとき2台目のプリンタ70を、値3のとき3台目のプリンタ70というように分散先の各プリンタを示すものとする。
【0117】
次いで、CPU30は、プリンタカウンタC1の値に対応するプリンタに対して設定変更を指示する処理を行なう(ステップS450)。この処理は、印刷しようとするプリンタに対してプリンタドライバを介して印刷の用意を促すもので、上記ステップS420で取り込んだプリンタプロパティデータに含まれる印刷の基本設定に関する情報と用紙設定に関する情報のうちから必要な設定情報をプリンタドライバに対して指示を行なう。例えば、用紙の種類は「専用光沢紙」であるということをプリンタドライバに知らせることで、プリンタに対してその用紙に適した印刷が可能な状態となるように定める。
【0118】
続いて、CPU30は、印刷の対象となるページ数を示すページカウンタC2を値1にセットする(ステップS460)。その後、CPU30は、ステップS430で求めた出力先リストデータに、プリンタカウンタC1およびページカウンタC2で特定されるページが含まれるか否かを判別する(ステップS470)。ここで、出力先リストデータに含まれると判別されると、以下の処理を行なう。まず、プリンタカウンタC1の値に対応するプリンタに対して印刷を実行させるべく、そのプリンタの実プリンタドライバ130(140,150)に対して出力命令を発行する(ステップS480)。その出力命令の発行を受けた実プリンタドライバ130(140,150)からは、プリンタ60(70,80)の性能についての性能情報が返送されてくることから、次いで、CPU30は、その性能情報を取り込む(ステップS490)。
【0119】
続いて、その性能情報と、ステップS420で取り込んだプリンタプロパティデータに含まれる印刷の基本設定に関する情報、用紙設定に関する情報等(プリンタグループと分散形態に関する情報を除く)とに基づいて、プリンタカウンタC1およびページカウンタC2で特定されるページについての最終印刷データを作成する処理を行なう(ステップS500)。詳しくは、ステップS410で取り込んだ中間印刷データの中からページカウンタC2の値に対応したページのページデータを抽出し、この抽出したページデータを、上記性能情報、印刷の基本設定に関する情報および用紙設定に関する情報等に基づいて、プリンタカウンタC1の値に対応したプリンタ60(70,80)に適合したデータに変換するレンダリング処理を行なうことにより、最終印刷データを作成する。
【0120】
その後、CPU30は、その最終印刷データをプリンタカウンタC1の値に対応したプリンタ60(70,80)の実プリンタドライバ130(140,150)に出力する(ステップS510)。なお、ステップS480ないしS510で印刷を実行させる前に、実プリンタドライバ130,140,150からの信号に基づいて各プリンタ60,70,80の状態を監視する処理を行ない、この監視結果が、出力先のプリンタが混み合っていたりエラー状態にあるといったエラー状態にあるというものであるときには、その出力先へのプリンタについては出力先を変更したり、出力先を中止したりする処理を行なうよう構成することもできる。
【0121】
その後、CPU30は、ページカウンタC2の値を1だけインクリメントする(ステップS520)。なお、ステップS470で否定判別されたときには、ステップS480ないしS510を読み飛ばして直ちにステップS520に進む。その後、CPU30は、ページカウンタC2の値が最終ページを示す値LC2を超えたか否かを判別する(ステップS530)。ここで、最終ページを示す値LC2を超えていないと判別されると、処理をステップS470に戻して、上記値1を増加したページについての最終印刷データの作成および出力の処理を行なう。一方、ステップS530でページカウンタC2の値が最終ページを示す値LC2を超えたと判別されたときには、CPU30は、プリンタカウンタC1の値を1だけインクリメントして(ステップS540)、そのプリンタカウンタC1の値が最後のプリンタを示す値LC1を超えたか否かを判別する(ステップS550)。ここで、最後のプリンタを示す値LC1を超えていないと判別されると、処理をステップS450に戻して、上記値1を増加したプリンタカウンタC1で示される次のプリンタ70(80,60)についての各ページの最終印刷データの作成および出力の処理を行なう。一方、ステップS550でプリンタカウンタC1の値が最終ページを示す値LC1を超えたと判別されたときには、全てのプリンタについての印刷を要する全てのページの最終印刷データの作成・出力が終了したとして、「エンド」に抜けて、分散印刷ユーティリティの処理ルーチンを終了する。
【0122】
なお、この分散印刷ユーティリティの処理ルーチンは、前述したように、1ページから最終ページまでの最終印刷データの作成および出力の処理を第1のプリンタから最終のプリンタまで各プリンタ単位で順に行なうよう記述されているが、これはフローチャートの記載上の便宜のためにこのように記述されたものであり、実際は、1ページから最終ページまでの最終印刷データの作成および出力の処理を各プリンタ毎に時分割によりマクロ的に並行処理されるよう構成されている。なお、この実施例では、これら各プリンタ毎の処理がマクロ的に並行に処理されるように構成されているが、これに換えて、複数のマイクロプロセッサを備えるコンピュータ本体を用いることで完全に並行に処理される構成とすることもできる。
【0123】
図20は、以上のように構成されたコンピュータシステムによって分散印刷が行なわれる手順を、従来例と比較しつつ示すタイミングチャートである。図示の例は、3ページから構成される文書を3台のプリンタ60,70,80に1部ずつ印刷する場合についてが示されている。図示するように、この実施例では、最初、中間印刷データの作成がなされ(▲1▼)、次いで、その中間印刷データの1ページ目のページデータが、並行処理により、プリンタ60用、プリンタ70用、プリンタ80用と順に各プリンタに適合するようにレンダリング処理される(▲2▼、▲3▼、▲4▼)。なお、プリンタ60用に変換されたデータ(最終印刷データ)のプリンタ60への送信の処理は、次のプリンタ70用へのレンダリング処理と並列に行なわれており、同様に、プリンタ70への送信の処理もプリンタ80への送信も次のレンダリング処理と並列に行なわれる。次いで、中間印刷データの2ページ目のページデータが、並行処理により、プリンタ60用、プリンタ70用、プリンタ80用と順に各プリンタに適合するようにレンダリング処理され(▲5▼、▲6▼、▲7▼)、続いて、中間印刷データの3ページ目のページデータが、並行処理により、プリンタ60用、プリンタ70用、プリンタ80用と順に各プリンタに適合するようにレンダリング処理される(▲8▼、▲9▼、○10)。こうして全ての印刷が終了する。
【0124】
これに対して、従来の装置では、まず、1ページ目のページデータを1台目のプリンタAに適合するようにレンダリング処理が行なわれ、その後、その変換されたデータをプリンタAに送信する処理が行なわれる。次いで、2ページ目のページデータを1台目のプリンタAに適合するようにレンダリング処理が行なわれ、その後、その変換されたデータをプリンタAに送信する処理が行なわれる。続いて、3ページ目のページデータを1台目のプリンタAに適合するようにレンダリング処理が行なわれ、その後、その変換されたデータを送信する処理が行なわれる。さらにその後、2台目のプリンタBについても、1台目のプリンタAと同様に、1ページ目、2ページ目、3ページ目と順に、レンダリング処理およびプリンタへの送信が行なわれる。その後、3台目のプリンタCについても、1台目のプリンタAと同様に、1ページ目、2ページ目、3ページ目と順に、データ変換およびプリンタへの送信が行なわれる。
【0125】
したがって、この実施例では、レンダリング処理とプリンタへの送信の処理とが並列に行なわれていることから、従来例と比較して、印刷に要する全体の時間を短縮することができるという効果を奏する。
【0126】
また、この実施例によれば、アプリケーションプログラム100からは仮想プリンタドライバ110に対して一の印刷命令を行なうだけで、中間印刷データを得ることができ、この中間印刷データから各プリンタ60,70,80への分散印刷が自動的に行なわれる。このために、作業者は、アプリケーションプログラム上で[印刷]のコマンドを一度実行すればよく、作業性に優れているという効果を奏する。
【0127】
この実施例では、分散印刷ユーティリティ120により、印刷データの各ページがどのプリンタに引き受けられるかが自動的に定められることから、作業者はいちいち送り先のプリンタに個別に印刷要求を行なう必要がない。このため、作業性に優れている。また、この実施例では、速度優先モード時には、各プリンタ60,70,80の印刷速度の性能情報から各プリンタ60,70,80の印刷速度についての性能比率を求め、その性能比率と一致するように各プリンタ60,70,80が引き受けるページ数を定めていることから、印刷速度の性能が高いプリンタについては大量のページが印刷され、印刷速度の性能が低いプリンタについて少量のページが印刷される。このために、各プリンタがほぼ同時に印刷を終了するようにすることができる。したがって、印刷に要する全体の時間を短縮することができるという効果を奏する。
【0128】
またこの実施例では、ハンドリング優先モード時には、印刷結果の部もしくはページの単位が異なるプリンタに渡るのを禁止することができる。このため、印刷が終了したプリンタから印刷結果を取り出したとき、その印刷結果は、上記単位で集められた状態となる。したがって、印刷結果を回収する際の作業性に優れているという効果を奏する。
【0129】
さらにこの実施例では、上記速度優先モードとハンドリング優先モードを、「分散印刷プロパティ」のダイアログボックスWN2に設けられた「部、ページ単位でまとめる」のチェックボックスid3をオンオフすることにより容易に切り替えることができる。このため、操作性に優れている。
【0130】
この実施例では、「部、ページ単位でまとめる」のチェックボックスid3がオン状態となってハンドリング優先モードにある場合にも、さらに、「ジョブのまとめ方」のデータ入力欄id4を「プリンタ単位」と入力することにより、ハンドリング優先でありながら、速度優先を図ることができる。
【0131】
この実施例では、「部単位で印刷する」のチェックボックスid2をオンオフすることにより、丁合い印刷とするかスタック印刷とするか容易に切り替えることができる。
【0132】
この実施例では、作業者は、CRTディスプレイ12に表示された「分散印刷プロパティ」のダイアログボックスWN2から、分散印刷の分散形態に関する情報やプリンタグループに関する情報を容易に入力することができる。特にこの実施例では、これら情報から分散形態がどのように定まるかを、「分散印刷プロパティ」のダイアログボックスWN2内の分散形態表示欄ddに表示されたイラスト画像から作業者は見ることができる。したがって、視覚的にも分散がどのようになされるかを分散印刷の実行前に知ることができることから、より一層作業性に優れている。なお、図6に示した実施例では、分散形態表示欄ddに表示されるイラスト画像には、分散先のプリンタ名が付加されていないが、これに換えて、イラスト画像に分散先のプリンタ名を付加する構成としてもよい。すなわち、ページを並べた一集合毎に、分散先のプリンタ名を示すようにすればよく、この構成によれば、分散先のプリンタがいずれであるかを作業者は容易に知ることができる。
【0133】
本発明の他の実施形態について、次に説明する。上記実施例では、この発明の分散印刷制御装置として、印刷を行なう1台のコンピュータ10から複数のプリンタ60,70,80に対して直接印刷データを出力する構成としていたが、これに替えて、コンピュータネットワーク90上に、サーバを用意し、サーバ上でプリンタを管理して分散印刷を行なうクライアント/サーバ方式の構成とすることもできる。この構成では、各クライアントに仮想プリンタドライバを内蔵し、サーバに分散印刷ユーティリティを内蔵するようにすればよい。
【0134】
以上、本発明の一実施例を詳述してきたが、本発明は、こうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲において種々なる態様にて実施することができるのは勿論のことである。
【図面の簡単な説明】
【図1】この発明の一実施例を適用するコンピュータシステムのハードウェアの概略構成を示すブロック図である。
【図2】分散印刷処理の全体の様子を概略的に示すブロック図である。
【図3】分散印刷処理に用いられる仮想プリンタドライバ110の処理の様子を示すブロック図である。
【図4】分散印刷処理の一部を実現する分散印刷ユーティリティ120の処理の様子を示すブロック図である。
【図5】「プリンタ」ウィンドウWN1を示す説明図である。
【図6】「分散印刷プロパティ」のダイアログボックスWN2に表示される「分散設定」のカードCD1を示す説明図である。
【図7】データ入力欄id1〜id3の設定の内容によって分散形態表示欄のイラスト画像がどのように変わるかを示す説明図である。
【図8】速度優先モードで分散の割り振りを決めた場合の一例を示す説明図である。
【図9】ハンドリング優先モードで分散の割り振りを決めた場合の一例を示す説明図である。
【図10】データ入力欄id4、id5の設定の内容によって分散形態表示欄のイラスト画像がどのように変わるかを示す説明図である。
【図11】「分散印刷プロパティ」のダイアログボックスWN2に表示される「プリンタ」のカードCD2を示す説明図である。
【図12】アプリケーションプログラム100で記述される処理ルーチンと仮想プリンタドライバ110で記述される処理ルーチンを示すフローチャートである。
【図13】アプリケーションプログラム100上で[印刷]のコマンドが操作されたときにCRTディスプレイ12に表示される「印刷」のダイアログボックスWN3の一例を示す説明図である。
【図14】CPU30にて実行される分散情報設定ルーチンを示すフローチャートである。
【図15】分散印刷ユーティリティ120で記述される処理ルーチンの前半部分を示すフローチャートである。
【図16】分散印刷ユーティリティ120で記述される処理ルーチンの後半部分を示すフローチャートである。
【図17】ステップS430で実行される割り振り決定ルーチンの詳細を示すフローチャートである。
【図18】速度優先モード時の出力先リストデータの一例を示す説明図である。
【図19】ハンドリング優先モード時の出力先リストデータの一例を示す説明図である。
【図20】この実施例によって分散印刷が行なわれる手順を、従来例と比較しつつ示すタイミングチャートである。
【符号の説明】
10…コンピュータ
12…CRTディスプレイ
14…プリンタ
16…コンピュータ本体
18…キーボード
20…マウス
22…フロッピィディスク
24…フロッピィディスクドライブ
30…CPU
31…ROM
32…RAM
33…表示画像メモリ
34…マウスインタフェース
35…キーボードインタフェース
36…FDC
37…HDC
38…CRTC
39…プリンタインタフェース
40…ネットワーク制御回路
41…HDD
60,70,80…プリンタ
90…コンピュータネットワーク
100…アプリケーションプログラム
110…仮想プリンタドライバ
111…印刷命令受信部
112…性能情報返信部
113…プロパティ設定部
114…性能情報入力部
115…仮想プリンタ性能決定部
116…ユーザインタフェース
117…印刷データ受信部
118…中間印刷データ出力部
119…プロパティデータ出力部
120…分散印刷ユーティリティ
121…中間印刷データ入力部
122…プロパティデータ入力部
123…決定部
124…出力データ制御部
125…プリンタ設定部
126…出力命令出力部
127…性能情報入力部
128…最終印刷データ出力部
129…プリンタ監視部
12a…性能情報出力部
130,140,150…実プリンタドライバ
MF…中間印刷ファイル
WN2…「分散印プロパティ」のウィンドウ
id2…「部単位で印刷する」のチェックボックス
id3…「部、ページ単位でまとめる」のチェックボックス
id4…「ジョブのまとめ方」のデータ入力欄[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a technique for distributing print data to be printed to a plurality of printers.
[0002]
[Prior art]
When a document is created by an information processing apparatus such as a personal computer or a word processor, the created document is output to a printer. Usually, the printer is directly connected to the information processing apparatus. In addition, the printer may be indirectly connected to the information processing apparatus via a computer network such as a LAN (local area network). In general, a plurality of printers are connected to the computer network, and the information processing apparatus can print from any printer by sharing them. An operator designates a desired printer from a plurality of printers connected to the network by using the information processing apparatus, and outputs document data to be printed on the printer.
[0003]
By the way, in a configuration in which a plurality of printers are connected to such one information processing apparatus, print data created by the information processing apparatus can be distributed to each printer and output. When there is a large amount of print data, it takes a long time to complete printing with one printer. However, if the print data is output separately to a plurality of printers, the time required for printing can be shortened. .
[0004]
[Problems to be solved by the invention]
However, in the above-described conventional technique, it is necessary for an operator to appropriately divide a document to be printed and individually request printing to a plurality of printers. For this reason, there are problems that the work becomes very complicated, the workability is poor, and the time required for printing cannot be shortened sufficiently.
[0005]
The present invention has been made in view of the above problems, and an object of the present invention is to make it possible to perform distributed printing with good workability and in a short time.
[0006]
[Means for solving the problems and their functions and effects]
As means for solving at least a part of the problems described above, the following configuration is adopted.
[0007]
A first distributed printing control apparatus according to the present invention includes:
Data allocation means for dividing print data to be printed generated by an application program in units of pages and determining pages to be accepted by each of a plurality of printers;
Data output control means for distributingly outputting the print data to each printer in accordance with information determined by the data allocation means;
And a distributed printing control apparatus capable of printing a plurality of copies of the print data as necessary,
The data allocation means includes
Each page is arranged in page order in units of copies, all pages corresponding to the number of copies are divided into the number of distribution destination printers, and each divided portion is assigned to the plurality of printers,
The data output control means includes
As the distributed output for each printer, the print data is transmitted after converting the print data of the page into a form suitable for the printer of the distribution destination in units of pages in order from the assigned first page. In addition to performing transmission processing, the transmission processing for one printer and the data conversion processing for the next printer are configured to be performed in parallel.
further,
Printer driver storage means for storing a plurality of printer drivers provided for each model of the printer;
The information about the performance of a plurality of printers that can be distributed from each of the printer drivers is fetched, and the performance information of the virtual printer is determined from the information about the performance of the fetched plurality of printers. Virtual printer driver execution means for executing data conversion processing based on the determined performance information and obtaining intermediate print data suitable for the virtual printer from the application program;
The obtained intermediate print data is used as print data used by the data allocating means and the data output control means.
[0008]
According to the distributed printing control apparatus configured as described above, since the data allocation unit determines which printer can accept each page unit of print data, it is necessary for the worker to individually make a print request to the destination printer. Absent. For this reason, it is excellent in workability. In this distributed printing control apparatus, distributed output of print data is performed substantially in parallel for each printer, and each distributed output is transmitted from the assigned first page in order of the print data of each page to the distribution destination printer. The print data is output after the conversion to a form suitable for the print data.
[0009]
Therefore, processing for obtaining print data suitable for the printer is performed for the first page addressed to the first printer, then for the first page addressed to the second printer, and then to the third printer. The first page can be performed in the order of the printer, such as for the first page addressed. At this time, when processing is performed for the first page addressed to the second printer, the print data obtained as a result of processing the first page addressed to the first printer is output to the printer. In addition, the process of obtaining print data suitable for the printer and the process of outputting the previous print data to the printer can be executed in parallel. Therefore, the overall time required for printing can be shortened as compared with the conventional example.
[0011]
Further, intermediate print data can be obtained from an application program simply by issuing a single print command to a virtual printer driver, and distributed printing from each intermediate print data to each printer is automatically performed. For this reason, the worker only has to perform the printing work once on the application program, and the workability is excellent.
[0026]
A first distributed printing control method according to the present invention includes:
(A) dividing print data to be printed generated by an application program in units of pages, and determining a page to be accepted by each of a plurality of printers;
(B) distributedly outputting the print data to each printer according to information determined by the data allocating means;
A distributed printing control method capable of printing a plurality of copies of the print data as required,
The step (a)
Each page is arranged in page order in units of copies, all pages corresponding to the number of copies are divided into the number of distribution destination printers, and each divided portion is assigned to the plurality of printers,
The step (b)
As the distributed output for each printer, the print data is transmitted after converting the print data of the page into a form suitable for the printer of the distribution destination in units of pages in order from the assigned first page. In addition to performing transmission processing, the transmission processing for one printer and the data conversion processing for the next printer are configured to be performed in parallel.
further,
(C) storing in advance a plurality of printer drivers provided for each model of the printer in a storage device;
(D) Fetching information about the performance of a plurality of printers that can be distribution destinations from the respective printer drivers, determining performance information of a virtual printer from the information about the performance of the fetched plurality of printers, and executing the application program A step of executing a data conversion process based on the determined performance information for obtaining intermediate print data suitable for the virtual printer from the application program;
The obtained intermediate print data is used as print data used in the steps (a) and (b).
[0027]
The first distributed printing control method having the above configuration has the same operations and effects as the first distributed printing control apparatus of the present invention, and achieves both improvement in workability and reduction in time required for distributed printing. Thus, distributed printing can be performed.
[0032]
The first recording medium of the present invention is:
A computer-readable recording medium that records a computer program used in a distributed printing control apparatus that distributes and prints print data to be printed generated by an application program to a plurality of printers,
(A) a function that divides print data to be printed in units of pages and determines a page that each of a plurality of printers takes over;
(B) a function of distributing and outputting the print data to each printer in accordance with information determined by the function (a);
Is realized on a computer,
The function (a) is:
Each page is arranged in page order in units of copies, all pages corresponding to the number of copies are divided into the number of distribution destination printers, and each divided portion is assigned to the plurality of printers,
The function (b) is
As the distributed output for each printer, the print data is transmitted after performing the data conversion processing for converting the print data of the page into a form suitable for the printer of the distribution destination in order from the assigned first page. In addition to performing transmission processing, the transmission processing for one printer and the data conversion processing for the next printer are configured to be performed in parallel.
further,
(C) a function of preparing in advance a plurality of printer drivers provided for each model of the printer in a storage device;
(D) Fetching information about the performance of a plurality of printers that can be distribution destinations from the respective printer drivers, determining performance information of a virtual printer from the information about the performance of the fetched plurality of printers, and executing the application program A function of causing the application program to execute data conversion processing based on the determined performance information and obtaining intermediate print data suitable for the virtual printer from the application program;
Is realized on a computer,
The intermediate print data obtained by the function (d) is used as print data used in the functions (a) and (b).
It is characterized by recording a computer program.
[0033]
The first recording medium having the above configuration also has the same operations and effects as the first distributed printing control apparatus and the first distributed printing control method of the present invention, and the time required for improved workability and distributed printing. Thus, it is possible to perform distributed printing at the same time.
[0038]
Other aspects of the invention
The present invention includes other aspects as follows. The first mode is a mode as a computer program having the same function as the function of the recording medium of the present invention. The second mode is a mode as a data signal embodied in a carrier wave by including the computer program. A 3rd aspect is an aspect as a program supply apparatus which supplies a computer program via a communication path. In the third aspect, the above-described apparatus and method are realized by placing a computer program on a server or the like on a computer network, downloading a necessary program to a computer via a communication path, and executing the program. Can do.
[0039]
DETAILED DESCRIPTION OF THE INVENTION
In order to further clarify the configuration and operation of the present invention described above, embodiments of the present invention will be described based on examples.
[0040]
1. Overall hardware configuration
FIG. 1 is a block diagram showing a schematic configuration of hardware of a computer system to which one embodiment of the present invention is applied. As shown in the figure, the computer system of this embodiment includes a
[0041]
A
[0042]
The computer
[0043]
The
[0044]
In this computer system, the operating system is stored in the
[0045]
The computer system also includes a virtual printer driver (virtual printer driver) 110 that defines information about a virtual printer. The
[0046]
The
[0047]
2. Distributed printing process
According to the computer system having such a configuration, roughly, print data to be printed is created by the computer
[0048]
FIG. 2 is a block diagram schematically showing the overall state of the distributed printing process. FIG. 3 is a block diagram showing a state of processing of the
[0049]
As shown in FIG. 2, the
[0050]
Here, the performance of the virtual printer is the performance of the printer with the highest performance among all the printers that can be distributed. Generally, a high-performance printer performs drawing using a high-level program language. For example, a high-level program language represents a graphic by an advanced drawing command using a mathematical expression or the like, and a low-level program language represents a graphic by a low-level drawing command using a bitmap. Therefore, in this embodiment, the performance of the virtual printer is determined as the performance of the highest printer among all the printers that can be the distribution destination as described above, so that the
[0051]
A printer that can be a distribution destination is a printer that belongs to a printer group set by the
[0052]
Specifically, the performance information of each
[0053]
The performance information determined by the
[0054]
Also, the
[0055]
The
[0056]
As shown in FIG. 2, the
[0057]
As shown in FIG. 2, the distributed
[0058]
As shown in FIG. 4, the distributed
[0059]
The allocation information determined in this way is sent to the output
[0060]
First, the
[0061]
The output
[0062]
Furthermore, the distributed
[0063]
Note that the performance information of each
[0064]
3. Virtual printer driver
Next, how the operating system changes when the
[0065]
The user (operator) operates the
[0066]
Note that a “distributed printing” icon IC4 corresponding to the
[0067]
4). User interface
FIG. 6 is an explanatory diagram illustrating a dialog box WN2 of “distributed printing properties”. As shown in the figure, in the “distributed printing property” dialog box WN2, two types of cards CD1 and CD2 of “distributed setting” and “printer” are prepared. The “distribution setting” card CD1 is used to set information related to the distribution mode in the case of distributed printing. The “printer” card CD2 is for setting information relating to a printer group that can be a distribution destination, information relating to basic printing settings, information relating to paper settings, and the like. Either one of the cards CD1 and CD2 is selected by the operator by operating the
[0068]
As shown in the figure, the “distribution setting” card CD1 is provided with three fields fd1, fd2, and fd3 of “document”, “recovery”, and “designated date”. The “document” field fd1 is for setting the print form of the document. The data input field id1 for “number of copies”, the check box id2 for “print in units of copies”, and “combined in units of copies and pages”. Check box id3, a data input field id4 for "how to organize jobs", and a data input field id5 for "separator page". Each data entry field (including check boxes, the same applies hereinafter) id1 to id5 is designed with the following specifications.
[0069]
1) Data entry field id1: “Number of copies”
Enter the number of copies to print. The content set by the
2) Check box id2 of “Print by copy”:
When this check box id2 is on, collate printing is performed, and when it is off, stack printing is performed. Here, collation printing is output in units of copies, and each portion is output in page order. Stack printing is output in units of pages, and each page is output by the number of copies. That is, when the check box id2 is on, printing is performed in units of copies, and when the check box id2 is off, printing is performed in order of pages.
[0070]
3) Check box id3 of “Group by page, page”:
When the check box id3 is on, the set of the unit or page is prohibited from being printed across a plurality of printers. When the check box id3 is off, the set is printed across a plurality of printers. Allow to be done. Note that when the check box id3 is off, that is, “do not collect in units of pages”, the performance (print speed of the printer) is set so that printing is completed almost simultaneously on all the destination printers. Hereinafter, the number of sheets allocated to each printer is changed according to the printing speed performance). The state of operation in which the number of sheets assigned to each printer is changed in accordance with the printing speed performance information is hereinafter referred to as “speed priority mode”, which will be described in detail later.
[0071]
4) Data input field id4 of “How to organize jobs”:
When the “printer unit” radio button in the data input field id4 is selected, all pages output from one printer are handled as one unit. When this radio button is selected, the shared
[0072]
5) Data input field id5 of “separator page”:
The separator page is a page provided at the beginning or end of the group so that it can be discriminated when the print result of another user is mixed in the unit of the group. When the “top” check box is clicked, a separator page is printed at the top position of the group. When the “end” check box is clicked, a separator page is printed at the end position of the group. Note that the name of the document to be printed, the number of copies, the number of pages, the user name, and the like are printed on the separator page.
[0073]
In addition to the data input fields id1 to id5, the “document” field fd1 is provided with a distributed form display field dd representing a distributed form determined by the setting contents of the data input fields id1 to id5. Yes. This distributed form display field dd indicates what kind of distributed form is determined by the setting contents of the data input fields id1 to id5 as an illustration image.
[0074]
Here, the check box id2 of “print in units of copies” corresponds to means for inputting “third command” in the claims, and “printer unit” in the data input column id4 of “how to organize jobs” "" Corresponds to a means for inputting "second command" in the claims.
[0075]
Next, how the illustration image of the distributed form display field dd is determined depending on the setting contents of the data input fields id1 to id5 will be described with reference to FIGS. First, how the illustration image is determined by the data input field id1 of “number of copies”, the check box id2 of “print in units of copies”, and the check box id3 of “collect in units of pages” will be described.
[0076]
FIG. 7 is an explanatory diagram showing how the illustration image in the distributed form display field dd changes depending on the setting contents of the data input field id1 and the two check boxes id2 and id3. In the illustrated table, the column is determined by whether or not printing is performed in units of copies, that is, whether the check box id2 of “printing in units of copies” is in an on state or in an off state, and a row is a section, a page It is determined by whether or not the data is not grouped, that is, whether or not the check box id3 of “group by page, page” is in an off state or an on state. This table is an example when the number of copies set from the “number of copies” data input field id1 is four.
[0077]
In the case of “print in units of copies” and “not grouped in units of pages,” as shown in the cell C11 in the first row and first column in the table, the
[0078]
In the case of “Do not print in units of copies” and “Do not collect in units of pages and pages”, as shown in the cell C12 in the first row and second column in the table, stack printing is performed. The
[0079]
In the case of “printing in units of copies” and “combining in units of pages and pages”, as shown in the cell C21 in the second row and first column in the table, the
[0080]
In the case of “do not print in units of copies” and “combine in units of pages and pages”, the
[0081]
The example shown in the cells C11 and C12 in the first row in the table of FIG. 7 is for the case where the
[0082]
FIG. 8 is an explanatory diagram showing an example of the case where the distribution allocation is determined in the speed priority mode. An example in which a document composed of 5 pages is distributed to 4 copies and 3
[0083]
In this embodiment, in the case of “not grouped in units of pages” in the first row in the table of FIG. 7, the distribution allocation is determined in the speed priority mode as described above. On the other hand, in the case of “combined in units of pages,” in the second row of the table of FIG. 7, distribution is performed with “handling priority” (hereinafter referred to as “handling priority mode”). Called). FIG. 9 is an explanatory diagram showing an example when distribution allocation is determined in the handling priority mode. In the handling priority mode, collection is made in units of copies and pages, that is, a set of units is distributed so as not to be divided into a plurality of printers, thereby facilitating collection from the printer. FIG. 9 illustrates a case where a document composed of five pages is distributed to four copies and three
[0084]
On the other hand, even in the case of “combined in units of pages,” in the second row in the table of FIG. 7, it is possible to adopt a configuration that is in the handling priority mode but not the speed priority mode. In this case, although the handling priority mode prohibits a set of copies and page units from being transferred to a plurality of printers, the number of sheets handled by each printer is equal regardless of the speed performance of each printer. When the number of copies is not evenly divisible by the number of destination printers as in the examples of FIGS. 8 and 9, the number of copies is increased from the first printer side. For example, four copies of a 5-page document When distributed to three printers, the
[0085]
As described above, in the case of “combined in units of pages” in the second row in the table of FIG. 7, the handling priority mode is the speed priority mode, and the speed priority mode is not the handling priority mode. Two states can be taken: In this embodiment, the switching between the two states is performed according to the setting contents of the data input field id4 of “How to summarize jobs”. When the “printer unit” radio button in the data input field id4 is selected, all pages output from one printer are treated as one unit, so that the printing speed performance of each printer is taken into consideration. When the speed priority mode is selected and the radio button of “unit, page number unit” is selected in the data input field id4, each set of units or page units is treated as one unit. Don't take priority mode. When the “copy, page number unit” radio button in the data entry field id4 is selected, one copy is printed on each available printer regardless of the printing speed performance of each printer. Shi The remaining number of copies Sky The printers are assigned in order from the printers that have been used.
[0086]
Next, how the illustration image determined from the setting contents of the data input fields id1 to id3 changes depending on the data input field id4 of “How to assemble jobs” and the data input field id5 of “separator page” will be described. FIG. 10 is an explanatory diagram showing how the illustration image in the distributed form display field dd is determined by the data input fields id4 and id5. An example of the illustration image shown in FIG. 10 corresponds to the setting contents of the data input fields id4 and id5 when the illustration image is determined as shown in the cell C11 in FIG. 7 by the contents of the data input fields id1 to id3. It also shows how it changes.
[0087]
In the table of FIG. 10, the column is determined depending on which radio button “unit of printer” or “unit of page number” is selected in the data input field id4 of “how to organize jobs”. It is determined by how both the “start” and “end” check boxes are designated in the data input field id5 of “page”.
[0088]
When the “printer unit” radio button is clicked in the data input field id4 of “job grouping”, as shown in the cell CE11 in the first row and the first column in the table, the cell C11 in FIG. And the illustration image does not change, and all pages printed from one printer are combined. On the other hand, when the “unit, page number unit” radio button is clicked, as shown in the cell CE12 in the first row and the second column, a set of units or pages is grouped, It is divided once between the unity. Actually, when the “printer unit” radio button is clicked and when the “copy, page number unit” radio button is clicked, the same print result is obtained because there is no separator page.
[0089]
When it is determined that there is a separator page from the data input field id5 of "separator page", as shown in the second, third, and fourth lines in the table, the first line An illustration image is determined in such a way that a separator page (black portion in the figure) is inserted at the head, tail, or both for the grouped sections. The illustration image determined by this table is displayed in the distributed form display field dd.
[0090]
Returning to FIG. 6, the “recovery” field fd <b> 2 is for designating a recovery destination when recovery is performed by another printer when an error occurs in a printer that performs distributed printing. The “recovery” field fd2 is provided with three radio buttons “not recover”, “designate an output destination”, and “automatically select a recovery destination”. When the “Do not recover” radio button is selected, recovery is not performed even if an error occurs in a printer that performs distributed printing. When the “designate output destination” radio button is selected, the output destination input from the data input field of “printer” is set as the recovery destination. When the “automatically select recovery destination” radio button is selected, the printer of the same model as the printer in which the error has occurred is set as the recovery destination. If there is no printer of the same model, a free printer is the recovery destination.
[0091]
The “designated date / time” field fd3 is used to designate the printing time. When the “designated date / time” check box is designated, printing starts at the time entered from the “designated date / time” column. Is done.
[0092]
Next, the “printer” card CD2 displayed in the “distributed printing property” dialog box WN2 will be described with reference to FIG. As illustrated, the “printer” card CD2 is provided with a “printer group” field fd4, a “paper setting” field fd5, and a content display field fd6.
[0093]
A “printer group” field fd4 is used to specify a group of printers to which a document is to be distributed and printed. A “group name” data input field id11, a “printer” display field id12, and a “group setting” field. A button id13 is provided. The “group name” data entry field id11 is for setting the name of the group, and a preset group name is prepared as an option. The “printer” display column id12 displays the printer names belonging to the group set from the “group name” data input column id1. The “group setting” button id 13 opens a new window (not shown) and accepts data input from the operator, thereby adding or deleting options prepared in the data input field id 11 of “group name”. The
[0094]
A “paper setting” field fd5 is used to set paper and print quality. Data input fields for setting “paper size”, “paper orientation”, “paper type”, “color”, and “resolution”, respectively. id14, id15, id16, id17, and id18 are provided.
[0095]
The “paper size” data input field id14 is used to set the paper size to be used together with the type of paper. For example, “A4 210 × 297 mm”, “A4 width 210 × 297 mm”, “
[0096]
The content display field fd6 displays desired data among the contents set from the “printer group” field fd1 and the “paper setting” field fd5.
[0097]
In accordance with the “distributed printing property”
[0098]
5). Computer program
Each
[0099]
Similar to the
[0100]
FIG. 12 is a flowchart showing a processing routine described by the
[0101]
Next, the
[0102]
FIG. 14 is a flowchart showing a shared information setting routine executed by the
[0103]
When the processing according to this distributed information setting routine is completed, as described above, the “OK”
[0104]
When the print command is issued in step S220, the
[0105]
First, the
[0106]
When the performance information of the virtual printer is sent from the
[0107]
When print data suitable for the virtual printer is sent from the
[0108]
FIGS. 15 and 16 are flowcharts showing processing routines described by the distributed
[0109]
Subsequently, the
[0110]
FIG. 17 is a flowchart showing details of the allocation determination routine executed in step S430. As shown in the figure, when the process proceeds to this routine, the
[0111]
Thereafter, the
[0112]
FIG. 18 is an explanatory diagram of an example of the output destination list data. The illustrated example is a case where the allocation is determined as shown in FIG. As shown in the drawing, the
[0113]
On the other hand, if it is determined in step S435 that the speed priority mode is not set, that is, the check box id3 is turned on, a set of copy units or page units is not passed to a plurality of printers. Processing for determining the allocation of the intermediate print data fetched in step S410 is performed so as to be in the handling priority mode (step S437). More specifically, this process divides the intermediate print data fetched in step S410 into page units so that a set of copies or pages (the selection is determined by the check box id2) does not pass to a plurality of printers. Further, the pages to be taken over by the
[0114]
FIG. 19 is an explanatory diagram of an example of the output destination list data. The illustrated example is a case where allocation is determined as shown in FIG. As shown in the drawing, the
[0115]
After the end of step S436 or S437, the process exits to “END” and ends this processing routine.
[0116]
When the allocation of the output destination of each page is determined in step S436 or 437, the following processing is executed so that printing is actually performed according to this allocation. First, as shown in FIG. 16, the
[0117]
Next, the
[0118]
Subsequently, the
[0119]
Subsequently, based on the performance information, information on basic settings of printing, information on paper settings, etc. (excluding information on printer groups and distribution forms) included in the printer property data captured in step S420, the printer counter C1 The final print data for the page specified by the page counter C2 is created (step S500). Specifically, the page data of the page corresponding to the value of the page counter C2 is extracted from the intermediate print data fetched in step S410, and the extracted page data is used as the performance information, information on basic printing settings, and paper settings. The final print data is created by performing rendering processing for converting the data into data suitable for the printer 60 (70, 80) corresponding to the value of the printer counter C1 based on the information related to the printer counter C1.
[0120]
Thereafter, the
[0121]
Thereafter, the
[0122]
As described above, the processing routine of this distributed printing utility is described so that the process of creating and outputting the final print data from the first page to the last page is sequentially performed for each printer from the first printer to the final printer. However, this is described for the convenience of description of the flowchart, and in actuality, the final print data generation and output processing from one page to the last page is performed for each printer. It is configured to perform parallel processing in a macro manner by division. In this embodiment, the processing for each of these printers is configured to be processed in parallel in a macro manner. However, instead of this, it is possible to use a computer main body including a plurality of microprocessors to perform completely parallel processing. It can also be configured to be processed.
[0123]
FIG. 20 is a timing chart showing a procedure for performing distributed printing by the computer system configured as described above, in comparison with a conventional example. The illustrated example shows a case where a document composed of three pages is printed one by one on three
[0124]
On the other hand, in the conventional apparatus, first, rendering processing is performed so that the page data of the first page is adapted to the first printer A, and then the converted data is transmitted to the printer A. Is done. Next, rendering processing is performed so that the page data of the second page is adapted to the first printer A, and then processing for transmitting the converted data to the printer A is performed. Subsequently, rendering processing is performed so that the page data of the third page is adapted to the first printer A, and then processing for transmitting the converted data is performed. Further, the rendering process and transmission to the printer are performed for the second printer B in the order of the first page, the second page, and the third page in the same manner as the first printer A. Thereafter, the third printer C performs data conversion and transmission to the printer in the order of the first page, the second page, and the third page in the same manner as the first printer A.
[0125]
Therefore, in this embodiment, since the rendering process and the transmission process to the printer are performed in parallel, the overall time required for printing can be reduced as compared with the conventional example. .
[0126]
Further, according to this embodiment, the intermediate print data can be obtained from the
[0127]
In this embodiment, since the distributed
[0128]
In this embodiment, in the handling priority mode, it is possible to prohibit the printing result from being transferred to different printers or different page units. For this reason, when a printing result is taken out from a printer that has finished printing, the printing result is collected in the above units. Therefore, there is an effect that the workability when collecting the print result is excellent.
[0129]
Furthermore, in this embodiment, the speed priority mode and the handling priority mode can be easily switched by turning on / off the check box id3 of “Group by page,” provided in the dialog box WN2 of the “distributed print properties”. Can do. For this reason, it is excellent in operability.
[0130]
In this embodiment, even when the check box id3 of “combined in units of pages” is in the on state and in the handling priority mode, the data input field id4 of “how to organize jobs” is set to “unit of printer”. , It is possible to give priority to speed while giving priority to handling.
[0131]
In this embodiment, it is possible to easily switch between collating printing and stack printing by turning on / off the check box id2 of “printing in units of copies”.
[0132]
In this embodiment, the operator can easily input information related to the distributed form of distributed printing and information related to the printer group from the “distributed printing property” dialog box WN2 displayed on the
[0133]
Another embodiment of the present invention will be described next. In the above embodiment, the distributed printing control apparatus according to the present invention is configured to output print data directly from a
[0134]
As mentioned above, although one Example of this invention was explained in full detail, this invention is not limited at all to such an Example, In the range which does not deviate from the summary of this invention, it can implement in various aspects. Of course.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a schematic configuration of hardware of a computer system to which an embodiment of the present invention is applied.
FIG. 2 is a block diagram schematically showing an overall state of distributed printing processing.
FIG. 3 is a block diagram showing a state of processing of a
FIG. 4 is a block diagram illustrating a processing state of a distributed
FIG. 5 is an explanatory diagram showing a “printer” window WN1.
FIG. 6 is an explanatory diagram showing a “distribution setting” card CD1 displayed in a “distribution print property” dialog box WN2.
FIG. 7 is an explanatory diagram showing how the illustration image in the distributed form display field changes depending on the setting contents of the data input fields id1 to id3.
FIG. 8 is an explanatory diagram showing an example when allocation of distribution is determined in the speed priority mode.
FIG. 9 is an explanatory diagram illustrating an example when allocation of distribution is determined in the handling priority mode.
FIG. 10 is an explanatory diagram showing how the illustration image in the distributed form display field changes depending on the setting contents of the data input fields id4 and id5.
FIG. 11 is an explanatory diagram showing a “printer” card CD2 displayed in a “distributed printing property” dialog box WN2.
12 is a flowchart showing a processing routine described by the
13 is an explanatory diagram showing an example of a “print” dialog box WN3 displayed on the
FIG. 14 is a flowchart showing a shared information setting routine executed by the
15 is a flowchart showing the first half of a processing routine described by the distributed
16 is a flowchart showing the latter half of the processing routine described by the distributed
FIG. 17 is a flowchart showing details of an allocation determination routine executed in step S430.
FIG. 18 is an explanatory diagram showing an example of output destination list data in the speed priority mode.
FIG. 19 is an explanatory diagram showing an example of output destination list data in the handling priority mode.
FIG. 20 is a timing chart showing a procedure for performing distributed printing according to this embodiment, as compared with a conventional example.
[Explanation of symbols]
10 ... Computer
12 ... CRT display
14 ... Printer
16 ... computer body
18 ... Keyboard
20 ... Mouse
22 ... Floppy disc
24 ... Floppy disk drive
30 ... CPU
31 ... ROM
32 ... RAM
33 ... Display image memory
34 ... Mouse interface
35 ... Keyboard interface
36 ... FDC
37 ... HDC
38 ... CRTC
39 ... Printer interface
40. Network control circuit
41 ... HDD
60, 70, 80 ... printer
90 ... computer network
100 ... Application program
110: Virtual printer driver
111: Print command receiving unit
112 ... Performance information reply section
113 ... Property setting section
114 ... Performance information input unit
115... Virtual printer performance determination unit
116: User interface
117: Print data receiving unit
118: Intermediate print data output section
119 ... Property data output section
120: Distributed printing utility
121: Intermediate print data input section
122 ... Property data input section
123 ... determination part
124: Output data control unit
125: Printer setting section
126 ... Output command output section
127 ... Performance information input part
128: Final print data output section
129 ... Printer monitoring unit
12a ... Performance information output unit
130, 140, 150 ... actual printer driver
MF ... Intermediate print file
WN2 ... “Distributed seal properties” window
id2 ... “Print by copy” check box
id3 ... Check box for "Group by page, page"
id4 ... Data input field for "How to organize jobs"
Claims (3)
前記印刷データを、前記データ割当手段によって定められる情報に従って各プリンタに分散出力するデータ出力制御手段と
を備えるとともに、必要に応じて前記印刷データを複数の部数印刷可能にした分散印刷制御装置であって、
前記データ割当手段は、
部単位で各ページをページ順に並べ、前記部数分の全てのページを分散先のプリンタの数に分けて、該分けられたそれぞれを前記複数のプリンタに割り当てるように構成されたものであり、
前記データ出力制御手段は、
各プリンタ用の分散出力として、割り当てられた先頭ページから順にページ単位で、該ページの印刷データを分散先のプリンタに適合する形に変換するデータ変換処理を行なった上で該印刷データを送信する送信処理を行なうと共に、一のプリンタ用の前記送信処理と次のプリンタ用の前記データ変換処理とを並列に行なうように構成されたものであり、
さらに、
前記プリンタの機種毎に設けられた複数のプリンタドライバを記憶するプリンタドライバ記憶手段と、
前記各プリンタドライバから分散先となり得る複数のプリンタの性能についての情報を取り込み、該取り込んだ複数のプリンタの性能についての情報から仮想的なプリンタの性能情報を決定して、前記アプリケーションプログラムに対して前記決定した性能情報に基づくデータ変換処理を実行させて、前記アプリケーションプログラムから前記仮想的なプリンタに適合する中間印刷データを得る仮想プリンタドライバ実行手段と、
を備え、該得られた中間印刷データを、前記データ割当手段およびデータ出力制御手段で用いる印刷データとする分散印刷制御装置。Data allocation means for dividing print data to be printed generated by an application program in units of pages and determining pages to be accepted by each of a plurality of printers;
And a data output control unit that distributes and outputs the print data to each printer according to information determined by the data allocating unit. And
The data allocation means includes
Each page is arranged in page order in units of copies, all pages corresponding to the number of copies are divided into the number of distribution destination printers, and each divided portion is assigned to the plurality of printers,
The data output control means includes
As the distributed output for each printer, the print data is transmitted after converting the print data of the page into a form suitable for the printer of the distribution destination in units of pages in order from the assigned first page. In addition to performing transmission processing, the transmission processing for one printer and the data conversion processing for the next printer are configured to be performed in parallel.
further,
Printer driver storage means for storing a plurality of printer drivers provided for each model of the printer;
The information about the performance of a plurality of printers that can be distributed from each of the printer drivers is fetched, and the performance information of the virtual printer is determined from the information about the performance of the fetched plurality of printers. Virtual printer driver execution means for executing data conversion processing based on the determined performance information and obtaining intermediate print data suitable for the virtual printer from the application program;
A distributed print control apparatus that uses the obtained intermediate print data as print data used by the data allocating means and the data output control means.
(b)前記印刷データを、前記データ割当手段によって定められる情報に従って各プリンタに分散出力するステップと
を備えるとともに、必要に応じて前記印刷データを複数の部数印刷可能にした分散印刷制御方法であって、
前記ステップ(a)は、
部単位で各ページをページ順に並べ、前記部数分の全てのページを分散先のプリンタの数に分けて、該分けられたそれぞれを前記複数のプリンタに割り当てるように構成されたものであり、
前記ステップ(b)は、
各プリンタ用の分散出力として、割り当てられた先頭ページから順にページ単位で、該ページの印刷データを分散先のプリンタに適合する形に変換するデータ変換処理を行なった上で該印刷データを送信する送信処理を行なうと共に、一のプリンタ用の前記送信処理と次のプリンタ用の前記データ変換処理とを並列に行なうように構成されたものであり、
さらに、
(c)前記プリンタの機種毎に設けられた複数のプリンタドライバを記憶装置に予め記憶するステップと、
(d)前記各プリンタドライバから分散先となり得る複数のプリンタの性能についての情報を取り込み、該取り込んだ複数のプリンタの性能についての情報から仮想的なプリンタの性能情報を決定して、前記アプリケーションプログラムに対して前記決定した性能情報に基づくデータ変換処理を実行させて、前記アプリケーションプログラムから前記仮想的なプリンタに適合する中間印刷データを得るステップと、
を備え、該得られた中間印刷データを、前記ステップ(a)およびステップ(b)で用いる印刷データとする分散印刷制御方法。(A) dividing print data to be printed generated by an application program in units of pages, and determining a page to be accepted by each of a plurality of printers;
(B) a distributed printing control method comprising the step of distributing and outputting the print data to each printer according to information determined by the data allocating means, and enabling printing of a plurality of copies of the print data as required. And
The step (a)
Each page is arranged in page order in units of copies, all pages corresponding to the number of copies are divided into the number of distribution destination printers, and each divided portion is assigned to the plurality of printers,
The step (b)
As the distributed output for each printer, the print data is transmitted after converting the print data of the page into a form suitable for the printer of the distribution destination in units of pages in order from the assigned first page. In addition to performing transmission processing, the transmission processing for one printer and the data conversion processing for the next printer are configured to be performed in parallel.
further,
(C) storing in advance a plurality of printer drivers provided for each model of the printer in a storage device;
(D) Fetching information about the performance of a plurality of printers that can be distribution destinations from the respective printer drivers, determining performance information of a virtual printer from the information about the performance of the fetched plurality of printers, and executing the application program A step of executing a data conversion process based on the determined performance information for obtaining intermediate print data suitable for the virtual printer from the application program;
A distributed printing control method in which the obtained intermediate print data is used as print data used in the steps (a) and (b).
(a)印刷すべき印刷データをページ単位で区分けして、複数のプリンタのそれぞれが引き受けるページを定める機能と、
(b)前記印刷データを、前記機能(a)によって定められる情報に従って各プリンタに分散出力する機能と
を、コンピュータに実現させるとともに、
前記機能(a)は、
部単位で各ページをページ順に並べ、前記部数分の全てのページを分散先のプリンタの数に分けて、該分けられたそれぞれを前記複数のプリンタに割り当てるように構成されたものであり、
前記機能(b)は、
各プリンタ用の分散出力として、割り当てられた先頭ページから順にページ単位で、該ページの印刷データを分散先のプリンタに適合する形に変換するデータ変換処理を行なった上で該印刷データを送信する送信処理を行なうと共に、一のプリンタ用の前記送信処理と次のプリンタ用の前記データ変換処理とを並列に行なうように構成されたものであり、
さらに、
(c)前記プリンタの機種毎に設けられた複数のプリンタドライバを記憶装置に予め用意する機能と、
(d)前記各プリンタドライバから分散先となり得る複数のプリンタの性能についての情報を取り込み、該取り込んだ複数のプリンタの性能についての情報から仮想的なプリンタの性能情報を決定して、前記アプリケーションプログラムに対して前記決定した性能情報に基づくデータ変換処理を実行させて、前記アプリケーションプログラムから前記仮想的なプリンタに適合する中間印刷データを得る機能と
をコンピュータに実現させるとともに、
該機能(d)により得られた中間印刷データを、前記機能(a)および機能(b)で用いる印刷データとする
コンピュータプログラムを記録したコンピュータ読取可能な記録媒体。A computer-readable recording medium that records a computer program used in a distributed printing control apparatus that distributes and prints print data to be printed generated by an application program to a plurality of printers,
(A) a function that divides print data to be printed in units of pages and determines a page that each of a plurality of printers takes over;
(B) causing a computer to realize a function of distributing and outputting the print data to each printer in accordance with information determined by the function (a);
The function (a) is:
Each page is arranged in page order in units of copies, all pages corresponding to the number of copies are divided into the number of distribution destination printers, and each divided portion is assigned to the plurality of printers,
The function (b) is
As the distributed output for each printer, the print data is transmitted after converting the print data of the page into a form suitable for the printer of the distribution destination in units of pages in order from the assigned first page. In addition to performing transmission processing, the transmission processing for one printer and the data conversion processing for the next printer are configured to be performed in parallel.
further,
(C) a function of preparing in advance a plurality of printer drivers provided for each model of the printer in a storage device;
(D) Fetching information about the performance of a plurality of printers that can be distribution destinations from the respective printer drivers, determining performance information of a virtual printer from the information about the performance of the fetched plurality of printers, and executing the application program And executing a data conversion process based on the determined performance information to obtain intermediate print data suitable for the virtual printer from the application program.
A computer-readable recording medium storing a computer program in which the intermediate print data obtained by the function (d) is used as print data used in the functions (a) and (b).
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000106535A JP3804395B2 (en) | 2000-04-07 | 2000-04-07 | Distributed printing control apparatus, distributed printing control method, and recording medium |
PCT/JP2001/002967 WO2001077808A1 (en) | 2000-04-07 | 2001-04-05 | Control of decentralized printing by printers |
US09/980,111 US7173718B2 (en) | 2000-04-07 | 2001-04-05 | Control of distributed printing using data output control module |
EP10183743A EP2267590A3 (en) | 2000-04-07 | 2001-04-05 | Control of distributed printing with multiple printers |
EP01917837A EP1191433A4 (en) | 2000-04-07 | 2001-04-05 | Control of decentralized printing by printers |
EP10185194.7A EP2270645B1 (en) | 2000-04-07 | 2001-04-05 | Control of distributed printing with multiple printers |
US11/643,591 US20070103726A1 (en) | 2000-04-07 | 2006-12-20 | Control of distributed printing with multiple printers |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000106535A JP3804395B2 (en) | 2000-04-07 | 2000-04-07 | Distributed printing control apparatus, distributed printing control method, and recording medium |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003068408A Division JP2003296076A (en) | 2003-03-13 | 2003-03-13 | Device and method for controlling distributed printing and recording medium |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001290622A JP2001290622A (en) | 2001-10-19 |
JP3804395B2 true JP3804395B2 (en) | 2006-08-02 |
Family
ID=18619687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000106535A Expired - Fee Related JP3804395B2 (en) | 2000-04-07 | 2000-04-07 | Distributed printing control apparatus, distributed printing control method, and recording medium |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3804395B2 (en) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1574945B1 (en) * | 2004-03-05 | 2013-08-21 | Agfa HealthCare NV | Printing method |
JP4599220B2 (en) | 2005-05-12 | 2010-12-15 | キヤノン株式会社 | Image processing system and method |
KR101414745B1 (en) * | 2007-07-02 | 2014-07-07 | 삼성전자주식회사 | Host apparatus and Method for setting distributed printing |
JP5455527B2 (en) | 2009-09-29 | 2014-03-26 | キヤノン株式会社 | Image forming apparatus, method for controlling the apparatus, and control program |
JP5064582B2 (en) * | 2011-04-11 | 2012-10-31 | 株式会社リコー | Data distribution device |
JP6330481B2 (en) * | 2014-05-26 | 2018-05-30 | 富士ゼロックス株式会社 | Image processing apparatus, print information generating apparatus, image forming apparatus, image forming system, and program |
JP7027092B2 (en) * | 2017-09-27 | 2022-03-01 | 株式会社東芝 | Image forming device |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0764744A (en) * | 1993-08-31 | 1995-03-10 | Canon Inc | Printer server device |
JPH07144459A (en) * | 1993-11-24 | 1995-06-06 | Canon Inc | Recording control method and recording apparatus |
JPH07195789A (en) * | 1993-12-28 | 1995-08-01 | Fuji Xerox Co Ltd | Printer |
JP3560094B2 (en) * | 1996-02-15 | 2004-09-02 | 富士ゼロックス株式会社 | Print server |
JP3230984B2 (en) * | 1996-02-23 | 2001-11-19 | 株式会社東芝 | Image processing system |
JPH11143661A (en) * | 1997-11-14 | 1999-05-28 | Casio Comput Co Ltd | Printing system |
JPH11203082A (en) * | 1998-01-14 | 1999-07-30 | Fuji Xerox Co Ltd | Distributed printing system |
JP3278394B2 (en) * | 1998-02-25 | 2002-04-30 | キヤノン株式会社 | Information processing apparatus, information processing method, and storage medium |
JP2000039977A (en) * | 1998-07-23 | 2000-02-08 | Ricoh Co Ltd | Print system |
JP3525756B2 (en) * | 1998-08-31 | 2004-05-10 | セイコーエプソン株式会社 | Printer control device and method, and recording medium |
-
2000
- 2000-04-07 JP JP2000106535A patent/JP3804395B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001290622A (en) | 2001-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1191434A1 (en) | Control of distributed printers | |
EP2270645B1 (en) | Control of distributed printing with multiple printers | |
JP3997504B2 (en) | Document printing method, document processing method, and printer | |
JPH11119955A (en) | Printing processor | |
JP5817708B2 (en) | Image processing apparatus, image processing apparatus control method, and image processing apparatus control program | |
JPH10340165A (en) | Information processing device and method, and memory medium | |
JP2006120123A (en) | Job processing method, printing system, printer, storage medium and program | |
JP2009208315A (en) | Printing job control apparatus, printing job control method, and printing job control program | |
JP2009288871A (en) | Document processing system, document processing method, and computer program | |
JP4968920B2 (en) | Job management apparatus, job management method, and program | |
JP2001290630A (en) | Device and method for controlling distributed printing and recording medium | |
JP3757749B2 (en) | Distributed printing control apparatus, distributed printing control method, and recording medium | |
JP3804395B2 (en) | Distributed printing control apparatus, distributed printing control method, and recording medium | |
JP3788184B2 (en) | Distributed printing control apparatus, distributed printing control method, and recording medium | |
JP4771528B2 (en) | Distributed processing system and distributed processing method | |
JP3726634B2 (en) | Distributed printing control apparatus, distributed printing control method, and recording medium | |
JP3788206B2 (en) | Distributed printing control apparatus, distributed printing control method, and recording medium | |
JP2003296086A (en) | Decentralized print control unit, decentralized print control method, and recording medium | |
JP2010277337A (en) | Information processing apparatus, control method thereof, and computer program | |
JP4098457B2 (en) | Distributed printing control apparatus, distributed printing control method, and recording medium | |
JP4218969B2 (en) | Printing apparatus and method, printing program, and storage medium | |
JP2003296076A (en) | Device and method for controlling distributed printing and recording medium | |
JP2003296077A (en) | Device and method for controlling distributed printing and recording medium | |
JP3472064B2 (en) | Printing equipment | |
JP2002144670A (en) | Imaging system, its post-processing method and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050308 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050509 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050607 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050707 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20050712 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060228 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060322 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060418 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060501 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100519 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110519 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120519 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130519 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140519 Year of fee payment: 8 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |