(57)【特許請求の範囲】
【請求項１】
注目ページについて、ページを分割したサブページ単位で印刷コマンドを生成してプリンタに送信する印刷コマンド生成工程と、
前記印刷コマンド生成工程により前記注目ページの印刷コマンドを生成する際に、前記注目ページの次のページの印刷を行うか否かを次のページの印刷データ作成開始の通知があったか否かに応じて判定し、次のページの印刷データ作成開始の通知があり前記注目ページの次のページの印刷を行うと判定された時点で、次のページのための先行給紙コマンドを生成して、生成された先行給紙コマンドを前記注目ページのページヘッダと前記注目ページの先頭サブページとの間、または前記注目ページの第１のサブページと前記注目ページの第２のサブページとの間に挿入してプリンタへ送信する給紙コマンド生成工程と
を備えることを特徴とするデータ処理方法。
【請求項２】
前記給紙コマンド生成工程では、アプリケーションプログラムからの前記注目ページの次ページの描画命令に基づいて、前記注目ページの次ページの印刷を行うか否かを判定することを特徴とする請求項１に記載のデータ処理方法。
【請求項３】
前記給紙コマンド生成工程では、前記注目ページの次ページの給紙方法をさらに判定し、前記注目ページの次のページの印刷を行い、かつ、前記給紙方法が一定の方法である場合に、次のページのための先行給紙コマンドを生成してプリンタに送信することを特徴とする請求項１または２のいずれかに記載のデータ処理方法。
【請求項４】
バンドのイメージデータを作成する作成ステップと、
前記作成ステップにより注目ページのバンドのイメージデータを作成するごとに、前記注目ページの次のページの作成通知があった場合、先行給紙コマンドを注目ページのページヘッダと前記注目ページの先頭バンドとの間、または注目バンドにおける第１のラスタと前記注目バンドの第２のラスタとの間に発行するステップと、
前記作成ステップにより作成されたバンドのイメージデータを印刷コマンドに変換し発行するステップと
を有することを特徴とする画像形成装置の制御方法。
【請求項５】
注目ページについて、ページを分割したサブページ単位で印刷コマンドを生成してプリンタに送信する印刷コマンド生成手段と、
前記注目ページの次のページの印刷を行うか否かを判定し、行うと判定された時点で、次のページのための先行給紙コマンドを生成して、生成された先行給紙コマンドを前記注目ページのページヘッダと前記注目ページの先頭サブページとの間、または前記注目ページの第１のサブページと前記注目ページの第２のサブページとの間に挿入してプリンタへ送信する給紙コマンド生成手段と
を備えることを特徴とするデータ処理装置。
【請求項６】
コンピュータに、
注目ページについて、ページを分割したサブページ単位で印刷コマンドを生成してプリンタに送信する印刷コマンド生成工程と、
前記印刷コマンド生成工程により前記注目ページの印刷コマンドを生成する際に、前記注目ページの次のページの印刷を行うか否かを次のページの印刷データ作成開始の通知があったか否かに応じて判定し、次のページの印刷データ作成開始の通知があり前記注目ページの次のページの印刷を行うと判定された時点で、次のページのための先行給紙コマンドを生成して、生成された先行給紙コマンドを前記注目ページのページヘッダと前記注目ページの先頭サブページとの間、または前記注目ページの第１のサブページと前記注目ページの第２のサブページとの間に挿入してプリンタへ送信する給紙コマンド生成工程と
を実行させるためのプログラム。
【請求項７】
注目ページについて、ページを分割したサブページ単位で印刷コマンドを生成してプリンタに送信する印刷コマンド生成手段と、
前記印刷コマンド生成工程により前記注目ページの印刷コマンドを生成する際に、前記注目ページの次のページの印刷を行うか否かを次のページの印刷データ作成開始の通知があったか否かに応じて判定し、次のページの印刷データ作成開始の通知があり前記注目ページの次のページの印刷を行うと判定された時点で、次のページのための先行給紙コマンドを生成して、生成された先行給紙コマンドを前記注目ページのページヘッダと前記注目ページの先頭サブページとの間、または前記注目ページの第１のサブページと前記注目ページの第２のサブページとの間に挿入してプリンタに送信する給紙コマンド生成手段とを備えるデータ処理装置と、
注目ページについて、ページを分割したサブページ単位の印刷コマンドおよび給紙コマンドを受信してコマンドに応じた処理を行う画像形成装置であって、シートの搬送路中にあってシート後端部を認識する認識手段と、
前記給紙コマンドを受信した場合には、当該給紙コマンドが属するページが印刷されるシートの後端部が前記認識手段により認識された後であれば、前記給紙コマンドに応じて次のページのためのシートの給送を行う給紙制御手段とを備える画像形成装置と具備することを特徴とする画像形成システム。
【請求項８】
バンドのイメージデータを作成する作成ステップと、
前記作成ステップにより注目ページのバンドのイメージデータを作成するごとに、前記注目ページの次のページの作成通知があった場合、先行給紙コマンドを注目ページのページヘッダと前記注目ページの先頭バンドとの間、または注目バンドにおける第１のラスタと前記注目バンドの第２のラスタとの間に発行するステップと、
前記作成ステップにより作成されたバンドのイメージデータを印刷コマンドに変換し発行するステップと
を有することを特徴とするコンピュータで実行されるプリンタドライバプログラム。
【請求項９】
前記画像形成装置は、前記先行給紙コマンドが属するページが印刷されるシートの後端部が前記認識手段により認識される前の場合、前記給紙コマンドの処理を先送りし、その次の印刷コマンドを先に処理し、その後にシートの後端部が前記認識手段により認識されたら次のページのためのシートの給送を行う給紙制御手段とを備えることを特徴とする請求項７に記載の画像形成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はインクジェットプリンタ等の印刷装置を使用して印刷データを可視像として印刷処理するものであって、特定のデータ処理装置から送られてくる印刷データを印刷可能な印刷システムに関する。
【背景技術】
【０００２】
データ処理装置から送られてくる印刷コマンドを、印刷用紙上に可視像として印刷処理する印刷装置にはインクジェット方式や電子写真方式の装置がある。
【０００３】
電子写真方式では均一帯電された感光体上に１ページ分のイメージデータに応じた光の像を照射するために、半導体レーザを印刷コマンドに応じてＯＮ−ＯＦＦ駆動制御して、レーザビームによる光像を上記感光体表面に照射させて静電潜像を形成する。潜像を可視像とするために着色剤であるトナーにて現像し、現像したトナー像を印刷用紙上に転写するようにして印刷処理を行うものである。電子写真方式による印刷装置はページプリンタとして、１ページ分のイメージデータを表現する印刷コマンドに対して印刷処理を実行する。
【０００４】
ページプリンタに対して、１ライン毎、又は複数ライン毎にイメージデータを可視像として直接印刷用紙上に印刷処理するラスタプリンタ方式がある。このラスタプリンタは１ページ分のイメージデータを入力しなくても必要なライン分のイメージデータが印刷コマンドとして入力されれば印刷処理を実行できる。そのため印刷コマンドを複数ページに渡って記憶しておくページメモリを備えなくても、ラスタメモリを備えるだけで印刷処理を実行できる。従ってラスタプリンタはメモリ容量を極力少なくすることが可能であり、同時に直接印刷用紙に印刷処理を実行できるため小型化が可能となり、低コスト化を実現可能となる。このようなプリンタとして、インクジェット方式による装置がある。
【０００５】
インクジェット方式は、少なくともインクを吐出するオリフィスを備えるインクジェットヘッドを印刷用紙の送り方向と直交する方向に記録走査させることで、印刷用紙上にインクによるドット（画素）を直接形成して可視像を得る。このようなラスタプリンタにおいてはプリンタ自身がラスタメモリを有しているが、１ページ分の印刷コマンドを保持することが出来ないため、印刷中の或る時点において次のページの印刷コマンドが存在するかどうかを判断できない。そのため次のページの印刷用紙を事前に決められた位置に先行給紙しておくことはできない。
【０００６】
つまり複数枚の印刷用紙への印刷処理を実行する場合、先の印刷用紙の印刷処理が完了した後に次の印刷用紙を印刷処理する時、その印刷用紙の先行給紙を事前に行えなくなる。これは先の印刷用紙への印刷処理を完了した後に次の印刷用紙に対して連続印刷を行うために、次の印刷用紙の給紙は次の印刷コマンドが送られてきた時点で行われるためである。よって複数枚の印刷用紙への連続印刷を行いたい場合には印刷用紙の排紙と給紙の間隔が長くなる。その結果、印刷処理のスループットが低下する。
【０００７】
そのため従来では送られてくる印刷コマンドを全て印刷装置側で記憶するようにしておけば印刷処理を実行する段階で先の印刷用紙への印刷処理を実行中に、次の印刷用紙への連続印刷が存在することを把握できる。これにより次の印刷用紙については事前に決められた位置へ先行給紙しておくことが可能となり、次の印刷用紙への印刷開始までの処理時間が短縮される。電子写真方式のページプリンタにおいては、この手法を用いてデータ処理装置から転送されてくる印刷コマンドを保持し、印刷用紙の先行給紙を印刷処理の実行中に行えるようにしたものがある。
【０００８】
一方インクジェット方式等のメモリ容量を極力少なくしプリンタの低コスト化を実現しているラスタプリンタでは、データ処理装置から送られてくる少なくとも２ページに分に相当する印刷コマンドを事前に記憶できる程度のメモリを予め設けることはできない。そのため複数枚の印刷用紙の連続印刷を行うような場合、１枚の印刷用紙への印刷処理が完了し、その印刷用紙の排出処理を行うとき、次の印刷用紙への印刷のための印刷コマンドが転送されてきて、始めて次の印刷用紙を定位置へと送り込み、印刷処理を実行するタイミングに合わせて定位置の印刷用紙の搬送を開始し、印刷処理を実行する制御をその都度繰返すことになる。このような少ないメモリでも連続印刷をできるようにするために、データ処理装置において生成した印刷コマンドを解析し、印刷コマンド中に次ページのコマンドが存在すれば先ページのヘッダ部分に次の印刷用紙を給紙する先行給紙コマンドを挿入することで、次の印刷用紙への連続印刷が存在することをプリンタに通知する手法が考えられている。
【特許文献１】特開平９−１９３４９６号公報
【特許文献２】特開２００２−３６１９８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら上述した従来の技術においては、以下のような問題があった。上記のページプリンタでは、データ処理装置から送られてくる少なくとも２ページに分に相当する印刷コマンドを事前に記憶できる程度のメモリを予め設けておくことで印刷処理する枚数等を把握し、これにより次の印刷用紙を定位置へと事前に送り込むことが可能となる。これにより次の印刷用紙への印刷処理に要する時間を短縮でき、結果として全ての印刷コマンドの処理する時間を短縮できる。しかし印刷装置側で大容量のメモリを持たない印刷装置においては、上述したような技術をそのまま転用することはできない。
【００１０】
また、上記のラスタプリンタでは印刷装置のメモリ容量が少ないため、データ処理装置において、作成したイメージデータから印刷コマンドを生成した後に生成した印刷コマンドを解析し、次のページの印刷コマンドの存在を確認した後に、先のページの印刷コマンドのヘッダ部分に先行給紙コマンドを挿入する。このため、データ処理装置には印刷コマンドを生成した後に一時的に最低２ページ分の印刷コマンドを保持できるメモリ空間を確保して、印刷コマンドの解析処理を行なう必要があった。あるいはハードディスクドライブ等の二次記憶装置に生成した印刷コマンドを記録するならば、常に次のページのヘッダが存在するかどうかを確認するので結果的に全てのページの印刷コマンドが記録されることになる。
【００１１】
このようにラスタプリンタが搭載するメモリ容量は少なくて済む一方、上位装置であるデータ処理装置では、印刷時に一時的に大きいメモリ空間を必要とし、かつ印刷コマンドの生成と並行して生成した印刷コマンドの解析処理を行なうのでデータ処理装置の中央演算処理装置（ＣＰＵ）に多大な負荷がかかる。あるいはデータ処理装置のＣＰＵの負荷を少なくするためにはハードディスクドライブなどの二次記憶装置に生成した全ての印刷コマンドを一時的に格納し、印刷コマンドの生成が終了してから解析を開始することになるので、印刷コマンドの生成開始から実際に印刷が始まるまでの時間差がイメージデータの量に従って大きくなる。さらに一つの印刷データに対して複数回の印刷コマンドを発行し複数部数の印刷を実行する場合では、印刷コマンドの量は部数にほぼ比例して増加する。しかしながら作成した印刷コマンドの全てを解析し、次のページの有無を判定し先行給紙コマンドを挿入するのは非常に無駄である。
【００１２】
本発明は上記従来の問題点に鑑み、連続印刷処理を行う時に上述した時間差を無くし印刷時間の短縮を可能にしてスループットを向上させつつ、かつ部数印刷も考慮し、データ処理装置にかかる負荷を少なくする、大容量メモリを持たないラスタプリンタ等の印刷装置とイメージデータから印刷コマンドを生成するデータ処理装置とを含む印刷システムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するために、本発明は印刷装置側で次の印刷用紙に対する先行給紙を事前に行うことができるように、印刷コマンドを送るデータ処理装置側で先行給紙を可能とするためのデータ処理を行なう。
【００１４】
そのため、本発明は以下の構成を有する。注目ページについて、ページを分割したサブページ単位で印刷コマンドを生成してプリンタに送信する印刷コマンド生成工程と、前記印刷コマンド生成工程により前記注目ページの印刷コマンドを生成する際に、前記注目ページの次のページの印刷を行うか否かを次のページの印刷データ作成開始の通知があったか否かに応じて判定し、次のページの印刷データ作成開始の通知があり前記注目ページの次のページの印刷を行うと判定された時点で、次のページのための先行給紙コマンドを生成して、生成された先行給紙コマンドを前記注目ページのページヘッダと前記注目ページの先頭サブページとの間、または前記注目ページの第１のサブページと前記注目ページの第２のサブページとの間に挿入してプリンタへ送信する給紙コマンド生成工程とを備える。
【発明の効果】
【００１７】
上記構成により本発明によれば以下のような効果が得られる。
（１）プリンタドライバが作成した印刷コマンドの全体を解析し、印刷コマンドの作成後に先行給紙コマンドを挿入する必要がなくなり、あるページについて印刷コマンド発行中に、任意のタイミングで次ページのための先行給紙コマンドを発行することができる。
（２）プリンタドライバが作成した印刷コマンドの全体を、ハードディスクドライブのような二次記憶装置に格納する必要がなくなる。
（３）プリンタドライバが作成した印刷コマンドのうち少なくとも連続した２ページ分の印刷コマンドを格納するだけのメモリ容量を必要としない。
（４）プリンタドライバが印刷コマンド生成と同時に、作成した印刷コマンドの解析を行なう必要が無いのでデータ処理装置の負荷が軽減される。
（５）部数設定や部単位設定が設定されている印刷に関しても、効率良く先行給紙コマンドを発行することができる。
（６）先行給紙コマンドの発行タイミングが、ページ区切りでなく、バンド毎、さらには任意タイミングにできる。それによってアプリからのスプールタイミングで、印字データ作成途中にコマンド発行できるという並行処理が可能となる。
【発明を実施するための最良の形態】
【００１８】
以下、図面に示す実施例に基づき本発明を詳細に説明する。尚、以下において、ＵＳＢとはユニバーサルシリアルバス（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）の略であり、双方向通信が可能な公知のインタフェースであるので、その詳細説明は省略する。
【００１９】
＜印刷システムの構成＞
図１は、本発明の実施の一形態に係る印刷システムの構成を示すブロック図である。プリンタ１０１は、画像形成を行うインクジェット方式の印刷装置であり、後述するデータ処理装置１０２で生成された印刷コマンドに基づいて画像の形成を行う。印刷装置の種類については特に問わないが、ここではインクジェット方式のカラープリンタを想定している。プリンタ１０１は、各種機能ブロック１１０〜１１３、１２０〜１２５によって構成される。データ処理装置１０２は、アプリケーションソフトが印刷ジョブを作成し、プリンタドライバが印刷ジョブの印刷命令からイメージデータを作成し、接続されたプリンタ１０１の印刷動作を制御する印刷コマンドの生成を行う。本実施形態ではデータ処理装置１０２としてパーソナルコンピュータを用いている。印刷の設定に関するユーザーからの指示や入力を受ける役割も果たす。データ処理装置１０２は、各種機能ブロック１３０〜１３３、１４０〜１４３によって構成される。また、データ処理装置１０２には、データ処理装置１０２を制御するオペレーティングシステム（以降、ＯＳと略す）として、Ｍｉｃｒｏｓｏｆｔ Ｗｉｎｄｏｗｓ ＸＰ（登録商標）が組み込まれており、このＯＳ上で各種機能ブロックが動作する。通信インターフェース１０３は、データ処理装置１０２とプリンタ１０１を接続する通信インタフェースである。本実施形態ではシリアルインタフェースであるＵＳＢを用いているが、この他に、ＩＥＥＥ１３９４、Ｅｔｈｅｒｎｅｔ（登録商標）、ＩｒＤＡ、ＩＥＥＥ８０２．１１、電力線などのシリアルインターフェースや、セントロニクス、ＳＣＳＩなどのパラレルインタフェースを利用することもできる。通信を実現するものであれば有線／無線を問わずどのようなインタフェースであっても構わない。このように、本実施形態における印刷システムとは、単体の装置ではなく、データ処理装置１０２と画像形成を行うプリンタ１０１とが特定の双方向インタフェースで接続された構成をとっているが、この例に限られることなく、このようなデータ処理装置とプリンタの機能が一体となった装置一体型の印刷システムであってもよい。尚、プリンタ１０１及びデータ処理装置１０２とも本実施形態の特徴を説明する上で特に必要ないと思われる機能については省略する。
【００２０】
印刷制御部１１０は、データ処理装置１０２から送信されてきた印刷コマンドを受けて印刷部１２０の印刷動作の制御を行なう。印刷部１２０は記録媒体１００を搬送したり、記録媒体１００に印刷を行なうための部分である。記録媒体１００は、一般に印刷用紙と呼ばれ、プリンタ１０１に備え付けられた給紙トレイやカセットなどに積載されているものとする。ヘッド制御部１１１はヘッド駆動部１２１の動作の制御を行ない、ヘッドのオリフィスよりインクを吐出させる。フィード制御部１１２は記録媒体１００をプリンタ１０１に備えつけられた給紙トレイや給紙カセットから１枚ずつ給紙し、搬送路上の定位置を経由し印刷可能位置に搬送し、ラスタの印刷とともに排紙動作を行なうために用紙搬送部１２３の制御を行なう。画像形成部１１３は、データ処理装置１０２から発行された印刷コマンドに含まれるイメージデータを展開する。印刷制御部１１０には、印刷制御部１１０による制御動作の作業領域や、イメージデータの展開、受信した印刷コマンドの保存のためにメモリが用意されており、そのメモリが画像形成部１１３により使用される。
【００２１】
このように印刷制御部１１０は印刷コマンドに含まれる印刷制御用のコマンドに従ってプリンタエンジンの制御を総合的に行う。具体的には、印刷制御部１１０はＣＰＵにより制御用手順を記述したプログラムを実行することで実現できる。また、印刷制御用のコマンドとしては、印刷用の量子化されたイメージデータ（２値あるいは２値化前の中間データ）とインクの打ち込み量、パス数、印刷方向及び用紙の搬送量を制御する各種コマンド、および、後述する入力操作部１３１で設定される用紙種類指示で構成されるコマンドが使用される。ヘッド駆動部１２１は、印刷制御部１１０で展開された印刷コマンドのイメージデータに基づき記録媒体１００に対して印刷を行う。プリンタ１０１はインクジェット方式のプリンタであるため、インクの吐出によって画像形成を行う。用紙ピックアップ部１２２は給紙トレイや給紙カセットに積載されている記録媒体１００を搬送路に乗せる動作を行なう。用紙搬送部１２３は用紙ピックアップ部により搬送路に乗せられた記録媒体１００を搬送路に沿って定位置を経由し排紙までの搬送動作を行なう。用紙検知センサ１２４は、搬送路途中に設置されており、搬送されている記録媒体１００の端部を検出し、記録媒体１００が搬送路中の定位置にあることを確認することができる。Ｉ／Ｆ制御部１２５は、プリンタ１０１のインタフェース機能を司るＩ／Ｆ制御部である。本実施形態では用いているインタフェースがＵＳＢであるため、ＵＳＢの周辺機器側のコントローラによって構成される。Ｉ／Ｆ制御部１２５では用紙情報の送信や印刷コマンドの受信などが行われる。また、Ｉ／Ｆ制御部１２５は、プリンタ本体で発生したエラーや通信状態などステータス情報に関しても要求があればデータ処理装置１０２に対して返却する。
【００２２】
中央制御部１４１は、データ処理装置１０２の各種機能を制御し、ＣＰＵの持つ機能がこれに該当する。入力操作部１４２は、ユーザーの意図を印刷設定に反映させるための各種入力機器から構成される。設定情報通知部１４３は、印刷設定をユーザーに通知する。通知方法としては、モニタなどの表示装置を使用する場合や音声による通知などが考えられる。Ｉ／Ｆ制御部１４０は、データ処理装置１０２のインタフェース機能を司る。Ｉ／Ｆ制御部１４０はＵＳＢのホスト側のコントローラによって構成され、ＵＳＢホストとしての機能を有する。ＵＳＢホストとしての機能の一部はＯＳやドライバなどソフトウェアによっても構成される。プリンタドライバ１３０は、印刷のための各種設定や印刷データの生成及びプリンタの制御をデータ処理装置１０２上で行うためのソフトウェアである。中央制御部１４１（すなわちパーソナルコンピュータのＣＰＵ）によりプリンタドライバのプログラムが実行されて、印刷設定処理部１３１やイメージデータ生成部１３２、データ通信処理部１３３などの機能が実現される。印刷設定処理部１３１は、用紙の設定や印刷品位の設定などを含む各種印刷設定を行う。印刷設定処理部１３１は、ユーザーからの指示や入力を受け付け、設定された内容を表示もしくは通知する機能を有する。イメージデータ生成部１３２は、アプリケーションにより作成された印刷ジョブの印刷データからイメージデータを作成して印刷コマンドを生成する。イメージデータ生成部１３２で作成された印刷ジョブの印刷コマンドは、データ通信処理部１３３を介してＩ／Ｆ制御部１４０に送られ、プリンタ１０１へ印刷コマンドが送られる。
【００２３】
＜プリンタドライバの動作＞
図１１は本実施形態におけるプリンタドライバ１３０の動作の概念図である。データ処理装置１０２では、印刷するための文書を作成するアプリケーション１１１０が動作する。アプリケーション１１１０で文書が作成され、作成された文書の印刷処理を行なうにあたり、アプリケーション１１１０はＯＳの印刷機能を介してプリンタドライバ１３０の印刷設定処理部１３１により、図３を参照して後述する様々印刷設定を行なうことが可能である。アプリケーション１１１０は最初に文書の印刷処理を開始する。そして各ページにおいてページの印刷処理を開始し、文書のページ内に含まれるデータを印刷データとしてＯＳの印刷機能を介してスプールファイル１１１１に格納し、各ページにおいてページの印刷処理を終了する。以上の各ページの処理を印刷する文書のページに対して行なった後、文書の印刷処理を終了する。このようにしてアプリケーション１１１０で作成された文書は印刷データの形式でスプールファイル１１１１に格納される。ここでアプリケーション１１１０が文書の印刷処理の開始／終了、ページの印刷処理の開始／終了を行なうタイミングで、文書あるいはページの開始／終了の通知がＯＳの印刷機能によりプリンタドライバ１３０に報告される。スプールファイル１１１１は、ＯＳの一部として提供される機能を利用することができる。
【００２４】
プリンタドライバ１３０のイメージデータ生成部１３２はスプールファイル１１１１に格納された印刷データから印刷するイメージデータを作成し、作成したイメージデータをプリンタ１０１が解釈可能な印刷コマンドに変換する。イメージデータ生成部１３２により作成された印刷コマンドはデータ通信処理部１３３を介し、データ処理装置１０２とプリンタ１０１を結ぶＩ／Ｆ１０３を介してプリンタ１０１に送信される。プリンタ１０１は受信した印刷コマンドにより制御され記録媒体１００にイメージデータを可視像として形成する。
【００２５】
＜印刷設定画面＞
図３は本実施形態における印刷モードや各種用紙設定を行う際に表示される印刷設定ダイアログの一例を示す図である。同図において、印刷設定ダイアログ３０１は、表示エリア３０２〜３１１、３２０〜３３１から構成される。印刷設定では表示する項目が非常に多いため、タブシートを使用して設定項目を内容ごとに分けて見やすい構成にするのが通例である。本実施形態でもタブを使用する。
【００２６】
基本設定タブ３０２では、印刷の基本に関する内容を表示する。詳細については後述する。ページ設定タブ３０３は、用紙の大きさ、印刷方向、印刷レイアウト（Ｎ−ｕｐ）などの各種ページ設定に関する内容を表示する。同時にユーザーによる上記設定内容の変更指示や入力を受け付ける。スタンプ／背景タブ３０４は、印刷文書に対して文字を重ねるスタンプ機能や、画像を重ねる背景機能という、印刷文書を変更することなしに印刷時に付加するパターンの選択画面を表示する。特殊効果タブ３０５は、各種画像補整やセピア調など特殊な効果を画像に与える場合に使用する機能の選択画面を表示する。お気に入りタブ３０６は頻繁に使用する印刷設定などの保存と呼び出し機能を選択させる画面を表示する。ユーティリティタブ３０７は、ヘッドの調整やクリーニングなどの機能の選択画面を表示する。
【００２７】
図３は基本設定タブ３０２が選択された場合の表示例を示す。基本設定の簡易表示エリア３２０には、文字情報だけでなく視覚に訴える形で設定された情報を表示する。プリントアドバイザ３２１が選択されると、利用者により印刷設定を適切に入力させるために、印刷目的から最適な印刷設定を段階的に導く機能を持つサブダイアログを表示する。用紙種類選択部３２２は、用紙種類を表示するとともに利用者により選択させることができる。用紙種類選択部３２２はドロップダウンメニューとなっており普段は選択されている用紙種類が表示され、そこをクリックすることで選択可能な用紙種類がリスト表示される。選択可能な用紙種類はプリンタで印刷可能な用紙であり、図示されている普通紙の他にも例えば光沢紙、コート紙、写真専用紙、ハガキ、年賀状葉書等が含まれる。給紙方法選択部３２３は、プリンタ本体が用紙を給紙する給紙方法を表示し、利用者による給紙方法の選択をさせることができる。利用者は、給紙方法選択部３２３により、たとえば自動給紙口である給紙トレイや給紙カセットが選択できる。
【００２８】
印刷品質選択部３２４は利用者に印刷の品位を設定させるための項目である。色調整部３２５は利用者に印刷の色を調整させるための項目である。グレースケール設定部３２６は、印刷文書がカラーであっても印刷結果をグレースケールにするためのチェックボックスである。印刷部数設定部３２７は印刷部数を利用者に設定させるための項目である。この数値を設定することによりアプリケーションが作成した印刷ジョブの印刷データを、プリンタドライバが指定された回数繰り返し印刷することにより、複数部数の印刷結果を得ることができる。逆順指定部３２８はページ順を逆順に設定するための項目である。単位設定部３２９は印刷を部単位で行なうかどうかを設定するための項目であり、印刷部数３２７の設定が２以上の場合に設定が有効となる。バージョン情報３３０は、本ダイアログを表示するドライバのバージョンを示すサブダイアログを表示させるためのボタンである。標準設定部３３１が押されると、基本設定３０２の設定が標準（出荷時設定）に戻される。
【００２９】
ユーザは各項目を選択した後にＯＫボタン３０８を押下することで印刷設定ダイアログ３０１を閉じ、選択した印刷設定を印刷に反映させることができる。Ｃａｎｃｅｌボタン３０９を押下すると印刷設定ダイアログ３０１が閉じ、選択した設定項目の内容は破棄され印刷に反映されることはない。Ａｐｐｌｙボタン３１０は印刷設定ダイアログ３０１は開いたままで選択した印刷設定を印刷に反映させることができる。Ｈｅｌｐボタン３１１は基本設定３０２の各設定項目に関する説明文を別ウィンドウで表示させることができる。
【００３０】
＜バンディング処理＞
図６はデータ処理装置１０２で動作するラスタプリンタ用のプリンタドライバ１３０が印刷ジョブに含まれる印刷データからイメージデータ作成し、印刷コマンドに変換する際に用いるバンドとラスタの概念図である。本実施形態のラスタプリンタ１０１はイメージデータを印刷コマンドとして受け取り、１あるいは複数のラスタ単位で印刷を行なう。画像６００は印刷後の記録媒体に形成された画像を示している。ここでページ印刷データ（ページ全体の印刷データ）からページ全体のイメージデータ全体を作成するとデータ処理装置１０２のメモリの残容量が逼迫するため、イメージデータを複数のバンドに分割し、バンドごとにイメージデータを作成する。画像６００として形成されたイメージデータはバンド６０１〜６０４に分割されている。図６では、イメージデータ全体を４分割している例を示している。イメージデータ全体が必要とするメモリ容量は、図３で示した印刷設定ダイアログを介して設定される印刷品位や用紙サイズにより変化するため、イメージデータの分割数は１つのバンドが必要とするメモリ容量を一定にするように計算される。ここでバンドは複数のラスタで構成される。例えばバンド６０３は、ラスタ６１１〜６１４を含む。図６では４ラスタにより１バンドを構成している。また、各ラスタは画素６１５の集合となっている。プリンタドライバ１３０はバンド単位でイメージデータを作成し、作成したイメージデータを印刷コマンドに変換する。一つの印刷コマンドに含まれるイメージデータは１ラスタ分であったり、或いは複数ラスタ分の場合もある。本実施形態では理解を容易にするために一つの印刷コマンドに含まれるイメージデータは１ラスタとして説明する。また、実際には１ラスタからＣＭＹＫ等のインクに対応した印刷コマンドや、イメージデータを作成したＲＧＢの各色に対応した印刷コマンドが発行される場合もある。
【００３１】
＜プリンタの構造＞
図１０はプリンタ１０１の一例であるインクジェットプリンタの概念図を示しており、本実施形態の特徴を説明する上で特に必要ないと思われる機能については省略する。ラスタプリンタであるインクジェットプリンタは、データ処理装置１０２から転送されてくる印刷コマンドに含まれる１ラスタ又は複数ラスタのイメージデータを記憶できる程度の必要最小限のラスタメモリを持ち、印刷処理を実行できる。インクジェットヘッド１０００は、図の紙面に垂直な方向に沿って往復走査され、インクジェットヘッド１０００に対向した部分（ここを記録位置と呼ぶ。）にインクが吐出される。印刷用紙は、インクジェットヘッド１０００による１回の走査毎に一定量ずつ搬送される。
【００３２】
印刷用紙Ｐは、プリンタ１０１本体に対して着脱可能に設けられている自動給紙のための給紙カセット１００４と給紙トレイ１００６とに収容されており、そのいずれかから、図３に示した印刷設定ダイアログにおける設定に従い選択的に給紙される。給紙カセット１００４上部には、それが装着された状態で用紙先端部分に給紙搬送ローラ１００８が配置されている。給紙搬送ローラ１００８は給紙カセット１００４に載置された最上部の印刷用紙Ｐと圧接されている。そのため給紙搬送ローラ１００８が駆動されることで、最上部の印刷用紙Ｐが記録位置に供給される。
【００３３】
給紙トレイ１００６は給紙先端部分に給紙搬送ローラ１０２０が配置されている。給紙搬送ローラ１０１０は給紙トレイ１００６の最上部の印刷用紙Ｐと給紙トレイカムにより印刷時に圧接される。そのため給紙搬送ローラ１０１０が駆動されることで、最上部の印刷用紙Ｐの給紙を行う。この構成により、給紙トレイ１００６または給紙カセット１００４のいずれかを給紙する側の給紙搬送ローラが選択駆動され、給紙トレイまたは給紙カセットの最上部の１枚の印刷用紙（以下、１枚の印刷用紙をシートとも呼ぶ。）Ｐの給紙が行われる。給紙トレイ１００６には任意のサイズの印刷用紙をセットすることも可能で、ユーザーは給紙カセット１００４とは別のサイズの印刷用紙をセットすることができる。給紙カセット１００４または給紙トレイ１００６から選択的に給紙された印刷用紙Ｐは、インクジェットヘッド１０００が設けられている印刷位置の手前に配置された搬送ローラ１０１６の位置へ送り込まれる。搬送ローラ１０１６は給紙されてきた印刷用紙Ｐを一旦停止させ、印刷動作と同期してインクジェットへッド１０００の印刷位置へと搬送を開始するように構成されている。インクジェットヘッド１０００と対向する印刷位置には、印刷用紙Ｐを裏面から支持し、印刷状態を安定させるためのプラテン１００２が設けられている。インクジェッドヘッド１０００とプラテン１００２とで印刷位置での印刷部を構成している。インクジェットヘッド１０００には、インクドットを吐出するためのオリフィスが印刷用紙の印字面と対向する側に設けられており、インク供給部より供給されるインクをヘッド駆動部１２１にてオリフィスより吐出させる。インクジェットヘッド１０００は、印刷用紙Ｐの搬送方向と直交する方向、つまり図１０の左から右側へと搬送される印刷用紙に対して紙面に直交する方向に沿って往復走査されながらインクドットの吐出を行い、複数ラスタで構成されるイメージデータに応じた可視像を印刷用紙Ｐの印字面に形成する。ここで、インクジェットヘッド１０００による走査が行われるときには、印刷用紙Ｐの搬送は停止され一方向への走査が行われ、１回の走査分の画像の形成が終了した時点で印刷したラスタ数に応じた量の印刷用紙の搬送が行われる。この動作を往復走査の各方向について繰返し行うことで、印刷用紙Ｐに１ページ分のイメージデータの印刷画像を形成する。インクジェットヘッド１０００と対向する印刷位置を通過した印刷用紙は、印刷位置の下流側に配置されている排出ローラ１０１８を介して、プリンタ１０１の本体外へと排出される。その位置に排出トレイ１０２０が設けられており、排紙トレイ１０２０に印刷済みのシートが印刷画像を上面にして排出される。プリンタ１０１は、次のページの印刷コマンドがデータ処理装置から送られてくると、次の印刷用紙Ｐの給紙を開始して搬送ローラ１０１６へと送り込むように制御している。給紙カセット１００４から給紙される場合、給紙された印刷用紙Ｐは反転してから搬送ローラ１０１６に送られるため、反転時に印刷用紙Ｐを支えるための反転押えローラ１０１２と１０１４が給紙カセット１００４から搬送ローラ１０１６を結ぶ搬送路上に設けられている。
【００３４】
本実施形態の印刷システムでは、先行給紙（後述）を実行させるために、給紙搬送ローラ１００８、１０１０の下流側に、給紙トレイ１００６また給紙カセット１００４より給紙される印刷用紙Ｐの有無を検知する印刷用紙検知センサ１２４を設けている。この印刷用紙検知センサ１２４は、マイクロスイッチ等の機械式あるいはフォトセンサ等の光学式であってもよく、シートが存在するときには存在信号を、存在しない場合には無しの信号（以下、シート検出信号と呼ぶ。）を出力する。出力された信号は印刷制御部１１０のフィード制御部１１２に入力される。このシート検出信号により先行給紙の開始制御がなされる。適所に設けられる印刷用紙Ｐの検知を行う印刷用紙検知センサは、シートが通過するときにはシート有りを示す信号を出力し、シートが通過した後はシート無しを示すシート検出信号を出力するため、シート検出信号により印刷用紙の先端および後端が検知できる。たとえば、シート検出信号の微分信号に表れるパルスを検出することで、シートの先端と後端とを識別できる。本実施形態の印刷システムにおいては、印刷用紙検知センサ１２４から出力されるシート検出信号により特に印刷用紙の後端を検知して先行給紙を実行している。印刷用紙検知センサ１２４からのシート検出信号に基づいて印刷用紙後端が検出された時、つまり印刷中の印刷用紙が搬送路の途中にあり、かつ印刷用紙の後端が給紙ローラ１００８または１０１０から離れている状態の時、プリンタ１０１が受信済みで現在印刷中のページに対応する印刷コマンド群中に先行給紙コマンドが存在していれば、次の印刷用紙の先端が印刷用紙検知センサ１２４で検出される位置まで、給紙トレイ１００４または給紙カセット１００６から用紙を給紙し、搬送しておく。このことで、現在の印刷用紙の印刷中に、搬送路中で次の印刷用紙の先端を現在の印刷用紙の後端に近づけておくことができる。このため、現在の印刷用紙の後端部分へのインクドットの吐出を行なって最後のバンドの記録が完了したあと、次の印刷用紙の先端がほぼ連続して搬送されてくるので、直ちに次の印刷用紙の先端部分へのインクドットの吐出を行なって先頭のバンドの記録を開始することができる。つまり、先行給紙コマンドをデータ処理装置１０２から送信しておくことで複数の用紙にわたる印刷をほぼ連続して行なうことが可能となり、給紙カセット１００４からの給紙のように搬送路が長くなるほど先行給紙による効果が大きくなる。
【００３５】
＜印刷コマンド＞
図４Ａ，４Ｂと図５を用いて、前述したラスタプリンタ１０１ににより先行給紙を伴う印刷動作を行わせるための印刷コマンドについて説明する。また、本実施形態の特徴を説明する上で特に必要ないと思われる部分については省略する。また本実施形態では「コマンド」として説明しているが、図面では「命令」と記載する。図６において、１ページのイメージデータはバンドで構成され、１バンドのデータはラスタで構成されると説明したように、印刷コマンドにおいても１ページはバンド単位の印刷コマンドで構成される。また図５に示すように、１バンドはラスタ単位の印刷コマンドで構成される。また各ページのイメージデータを表現する印刷コマンドの他に、前述した先行給紙コマンド、および、ページヘッダとしてその他の設定コマンドも含まれる。ページヘッダには印刷用紙や印字領域の寸法、解像度や印刷コマンド中のイメージデータのビットデプス等の情報が含まれている。
【００３６】
図４Ａ，４Ｂ，図５は３ページの文書を印刷する際に先行給紙を伴う印刷制御を行なうためにプリンタドライバ１３０により作成される印刷コマンド群とその順序を示している。各印刷コマンド群は３ページ分の印刷コマンドを含む。各図において、印刷コマンド群にはページヘッダ４０１、４１１、４２１が含まれ、各ページの印刷コマンドの先頭に位置している。バンドの印刷コマンド（印刷命令）は、各ページごとに、ページの印刷コマンド＃１に属するバンドの印刷コマンド４０２、４０４、４０５、ページの印刷コマンド＃２に属するバンドの印刷コマンド４１３、４１４、４１５、ページの印刷コマンド＃３に属するバンドの印刷コマンド４２２、４２３、４２４が含まれる。
【００３７】
先行給紙動作を伴う印刷を行なうためには、先行給紙コマンドを前のページに対応する印刷コマンド中に挿入しておけばよい。図４Ｂで示される印刷コマンドの並びが最も簡単な例である。ページの印刷コマンド＃１としてくくった印刷コマンド群のうちページヘッダ４０１に続いて先行給紙命令（コマンド）＃１（４０３）があり、その後にバンドの印刷命令がある。ページの印刷コマンド＃２としてくくった印刷コマンドも同様に先行給紙コマンド４１２が含まれている。またページの印刷コマンド＃３としてくくった印刷コンマンドでは最終ページに相当するため先行給紙コマンドは存在しない。このような印刷コマンドを受信したプリンタ１０１は、ページ１とページ２の印刷処理において、そのページの画像形成を行なう前に次の印刷用紙を先行給紙すべき事が判断できる。
【００３８】
図４Ａで示される印刷コマンドの並びは、プリンタドライバがイメージデータをバンド単位に分割して処理を行ない、そのバンド単位で印刷コマンドを生成する時に、ページの印刷コマンド群内における任意のタイミングで先行給紙コマンドを発行したときの例である。ページの印刷コマンド＃１でくくった印刷コマンドのうち、バンドの印刷命令＃１−１（４０２）に続いて先行給紙命令＃１（４０３）があり、その後に残りのバンドの印刷コマンドが続いている。このような印刷コマンドを受信したプリンタ１０１は印刷用紙の後端部分に最後の画像生成を行なう前に次の印刷用紙を先行給紙すべき事が判断できる。図４Ａには最初のバンドの印刷命令４０２の後に先行給紙コマンド４０３が続く例を示したが、少なくとも各ページの印刷コマンドに含まれる最後のバンドの印刷命令の前に先行給紙コマンドが存在すれば給紙動作を先行して行なうことが可能である。
【００３９】
図５で示される印刷コマンドの並びは、プリンタドライバがイメージデータをバンド単位に分割して処理を行ない、さらにバンドをラスタ単位に分割して印刷コマンドを生成する時に、ラスタ単位の印刷コマンド群内における任意のタイミングで先行給紙コマンドを発行した時の例である。ページの印刷コマンド＃１でくくった印刷コマンドのうち、さらにバンドの印刷命令＃１−１に続くバンドの印刷命令＃１−２でくくった印刷コマンド群のうち、ラスタの印刷命令＃１（５０１）に続いて先行給紙命令＃１（４０３）があり、その後に残りのラスタの印刷コマンドとバンドの印刷コマンドが続いている。このような印刷コマンドを受信したプリンタ１０１は、印刷用紙の後端部分に最後の画像生成を行なう前に次の印刷用紙を先行給紙すべき事を判断できる。図５には二番目のバンドの最初のラスタの印刷コマンド５０１の後に先行給紙コマンド４０３が続く例を示したが、少なくとも各ページの印刷コマンドに含まれる最後のラスタの印刷コマンドの前に先行給紙コマンドが存在すれば給紙動作を先行して行なうことが可能である。
【００４０】
ここで理想的には、印刷用紙後端が印刷用紙検知センサ１２４で検出された位置においてインクジェットヘッドによって画像形成されるべきイメージデータを含む印刷コマンドの直前までに先行給紙コマンドが存在すれば、次のページの完全な先行給紙動作を行なうことができるのはいうまでもない。
【００４１】
＜印刷コマンドの発行タイミング＞
図２Ａ，２Ｂは、データ処理装置１０２で動作するアプリケーションソフト１１１０が印刷動作を行なう際のアプリケーションソフト１１１０による印刷データの作成と、プリンタドライバ１３０のイメージデータ生成部１３２の処理と、イメージデータ生成部１３２による印刷コマンド発行のタイミングとを示している。図２Ａ，２Ｂでは、アプリケーションが３ページで構成される文書の印刷を行なうときの例を示す。なお、図におけるアプリケーション１１１０とイメージデータ生成部１３２との間の「印刷データ」は、たとえばウインドウズ（登録商標）では、オペレーティングシステムにより提供されるグラフィックデバイスインターフェースと呼ばれる機能を介してプリンタドライバ１３０に渡される。また、通常アプリケーションによる印刷データの作成はプリンタドライバ１３０による印刷コマンドの作成よりも短時間で終了するため、図２Ａ，２Ｂにおいても同様に表現している。図２Ａと図２Ｂはそれぞれ図４Ａと図４Ｂに対応しており、印刷コマンド群中の先行給紙コマンドの位置が異なっている。図２Ａでは、ページ印刷コマンド＃１中の先行給紙コマンド２６２は最初のバンドの印刷コマンド２６１に続いて発行されている。図２Ｂでは、ページ印刷コマンド中で印刷コマンドのヘッダ（ページヘッダ）２６０に続いて先行給紙コマンド２６２が発行されている。
【００４２】
図２Ａにおいて、アプリケーションが印刷処理を開始すると（２００）、ＯＳの印刷機能によりジョブ印刷データ作成開始がプリンタドライバへ通知される（２３０）。続いてアプリケーションは文書の１ページ目の描画の開始を宣言すると（２０１）、同様にプリンタドライバへページの印刷データ作成開始が通知される（２３１）。ここでアプリケーションは文書の１ページ目に含まれたデータを印刷するための描画命令を発行し（２０２）、１ページ目のページ描画を終了すると（２３２）、ページ印刷データ作成完了がプリンタドライバに通知される（２３２）。こうして或るページの印刷データの作成が完了した時点で初めてプリンタドライバ１３０は印刷データからイメージデータを作成し、必要に応じバンド単位で分割し、印刷コマンドを発行を開始する。
【００４３】
まずページ印刷コマンドに対応するヘッダを発行し（２６０）、続いて印刷データからイメージデータへ展開しバンド単位で分割して作成された印刷コマンドが発行される（２６１）。同様にプリンタドライバ１３０は次のバンドの処理を行なうが、この間にアプリケーションが文書の２ページ目の描画開始を宣言すると（２１０）、ページ印刷データ作成開始がプリンタドライバに通知され（２４０）、プリンタドライバ１３０は次の印刷用紙が必要であることが判断できる。ここでプリンタドライバ１３０は２番目のバンドの処理中であるため、２番目のバンドの処理が終了した時点で先行給紙コマンドを発行し（２６２）、続いて２番目のバンドの印刷コマンドを発行する（２６３）。この間にアプリケーションは文書の２ページ目のデータの描画命令を発行し印刷データを作成し（２１１）、ページ描画を終了すると（２１２）、ページ印刷データ作成完了がプリンタドライバ１３０に通知されるので（２４１）、この時点でプリンタドライバ１３０は次のページの印刷コマンドを発行することが可能であることを判断できる。プリンタドライバ１３０は１ページ目の印刷コマンドをすべて発行した後（２６４）、２ページ目の印刷コマンドの発行処理を開始する（２７０）。
【００４４】
アプリケーションは続いて文書の３ページ目を印刷するためページ描画開始を宣言し（２２０）、文書のページのデータを印刷するために描画命令を発行し（２２１）、ページ描画終了を宣言し（２２２）、印刷終了を宣言する（２２３）。プリンタドライバ１３０にはページ印刷データ作成の開始・終了、印刷終了のタイミングで通知が行われ（２５０、２５１、２５２）、３ページ目が最終ページであることが判断できる。プリンタドライバ１３０は２ページ目のページ印刷コマンドを、先行給紙コマンド発行（２７０）、バンドの印刷コマンド発行し（２７３、２７４）、続いて最終ページである３ページ目の印刷コマンドを、ヘッダ発行（２８０）、バンドの印刷コマンド発行し（２８１、２８２、２８３）、印刷処理を終了する。ここでプリンタドライバは最終ページと判断された３ページ目では先行給紙コマンドを発行しない。
【００４５】
図２Ｂの各番号は図２Ａと同様であるため説明を省くが、１ページ目の印刷コマンドの発行で先行給紙コマンド発行（２６２）とバンドの印刷コマンド発行（２６１）の順序が図２Ａと逆になっている。これはアプリケーションから次のページのページ印刷データ作成開始がプリンタドライバ１３０に通知されるまで、１ページ目の印刷コマンドの最初のバンドの発行を待ち、先行給紙コマンドを発行してから（２６２）、１ページ目の印刷コマンドの最初のバンドを発行することで（２６１）、プリンタ１０１が先ページの画像形成を行なう前に次の印刷用紙の先行給紙動作の判断を可能にしているためである。図２Ｂではプリンタドライバ１３０がバンドの印刷コマンドの間で先行給紙コマンドを発行している例を示したが、ラスタの印刷コマンド間で先行給紙コマンドを発行すれば、さらに細かいタイミングでプリンタは先行給紙動作が必要であることを判断できる。
【００４６】
＜プリンタドライバによる印刷コマンド発行処理＞
図７、図８、図９には本実施形態のプリンタドライバ１３０のイメージデータ生成部１３２による処理手順のフローチャートを示す。前述したようにラスタ単位の印刷コマンド間で先行給紙コマンドを発行することで、もっとも細かいタイミングでプリンタが先行給紙動作が必要であることが判断できるようになる。そこで、図７，８，９においても、ラスタの印刷コマンド間で先行給紙コマンドを発行できる例を示す。また、図３に示した印刷設定ＵＩを介してユーザが入力した印刷部数を印刷設定処理部１３１によって設定した場合においても、効率良く先行給紙コマンドを発行できるようになっている。図７〜９では共通の代用変数を用いる。
【００４７】
図７には部数や部単位の設定がされているときのページ単位の処理のフローを示す。プリンタドライバ１３０がジョブの印刷処理を開始すると、ユーザーが印刷設定処理部１３１を介して設定した印刷部数を部数Ｃに代入し、部単位印刷用の部単位ループ数Ｌに１を代入し、部単位カウンタｕに１を代入し、初期化を行なう（Ｓ７０１）。部数Ｃは部単位印刷が設定されていないときに効率良く同一ページの印刷コマンドを繰り返し発行するために用いられる。
【００４８】
続いて部単位印刷が設定されているかどうかを判断する（Ｓ７０２）。部単位印刷の判定は、図３の部単位印刷設定３２９により入力された値をたとえば「部単位印刷」のフラグとして保持し、その値をテストして判定できる。部単位印刷が設定されていなければＳ７１０に移り、設定されていれば部単位ループ数Ｌに部数Ｃを代入し、部数Ｃに１を代入する（Ｓ７０３）。これによって、部単位印刷が設定されていれば、部単位の印刷コマンドを、部単位ループ数Ｌ回発行する。
【００４９】
Ｓ７１０からは部単位ループとなっており、先ず部単位印刷が設定されている場合について説明する。Ｓ７１０ではページ番号ｎに１を代入する。ページ番号ｎは着目しているページの番号を表す。Ｓ７２０ではコピー数カウンタｃに部数Ｃを代入する。部単位印刷が設定されている場合は部数Ｃは１であるのでコピー数カウンタｃも１となる。Ｓ７２１では部単位印刷かどうかを判断し、部単位印刷でなければＳ７４０に移り、部単位印刷であればＳ７２２に移り文書のｎページ目のページ印刷処理を行なう。ここで印刷コマンドおよび先行給紙コマンドが発行される。ページ印刷処理のフローは図８で説明する。続いてＳ７２３では（ｎ＋１）ページ、つまり次ページの印刷データ作成開始の通知が在ったかどうかを判断し、次ページの印刷データ作成開始の通知があればＳ７２４に移り、ページ番号ｎに（ｎ＋１）を代入し次ページの印刷処理を行なうためにＳ７２０に移る。
【００５０】
一方Ｓ７２３の判断で次ページの印刷データ作成開始通知がなければＳ７３０に移り、ジョブの印刷データの作成完了通知があったかどうかを判断する。ジョブの印刷データ作成完了通知がなければＳ７３２に移り次の通知を待ち、Ｓ７２３に移り処理を続行する。Ｓ７３０の判断でジョブの印刷データ作成完了通知があればＳ７３１に移り、部単位数カウンタｕが部単位ループ数Ｌよりも小さいかどうか判断する。カウンタｕの方がループ数Ｌよりも小さければ、印刷すべき残部がまだあるためＳ７３３に移り、部単位数カウンタｕに（ｕ＋１）を代入してＳ７１０へ移り次の部単位印刷を続行する。Ｓ７３１における判断で部単位数カウンタｕが部単位ループ数Ｌよりも小さくなければ、印刷設定で指定された部数の印刷を終了したためにジョブ印刷処理を終了する。
【００５１】
次に印刷設定処理部で部単位印刷が設定されていない場合について説明する。部単位印刷が設定されている場合は部単位ループ数Ｌが１となり部数Ｃには印刷設定処理部で設定された部数が代入されている。よって部単位ループは１回のみ処理され、各ページが部数Ｃ回処理されることになる。なお、部単位印刷における説明と共通する説明は省略する。
【００５２】
Ｓ７４０では文書のページｎのイメージデータの印刷コマンドを格納するためのファイル（以下、コマンドファイルと呼ぶ。）を作成する。続いてＳ７４１ではコピー数カウンタcが０より大きいか判断する。カウンタｃが０より大きければＳ７４３に移り文書のｎページ目のページ印刷処理を行ない、Ｓ７４４でコピー数カウンタｃに印刷すべき残部数（ｃ−１）を代入してＳ７４１に移り、残りの部数回ページ印刷処理を行なう。一方Ｓ７４１の判断で、設定された部数回ページ印刷処理を行なったと判断された場合は、Ｓ７４２に移りＳ７４０で作成した印刷コマンドを保存したコマンドファイルを削除し、Ｓ７２３と移り文書の次のページのページ印刷処理を続行する。
【００５３】
図８にはプリンタドライバ１３０のページ印刷処理のフローチャートを示す。ここでは主にページのイメージデータをバンドに分割し、バンドのラスタごとの処理を説明する。
【００５４】
ページ印刷処理の開始後、Ｓ８０１でバンド番号ｂに１を代入し、先行給紙を既に発行したかどうかを判断するためのフラグＦをＯＦＦに設定し、初期化を行なう。バンド番号ｂは着目バンドの番号を表す。
【００５５】
続いてＳ８０２ではコピー数カウンタｃと部数Ｃとが等しいかどうかを判断する。Ｓ８０２の判断で両者が等しい場合には、部単位印刷が設定されておらず、かつ各ページの第１部目の印刷処理の場合と、部単位印刷が設定されている場合とが含まれる。何れの場合にもＳ８１０へ移る。一方Ｓ８０２の判断において両者が異なる場合、つまり部単位印刷が設定されておらず、かつ各ページの第２部目以降のページ印刷処理の場合にはＳ８４０に移る。
【００５６】
Ｓ８１０では文書のｎページ目の印刷データからバンド番号ｂにあたる部分のイメージデータを作成する。続いてＳ８１１ではバンド内のラスタ番号ｒに１を代入する。Ｓ８２０では、一定の条件が満たされた場合に先行給紙コマンド発行処理を行なう。先行給紙コマンド発行処理は図９を用いて詳述する。続いてＳ８２１では、バンドｂ内のラスタｒの部分にあたるイメージデータを印刷コマンドに変換し発行する。Ｓ８２２では部単位印刷かどうかを判断する。部単位印刷でなければＳ８２３に移り、作成した印刷コマンドを図７のＳ７４０で作成したコマンドファイルに追加し、Ｓ８２４に移る。このようにして作成した印刷コマンドを格納しておくことで、同一ページの印刷コマンドを連続して複数回発行する際にイメージデータと印刷コマンドの作成処理を省くことができる。Ｓ８２２の判断で部単位印刷である場合にはＳ８２４に移り、作成した印刷コマンドをコマンドファイルに保存することはしない。
【００５７】
Ｓ８２４ではラスタ番号ｒのラスタがバンド内の最終ラスタであるかどうかを判断し、最終ラスタでなければＳ８２５に移り、ラスタ番号ｒに次のラスタ番号（ｒ＋１）を代入し、Ｓ８２０に移ることで次のラスタの処理を続行する。一方Ｓ８２４の判断でラスタ番号ｒのラスタが最終ラスタであると判断された場合はＳ８３０に移り、バンド番号ｂのバンド、すなわち着目バンドはページ内の最終バンドかどうかを判断する。最終バンドでない場合はＳ８３１に移り、バンド番号ｂに次のバンドの番号（ｂ＋１）を代入し、Ｓ８１０に移り次のバンドの処理を続行する。一方Ｓ８３０の判断で最終バンドであると判断された場合はページ印刷処理を終了する。
【００５８】
さて、Ｓ８０２で、カウンタｃと部数Ｃとが等しくないと判断された場合、すなわち、同一ページの印刷コマンドを連続して複数回発行する設定（部単位印刷設定でない設定）におけるの第２部目以降であると判断された場合、まずＳ８４０ではラスタ番号ｒに１を代入する。ラスタ番号ｒは、着目バンドにおける着目するラスタの番号を表す。続いてＳ８４１で既に先行給紙コマンドが発行されたかどうかをフラグＦをテストして判断し、まだ発行されていない場合はＳ８４２に移って先行給紙コマンド発行処理を行なう。続いてＳ８４３でバンド番号ｂのラスタ番号ｒのラスタの印刷コマンドをコマンドファイルから読み込み発行する。コマンドファイルにはページを構成するラスタに対応する印刷コマンドが順番に格納されているため、単純にファイル先頭から印刷コマンド単位で読み進めればよい。続いてＳ８４４でラスタ番号ｒのラスタはバンド内の最終ラスタであるかどうかを判断する。最終ラスタでない場合はＳ８４５に移り、ラスタ番号ｒに次のラスタ番号（ｒ＋１）を代入し、Ｓ８４１に移り次のラスタの処理を続行する。一方Ｓ８４４の判断で最終ラスタである場合は、Ｓ８４６に移り、バンド番号ｂのバンドはページ内の最終バンドであるかどうかを判断する。最終バンドでなければＳ８４７に移り、バンド番号ｂに次のバンド番号（ｂ＋１）を代入してＳ８４０に移り、次のバンドの処理を続行する。一方Ｓ８４６の判断で最終バンドであればページ印刷処理を終了する。
【００５９】
Ｓ８４１の判断で既に先行給紙コマンドが発行済であると判断された場合はＳ８４８に移り、バンド番号ｂのバンドのラスタ番号ｒ以降の印刷コマンドをファイルから読み込み発行する。これは、文書の或るページの印刷コマンドを複数回発行する処理の最終回において、ファイルに格納された印刷コマンドをラスタごとに発行している間に、アプリケーションが次のページの描画開始を宣言したことがプリンタドライバ１３０に通知された際には、ラスタの印刷コマンドの間に先行給紙コマンドを発行し、その後においてはページ内のラスタの印刷コマンドをラスタごとに発行する必要はなく、ファイルから次の印刷コマンドを抽出する処理を省くことができるためである。こうしてページ内の残りの印刷コマンドを発行し、ページ印刷処理を終了する。
【００６０】
図９にはプリンタドライバ１３０の先行給紙コマンド発行処理のフローチャートを示す。前述したようにプリンタの構成によっては、給紙カセットから印刷用紙を給紙する場合には、給紙トレイから給紙する場合と比較して、印刷用紙先端がインクジェットヘッドの下部に到達して印刷可能状態な位置までに搬送するまでの搬送路が長くなる。このようなプリンタでは、先行給紙動作の効果を考えると、先行給紙した場合のスループットとしない場合のスループットの差は、給紙トレイと比較して給紙カセットから給紙する場合のほうが大きくなる。従って図９では、給紙カセットから給紙する場合のみ先行給紙コマンドを発行する例について説明する。
【００６１】
先行給紙コマンド発行処理が始まると、Ｓ９０１で既に先行給紙コマンドが発行されたかどうかをフラグＦをテストして判断する。発行済の場合は先行給紙コマンド発行処理を終了する。未だ発行されていなければＳ９０２に移り、コピー数カウンタｃが１より大きいかどうか、つまり同一ページの印刷コマンドの発行動作を２部分以上行なうべきかどうかを判断する。印刷コマンドの発行を２部分以上行うべきであれば、Ｓ９１０に移り先行給紙コマンドを発行し、続いてＳ９１１で先行給紙コマンド発行フラグＦをＯＮに設定し先行給紙コマンド発行処理を終了する。
【００６２】
一方Ｓ９０２で同一ページの印刷コマンド発行動作が最後であると判断されればＳ９０３に移る。Ｓ９０３では文書の（ｎ＋１）ページ目、つまり次ページの印刷データ作成開始の通知があったかどうかを判断し、通知があればＳ９０４に移り文書の（ｎ＋１）ページ目、つまり次ページの印刷設定から給紙方法を取得する。続いてＳ９０５ではＳ９０４で取得した文書の（ｎ＋１）ページ目つまり次ページの給紙方法が給紙カセットかどうかを判断し、給紙カセットではない場合Ｓ９１１に移り、先行給紙コマンド発行フラグＦをＯＮに設定し先行給紙コマンド発行処理を終了する。一方Ｓ９０５で次ページの給紙方法は給紙カセットである場合はＳ９１０に移り、先行給紙コマンドを発行した後に、Ｓ９１１で先行給紙コマンド発行フラグＦをＯＮに設定し先行給紙コマンド発行処理を終了する。
【００６３】
さて、Ｓ９０３の判断で、文書の（ｎ＋１）ページ目、つまり次ページの印刷データ作成開始の通知がない場合はＳ９２０に移り、ジョブ印刷データ作成完了通知があったかどうかを判断する。ジョブ印刷データ作成完了通知がなければ先行給紙コマンド発行処理を終了し、先行給紙コマンド発行を先送りにする。一方Ｓ９２０の判断でジョブ印刷データ作成完了の通知があった場合はＳ９２１に移り、部単位数カウンタｕが部単位ループ数Ｌより小さいか、つまり部単位印刷の最終部かどうかを判断し、最終部である場合は最終ページであることを意味するので、先行給紙コマンドは発行せずＳ９１１に移り、先行給紙コマンド発行フラグをＯＮにしてから先行給紙コマンド発行処理を終了する。一方Ｓ９２１の判断で部単位印刷の最終部でないとされた場合はＳ９２２に移り、現在処理中のページは文書の最終ページに相当するため、文書の１ページ目に設定されている給紙方法が給紙カセットであるかどうかを判断する。給紙カセットであればＳ９１０に移り、先行給紙コマンドを発行し、続いてＳ９１１で先行給紙コマンド発行フラグＦをＯＮに設定して先行給紙コマンド発行処理を終了する。一方Ｓ９２２の判断で１ページ目の給紙方法がカセットでないと判断された場合は先行給紙コマンドを発行せずにＳ９１１に移り、先行給紙コマンド発行フラグをＯＮに設定して先行給紙コマンド発行処理を終了する。
【００６４】
なお、ステップＳ９０５及びステップＳ９２２の判定処理を削除すれば、給紙方法の設定の内容にかかわらず先行給紙コマンドが発行される。
【００６５】
そして以上の手順により発行された印刷コマンドを受信したプリンタは、例えば以下のように動作する。
【００６６】
給紙トレイあるいは給紙カセットから供給されたシートが一定の位置に達したなら、印刷コマンドを解釈実行することで可視画像をシート上に形成する。そして、印刷コマンドを順次処理していき、その結果現在印刷中のシートの後端が検出される前に次ページの先行給紙コマンドをフェッチした場合には、その先行給紙コマンドの処理は先送りして、その次の印刷コマンドを処理する。この場合には、その後にシート後端が検出されたときに先行給紙コマンドを処理する。
【００６７】
そして、用紙検出センサ１２４の出力信号に基づいてシートの後端が検出された場合には、印刷制御部１１０に設けられたメモリに格納された、受信されて未だ未処理の印刷コマンド群の中に、次ページの先行給紙コマンドが含まれているかを調べる。なお、次ページの先行給紙コマンドの受信の有無は、図４Ａ等に示したように、ページヘッダによりページごとに区切られた、現在印刷中のページに対応する印刷コマンド群中に先行給紙コマンドが含まれるか否かを調べることで判定できる。
【００６８】
次ページの先行給紙コマンドを既に受信していれば、その先行給紙コマンドを直ちに処理するのが望ましい。ただし、印刷コマンドを順番に処理し、そして先行給紙コマンドで指定された給紙方法に従って、次のシートの給送を開始させる。もちろんその動作と並行して現在ページへの印刷処理も遂行する。
【００６９】
そして、現在のページの印刷処理が終了するまでの間には、その間に受信した次のページの印刷コマンド群に先行給紙コマンドが含まれていないか監視し、含まれていればその先行給紙コマンドを印刷処理と同時並行的に処理して、次のページのシートの給送を開始させる。
【００７０】
なお、ＵＳＢやＩＥＥＥ１３９４などのバスでデータ処理装置とプリンタとが接続されている場合には、データ処理装置からプリンタのメモリのアドレスを指定してデータを送信することができる。そこで、先行給紙コマンドについては、そのページを指定する属性を付与して、他の印刷コマンドとは別の特定領域に送信するようにデータ処理装置を構成することもできる。このようにすれば、メモリ中を印刷制御部１１０により調べることなく、特定領域のみを調べることで先行給紙コマンドの有無を判別できる。
【００７１】
本実施形態では一つの印刷コマンドに含まれるイメージデータは１ラスタとしたが、複数のラスタが含まれている場合でも同様の効果が得られる。また先行給紙コマンドを発行するタイミングとしてラスタの印刷コマンドの間としたが、これに限った物ではなく例えばバンド間のタイミングで発行してもよいし、さらにはラスタやバンド等のイメージデータを含んだ印刷コマンドの発行の前に印刷コマンドのヘッダの一部として先行給紙コマンドを発行してもよい。
【００７２】
本実施形態ではインクジェットヘッドの往動走査と復動走査のそれぞれでインクの吐出を行なうように説明したが、片方の走査でインクの吐出を行ない他方の走査ではインクを吐出せずに走査と同時に搬送動作を行なってもよい。
【００７３】
本実施形態のプリンタドライバの先行給紙コマンド発行処理のフローチャートでは、次のページの給紙方法が給紙カセットに設定されている場合にのみ先行給紙コマンドを発行するようにしたが、給紙カセットでなく、給紙トレイとした場合でも同様の効果が得られる。先行給紙コマンドにより先行給紙可能な給紙口はプリンタの構成にも依存するため、例えば先ページと次ページの給紙方法が等しい時のみ、先行給紙コマンドを発行することもできる。
【００７４】
本実施形態のプリンタの構造においては印刷用紙検出センサにより印刷用紙の後端を検知した後に先行給紙を実行するようにしたが、プリンタは印刷用紙検出センサにより印刷用紙の先端を検知する構造にしてもよい。この場合は、プリンタドライバは用紙長を表現するデータを印刷コマンドに格納し、プリンタは印刷用紙の先端を検出した後の印刷用紙の搬送量と印刷コマンド中の用紙長から印刷用紙の後端位置を計算し、印刷用紙の後端が給紙搬送ローラから離れた後に先行給紙を実行することができる。
【００７５】
以上のように本実施形態で説明した処理を行なうことにより、ユーザーにより部数設定や部単位設定がなされている場合においても、イメージデータの作成と同時に生成した印刷コマンドを解析して先行給紙コマンドを挿入することなく、印刷コマンドを生成する段階で先行給紙コマンドを最も詳細なタイミングであるラスタの印刷コマンドの間で発行しつつ、印刷コマンドを発行することが可能となる。すなわち、生成した印刷コマンドを解析する必要が無いので、生成した印刷コマンドの全てをハードディスク等の二次記憶装置に格納する必要もなく、また、少なくとも２ページ分の印刷コマンドをメモリ中に保持する必要もないため、印刷コマンドの生成を少ないメモリ容量で効率良く行なうことができる。
【００７６】
［実施形態の変形例］
尚、本発明は、上記実施形態に限定されず種々の変形が可能である。その変形例としては例えば次のようなものがある。
【００７７】
本発明の特徴として印刷システムの構成要素の一つであるデータ処理装置を説明するのに、実施形態ではパーソナルコンピュータを想定したが、何もパーソナルコンピュータに固有の機能を有しているわけではない。すなわち、上記実施形態で説明してきたように、データ処理装置側で印刷に関する部数や部単位で印刷する項目を設定する機能を備えていればその種類については問わない。つまり印刷システムとしてトータルの機能を満たしていれば個々のデバイス、装置を限定するものではない。
【００７８】
本発明の実施形態においては、例としてＯＳにマイクロソフト社のＷｉｎｄｏｗｓＸＰ（登録商標）を使用したが、このＯＳに限られることなく、同様な構成をとることにより、任意のＯＳにおいて実現することができる。
本発明の実施形態においては、データ処理装置１０２とプリンタ１０１との間のインタフェースとして、ＵＳＢインタフェースを用いたが、このインタフェースに限られることなく、同様な構成をとることにより、任意のインタフェースにおいて実現することができる。
【００７９】
また、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００８０】
また、本発明の目的は、前述した実施形態の機能を実現する、図７乃至図８のソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、パーソナルコンピュータ等のシステムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはCPUやMPU）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。そして、コンピュータに接続されるプリンタにも、上記実施形態で説明した手順で印刷コマンドを処理するためのプログラムが、供給され、プリンタのＣＰＵにより実行される。
【００８１】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体およびプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００８２】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００８３】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００８４】
以上説明したように、本実施形態によれば次のような効果が得られる。
（１）プリンタドライバが作成した印刷コマンドの全体を解析し、印刷コマンドの作成後に先行給紙コマンドを挿入する必要がなくなり、あるページについて印刷コマンド発行中に、任意のタイミングで次ページのための先行給紙コマンドを発行することができる。
（２）プリンタドライバが作成した印刷コマンドの全体を、ハードディスクドライブのような二次記憶装置に格納する必要がなくなる。
（３）プリンタドライバが作成した印刷コマンドのうち少なくとも連続した２ページ分の印刷コマンドを格納するだけのメモリ容量を必要としない。
（４）プリンタドライバが印刷コマンド生成と同時に、作成した印刷コマンドの解析を行なう必要が無いのでデータ処理装置の負荷が軽減される。
（５）部数設定や部単位設定が設定されている印刷に関しても、効率良く先行給紙コマンドを発行することができる。
（６）先行給紙コマンドの発行タイミングが、ページ区切りでなく、バンド毎、さらには任意タイミングにできる。それによってアプリからのスプールタイミングで、印字データ作成途中にコマンド発行できるという並行処理が可能となる。
【図面の簡単な説明】
【００８５】
【図１】本発明の実施の一形態に係る印刷システムの構成を示すブロック図
【図２Ａ】印刷にかかわるアプリケーションとプリンタのタイミングチャート
【図２Ｂ】印刷にかかわるアプリケーションとプリンタのタイミングチャート
【図３】印刷設定ダイアログの一例を示す図
【図４Ａ】先行給紙コマンドの印刷コマンド中の位置を示した図
【図４Ｂ】先行給紙コマンドの印刷コマンド中の位置を示した図
【図５】先行給紙コマンドの印刷コマンド中の位置を示した図
【図６】ページのイメージデータとバンドとラスタの概念図
【図７】イメージデータ生成部のページ印刷処理を示すフローチャート
【図８】イメージデータ生成部のラスタ印刷処理を示すフローチャート
【図９】イメージデータ生成部の先行給紙コマンド発行処理を示すフローチャート
【図１０】インクジェットプリンタの概念図
【図１１】プリンタドライバ動作の概念図
【図１】
0004803954.tif 000002
【図２Ａ】
0004803954.tif 000003
【図２Ｂ】
0004803954.tif 000004
【図４Ａ】
0004803954.tif 000005
【図４Ｂ】
0004803954.tif 000006
【図５】
0004803954.tif 000007
【図６】
0004803954.tif 000008
【図７】
0004803954.tif 000009
【図８】
0004803954.tif 000010
【図９】
0004803954.tif 000011
【図１０】
0004803954.tif 000012
【図１１】
0004803954.tif 000013
【図３】
0004803954.tif 000014