(57)【要約】【課題】  複数部数の印刷を従来よりも効率よく行えるようにする。【解決手段】  バンド重要度テーブルにより、削除するバンドの順番を予め定義しておく。そして、あるバンドにおける新たなプリンタコマンドを保存した後のハードディスク１０６の空き容量Ｄが閾値以下になると、ハードディスク１０６に保存済みのプリンタコマンドを、定義しておいたバンド重要度に従ってバンド単位で削除する。そして、ハードディスク１０６の空き容量Ｄが閾値よりも大きくなると、新たなプリンタコマンドをバンド単位でハードディスク１０６に保存する。二部目以降の印刷を制御するに際し、ハードディスク１０６に保存されているプリンタコマンドについてはプリンタ２００に送信し、保存されていないプリンタコマンドについては再度生成する。【選択図】  図３
2010033283.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置を有し、複数部を指定する印刷要求に基づくプリンタでの印刷に用いるプリントコマンドを供給する印刷制御装置であって、
前記印刷要求に基づき、バンド単位でプリントコマンドを生成する生成手段と、
前記生成手段により生成されたプリントコマンドをプリンタに対して送信する送信手段と、
前記複数部の一部目の印刷の制御において、前記生成手段により生成されたプリントコマンドを前記記憶装置にバンド単位で記憶する記憶制御手段とを有し、
前記複数部の二部目の印刷において、
前記記憶制御手段により前記記憶装置に記憶されたプリントコマンドについては、当該プリントコマンドを前記送信手段によりプリンタに対して送信し、前記記憶制御手段により前記記憶装置に記憶されていないプリントコマンドについては、前記生成手段によりプリントコマンドを再度生成し、当該再度生成されたプリントコマンドを前記送信手段によりプリンタに対して送信することを特徴とする印刷制御装置。
【請求項２】
前記記憶装置に記憶するバンドの優先度を設定する設定手段と、
前記記憶装置の空き容量を判定する判定手段とを有し、
前記記憶制御手段は、前記プリントコマンドが前記記憶装置に記憶されることで前記判定手段により前記空き容量が閾値以下になると判定された場合、前記記憶装置に既に記憶したプリントコマンドのうち、前記優先度が相対的に低いバンドのプリントコマンドを削除することを特徴とする請求項１に記載の印刷制御装置。
【請求項３】
前記記憶装置に記憶するバンドの優先度を設定する設定手段を有し、
前記記憶制御手段は、前記優先度に基づいて、前記記憶装置に記憶するバンドを決定し、前記プリントコマンドのうち、当該決定したバンドのプリントコマンドを前記記憶装置に記憶することを特徴とする請求項１に記載の印刷制御装置。
【請求項４】
前記設定手段は、前記印刷を行うページに対して設定された複数のバンドのうち、相対的に先に給紙されるバンドに対する前記優先度が相対的に低くなるように、前記優先度を設定することを特徴とする請求項２又は３に記載の印刷制御装置。
【請求項５】
前記設定手段は、前記印刷を行うページに対して設定された複数のバンドのうち、最初に給紙されるバンドよりも後に給紙される連続する少なくとも３つのバンドについては、前記優先度の高い部分と低い部分とが交互に生じるように、前記優先度を設定することを特徴とする請求項２又は３に記載の印刷制御装置。
【請求項６】
前記設定手段は、前記印刷を行うページに対して設定された複数のバンドのうち、相対的に描画処理に時間を要するバンドに対する前記優先度が高くなるように、前記優先度を設定することを特徴とする請求項２又は３に記載の印刷制御装置。
【請求項７】
前記設定手段は、前記プリントコマンドに対するハーフトーンの処理が誤差拡散法で行われた場合の前記優先度として、前記印刷を行うページに対して設定された複数のバンドのうち、前記ハーフトーンの処理が相対的に先に行われたバンドに対する前記優先度が相対的に低くなるように、前記優先度を設定することを特徴とする請求項２又は３に記載の印刷制御装置。
【請求項８】
前記設定手段は、前記プリントコマンドがスキャナーの読み取り動作によって生成された場合の前記優先度として、前記印刷を行うページに対して設定された複数のバンドのうち、相対的に先にスキャンされるバンドに対する前記優先度が相対的に低くなるように、前記優先度を設定することを特徴とする請求項２又は３に記載の印刷制御装置。
【請求項９】
前記記憶制御手段は、前記印刷に使用されるプリントコマンドのうち、描画領域を含むバンドのプリントコマンドを前記記憶装置に記憶することを特徴とする請求項１に記載の印刷制御装置。
【請求項１０】
記憶装置を有し、複数部を指定する印刷要求に基づくプリンタでの印刷に用いるプリントコマンドを供給する印刷システムにおける印刷制御方法であって、
前記印刷要求に基づき、バンド単位でプリントコマンドを生成する生成工程と、
前記生成工程で生成されたプリントコマンドをプリンタに対して送信する送信工程と、
前記複数部の一部目の印刷の制御において、前記生成工程で生成されたプリントコマンドを前記記憶装置にバンド単位で記憶する記憶制御工程とを有し、
前記複数部の二部目の印刷において、
前記記憶制御工程で前記記憶装置に記憶されたプリントコマンドについては、当該プリントコマンドをプリンタに対して送信し、前記記憶制御工程で前記記憶装置に記憶されていないプリントコマンドについては、プリントコマンドを再度生成し、当該再度生成されたプリントコマンドをプリンタに対して送信することを特徴とする印刷制御方法。
【請求項１１】
前記記憶装置に記憶するバンドの優先度を設定する設定工程と、
前記記憶装置の空き容量を判定する判定工程とを有し、
前記記憶制御工程は、前記プリントコマンドが前記記憶装置に記憶されることで前記判定工程により前記空き容量が閾値以下になると判定された場合、前記記憶装置に既に記憶したプリントコマンドのうち、前記優先度が相対的に低いバンドのプリントコマンドを削除することを特徴とする請求項１０に記載の印刷制御方法。
【請求項１２】
前記記憶装置に記憶するバンドの優先度を設定する設定工程を有し、
前記記憶制御工程は、前記優先度に基づいて、前記記憶装置に記憶するバンドを決定し、前記プリントコマンドのうち、当該決定したバンドのプリントコマンドを前記記憶装置に記憶することを特徴とする請求項１０に記載の印刷制御方法。
【請求項１３】
前記設定工程は、前記印刷を行うページに対して設定された複数のバンドのうち、相対的に先に給紙されるバンドに対する前記優先度が相対的に低くなるように、前記優先度を設定することを特徴とする請求項１１又は１２に記載の印刷制御方法。
【請求項１４】
前記設定工程は、前記印刷を行うページに対して設定された複数のバンドのうち、最初に給紙されるバンドよりも後に給紙される連続する少なくとも３つのバンドについては、前記優先度の高い部分と低い部分とが交互に生じるように、前記優先度を設定することを特徴とする請求項１１又は１２に記載の印刷制御方法。
【請求項１５】
前記設定工程は、前記印刷を行うページに対して設定された複数のバンドのうち、相対的に描画処理に時間を要するバンドに対する前記優先度が高くなるように、前記優先度を設定することを特徴とする請求項１１又は１２に記載の印刷制御方法。
【請求項１６】
前記設定工程は、前記プリントコマンドに対するハーフトーンの処理が誤差拡散法で行われた場合の前記優先度として、前記印刷を行うページに対して設定された複数のバンドのうち、前記ハーフトーンの処理が相対的に先に行われたバンドに対する前記優先度が相対的に低くなるように、前記優先度を設定することを特徴とする請求項１１又は１２に記載の印刷制御方法。
【請求項１７】
前記設定工程は、前記プリントコマンドがスキャナーの読み取り動作によって生成された場合の前記優先度として、前記印刷を行うページに対して設定された複数のバンドのうち、相対的に先にスキャンされるバンドに対する前記優先度が相対的に低くなるように、前記優先度を設定することを特徴とする請求項１１又は１２に記載の印刷制御方法。
【請求項１８】
前記記憶制御工程は、前記印刷に使用されるプリントコマンドのうち、描画領域を含むバンドのプリントコマンドを前記記憶装置に記憶することを特徴とする請求項１０に記載の印刷制御方法。
【請求項１９】
請求項１０〜１８の何れか１項に記載の印刷制御方法の各工程をコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷制御装置、印刷制御方法、及びコンピュータプログラムに関し、特に、複数部数の印刷を行うために用いて好適なものである。
【背景技術】
【０００２】
ホストコンピュータから送られてくるラスタイメージに基づいて、プリンタ装置によりプリントを行うプリントシステムが知られている。ホストコンピュータでは、ラスタイメージを展開するに際して、次の処理が行われる。まず、ホストコンピュータのアプリケーションソフトウェアにより作成された文字、グラフィックス、写真等のデータは、一旦、ホストコンピュータのプリンタドライバによりホストコンピュータの仮想的なページメモリに展開される。そして、ページメモリに展開されたデータは、色変換やハーフトーン処理が行われた後にプリントコマンドとしてプリンタに送信される。尚、以下の説明では、アプリケーションソフトウェアを、必要に応じて、単にアプリケーションと称する。
【０００３】
このようなプリントシステムの場合、ホストコンピュータ側の処理負荷は非常に大きくなる。このため、複数部数の印刷を行う場合、従来は、特許文献１に記載の技術のようにしていた。すなわち、まず、一部目の印刷の際に作成された処理後のプリンタコマンドを一旦ハードディスク等の補助記憶装置に保存する。そして、二部目以降の印刷に際しては、補助記憶装置に保存したプリンタコマンドをプリンタに送信する。
この際、補助記憶装置の空き容量よりも、プリンタコマンドのデータサイズの方が大きく、プリントコマンドを補助記憶装置に保存できない場合がある発生する。このような場合には、１ページ分の印刷データを記憶するだけの空き容量が補助記憶装置にある場合にのみプリンタコマンドを保存し、そうでない場合にはプリントコマンドを保存しないようにしている。
【０００４】
【特許文献１】特開平６−２０２８２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、電子化の影響でドキュメントのページ数が増えているだけでなく、プリンタの高解像度化からページ毎のプリンタコマンド（プリントイメージデータ）のサイズが大きくなっている。したがって、補助記憶装置に全てのページのプリンタコマンドを補助記憶装置に保存できないケースが増えてきている。その結果、一部のページ分しかプリンタコマンドを補助記憶装置に保存できないため、保存できなかったページについては、二部目以降も高速に印刷できないという問題があった。
また、印刷中にはアプリケーションやOperating System（以下の説明では、単にＯＳと称する）も非常に多くの補助記憶装置を用いる。このため、補助記憶容量の空き容量の全てを使いきってしまうと、アプリケーションやＯＳの動作を阻害してしまいシステムが不安定になる要因となってしまう。
【０００６】
その他にも、システムの多様化によって、補助記憶装置の容量が充分無く、１ページ分のプリンタコマンドすら保存できないケースが発生している。例えば、携帯電話やゲーム機等をホストコンピュータとして使用する印刷を行う場合に、このようなケースが発生する。ホストコンピュータとして使用される携帯電話やゲーム機等には補助記憶装置が無く、プリンタコマンドを保存する場合には、ホストコンピュータ側又はプリンタ側の主記憶装置に保存するしかない。しかしながら、主記憶装置に保存できる容量は非常に小さく、１ページ分のプリンタコマンドすら保存できないことが多い。
また、スキャナーと一体になったプリンタであって、補助記憶装置を持たない安価な複合プリンタが、近年急速に普及している。この複合プリンタは補助記憶装置を持たないので、スキャナーからプリンタにダイレクトに複数部数のコピーを行う場合、プリンタコマンドを複合プリンタ本体の主記憶装置に保存するしかない。しかしながら、主記憶装置の容量は小さいため、１ページ分のプリンタコマンドを保存することができないことが多い。
【０００７】
本発明は、以上のような問題点に鑑みてなされたものであり、複数部数の印刷を従来よりも効率よく行えるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
本発明の印刷制御装置は、記憶装置を有し、複数部を指定する印刷要求に基づくプリンタでの印刷に用いるプリントコマンドを供給する印刷制御装置であって、前記印刷要求に基づき、バンド単位でプリントコマンドを生成する生成手段と、前記生成手段により生成されたプリントコマンドをプリンタに対して送信する送信手段と、前記複数部の一部目の印刷の制御において、前記生成手段により生成されたプリントコマンドを前記記憶装置にバンド単位で記憶する記憶制御手段とを有し、前記複数部の二部目の印刷において、前記記憶制御手段により前記記憶装置に記憶されたプリントコマンドについては、当該プリントコマンドを前記送信手段によりプリンタに対して送信し、前記記憶制御手段により前記記憶装置に記憶されていないプリントコマンドについては、前記生成手段によりプリントコマンドを再度生成し、当該再度生成されたプリントコマンドを前記送信手段によりプリンタに対して送信することを特徴とする。
【０００９】
本発明の印刷制御方法は、記憶装置を有し、複数部を指定する印刷要求に基づくプリンタでの印刷に用いるプリントコマンドを供給する印刷システムにおける印刷制御方法であって、前記印刷要求に基づき、バンド単位でプリントコマンドを生成する生成工程と、前記生成工程で生成されたプリントコマンドをプリンタに対して送信する送信工程と、前記複数部の一部目の印刷の制御において、前記生成工程で生成されたプリントコマンドを前記記憶装置にバンド単位で記憶する記憶制御工程とを有し、前記複数部の二部目の印刷において、前記記憶制御工程で前記記憶装置に記憶されたプリントコマンドについては、当該プリントコマンドをプリンタに対して送信し、前記記憶制御工程で前記記憶装置に記憶されていないプリントコマンドについては、プリントコマンドを再度生成し、当該再度生成されたプリントコマンドをプリンタに対して送信することを特徴とする。
【００１０】
本発明のコンピュータプログラムは、前記印刷制御方法の各工程をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、一部目の印刷を制御する際に、当該印刷に使用されるプリントコマンドをバンド単位で生成して記憶する。二部目以降の印刷を制御する際に、記憶したプリントコマンドについては、当該プリンタコマンドをプリンタに送信し、記憶していないプリントコマンドについては、当該プリントコマンドを再度生成する。したがって、印刷対象の全てのプリントコマンドを保存できない場合でも、従来より効率的にプリントコマンドを保存し再利用することができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して、本発明の好適な実施形態を詳しく説明する。尚、以下の各実施形態は特許請求の範囲に記載の本発明を限定するものでなく、また、以下の各実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１３】
＜第１の実施形態＞
まず、本発明の第１の実施形態について説明する。
図１は、プリントシステム（印刷システム）の構成の一例を示す図である。図２は、ホストコンピュータの機能的な構成の一例を示す図である。図１、図２では、ホストコンピュータ１００とプリンタ２００とを相互に接続して構成したプリントシステムを例に挙げて示している。
まず、ホストコンピュータ１００について説明する。ホストコンピュータ１００は、ＣＰＵ１０１と、ＲＯＭ１０２と、ＲＡＭ１０３と、キーボード１０４と、ディスプレイ１０５と、ハードディスク１０６とがシステムバスを介して相互に接続されて構成されている。
【００１４】
ＲＯＭ１０２にはブートプログラムが格納されている。ＲＡＭ１０３は、主メモリとワークエリアとして用いられ、バンドメモリ１０７を有する。バンドメモリ１０７は、印刷対象となるページのバンド領域のデータをイメージデータに展開するためのものである。また、ＲＡＭ１０３は、プリンタコマンドファイル管理テーブル１０９を有する。プリンタコマンドファイル管理テーブル１０９は、ページ番号と、バンド位置と、プリンタコマンドファイル１０８のファイル名とを相互に関連付けて登録するテーブルである。
【００１５】
補助記憶装置の一例であるハードディスク１０６は、制御プログラムを格納する他、ワークエリアとしても用いられる、また、ハードディスク１０６には、プリンタコマンドファイル１０８が格納されている。
ＣＰＵ１０１は、ハードディスク１０６に格納された制御プログラムに従って各部を制御するものである。キーボード１０４は、コマンドを発行するためのものである。ディスプレイ１０５は、処理結果等を表示するためのものである。
【００１６】
次に、プリンタ２００について説明する。プリンタ２００は、入出力部２０１と、ＲＡＭ２０２と、プリント部２０３とを有する。
入出力部２０１は、双方向インタフェースを介してホストコンピュータ１００に接続されており、データ通信処理を制御するものである。ＲＡＭ２０２は、入出力部２０１で受信されたプリンタコマンドを記憶するためのものである。プリント部２０３は、ＲＡＭ２０２に記憶されたプリンタコマンドに基づきプリントを行うものである。
【００１７】
図２において、アプリケーション３１０は、キーボード１０４を使って行われたオペレータの印刷要求により作成した文字、イメージ、図形等の描画データを、ＯＳ３２０を介してプリンタドライバ３３０に送り、その描画データのプリンタ２００への出力を要求する。
図３は、描画データの一例であるページイメージの一例と、そのページイメージから作成されるバンドイメージの一例を説明する図である。
所謂ダムプリンタ又はビデオプリンタの場合、ホストコンピュータ１００は、プリンタ２００の解像度に合わせて、イメージデータであるページイメージ４０１に描画コマンドを展開した後、プリンタ２００に送る。この際、本実施形態では、図３に示すように、ページイメージ４０１は、複数のバンドイメージ４０２ａ〜４０２ｅに分解され、それらのバンドイメージ４０２ａ〜４０２ｅがバンドメモリ１０７に展開された後に、プリンタ２００に出力される。
【００１８】
図４は、複数部数の一部目の印刷を行う際のプリンタドライバ３３０における処理の一例を説明するフローチャートである。この処理では、全ページの印刷データをバンド単位でバンドイメージ４０２に展開した後、バンドイメージ４０２を、印刷データの一例であるプリンタコマンドに変換してプリンタ２００に送信する。そして、これと略同時に、バンドイメージ４０２ａ〜ｅ（バンド毎）のプリンタコマンドを、プリンタコマンドファイル１０８としてハードディスク１０６に保存する。
アプリケーション３１０がＯＳ３２０に描画コマンドの出力命令を行うと、プリンタドライバ３３０のページ・バンド管理部３３１が、バンド毎の描画コマンドを受け取る。そして、描画処理部３３２は、描画コマンドをバンド毎にバンドメモリ１０７に描画する。
【００１９】
まず、ステップＳ１０１において、ページ・バンド管理部３３１は、印刷するページを示すページ番号Ｐｎを０で初期化する。
次に、ステップＳ１０２において、ページ・バンド管理部３３１は、ページ番号Ｐｎをページ毎に１ずつ増やす。
次に、ステップＳ１０３において、ページ・バンド管理部３３１は、各ページにおけるバンドの位置を示すバンド位置Ｂｎを０で初期化する。
次に、ステップＳ１０４において、ページ・バンド管理部３３１は、バンド位置Ｂｎをバンド毎に１ずつ増やす。
【００２０】
次に、ステップＳ１０５において、プリンタドライバ３３０は、描画コマンドをバンド毎にプリンタコマンドに変換してプリンタ２００に送信する。
具体的にステップＳ１０５では、まず、ページ・バンド管理部３３１は、ページ番号Ｐｎ及びバンド位置Ｂｎに対応する描画コマンドを受け取る。次に、描画処理部３３２は、その描画コマンドをバンドイメージ４０２としてバンドメモリ１０７に展開する。バンドイメージ４０２は、通常、標準的な色空間であるｓＲＧＢデータである。このため、色変換処理部３３３は、バンドイメージ４０２を、ｓＲＧＢデータからプリンタ２００の色空間のＲＧＢデータに変換した後、プリンタ２００のインクの色空間であるＣＭＹＫイメージデータへ変換する。
【００２１】
次に、ハーフトーン処理部３３４は、ＣＭＹＫイメージデータに変換されたバンドイメージ４０２のデータを、擬似階調処理であるハーフトーン処理を行ってプリンタ２００の階調に変換する。そして、プリンタコマンド生成部３３５は、ハーフトーン処理が行われた後のＣＭＹＫイメージデータをプリンタコマンドに変換する。ここでは、主にハーフトーン処理が行われた後のイメージのデータサイズを減らすためのデータ圧縮やコマンドの付加等が行われる。そして、プリンタコマンド出力部３３６は、作成されたプリンタコマンドをプリンタ２００に出力する。
【００２２】
次に、プリンタコマンドファイル制御部３３７が、ステップＳ１０５で作成されたプリンタコマンドをプリンタコマンドファイル１０８としてハードディスク１０６に保存する。まず、プリンタコマンドファイル制御部３３７は、プリンタコマンドファイル１０８を保存するだけのディスクの空き容量が、ハードディスク１０６にあるか否かを判定する。
具体的にステップＳ１０６において、プリンタコマンドファイル制御部３３７は、プリンタコマンドファイル１０８を保存した後のハードディスク１０６の空き容量Ｄを求める。空き容量Ｄは、保存前のハードディスク１０６の空き容量から、ステップＳ１０５で作成されたプリンタコマンドファイル１０８のサイズを減算した値として求めることができる。尚、ハードディスク１０６の空き容量は、通常、ＯＳ３２０が提供している機能を用いることで求めることができる。
【００２３】
次に、ステップＳ１０７において、プリンタコマンドファイル制御部３３７は、ステップＳ１０６で求められた、ハードディスク１０６の空き容量Ｄが、予め用意された閾値Ｄｔｈよりも大きいか否かを判定する。ハードディスク１０６は、プリンタドライバ３３０と並行して処理を行っているアプリケーション３１０やＯＳ３２０も使用する。このため、閾値Ｄｔｈの値として、ある程度大きな値を指定する必要がある。全てのハードディスク１０６の空き容量を使い切ってしまうと、アプリケーション３１０やＯＳ３２０の動作が阻害されてしまいシステムが不安定になる要因となってしまうためである。しかしながら、閾値Ｄｔｈを大きくし過ぎると、プリンタコマンドファイル１０８を保存できるバンド数が減るために、効率良くハードディスク１０６を使用しないと、処理速度が低下してしまう。本実施形態では、これらのバランスを考慮して閾値Ｄｔｈが予め定められる。
【００２４】
ステップＳ１０７の判定の結果、ハードディスク１０６の空き容量Ｄが閾値Ｄｔｈ以下である場合には、ステップＳ１０８に進む。ステップＳ１０８に進むと、プリンタコマンドファイル制御部３３７は、ハードディスク１０６の空き容量に応じて、既に保存されているプリンタコマンドファイル１０８であって、優先度が相対的に低いバンドのプリンタコマンドファイル１０８を削除する。このステップＳ１０８の処理の詳細については後述する。
次に、ステップＳ１０９において、プリンタコマンドファイル制御部３３７は、ステップＳ１０８でプリンタコマンドファイル１０８を削除した結果、ハードディスク１０６の空き容量Ｄが閾値Ｄｔｈよりも大きくなったか否かを判定する。具体的にステップＳ１０９では、プリンタコマンドファイル制御部３３７は、ステップＳ１０８の処理結果として設定されるReturnの値が１かどうかを判定する。この判定の結果、Returnの値が０である場合（ＮＯ）には、プリンタコマンドファイル１０８を保存するだけの空き容量がハードディスク１０６にないので、ステップＳ１１０、Ｓ１１１の処理を行わずに、後述するステップＳ１１２に進む。
【００２５】
一方、ステップＳ１０９において、Returnの値が１であると判定された場合と、前述したステップＳ１０７において、ハードディスク１０６の空き容量Ｄが閾値Ｄｔｈよりも大きいと判定された場合には、ステップＳ１１０に進む。ステップＳ１１０に進む場合には、プリンタコマンドファイル１０８を保存するだけの空き容量がハードディスク１０６にあることになる。ステップＳ１１０では、プリンタコマンドファイル制御部３３７は、ステップＳ１０５で作成した“バンド位置Ｂｎのプリンタコマンド”をプリンタコマンドファイル１０８としてハードディスク１０６に保存する。このようにして、プリンタコマンドファイル制御部３３７は、ハードディスク１０６に対するプリンタコマンドファイル１０８の記憶制御を行う。
【００２６】
次に、ステップＳ１１１において、プリンタコマンドファイル制御部３３７は、ステップＳ１１０で保存したプリンタコマンドファイル１０８のファイル名を、ＲＡＭ１０３に記憶されているプリンタコマンドファイル管理テーブル１０９に保存する。そして、ステップＳ１１２に進む。前述したように、プリンタコマンドファイル管理テーブル１０９には、ページ番号Ｐｎ及びバンド位置Ｂｎに対するプリンタコマンドファイル１０８のファイル名が登録される。尚、プリンタコマンドファイル管理テーブル１０９は、必ずしもＲＡＭ１０３に記憶されている必要はない。例えば、プリンタコマンドファイル１０８と同じハードディスク１０６にプリンタコマンドファイル管理テーブル１０９を作成することも可能である。
【００２７】
ステップＳ１１２に進むと、ページ・バンド管理部３３１は、現在のページ番号Ｐｎの全てのバンドについて、ステップＳ１０４〜Ｓ１１１の処理を行ったか否かを判定する。すなわち、ページ・バンド管理部３３１は、現在のページ番号Ｐｎの全てのバンドについて、プリンタコマンドの作成と、プリンタコマンドのプリンタ２００への送信と、プリンタコマンドのハードディスク１０６への保存とが終了したか否かを判定する。この判定の結果、現在のページ番号Ｐｎの全てのバンドについて、ステップＳ１０４〜Ｓ１１１の処理を行っていない場合には、処理を行うまで、ステップＳ１０４〜Ｓ１１２の処理を繰り返し行う。
【００２８】
そして、現在のページ番号Ｐｎの全てのバンドについて、ステップＳ１０４〜Ｓ１１１の処理を行うと、ステップＳ１１３に進む。ステップＳ１１３に進むと、ページ・バンド管理部３３１は、全てのページ番号Ｐｎ（全てのページ）について、ステップＳ１０２〜Ｓ１１２の処理を行ったか否かを判定する。すなわち、ページ・バンド管理部３３１は、全てのページ番号Ｐｎ（全てのページ）について、プリンタコマンドの作成と、プリンタコマンドのプリンタ２００への送信と、プリンタコマンドのハードディスク１０６への保存とが終了したか否かを判定する。
この判定の結果、全てのページ番号Ｐｎ（全てのページ）について、ステップＳ１０２〜Ｓ１１２の処理を行っていない場合には、処理を行うまで、ステップＳ１０２〜Ｓ１１３の処理を繰り返し行う。
そして、全てのページ番号Ｐｎ（全てのページ）について、ステップＳ１０２〜Ｓ１１２の処理を行うと、図４のフローチャートによる処理を終了する。
【００２９】
次に、図４のステップＳ１０８の処理の一例を詳細に説明する。前述したように、ステップＳ１０８では、ハードディスク１０６の空き容量が不足している場合に、プリンタコマンドファイル制御部３３７が、ハードディスク１０６に保存済みのプリンタコマンドファイル１０８（の一部）を削除する。
【００３０】
プリンタコマンドファイル１０８を削除するかどうかは、例えば、次のようにして決めることができる。まず、特定のバンドへの処理結果が他のバンドに影響するかというバンド間の相関関係を元に決めることができる。また、これに代えて、又はこれに加えて、プリンタドライバ３３０のプリンタコマンド作成処理とプリンタ２００の印刷処理との速度差を元に決めることができる。
【００３１】
バンド間の相関関係を元にして決める場合の一例としては、ハーフトーン処理部３３４が行うハーフトーン処理として誤差拡散法を用いている場合がある。誤差拡散法を用いる場合、注目画素に対するハーフトーン処理の結果として発生する誤差を、その後にハーフトーン処理を行う画素に伝播させるので、ページの途中から処理を開始できない。もし、ハーフトーン処理部３３４が、Ｎ（Ｎは自然数）番目のバンドまでの誤差を伝播せずに、（Ｎ＋１）番目から誤差拡散処理を行った場合、Ｎ番目と（Ｎ＋１）番目のバンド境界部分の印刷結果に不連続な部分が発生してしまう。したがって、Ｎ番目のバンドまでプリンタコマンドファイル１０８を保存していても、（Ｎ＋１）番目のバンドの誤差拡散処理を行うためには、最初のバンドからＮ番目のバンドまで、再度ハーフトーン処理までの処理を行う必要がある。すなわち、描画処理部３３２による描画コマンドのメモリへの展開と、色変換処理部３３３による色変換処理と、ハーフトーン処理部３３４によるハーフトーン処理とを、最初のバンドからＮ番目のバンドまで再度行う必要がある。
【００３２】
したがって、誤差の伝播方向の後方部分のバンドを優先して残し（プリンタコマンドとして保存し）、誤差の伝播方向に合わせてバンド（プリンタコマンド）を削除する必要がある。このようにすれば、削除されたバンドのみを再度処理すればすむため、高速に処理を行える。
尚、誤差拡散法のみについては、"An Adaptive Algorithm for Spatial Gray Scale” in society for Information Display 1975 Symposium Digest of Technical Papers, 1975, 36“等に記載されている公知の技術である。
図５（ａ）は、ハーフトーン処理として誤差拡散法を用いる場合のバンドの重要度とバンド重要度テーブルの一例を示す図である。図５（ａ）において、プリンタコマンドファイル制御部３３７は、バンド重要度の番号の小さい（記憶する優先度の低い）バンドから削除することになる。
図５（ａ）に示すように、ハーフトーン処理として誤差拡散法を用いる場合には、誤差の伝搬方向に合わせてバンドを削除していくことになる。
【００３３】
また、プリンタドライバ３３０のプリンタコマンド作成処理とプリンタ２００の印刷処理との速度差を元にして決める場合の一例としては、給紙等の印刷準備中の場合がある。プリンタ２００は印刷の際、ページの最初に給紙等の印刷準備処理を行う必要がある。この印刷準備処理の最中は印刷が行われない。このため、プリンタドライバ３３０側のプリンタコマンド作成処理の方が、プリンタ２００の印刷処理よりも速くなる。したがって、先に排紙されるページ前半部分については、複数部数の印刷を行うに際し、プリンタドライバ３３０が描画コマンドをプリンタコマンドに変換してプリンタ２００に送信しても、印刷が間に合う。
【００３４】
また、プリンタドライバ３３０のプリンタコマンドファイル制御部３３７がハードディスク１０６からプリンタコマンドを読み出して送信する処理時間は、プリンタ２００側の印刷処理時間に比べて短い。したがって、プリンタドライバ３３０の処理に余った時間が発生する。そのため、プリンタドライバ３３０は、プリンタコマンドを送信した後、プリンタ２００がそのプリンタコマンドの印刷を終了するまでの余った時間で、次のプリンタコマンドを作成する処理を行うことができる。つまり、プリンタドライバ３３０はプリンタコマンドファイル１０８に保存されたプリンタコマンドを送信した後、次のバンドの描画コマンドをプリンタコマンドに変換してプリンタ２００に送信しても印刷が間に合う。
【００３５】
図５（ｂ）は、ハーフトーン処理として誤差拡散法以外の方法を用いる場合のバンドの重要度とバンド重要度テーブルの一例を示す図である。図５（ｂ）においても、プリンタコマンドファイル制御部３３７は、バンド重要度の番号の小さい（記憶する優先度の低い）バンドから削除することになる。
前述したように、給紙等のプリンタ２００の初期化処理の関係で、プリンタ２００の印刷処理よりもプリンタドライバ３３０のプリンタコマンド作成処理の方が速い。このため、図５（ｂ）に示すように、ページの前半（先に給紙（排紙）される部分）は重要度が低い。一方、ページの後半については、プリンタコマンド作成処理と、プリンタコマンド送信処理とを交互に行った方が効率よいので、１バンド置きに重要度を低くして、重要度の高いバンドと低いバンドとが交互に生じるようにしている。
【００３６】
前述したように、ステップＳ１０７の判定の結果、ハードディスク１０６の空き容量Ｄが閾値Ｄｔｈ以下の場合には、ステップＳ１０８において、保存済みのプリンタコマンドファイル１０８の一部を削除する。本実施形態では、図５に示したようなバンド重要度テーブルに従って、保存済みのプリンタコマンドファイル１０８の一部を削除する。
【００３７】
図６は、図４のステップＳ１０８の処理の一例を詳細に説明するフローチャートである。
まず、ステップＳ２０１において、プリンタコマンドファイル制御部３３７は、バンド重要度テーブルが作成済みか否かを判定する。最初にこのステップＳ２０１の処理を行ったときには、バンド重要度テーブルは作成されていない。したがって、ステップＳ２０２において、プリンタコマンドファイル制御部３３７は、バンド重要度テーブルを作成して、バンド重要度を設定する。そして、ステップＳ２０３に進む。前述したように、バンド重要度テーブルは、ハーフトーン処理後のバンド間の相関関係や、プリンタドライバ３３０のプリンタコマンド作成処理とプリンタ２００の印刷処理との速度差等を元に決める必要がある。プリンタコマンドファイル制御部３３７は、図５の右に示したようなバンド重要度テーブルの番号の順番にバンドを削除することで効率よく処理を行うことができる。
【００３８】
一方、バンド重要度テーブルが作成済みである場合には、バンド重要度テーブルを再度作成する必要はないので、ステップＳ２０２を省略してステップＳ２０３に進む。ステップＳ２０３に進むと、バンド重要度の低いバンドから順にプリンタコマンドファイル１０８を削除するため、プリンタコマンドファイル制御部３３７は、バンド番号ｂを０で初期化する。
次に、ステップＳ２０４において、プリンタコマンドファイル制御部３３７は、バンド番号ｂを１ずつ順番に増やす。
次に、ステップＳ２０５において、プリンタコマンドファイル制御部３３７は、ステップＳ２０２で作成したバンド重要度テーブルを用いて、バンド番号ｂに相当するバンド位置Ｂｍを取得する。このとき、複数のバンド重要度テーブルの中から、ステップＳ２０５で使用するバンド重要度テーブルを、設定等に応じて切り替えてもよい。例えば、ハーフトーン処理が誤差拡散法である場合には、図５（ａ）の右図に示すバンド重要度テーブルを使用し、そうでない場合には、図５（ｂ）の右図に示すバンド重要度テーブルを使用することが効果的である。例えば、ハーフトーン処理が誤差拡散法でなくバンド番号ｂが５である場合、プリンタコマンドファイル制御部３３７は、図５（ｂ）の右図に示すバンド重要度テーブルからバンド位置Ｂｍとしてバンド位置Ｂ３を取得する。
【００３９】
次に、プリンタコマンドファイル制御部３３７は、ステップＳ２０５で取得したバンド位置Ｂｍについて、ハードディスクの１０６の空き容量Ｄが閾値Ｄｔｈよりも大きくなるまで、全てのページでプリンタコマンドファイル１０８を削除する。具体的に説明すると、まず、ステップＳ２０６において、プリンタコマンドファイル制御部３３７は、ページ番号Ｐｍを０で初期化する。
次に、ステップＳ２０７において、プリンタコマンドファイル制御部３３７は、ページ番号Ｐｍをページ毎に１ずつ増やす。
次に、ステップＳ２０８において、プリンタコマンドファイル制御部３３７は、ページ番号Ｐｍ及びバンド位置Ｂｍに対応するプリンタコマンドファイル１０８が、プリンタコマンドファイル管理テーブル１０９に登録されているか否かを判定する。この判定は、プリンタコマンドファイル１０８のファイル名がプリンタコマンドファイル管理テーブル１０９に登録されているかどうかで行うことができる。尚、ステップＳ２０８で使用されるページ番号ＰｍはステップＳ２０７で設定したものであり、バンド位置Ｂｍは、ステップＳ２０５で取得したものである。また、プリンタコマンドファイル管理テーブル１０９は、図４のステップＳ１１１で作成されたものである。
【００４０】
ステップＳ２０８の判定の結果、プリンタコマンドファイル１０８がプリンタコマンドファイル管理テーブル１０９に登録されていない場合には、ステップＳ２０９〜Ｓ２１１を省略して後述するステップＳ２１３に進む。
一方、プリンタコマンドファイル１０８がプリンタコマンドファイル管理テーブル１０９に登録されていた場合には、ステップＳ２０９に進む。ステップＳ２０９に進むと、プリンタコマンドファイル制御部３３７は、ステップＳ２０８で登録されていると判定されたプリンタコマンドファイル１０８を削除し、ハードディスク１０６に対するプリンタコマンドファイル１０８の記憶制御を行う。そして、プリンタコマンドファイル制御部３３７は、プリンタコマンドファイル管理テーブル１０９から、削除したプリンタコマンドファイル１０８のファイル名を削除する。
【００４１】
次に、ステップＳ２１０において、プリンタコマンドファイル１０８を保存した後のハードディスク１０６の空き容量Ｄを再度求める。
次に、ステップＳ２１１において、プリンタコマンドファイル制御部３３７は、ステップＳ１０６で求められた、ハードディスク１０６の空き容量Ｄが閾値Ｄｔｈよりも大きいか否かを判定する。この判定の結果、ハードディスク１０６の空き容量Ｄが閾値Ｄｔｈよりも大きい場合には、ステップＳ２１２に進む。ステップＳ２１２に進むと、プリンタコマンドファイル制御部３３７は、Returnに１を設定し、図４のステップＳ１０９に進む。
【００４２】
一方、ハードディスク１０６の空き容量Ｄが閾値Ｄｔｈ以下である場合には、ステップＳ２１３に進む。尚、前述したように、ステップＳ２０８において、プリンタコマンドファイル１０８がプリンタコマンドファイル管理テーブル１０９に登録されていないと判定された場合にも、ステップＳ２１３に進む。
ステップＳ２１３に進むと、プリンタコマンドファイル制御部３３７は、全てのページのバンド位置Ｂｍのプリンタコマンドファイル１０８の削除が終了したか否かを判定する。この判定の結果、全てのページのバンド位置Ｂｍのプリンタコマンドファイル１０８の削除が終了していない場合には、ステップＳ２０７に戻る。そして、全てのページのバンド位置Ｂｍのプリンタコマンドファイル１０８の削除が終了するか、ハードディスク１０６の空き容量Ｄが閾値Ｄｔｈ以下になるまで、ステップＳ２０７〜Ｓ２１１、Ｓ２１３の処理を繰り返す。
【００４３】
一方、全てのページのバンドＢｍのプリンタコマンドファイル１０８の削除が終了すると、ステップＳ２１４に進む。ステップＳ２１４に進むと、プリンタコマンドファイル制御部３３７は、全てのバンド番号についてプリンタコマンドファイル１０８の削除が終了したか否か判定する。この判定の結果、全てのバンド番号についてプリンタコマンドファイル１０８の削除が終了していなければ、ステップＳ２０４に戻る。そして、全てのバンド番号についてプリンタコマンドファイル１０８の削除が終了するか、ハードディスク１０６の空き容量Ｄが閾値Ｄｔｈ以下になるまで、ステップＳ２０４〜Ｓ２１４の処理を繰り返す。
一方、全てのバンド番号についてプリンタコマンドファイル１０８の削除が終了すると、ステップＳ２１５に進む。ステップＳ２１５に進むのは、全てのプリンタコマンドファイル１０８を削除しても、ハードディスク１０６の空き容量が充分でない場合である。したがって、ステップＳ２１５において、プリンタコマンドファイル制御部３３７は、Returnに０を設定し、図４のステップＳ１０９に進む。
以上で、一部目の処理は終了する。
【００４４】
次に、図７のフローチャートを参照しながら、二部目以降の印刷を行う際のプリンタドライバ３３０における処理の一例を説明する。
まず、ステップＳ３０１において、ページ・バンド管理部３３１は、印刷するページ番号Ｐｎを０で初期化する。
次に、ステップＳ３０２において、ページ・バンド管理部３３１は、印刷するページ番号Ｐｎをページ毎に１ずつ増やす。
次に、ステップＳ３０３において、ページ・バンド管理部３３１は、各ページにおけるバンド位置Ｂｎを０で初期化する。
次に、ステップＳ３０４において、ページ・バンド管理部３３１は、バンド位置Ｂｎをバンド毎に１ずつ増やす。
【００４５】
次に、ステップＳ３０５において、プリンタコマンドファイル制御部３３７は、ページ番号Ｐｎ及びバンド位置Ｂｎに対応するプリンタコマンドファイル１０８が、プリンタコマンドファイル管理テーブル１０９に登録されているか否かを判定する。この判定は、プリンタコマンドファイル１０８のファイル名がプリンタコマンドファイル管理テーブル１０９に登録されているかどうかで行うことができる。尚、ステップＳ３０５で使用されるページ番号ＰｎはステップＳ３０２で設定したものであり、バンド位置Ｂｎは、ステップＳ３０４で設定されたものである。また、プリンタコマンドファイル管理テーブル１０９は、例えば、図４のステップＳ１１１で作成されたものである。
【００４６】
ステップＳ３０５の判定の結果、プリンタコマンドファイル１０８がプリンタコマンドファイル管理テーブル１０９に登録されていない場合には、後述するステップＳ３０９に進む。
一方、プリンタコマンドファイル１０８がプリンタコマンドファイル管理テーブル１０９に登録されている場合には、ステップＳ３０６に進む。ステップＳ３０６に進むと、プリンタコマンドファイル制御部３３７は、ステップＳ３０５の判定の結果に基づいて得られるプリンタコマンドファイル１０８から、ページ番号Ｐｎ及びバンド位置Ｂｎに対応するプリンタコマンドを読み出す。そして、プリンタコマンド出力部３３６は、そのプリンタコマンドをプリンタ２００に送信する。
【００４７】
このようにしてプリンタコマンドが送信された後、ステップＳ３０７において、プリンタコマンドファイル制御部３３７は、ページ番号Ｐｎ及びバンド位置Ｂｎに対応するプリンタコマンドファイル１０８を再度利用するか否かを判断する。すなわち、プリンタコマンドファイル制御部３３７は、現在処理している部が、最終部か否かを判定する。
この判定の結果、現在処理している部が最終部でない場合には、後述するステップＳ３１０に進む。
一方、現在処理している部が最終部である場合には、ステップＳ３０８に進む。ステップＳ３０８に進むと、プリンタコマンドファイル制御部３３７は、ページ番号Ｐｎ及びバンド位置Ｂｎに対応するプリンタコマンドファイル１０８を、この後利用することがないため、そのプリンタコマンドファイル１０８をハードディスク１０６から削除する。そして、後述するステップＳ３１０に進む。
【００４８】
前述したように、ステップＳ３０５において、プリンタコマンドファイル１０８がプリンタコマンドファイル管理テーブル１０９に登録されていないと判定された場合には、ステップＳ３０９に進む。ステップＳ３０９に進むと、プリンタドライバ３３０は、ページ番号Ｐｎ及びバンド位置Ｂｎに対応する描画コマンドをバンド毎にプリンタコマンドに変換してプリンタコマンドを再度生成し、プリンタ２００に送信する。このステップＳ３０９の処理は、ステップＳ１０５と同様にして行うことができる。そして、ステップＳ３１０に進む。
【００４９】
ステップＳ３１０に進むと、ページ・バンド管理部３３１は、現在のページ番号Ｐｎの全てのバンドのプリンタコマンドをプリンタ２００へ送信したか否かを判定する。この判定の結果、現在のページ番号Ｐｎの全てのバンドのプリンタコマンドをプリンタ２００へ送信していない場合には、送信するまで、ステップＳ３０４〜Ｓ３１０の処理を繰り返し行う。
そして、ページ番号Ｐｎの全てのバンドのプリンタコマンドをプリンタ２００へ送信すると、ステップＳ３１１に進む。ステップＳ３１１に進むと、ページ・バンド管理部３３１は、全てのページのプリンタコマンドをプリンタ２００へ送信したか否かを判定する。この判定の結果、全てのページのプリンタコマンドをプリンタ２００へ送信していない場合には、送信するまで、ステップＳ３０２〜Ｓ３１１の処理を繰り返し行う。
【００５０】
そして、全てのページのプリンタコマンドをプリンタ２００へ送信すると、ステップＳ３１２に進む。ステップＳ３１２において、ページ・バンド管理部３３１は、全ての部数のプリンタコマンドをプリンタ２００へ送信したか否かを判定する。この判定の結果、全ての部数のプリンタコマンドをプリンタ２００へ送信していない場合には、送信するまで、ステップＳ３０１〜Ｓ３１２の処理を繰り返し行う。
そして、全ての部数のプリンタコマンドをプリンタ２００へ送信すると、図７のフローチャートによる処理を終了する。
尚、本実施形態で説明した変数の値は、例えばＲＡＭ１０３に設定される。
【００５１】
以上のように本実施形態では、バンド重要度テーブルにより、削除するバンドの順番を予め定義しておく。そして、あるバンドにおける新たなプリンタコマンドを保存した後のハードディスク１０６の空き容量Ｄが閾値以下になると、ハードディスク１０６に保存済みのプリンタコマンドを、定義しておいたバンド重要度に従ってバンド単位で削除する。そして、ハードディスク１０６の空き容量Ｄが閾値よりも大きくなると、新たなプリンタコマンドをバンド単位でハードディスク１０６に保存する。二部目以降の印刷を制御するに際し、ハードディスク１０６に保存されているプリンタコマンドについてはプリンタ２００に送信し、保存されていないプリンタコマンドについては再度生成する。
【００５２】
これに対し、ハードディスク１０６に空きがある場合に、本実施形態のようにせずに（印刷を行うための処理とは無関係な順番で）プリンタコマンドをバンド単位で保存することも考えられる。しかしながら、バンド間に相関関係がある場合にこのようにしてプリンタコマンドをバンド単位で保存すると、次のような問題がある。すなわち、複数部数の二部目以降を印刷する際に、途中のバンドまでプリンタコマンドが保存されているにも関わらず、再度最初から処理する必要が発生し、２部目以降の印刷処理を高速に実行できなくなる虞があるという問題がある。
【００５３】
例えば、ハーフトーン処理として誤差拡散法を用いた場合には、前述したように、注目画素のハーフトーンの結果として発生する誤差を、その後にハーフトーン処理を行う画素に伝播させるので、ハーフトーン処理の結果が次のバンドにも影響する。そのため、Ｎ番目のバンドまでプリンタコマンドを保存していても、（Ｎ＋１）番目のバンドに対してハーフトーン処理を行うためには、再度最初からＮ番目のバンドの描画コマンドをメモリへの展開し、色変換する必要がある。したがって、結局は、そのページを効率的に処理することができない。
【００５４】
一方、本実施形態では、バンド重要度テーブルにより、削除するバンドの順番を予め定義しておくので、バンド間の相関関係等、印刷を行うための処理を考慮して、ハードディスク１０６に記憶するバンドと記憶しないバンドとを選別することができ、好ましい。したがって、複数部数の印刷をする際に、ホストコンピュータ１００及びプリンタ２００において、印刷対象の全ページのプリンタコマンドを保存できない場合でも、プリンタコマンドを効率的に保存することができる。よって、複数部数の印刷におけるスループットを従来よりも向上させることができる。
また、本実施形態では、例えば、ハーフトーン処理として誤差拡散法を用いる場合と、そうでない場合との夫々に適したバンド重要度テーブルを選択することにより、印刷を行うための処理に適したバンド重要度テーブルを選択するようにした。したがって、印刷を行うための処理を可及的に適切に行うことができる。
【００５５】
＜変形例＞
本実施形態では、説明を簡単にするために、バンド毎のプリンタコマンド作成処理時間とプリンタコマンドサイズについては考慮していない。しかしながら、プリンタコマンド作成処理時間とプリンタコマンドサイズとを考慮することもできる。例えば、図４のステップＳ１１０において、プリンタコマンド作成処理時間がプリンタ２００の印刷に間に合う場合や、プリンタコマンドのサイズが閾値よりも大きい場合には、プリンタコマンドをハードディスク１０６に保存しないようにすることもできる。また、図４のステップＳ１１１において、プリンタコマンド作成処理時間とプリンタコマンドファイル１０８のサイズとをプリンタコマンドファイル管理テーブル１０９に保存することもできる。このようにした場合には、単位処理時間当りのプリンタコマンドファイルのサイズが大きいバンドを優先的に保存したり、これとは逆に先に削除したりすることも可能である。また、描画処理に時間がかからなかったバンドであるほど先に削除することも可能である。この他、各ページにおいて相対的に先に給紙されるバンドであるほど先に削除することも可能である。更に、印刷を行う各ページにおける複数のバンドのうち、描画領域を含むバンドのみを記憶し、残りのバンドを削除するようにしてもよい。以上のように、バンド重要度テーブルの作成方法は、前述したものに限定されず、バンド重要度テーブルは必須のものではない。
【００５６】
また、本実施形態では、プリンタコマンドファイル１０８をハードディスク１０６に保存する形態とした。しかしながら、ＲＡＭ１０３にプリンタコマンドファイル１０８を保存してもよい。また、プリンタ２００本体内のＲＡＭ２０２にプリンタコマンドファイル１０８を保存してもよい。このようにした場合には、ホストコンピュータ１００から、プリンタコマンドファイル１０８の保存や削除を制御し、プリンタ２００がプリンタコマンドファイル１０８を使って印刷を制御する必要がある。また、プリンタ２００が独自にプリンタコマンドファイル１０８の保存や削除を管理することもできる。このようにした場合には、二部目以降の印刷に際し、プリンタ２００が、ホストコンピュータ１００に対して、プリンタコマンドファイル１０８を保存していない領域へのプリンタコマンドファイル１０８の出力命令を行う必要がある。
【００５７】
また、本実施形態では、ハードディスク１０６の空き容量Ｄが閾値Ｄｔｈよりも大きい場合に、プリンタコマンドをバンド単位でハードディスク１０６に記憶する場合を例に挙げて説明した（図４のステップＳ１０５〜Ｓ１０７、Ｓ１１０等を参照）。しかしながら、必ずしもこのようにする必要はない。例えば、プリンタコマンドの全てを記憶できる場合には、プリンタコマンドの全てを一度に記憶してもよい。
【００５８】
＜第２の実施形態＞
次に、本発明の第２の実施形態について説明する。前述した第１の実施形態では、一旦、プリンタコマンドファイル１０８を作成した後、ハードディスク１０６の空き容量に応じて、作成したプリンタコマンドファイル１０８を削除する場合を例に挙げて説明した。このようにしたのは、プリンタコマンドファイル１０８のサイズが、描画データやページ数に応じて変化することと、アプリケーション３１０やＯＳ３２０がハードディスク１０６を使用するため、ハードディスク１０６の空き容量が常に変動するためである。しかし、バンド毎のプリンタコマンドのサイズ及びページ数が判明し、他のアプリケーション３１０等のハードディスク１０６の使用量を予測できる場合には、ハードディスク１０６の空き容量に応じて保存するバンド数を事前に決めることができる。この場合、不要なプリンタコマンドファイル１０８の作成、削除を行う必要がないため、より効率的に処理することができる。このように本実施形態と第１の実施形態とは、プリンタコマンドをハードディスク１０６に保存する際の処理の一部が主として異なる。したがって、本実施形態の説明において、第１の実施形態と同一の部分については、図１〜図７に付した符号と同一の符号を付すこと等により、詳細な説明を省略する。
【００５９】
図８のフローチャートを参照しながら、複数部数の一部目の印刷を行う際のプリンタドライバ３３０における処理の一例を説明する。
まず、ステップＳ４０１において、プリンタコマンドファイル制御部３３７は、保存するバンド数を決定する。
このステップＳ４０１の具体例としてプリンタコマンドファイル制御部３３７は、まず、ハードディスク１０６の空き容量から、他のアプリケーション３１０等のハードディスク１０６の使用量を減算する。そして、プリンタコマンドファイル制御部３３７は、減算した値を、バンド当りのプリンタコマンドのサイズで除算し、その結果を用いることでバンド数を求めることができる。
【００６０】
次に、ステップＳ２０２において、プリンタコマンドファイル制御部３３７は、第１の実施形態と同様に、バンド重要度テーブルを作成して、バンド重要度を設定する（図６を参照）。
次に、ステップＳ４０２において、プリンタコマンドファイル制御部３３７は、ステップＳ４０１で求めたバンド数から、プリンタコマンドファイル１０８を作成するバンドの位置を決定する。このステップＳ４０２の具体例としてプリンタコマンドファイル制御部３３７は、ステップＳ４０１で求めたバンド数をページ数で除算し、全ページで保存できるバンドの位置を決定する。そして、ステップＳ４０１で求めたバンド数から、全ページで保存するバンド数を引いた残りの数のバンドには、次の重要度のバンドを割り当てる。このとき、次の重要度のバンドについては、保存可能なページに保存する。例えば、ハーフトーン処理が誤差拡散法でなく、保存できるバンド数が３５、ページ数が１０ページとする。この場合、３５を１０で除算した値である３つのバンドを全てのページで保存することができる。よって、重要度の高い３つのバンド（バンド位置Ｂ３、Ｂ５、Ｂ６のバンド）については（図５（ｂ）を参照）、全てのページでプリンタコマンドファイル１０８を保存する。これにより保存したバンド数は３０になる。そして、残りの５つのバンドについては、１から５ページ目までのみ、重要度が４番目のバンド（バンド位置Ｂ４のバンド）のプリンタコマンドファイル１０８を保存する。
【００６１】
次のステップＳ１０１〜Ｓ１０５は、第１の実施形態で説明したのと同じである（図４を参照）。
次に、ステップＳ４０３において、プリンタコマンドファイル制御部３３７は、ステップＳ１０２で指定されたページＰｎと、ステップＳ１０４で指定されたバンド位置Ｂｎとが、ステップＳ４０２で決定したバンドの位置に対応するか否かを判定する。この判定の結果、ステップＳ４０２で決定したバンドの位置に対応する場合には、ステップＳ１１０以降の処理を行う。一方、ステップＳ４０２で決定したバンドの位置に対応しない場合には、ステップＳ１１０、Ｓ１１１を省略してステップＳ１１２以降の処理行う。ステップＳ１１０〜Ｓ１１３の処理も第１の実施形態と同じであるので、その詳細な説明を省略する（図４を参照）。以上のように本実施形態では、例えば、ステップＳ４０２、Ｓ４０３、Ｓ１１０の処理を行うことによって、プリンタコマンドファイル制御部３３７が、ハードディスク１０６に対するプリンタコマンドファイル１０８の記憶制御を行う。
【００６２】
以上のように本実施形態では、ハードディスク１０６の空き容量から、保存するバンド数を決定し、決定したバンド数と、バンド重要度テーブルに基づくバンドの重要度とに基づいて、保存するバンドの位置を決定する。そして、決定した位置のバンドのプリンタコマンドが得られたら、そのプリンタコマンドを決定した位置に保存する。したがって、第１の実施形態で説明した効果に加え、バンド毎のプリンタコマンドのサイズ及びページ数が判明し、アプリケーション３１０等のハードディスク１０６の使用量を予測できる場合には、次の効果が得られる。すなわち、一部目の処理において、不要なプリンタコマンドファイル１０８の作成、削除を行う必要がなくなる。したがって、より効率的に処理することができる。
【００６３】
＜第３の実施形態＞
次に、本発明の第３の実施形態について説明する。前述した第１、第２の実施形態では、ホストコンピュータ１００からプリンタ２００にプリントするシステムについて説明した。これに対し、本実施形態では、近年急速に普及しているプリンタとスキャナーとが一体になった複合プリンタでダイレクトに複数部数のコピーをする場合を例に挙げて説明する。このように、本実施形態と第１、第２の実施形態とは、処理を行う主体が主として異なる。したがって、本実施形態の説明において、第１、第２の実施形態と同一の部分については、図１〜図８に付した符号と同一の符号を付すこと等により、詳細な説明を省略する。
【００６４】
図９は、複合プリンタの構成の一例を説明するブロック図である。
図９に示すように、プリント部９０３とスキャナー部９０４とが一体になった安価な複合プリンタ９００では、ハードディスク等の補助記憶装置を持たないことが多い。そのため、このような複合プリンタ９００では、スキャンしたイメージを、色処理、ハーフトーン処理した後に、プリントイメージ９０５として主記憶装置であるＲＡＭ９０２に保存して再利用することが有効である。
ただし、ＲＡＭ９０２の容量はコストの関係で大きくないため、多くのページのプリントイメージ９０５をＲＡＭ２０２に保存することができない。したがって、場合によっては１ページ分のプリントイメージ９０５さえＲＡＭ９０２に保存することができない。
そこで、このような複合プリンタ９００で、第１、第２の実施形態と同様に処理することが有効となる。
【００６５】
本実施形態では、第１、第２の実施形態で説明した描画コマンドを、スキャナー部９０４がスキャンした画像に置き換え、プリンタコマンドファイル１０８を、プリントイメージ９０５に置き換えることで、第１、第２の実施形態と略同じ処理を行うことができる。ただし、バンド重要度テーブルを作成する際は、スキャンの特性を考慮することが重要である。通常、プリントよりスキャンの方が、処理速度が遅いため、スキャンする時間を短くすることが有効である。例えば、多くのスキャナーは精度を保つために一旦ホームポジションからスキャンを開始する必要である。
【００６６】
そのため、同じ面積の領域をスキャンする場合、ホームポジションから遠い部分をスキャンするよりも、近い部分だけをスキャンした方が、高速に処理することができる。そこで、本実施形態では、各ページにおいて後からスキャンされる部分（バンド）の重要度をより高くすることで、高速に処理できるようになる。
図１０は、スキャナー部９０４でスキャンした画像を印刷する場合のバンド重要度とバンド重要度テーブルの一例を示す図である。
図１０において、例えば、ページ全体が６バンドとし、３バンド分のプリントイメージ２０５を保存でき、バンド重要度テーブルにおいて重要度が４以降の（バンド位置Ｂ４〜Ｂ６の）バンドのプリントイメージ９０５を、ＲＡＭ９０２に保存したとする。そうすると、２部目の以降の出力の際には、ホームポジションからバンド位置Ｂ３までをスキャンするだけよいため、全てをスキャンするよりも高速にスキャンできる。逆に、バンド位置Ｂ１〜Ｂ３のバンドを保存した場合には、バンド位置Ｂ４以降のバンドだけをスキャンすることはできないため、結局ホームポジションから、バンド位置Ｂ１〜Ｂ６全体をスキャンすることになる。
【００６７】
以上のように、プリント部９０３とスキャナー部９０４が一体となった複合プリンタ９００で複数部数をコピーする際に、複合プリンタ９００に印刷対象の全ページのプリントイメージ２０５を保存できない場合でも第１、第２の実施形態と同様の効果が得られる。
【００６８】
（本発明の他の実施形態）
前述した本発明の実施形態における印刷制御装置を構成する各手段、並びに印刷制御方法の各ステップは、コンピュータのＲＡＭやＲＯＭなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
【００６９】
また、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【００７０】
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図４、図６〜図８に示すフローチャートに対応したプログラム）を、システムあるいは装置に直接、あるいは遠隔から供給するものを含む。そして、そのシステムあるいは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【００７１】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００７２】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【００７３】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【００７４】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【００７５】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００７６】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００７７】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００７８】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【００７９】
尚、前述した各実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【００８０】
【図１】本発明の第１の実施形態を示し、プリントシステムの構成の一例を示す図である。
【図２】本発明の第１の実施形態を示し、ホストコンピュータの機能的な構成の一例を示す図である。
【図３】本発明の第１の実施形態を示し、描画データの一例であるページイメージの一例と、そのページイメージから作成されるバンドイメージの一例を説明する図である。
【図４】本発明の第１の実施形態を示し、一部目の印刷を行う際のプリンタドライバにおける処理の一例を説明するフローチャートである。
【図５】本発明の第１の実施形態を示し、バンドの重要度とバンド重要度テーブルの一例を示す図である。
【図６】本発明の第１の実施形態を示し、図４のステップＳ１０８の処理の一例を詳細に説明するフローチャートである。
【図７】本発明の第１の実施形態を示し、二部目以降の印刷を行う際のプリンタドライバ３３０における処理の一例を説明するフローチャートである。
【図８】本発明の第２の実施形態を示し、一部目の印刷を行う際のプリンタドライバにおける処理の一例を説明するフローチャートである。
【図９】本発明の第３の実施形態を示し、複合プリンタの構成の一例を説明するブロック図である。
【図１０】本発明の第３の実施形態を示し、バンド重要度とバンド重要度テーブルの一例を示す図である。
【符号の説明】
【００８１】
１００  ホストコンピュータ
１０６  ハードディスク
１０７  バンドメモリ
１０８  プリンタコマンドファイル
１０９  プリンタコマンドファイル管理テーブル
３３０  プリンタドライバ
９００  複合プリンタ
９０２  ＲＡＭ
９０５  プリントイメージ
【図１】
2010033283.tif 000003
【図２】
2010033283.tif 000004
【図３】
2010033283.tif 000005
【図４】
2010033283.tif 000006
【図５】
2010033283.tif 000007
【図６】
2010033283.tif 000008
【図７】
2010033283.tif 000009
【図８】
2010033283.tif 000010
【図９】
2010033283.tif 000011
【図１０】
2010033283.tif 000012