(57)【特許請求の範囲】
【請求項１】
印刷ジョブを複数のプリンタごとに分割する前に、前記印刷ジョブのうち１部数分のみをページ単位のプリンタデータに全展開して一旦記憶し、
記憶したページ単位のプリンタデータの中から、前記複数のプリンタの各々に割り当てられたページに対応するプリンタデータを読み出し、読み出したプリンタデータを分割パターンに応じて再構成して編集するとともに印刷枚数を設定して前記複数のプリンタごとにひとかたまりのプリンタデータとして処理される分散ジョブを作成し、分散ジョブを前記複数のプリンタの各々に送信して印刷することを特徴とする分散印刷方法。
【請求項２】
印刷ジョブを複数のプリンタごとに分割する前に、前記印刷ジョブのうち１部数分のみをページ単位のプリンタデータに全展開して一旦記憶し、
記憶したページ単位のプリンタデータの中から、前記複数のプリンタの各々に割り当てられたページに対応するプリンタデータを読み出し、読み出したプリンタデータを分割パターンに応じて再構成して編集するとともに印刷枚数を設定して前記複数のプリンタごとにひとかたまりのプリンタデータとして処理される分散ジョブを作成し各プリンタに対応するスプーラに一旦記憶し、
各スプーラに記憶した分散ジョブを対応するプリンタに送信して印刷することを特徴とする分散印刷方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は分散印刷方法に係り、特に、印刷ジョブを分割して同一形式のプリンタデータに対応した複数台のプリンタで分散して印刷を行う印刷方式に関する。
【０００２】
【従来の技術】
オフィスにおけるドキュメントの出力には、その印刷速度や画質からレーザプリンタが一般的に用いられており、近年では、ドキュメントのカラー化に伴ってカラーレーザプリンタでの出力も増加している。
【０００３】
特に、その場ですぐに印刷したりするオンデマンドプリンティング等では、短時間に大量にカラー印刷を行う必要があるため、カラー印刷の速度向上を図ることが求められている。印刷速度を向上させるためには、感光体の感度向上を始め、各種性能の大幅な向上が必要となり、プリンタ自体が非常に高価になってしまうという問題があった。
【０００４】
【発明が解決しようとする課題】
このような問題に対して、例えば、特開平５−７３２３２号公報や、特開平１０−１８７３９３号公報等では、印刷情報のかたまりである印刷ジョブを、複数のプリンタに対して、例えばページ単位で割り当てるとか、あるいはカラーページは同じプリンタに割り当てるとかの分割パターンで分割し、複数のプリンタで平行して出力させることにより高速印刷を可能にする方法が提案されている。
【０００５】
一般にオフィスでは、複数台のプリンタを導入する場合、機種を統一することが多く、また、仕上がりの統一等を考慮すれば、上記のような分散印刷を行う場合には、同一機種のプリンタを複数台使用することが多くなると考えられる。
【０００６】
その場合には、例えばページ単位ごとのヘッダやフッタを設定したプリンタデータの形式が複数のプリンタで同一となるため、複数部数を印刷する場合には、印刷ジョブからプリンタデータへの展開処理の多くの部分が省略可能となるが、上記公報に示される例では、このような点は考慮されておらず、印刷ジョブを複数のプリンタごとに分割した後、各プリンタごとに書式設定等のデータ展開を行なっていた。
【０００７】
また、磁気ディスク装置等の大容量記憶装置を内蔵している高級機を除いて、一般のプリンタでは内蔵されている記憶容量が少ない。そのため、多くの場合、１部数分の全プリンタデータを記憶させておくことができないので、ページ並べ替えの手間を省略するために、部数単位での分散印刷を行う場合には、プリンタ内でのビットマップ展開を含めて、印刷ジョブのプリンタデータへの展開を印刷部数分繰り返す必要があった。
【０００８】
本発明の課題は、印刷ジョブを分割して同一形式のプリンタデータに対応した複数台のプリンタで分散して印刷を行う場合に、任意の分割パターンに対して、印刷ジョブからプリンタデータへの展開処理を削減して印刷の高速化を図ることである。
【０００９】
【課題を解決するための手段】
本発明は、上記課題を解決するために、印刷ジョブを複数のプリンタごとに分割する前に、前記印刷ジョブのうち１部数分のみをページ単位のプリンタデータに全展開して一旦記憶し、記憶したページ単位のプリンタデータの中から、前記複数のプリンタの各々に割り当てられたページに対応するプリンタデータを読み出し、読み出したプリンタデータを分割パターンに応じて再構成して編集するとともに印刷枚数を設定して前記複数のプリンタごとにひとかたまりのプリンタデータとして処理される分散ジョブを作成し、分散ジョブを前記複数のプリンタの各々に送信して印刷する分散印刷方法を提案する。
【００１０】
本発明によれば、印刷ジョブを複数のプリンタごとに割り当てる分割を行なう前に、先に一括してデータ展開を行なうことにより、従来のように、プリンタごとに分割した後、それぞれプリンタごとにデータ展開を行なうのに比較して、データ展開の処理が１回ですむため、分散印刷処理の高速化が可能となる。
【００１１】
本発明は、また、印刷ジョブを複数のプリンタごとに分割する前に、前記印刷ジョブのうち１部数分のみをページ単位のプリンタデータに全展開して一旦記憶し、記憶したページ単位のプリンタデータの中から、前記複数のプリンタの各々に割り当てられたページに対応するプリンタデータを読み出し、読み出したプリンタデータを分割パターンに応じて再構成して編集するとともに印刷枚数を設定して前記複数のプリンタごとにひとかたまりのプリンタデータとして処理される分散ジョブを作成し各プリンタに対応するスプーラに一旦記憶し、各スプーラに記憶した分散ジョブを対応するプリンタに送信して印刷する分散印刷方法を提案する。
【００１２】
本発明によれば、印刷部数や分割パターンなどに拘らず、印刷ジョブのプリンタデータへの展開が１部数分ですむため、分散印刷処理の高速化が可能となり、さらに、分散印刷するプリンタデータがひとかたまりのデータとして処理されるため、他の割り込み印刷を排除して印刷することが可能となる。また、プリンタデータの形式をビットマップ展開されたラスタ形式データとすることにより、従来、プリンタごとに行なっていた最も時間のかかるビットマップ展開を繰り返す必要がなくなる。
【００１３】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して説明する。図１は、本発明方法による第１の実施形態である分散印刷システムの構成を示している。
【００１４】
まず、本実施形態の概略を説明する。パーソナル・コンピュータ（ＰＣ）１と複数のプリンタ３Ａ〜３Ｂがネットワーク２によって接続されている。ＰＣ１には印刷ジョブを含むアプリケーション６が入力されており、これらのアプリケーションの実行やＰＣ１の各種動作をオペレーティングシステム７で管理する。
【００１５】
本実施形態では、オペレーティングシステム７によって分散印刷管理ドライバ８に送られた分割前の印刷ジョブは、プリンタドライバ１３を介してプリンタ３Ａ〜３Ｂに対応したプリンタデータに一括して変換され、これをプリンタコマンドデータとして記憶装置１４に記憶する。
【００１６】
そして、分散管理ドライバ８によって、このプリンタコマンドデータを呼び出し、共通のヘッダやフッタを削除するなどして各プリンタに対応した分散ジョブを編集する。本実施形態ではプリンタコマンドデータがプリンタデータに対応する。
【００１７】
このように、本実施形態によれば、あらかじめ印刷ジョブをプリンタデータに一括して展開した後に複数のプリンタに割り当てるため、複数のプリンタに割り当てた後、個々のプリンタごとに書式設定等の展開を行なっていた従来方式に比較して、データ展開が１回で済むので、分散印刷の高速化が図られる。
【００１８】
ＰＣ１の動作をさらに詳述する。ＰＣ１ではオペレーティングシステム７の管理の下でアプリケーション６が実行されている。アプリケーション６は、例えばワードプロセッサや表計算プログラム等であり、ユーザからの印刷命令により、印刷ジョブをオペレーティングシステム７を介して分散印刷管理ドライバ８に送り出す。
【００１９】
分散印刷管理ドライバ８は、仮想的に分散プリンタのプリンタドライバとしてオペレーティングシステム７に登録されており、また、この分散プリンタをアプリケーション６からはプリンタ３Ａ〜３Ｃと同様に印刷プリンタとして選択できるようになっており、本例では、アプリケーション６からの印刷ジョブは、この分散プリンタを印刷プリンタとして選択し、分散印刷管理ドライバ８を介して処理される。
【００２０】
分散印刷管理ドライバ８は、まず、印刷部数に拘らず、受け取った印刷ジョブのうち、１部数分のみをページ単位で分割し、プリンタドライバ１３を介してプリンタ３Ａ〜３Ｃに対応したプリンタコマンドデータに変換して記憶装置１４に記憶する。その後、分散印刷管理ドライバ８は、プリンタ３Ａ〜３Ｃの各々に割り当てられたページのプリンタコマンドデータを読み出して、プリンタ毎の分散ジョブを編集する。
【００２１】
この分散ジョブをプリンタに直接送信すると、送信速度によってはシステムの他の機能が一時的に停止する場合がある。そこで、編集した分散ジョブをスプーラ９Ａ〜９Ｃにいったん貯留した後、ＰＣ１とネットワーク２の間のデータの送受信を制御するネットワークインタフェース１２を経て、プリンタ３Ａ〜３Ｃに送信し、印刷が実行される。
【００２２】
図１に示したシステム構成において、印刷部数や分割パターンに拘らず、分散印刷管理ドライバ８が、印刷ジョブのうち１部数分のみをページ単位のプリンタコマンドデータに展開し、分割パターンに応じて再構成してプリンタ各々の分散ジョブを作成することにより、分散印刷処理の高速化が可能となる。なお、印刷ジョブをひとかたまりのプリンタデータとして処理するため、他の割り込み印刷を排除できるという効果もある。
【００２３】
以下、図２を参照して本実施形態の分散印刷管理ドライバについて詳述する。
図２は、第１の実施形態における分散印刷管理ドライバ８の動作手順の一例の流れ図を示す。なお、図中のＳ１〜Ｓ９はステップ番号を示している。
【００２４】
まず、アプリケーション６において印刷命令が実行された時点で動作が開始され（開始）、オペレーティングシステム７によって分散印刷管理ドライバ８が起動される（Ｓ１）。分散印刷管理ドライバ８は、起動された直後に、分割パターンや印刷プリンタの指定および、場合によっては印刷パラメータの設定などを行う（Ｓ２）。
【００２５】
次に、アプリケーション７から入力された印刷ジョブのうち、１部数分のみをページ単位に分割し（Ｓ３）、プリンタドライバ１３を用いてプリンタコマンドデータに変換し、記憶装置１４に記憶する（Ｓ４）。
【００２６】
全ページのプリンタコマンドデータへの展開が終了し、記憶装置１４に記憶したら、指定されたプリンタのうちの１つを選択し（Ｓ５）、選択プリンタで印刷指定されているページのプリンタコマンドデータを記憶装置１４から読み出す（Ｓ６）。
【００２７】
その後、読み出した各プリンタコマンドデータのヘッダおよびフッタ部を編集して選択プリンタに対応した分散ジョブを作成し（Ｓ７）、選択プリンタに対応したスプーラに入力する（Ｓ８）。
【００２８】
未処理の指定プリンタがある場合には（Ｓ９）、Ｓ５〜Ｓ８を繰り返し、すべての指定プリンタに対する処理が終了したら、分散印刷管理ドライバ８の動作を終了する（終了）。
【００２９】
図３に、第１の実施形態における分散ジョブ編集の一例を示す。図３は、ページ単位で展開されて記憶されたプリンタコマンドデータのページ１からページｎまでを読み出して編集し、１台のプリンタ３Ａの分散ジョブを作成している例である。ここで編集を行っているのは、共通ヘッダおよび共通フッタの重複部分の削除と、分割パターンの設定に応じた各ページの枚数設定とである。
【００３０】
一般に、プリンタコマンドデータには、実際に印画するための描画データの他に、各種設定を行うためのヘッダおよびフッタ部が存在する。ヘッダは、例えば解像度や用紙サイズ等の印刷ジョブ全体で共通な共通ヘッダと、用紙方向や印刷枚数等のページごとに異なる個別ヘッダから構成されており、同様にフッタも、ジョブ終了コマンド等の共通フッタと改ページ等の個別フッタとに分けられる。
【００３１】
このうち、共通ヘッダは分散ジョブの先頭に、共通フッタは分散ジョブの最後の部分にのみ必要であるため、その他の重複する部分は削除する。また、個別ヘッダの中にも、前ページの設定を引き継ぐ場合には省略可能なものがあり、その部分は削除可能である。
【００３２】
なお、上記実施形態では、印刷ジョブをページ単位に分割して各ページのプリンタコマンドデータに展開しているが、これは、印刷ジョブの１部数分をまとめてプリンタコマンドデータに展開し、１部数分のプリンタコマンドデータをページごとに分割するようにしてもよい。
【００３３】
また、ページ単位のプリンタコマンドデータを記憶させるときに、共通ヘッダおよび共通フッタを削除しておき、編集時に別途記憶させておいた共通ヘッダおよび共通フッタと組み合わせるようにしてもよい。
【００３４】
ところで、プリンタコマンドデータの形式は、プリンタドライバでビットマップまでの展開を行っているラスタデータ形式のものと、プリンタ固有の描画コマンド形式のデータに変換し、プリンタ内部で最終的にビットマップ展開を行う描画コマンド形式のものとに大別される。
【００３５】
印刷処理の中でビットマップ展開が最も時間がかかるため、本実施形態においては、プリンタコマンドデータがラスタデータ形式の場合において特に有効であり、プリンタ内部でビットマップ展開を繰り返す描画コマンド形式の場合には若干効果が低減する。
【００３６】
なお、描画コマンド形式のプリンタドライバの場合にも、ラスタデータ形式のモードを持つものもあり、その場合にはラスタデータ形式を選択することにより、本実施形態をより有効に機能させることができる。また、プリンタドライバが描画コマンド形式のみに対応している場合にも、以下のような構成にすることにより、本発明の効果を十分に発揮することが可能となる。
【００３７】
図４に、本発明の第２の実施形態である分散印刷システムの構成を示す。第２の実施形態では、印刷ジョブはプリントサーバ１６を介して、本例では２台のプリンタ３Ａ、３Ｂで印刷される構成になっており、分散印刷制御はプリントサーバ１６内で行われる。また、印刷ジョブのビットマップ展開は各々のプリンタ３Ａ、３Ｂ内部でのみ可能であるものとする。
【００３８】
図４において、第１の実施形態と同一のものは同じ符号で示している。ＰＣ１のスプーラ１５はプリントサーバ１６に対応する。また、プリントサーバ１６は、動作を管理するオペレーティングシステム１７、プリンタコマンドデータを処理して分散ジョブを生成する分散印刷管理プログラム１８、プリンタコマンドデータおよびページ単位のラスタデータを記憶しておく記憶装置１９などを有している。
【００３９】
プリンタ３Ａ、３Ｂは、それぞれの動作の管理およびプリンタコマンドデータの処理を行うプリンタコントローラ２０Ａ、２０Ｂ、およびプリンタコマンドデータやビットマップ展開されたラスタデータを記憶しておくデータメモリ２２Ａ、２２Ｂ、およびプリンタコントローラからのラスタデータを受けて実際に印刷を行うプリンタエンジン２４Ａ、２４Ｂを有している。
【００４０】
なお、各装置ともネットワークへの接続は、実際にはネットワークインタフェースを介して行うようになっているが、本実施形態では省略して説明を行っている。また、本実施形態においては、ラスタデータがプリンタデータに対応している。
【００４１】
ＰＣ１において、プリンタドライバ１３でプリンタコマンドデータに展開された印刷ジョブは、指定された分割パターンと共にスプーラ１５を介してプリントサーバ１６に送られ、記憶装置１９に書き込まれる。
【００４２】
分散印刷管理プログラム１８は、記憶装置１９からプリンタコマンドデータを１部数分読み出してページ単位に分割し、プリンタ３Ａ、３Ｂに送信する。プリンタ３Ａ、３Ｂでは、それぞれページ単位のプリンタコマンドデータをデータメモリ２２Ａ、２２Ｂに一旦記憶し、プリンタコントローラ２０Ａ、２０Ｂでビットマップ展開してラスタデータを作成し、プリントサーバ１６に送り返す。
【００４３】
プリントサーバ１６では、分散印刷管理プログラム１８が、送り返されてきたラスタデータをページ単位で記憶装置１９に書き込む。１部数分の全ページのラスタデータが揃ったら、分散印刷管理プログラム１８は、記憶装置１９から読み出した分割パターンにしたがって、ページ単位のラスタデータを記憶装置１９から読み出して、順次プリンタ３Ａ、３Ｂに送信して印刷を行う。
【００４４】
このように、本実施形態では、リアルタイムで分散ジョブの作成を行うようになっている。なお、分割パターンの印刷順序に合致する場合には、ビットマップ展開したラスタデータをプリントサーバに送り返す前に、印刷を実行するようにしてもよい。また、ラスタデータへの展開は１台のプリンタですべて行うようにし、その間、他のプリンタは別の印刷ジョブを印刷するようにすることも可能である。さらに、分割パターンの指定は、プリントサーバ１６上で行えるようにしてもよい。
【００４５】
上記第２の実施形態によれば、プリンタドライバが描画コマンド形式のみに対応している場合にも、ビットマップ展開を最小限に押さえることができ、分散印刷処理の高速化を図ることができる。
【００４６】
なお、分散印刷における分割パターンとしては、部数単位分割やページ単位分割等の他に、部数分割とページ分割を組み合わせたパターンも必要となる。例えば、同一機種のプリンタであっても、機差によって同一ページを印刷した場合に印刷結果が若干異なる。
【００４７】
そのため、見た目の統一性が重要視される特定のページのみ同一プリンタで印刷し、他のページは部数単位分割で分散印刷を行うような場合が考えられる。上記実施形態では、このような場合を含めた任意の分割パターンに対して対応可能である。
【００４８】
また、第１の実施形態ではＰＣ上で、第２の実施形態ではプリントサーバ上で分散印刷制御を行うようになっているが、本発明はこのような構成に限定されるものではなく、分散印刷制御を行うのはワーク・ステーションやクライアント・サーバシステムのクライアントでもよく、アプリケーションからの印刷データを印刷するシステム上であればどこであっても構わない。
【００４９】
さらに、第１の実施形態では３台のプリンタの場合、第２の実施形態では２台のプリンタの場合について記述しているが、本発明はそれ以上のプリンタの場合にも適用可能なことは明らかである。
【００５０】
以上説明したように、これらの実施形態によれば、印刷ジョブをページ単位のプリンタデータに展開して一旦記憶し、その中から割り当てられたページに対応するプリンタデータを読み出して編集し、プリンタ各々に対応したプリンタデータをコマンドデータとして作成して送信することにより、印刷部数や分割パターンに拘らず、印刷ジョブのプリンタデータへの展開が１部数分ですむため、分散印刷処理の高速化が可能となる。
【００５１】
さらに、プリンタデータの形式を、ビットマップ展開されたラスタ形式データとすることにより、最も時間のかかるビットマップ展開を繰り返す必要がなくなる。
【００５２】
【発明の効果】
上述のとおり、本発明によれば、印刷ジョブを分割して同一形式のプリンタデータに対応した複数台のプリンタで分散して印刷を行う場合に、任意の分割パターンに対して印刷ジョブからプリンタデータへの展開処理を削減して印刷の高速化を図ることが可能となる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態である分散印刷システムの構成を示す図である。
【図２】本発明の第１の実施形態における分散印刷管理ドライバの動作手順の一例を示す図である。
【図３】本発明の第１の実施形態における分散ジョブ作成の一例を示す図である。
【図４】本発明の第２の実施形態である分散印刷システムの構成を示す図である。
【符号の説明】
１  パーソナル・コンピュータ
２  ネットワーク
３  プリンタ
８  分散印刷管理ドライバ
１３  プリンタドライバ
１４、１９  記憶装置
１６  プリントサーバ
１８  分散印刷管理プログラム
２０  プリンタコントローラ
【図１】
0004567911.tif 000002
【図２】
0004567911.tif 000003
【図３】
0004567911.tif 000004
【図４】
0004567911.tif 000005