(57)【要約】【課題】記録媒体にインクを吐出して画像を記録するインクジェットプリンタにひとつのページを印刷する場合に１ページの印刷完了後の乾燥待ち時間を短縮してそのページが利用可能になるまでの時間を短縮する。【解決手段】プリンタドライバ１０１に、インク打ち込み量を計算する手段と、ページの前半と後半でどちらがインクの打ち込み量が多いか判定する手段と、ひとつのページの描画データを１８０度回転する手段を設け、ページの前半の方が後半よりインクの打ち込み量が多い場合にページを１８０度回転して印刷データを作成する。【選択図】        図１
2004262171.tif 000002
【特許請求の範囲】
【請求項１】
記録媒体にインクを吐出して画像を記録するインクジェットプリンタに印刷を行うシステムであって、
ホストコンピュータにおけるプリンタドライバに、
文字・グラフィック（図形）・画像（ビットマップ）をコンピュータのメモリ上に描画する描画手段と、
ひとつのページの記録媒体表面上の一部分におけるインク打ち込み量を計算する手段と、
ページの前半と後半でどちらがインクの打ち込み量が多いか判定する手段と、
ひとつのページを１８０度回転して印刷データを作成する手段と、
上記描画データにプリンタコマンドを付加して印刷データを作成する印刷データ作成手段とを設け、ページの前半の方が後半よりインクの打ち込み量が多い場合にページを１８０度回転して印刷データを作成することによりひとつのページの印刷完了後の乾燥待ち時間を短縮することを特徴とするインクジェットプリンタ印刷方法。
【請求項２】
請求項１記載のインクジェットプリンタ印刷方法を備えたホストコンピュータにおけるプリンタドライバ。
【請求項３】
請求項１記載のインクジェットプリンタ印刷方法を備えたホストコンピュータ。
【請求項４】
請求項１記載のインクジェットプリンタ印刷方法を備えたインクジェットプリンタ印刷システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、インクジェットプリンタ印刷方法および印刷システム並びにその方法を備えたホストコンピュータまたはプリンタドライバに関し、記録媒体（通常は用紙。以後の記述では「用紙」という言葉を用いる）にインクを吐出して画像を記録するインクジェットプリンタに印刷を行う方法に関わる。
【０００２】
【従来の技術】
記録媒体にインクを吐出して画像を記録するインクジェットプリンタで印刷を行う場合、用紙上に吐出されたインクが完全に乾くまでに一定の時間がかかる。この乾燥時間はインクの種類や用紙の種類などで異なる。
【０００３】
インクジェットプリンタで印刷を行う場合、インクが乾く前に印刷した用紙に触ると用紙表面がこすれて、こすれたインクにより用紙表面が汚れる。また、インクが乾く前に印刷した用紙に他の紙を積み重ねると、印刷を行った用紙表面がこすれたインクで汚れたり、積み重ねた紙の裏面に印刷した用紙のインクが付着して汚れたりする。
【０００４】
このため、インクジェットプリンタで印刷を行う場合、１ページの印刷完了後も、吐出されたインクが乾燥するまでその用紙は利用することができない。
【０００５】
従来は、ひとつのページにおいて無条件にページの先頭から順次印刷を行っていた。
【０００６】
【発明が解決しようとする課題】
文字やイメージなどの印刷データがページ上で後ろのほうにある程、用紙にインクが吐出されてから１ページの印刷完了までの経過時間が短くなるため乾きにくい。このため、ページの後ろに文字やイメージなどの印刷データが多いほど印刷完了後の乾燥待ち時間が長くなる。
【０００７】
従来は、ひとつのページにおいて無条件にページの先頭から順次印刷を行っていたため、文字やイメージなどの印刷データがページの後ろに多いほど印刷完了後の乾燥待ち時間が長くなっていた。
【０００８】
本発明は、記録媒体にインクを吐出して画像を記録するインクジェットプリンタでひとつのページに印刷する場合に１ページの印刷完了後の乾燥待ち時間を短縮してそのページが利用可能になるまでの時間を短縮する方法を提供することを目的としている。
【０００９】
【課題を解決するための手段】
ひとつの、ページの最初の部分で印刷されたものとページの最後の部分で印刷されたものでは、用紙にインクが吐出されてから１ページの印刷完了までの時間に差があり、ページの最初の部分で印刷されたものの方が印刷後の経過時間が長いため乾きやすい。
【００１０】
このため、ページの前半より後半にインクの打ち込み量が多い場合、ページの後半を先に印刷すれば、１ページの印刷完了後の乾燥待ち時間を短縮することができる。
【００１１】
本発明では、プリンタドライバにひとつのページの用紙表面上の一部分におけるインク打ち込み量を計算する手段と、ページの前半と後半でどちらがインクの打ち込み量が多いか判定する手段と、ひとつのページの描画データを１８０度回転する手段を設け、ページの前半の方が後半よりインクの打ち込み量が多い場合にページを１８０度回転して印刷データを作成することにより、ひとつのページの印刷完了後の乾燥待ち時間を短縮できるようにする。
【００１２】
以上、本発明を整理して要約すれば以下の構成に集約できる。
【００１３】
（１）記録媒体にインクを吐出して画像を記録するインクジェットプリンタに印刷を行うシステムであって、
ホストコンピュータにおけるプリンタドライバに、
文字・グラフィック（図形）・画像（ビットマップ）をコンピュータのメモリ上に描画する描画手段と、
ひとつのページの記録媒体表面上の一部分におけるインク打ち込み量を計算する手段と、
ページの前半と後半でどちらがインクの打ち込み量が多いか判定する手段と、
ひとつのページを１８０度回転して印刷データを作成する手段と、
上記描画データにプリンタコマンドを付加して印刷データを作成する印刷データ作成手段とを設け、ページの前半の方が後半よりインクの打ち込み量が多い場合にページを１８０度回転して印刷データを作成することによりひとつのページの印刷完了後の乾燥待ち時間を短縮することを特徴とするインクジェットプリンタ印刷方法。
【００１４】
（２）前記（１）記載のインクジェットプリンタ印刷方法を備えたホストコンピュータにおけるプリンタドライバ。
【００１５】
（３）前記（１）記載のインクジェットプリンタ印刷方法を備えたホストコンピュータ。
【００１６】
（４）前記（１）記載のインクジェットプリンタ印刷方法を備えたインクジェットプリンタ印刷システム。
【００１７】
【発明の実施の形態】
以下に図面を参照しながら本発明の実施の形態について説明する。
【００１８】
【実施例１】
図１は、本発明のシステム構成を示している。
【００１９】
［システム構成］
ホストコンピュータ１００において、オペレーティングシステムのグラフィックスサブシステムを通じて伝えられるアプリケーションからの文字、グラフィック（図形）、画像（ビットマップ）データの印刷要求に基づき、プリンタドライバ１０１はホストコンピュータ１００のメモリ内に描画手段１０２により描画イメージデータを作成する。プリンタドライバ１０１は描画イメージデータに基づいてインク打ち込み量計算手段１０３によりページの前半と後半のインク打ち込み量を計算し、インク打ち込み量判定手段１０４によりページの前半と後半のいずれがインク打ち込み量が多いかを判定する。この処理の際、描画イメージデータがホストコンピュータ１００のメモリ内に収まりきらない場合には描画イメージ用ワークファイル１０７に描画イメージを書き出して保存しておく。
【００２０】
ページの後半のインク打ち込み量が多い場合には、描画イメージデータ回転手段１０５により描画イメージを１８０度回転し、印刷データ作成手段１０６によりそれにプリンタコマンドを付加した印刷データをセントロやネットワークなどの通信手段１１０により接続されたインクジェットプリンタ１２０に送信する。描画イメージを１８０度回転する処理の際、必要に応じて１８０度回転した描画イメージデータを回転イメージワークファイル１０８に書き出して保存しておく。ページの前半のインク打ち込み量が多い場合には、描画イメージを回転せずにそのままプリンタコマンドを付加した印刷データをプリンタ１２０に送信する。
【００２１】
インクジェットプリンタ１２０は上記印刷データに基づき記録媒体にインクを吐出して画像を記録する。
【００２２】
図２は、１ページの描画データの１例を示している。
【００２３】
２００はアプリケーションが描画要求した元のイメージである。ここでは、図形２０２，２０３、ビットマップデータ２０１が描画されている。この例では文字は描画されていない。
【００２４】
プリンタドライバ１０１は、アプリケーションプログラムから描画要求された文字、グラフィック（図形）、画像（ビットマップ）を、オペレーティングシステムのグラフィックスサブシステムの機能を使いながらコンピュータ１００のメモリ上に描画して、印刷用のビットマップデータに展開する。メモリが豊富にある場合は別だが、通常、印刷用のビットマップデータのサイズは膨大であり、プリンタドライバ１０１が利用可能なコンピュータ１００のメモリに１ページ分のデータは収まらない。このため上記グラフィックスサブシステムは、アプリケーションプログラムからの１ページ分の描画要求をバンドと呼ばれる同じ大きさの短冊状の部分に分割してプリンタドライバ１０１に渡す。この例では、バンド１からバンド６（２１１から２１６）の６個のバンドに分割されている。プリンタドライバ１０１はバンド単位で印刷用のビットマップデータの作成を行い、後で必要に応じてページを１８０度回転して出力するために、一旦、上記印刷用のビットマップデータを描画イメージ用ワークファイル１０７に格納するものとする。もちろん、ホストコンピュータ１００にメモリが豊富にあり１ページ分の印刷用のビットマップデータがメモリ内に収まる場合には、ファイルに書き出す必要はない。
【００２５】
１ページの印刷用ビットマップデータを１８０度回転するには、上下反転と左右反転を連続して行えばよい。２２０は元の１ページ分の画像２００を上下反転した画像を、２３０は上下反転した画像２２０を更に左右反転した画像を示す。これを見ると、２３０が２００を１８０度回転したものになっていることがわかる。
【００２６】
［インク打ち込み量計算方法］
次に、インク打ち込み量計算手段１０３が行うインク打ち込み量の計算方法について説明する。
【００２７】
ここで示すのは１例であり、他の方法を使っても良い。
【００２８】
インク打ち込み量計算方法はイメージフォーマットに依存する。ここでは、黒（Ｋ）、シアン（Ｃ）、マゼンタ（Ｍ）、黄色（Ｙ）の４色のインク色をサポートするプリンタを使用するものとする。
【００２９】
印刷データの色指定は次のように行うものとする。
【００３０】
用紙に出力される印刷の１画素には、ＫＣＭＹの各データの１ビットが対応する。すなわち、１画素はＫ  １ビット、Ｃ  １ビット、Ｍ  １ビット、および、Ｙ  １ビット、の４ビットで構成される。ビットが１のとき該当するインクが用紙に吐出される。印刷データは線順次データである。すなわち、用紙に出力される印刷の１ラインのデータはＫＣＭＹの４色で構成され、各ラインにつきＫ、Ｃ、Ｍ、Ｙの各データが１ライン分づつこの順番にプリンタ１２０に送られる。
【００３１】
図３はこれを図示したものである。すなわち１ラインの印刷データ３００は、１ラインのＫのデータ３０１、１ラインのＣのデータ３０２、１ラインのＭのデータ３０３、１ラインのＹのデータ３０４から構成される。１画素３１０のデータはＫの１ビット３１１、Ｃの１ビット３１２、Ｍの１ビット３１３、および、Ｙの１ビット３１４、の４ビットで構成される。
【００３２】
インクの吐出が行われるのは、画素あたりのイメージデータにおけるＫ、Ｃ、Ｍ、Ｙのいずれかのデータの１ビットが１の場合であるので、画素あたりのインクの吐出量は画素あたりのビットの値が１であるＫ、Ｃ、Ｍ、またはＹの数を数えることにより求められる。
【００３３】
画素あたりのインクの吐出量  ＝  （Ｋ）＋（Ｃ）＋（Ｍ）＋（Ｙ）
ここで、
（＜ｃｏｌｏｒ＞）はこの画素の印刷データにおける  色データ＜ｃｏｌｏｒ＞  （Ｋ，Ｃ，Ｍ，Ｙのいずれか）の値を表す。すなわち、
（＜ｃｏｌｏｒ＞）  ＝  ０    ＜ｃｏｌｏｒ＞のｂｉｔ＝０  のとき
（＜ｃｏｌｏｒ＞）  ＝  １    ＜ｃｏｌｏｒ＞のｂｉｔ＝１  のとき
たとえば、印刷データのある画素におけるＫＣＭＹの全ｂｉｔ＝１なら、
（Ｋ）＝（Ｃ）＝（Ｍ）＝（Ｙ）＝１
なので、この画素におけるインクの吐出量は４となる。
【００３４】
同じ位置に複数のインクが吐出されるとそれだけ乾きにくくなるため、上記の計算では同じ画素に複数のインクが吐出される量に応じて重み付けを行ったことになっている。
【００３５】
用紙における特定の領域におけるインクの吐出量は次のようにして求められる。
特定の領域におけるインクの吐出量＝特定の領域における全画素における画素あたりのインクの吐出量の総和
【００３６】
［インク打ち込み量判定方法］
次に、インク打ち込み量判定手段１０４が行うひとつのページの前半と後半でどちらがインクの打ち込み量が多いかを判定する方法について説明する。ここで示すのは１例であり、他の方法を使っても良い。
【００３７】
上記インク打ち込み量計算方法の説明で記述したように、描画データの作成はバンド単位で行われる。
【００３８】
プリンタドライバ１０１はバンドの処理を行う際、上記「特定の領域におけるインクの吐出量」計算方法に従って、そのバンドにおけるインクの打ち込み量を計算して記憶しておく。１ページ分の処理を完了後、ページの前半と後半に属するバンドのインク打ち込み量をそれぞれ合計する。
【００３９】
すなわち、１ページが２Ｎ個のバンドに分割されるとして、バンドにおけるインク打ち込み量を
Ｂｉ（ｋ）      （ｋはｋ番目のバンドを表す）
で表すことにすると、
2004262171.tif 000003
となる。
【００４０】
プリンタドライバ１０１はバンドの処理を行う際、Ｂｉ（ｋ）を記憶しておき、１ページ分の処理を完了後、上記の式にしたがってページの前半のインク打ち込み量とページの後半のインク打ち込み量を計算する。
【００４１】
ここでは、簡単のために１ページは偶数個のバンドに分割されるとしたが、奇数個に分割される場合には、ページの真中にまたがるバンドについてはバンドの前半と後半のインク打ち込み量をページの前半と後半のインク打ち込み量に加えるものとする。
【００４２】
このために、インクの打ち込み量をライン単位で管理するものとする。
【００４３】
すなわち、１バンドがＭラインで構成されるとして、１ラインにおけるインク打ち込み量を
Ｌｉ（ｊ）      （ｊはｊ番目のラインを表す）
で表すことにすると、
2004262171.tif 000004
となる。
【００４４】
上記式で求めたバンドの前半のインク打ち込み量とバンドの後半のインク打ち込み量をページの前半のインク打ち込み量とページの前半のインク打ち込み量の計算の際に使用する。
【００４５】
上記の計算式にしたがって、ページ前半のインク打ち込み量とページ後半のインク打ち込み量とを求める。その値が大きい方がインクの打ち込み量が多いと判定する。
【００４６】
［印刷データの１８０度回転手段］
次に印刷データを１８０度回転する方法について説明する。
【００４７】
１ページの印刷データを１８０度回転するには、上下反転と左右反転を連続して行えばよい。
【００４８】
上下反転は、図４に示すラインデータ位置管理テーブル４００を使って行う。
【００４９】
描画イメージ用ワークファイル１０７に描画データを書き出す際に、各ラインのファイル上での位置をメモリ内のラインデータ位置管理テーブル４００に記録しておく。ラインデータ位置管理テーブル４００の構造は、先頭に総ライン数が記録されており（４０１）、その後に各ラインの位置が記録されている（４０２〜４０３）。
【００５０】
上下反転のために描画イメージの記録された描画イメージ用ワークファイル１０７からラインデータを最後のラインから最初のラインまで１ラインずつ読み出して回転イメージ用ワークファイル１０８に書き出せばよい。これは上記ラインデータ位置管理テーブル４００を参照すれば可能である。
【００５１】
左右反転のためには１ラインのデータに対してバイト単位の左右反転と各バイトにおけるビット単位の反転を行えばよい。すなわち、
Ｌｄ（ｋ）を１ラインにおけるｋバイト目のデータであるとすると、次のようにＬｄ（ｋ）とＬｄ（Ｎ−ｋ）との入れ替えをｋ＝１からｋ＝Ｎ／２まで繰り返す。
Ｌｄ（１）  と  Ｌｄ（Ｎ）  との入れ替え
Ｌｄ（２）  と  Ｌｄ（Ｎ  −  １）  との入れ替え
．．．．．．．．．．．．
Ｌｄ（Ｎ／２）  と  Ｌｄ（Ｎ／２  ＋  １）  との入れ替え
バイト単位の左右反転が終わったので次に各バイトのビット単位の反転を行う。すなわち次の操作を実行する。
ｂｉｔ０  と  ｂｉｔ７の入れ替え
ｂｉｔ１  と  ｂｉｔ６の入れ替え
ｂｉｔ２  と  ｂｉｔ５の入れ替え
ｂｉｔ３  と  ｂｉｔ４の入れ替え
【００５２】
［印刷処理］
図５は本発明における印刷処理の流れを示すフローチャートである。
【００５３】
プリンタドライバ１０１は、１ページの印刷データを作成する際、オペレーティングシステムのグラフィックスサブシステムから渡されたバンド単位で行う。
【００５４】
全バンドの処理が終了していない場合（Ｓ５１０−Ｎｏ）には、プリンタドライバ１０１はホストコンピュータ１００のメモリ内に描画手段１０２により１バンド分の描画イメージデータを作成し（Ｓ５２０）、インク打ち込み量計算手段１０３によりそのバンドあたりのインク打ち込み量を計算して記憶する（Ｓ５３０）。作成した描画イメージデータは描画イメージ用ワークファイル１０７に書き込む（Ｓ５４０）。この際、ラインデータ位置管理テーブル４００に各ラインの描画イメージデータのファイル上での位置を記録する。
【００５５】
全バンドの処理が終了した場合（Ｓ５１０−Ｙｅｓ）には、プリンタドライバ１０１はＳ５３０で記憶している各バンドのインク打ち込み量からインク打ち込み量判定手段によりページの前半と後半の打ち込み量を計算する（Ｓ５５０）。いずれがインク打ち込み量が多いかを判定する。
【００５６】
ページ前半のインク打ち込み量が多い場合（Ｓ５６０−Ｙｅｓ）には、プリンタドライバ１０１は描画イメージ用ワークファイル１０７から描画イメージデータを読み出し、描画イメージを回転せずにそのまま、印刷データ作成手段１０６によりプリンタコマンドを付加した印刷データを作成しインクジェットプリンタ１２０に送信する。
【００５７】
ページ後半のインク打ち込み量が多い場合（Ｓ５６０−Ｎｏ）には、描画イメージデータ回転手段１０５により描画イメージを１８０度回転して、印刷データ作成手段１０６によりプリンタコマンドを付加した印刷データを作成しインクジェットプリンタ１２０に送信する。
【００５８】
インクジェットプリンタ１２０は上記印刷データに基づき記録媒体にインクを吐出して画像を記録する（Ｓ５９５）。
【００５９】
［描画データの１８０度回転処理］
図６は、描画データの１８０度回転処理の流れを示すフローチャートである。
【００６０】
プリンタドライバ１０１は、ラインデータ位置管理テーブル４００から１ページの描画イメージデータの最終ラインのデータの描画イメージ用ワークファイル内での位置を取得し（Ｓ６１０）、描画イメージ用ワークファイルからその１ラインのデータを読み込み（Ｓ６２０）、１ラインのデータの左右反転を行い（Ｓ６３０）、回転イメージ用ワークファイルに１ライン分の左右反転データ書き出す（Ｓ６４０）。
【００６１】
まだ最初のラインの処理が終了していなければ（Ｓ６５０−Ｎｏ）、ラインデータ位置管理テーブル４００から１ライン手前のデータの描画イメージ用ワークファイル内での位置を取得し（Ｓ６６０）、そのラインの処理に移る（Ｓ６２０）。
【００６２】
最初のラインまで処理が終了したら（Ｓ６５０−Ｙｅｓ）処理を終了する。回転イメージ用ワークファイルに描画イメージデータを１８０度回転したデータが出来上がる。
【００６３】
【実施例２】
実施例１のインク打ち込み量判定方法が最もインク打ち込み量が多いバンドがページの前半にあるか後半にあるかで行うもの。
【００６４】
最もインク打ち込み量が多いバンドがページの後半にある場合に描画イメージデータの１８０度回転処理を行ってプリンタに送信する。
【００６５】
【実施例３】
実施例１の描画データの１８０度回転処理において１ラインの左右反転を行った後、回転イメージ用ワークファイルに書き込まず、直接プリンタコマンドを付加してプリンタに送信する。
【００６６】
【発明の効果】
本発明により、記録媒体にインクを吐出して画像を記録するインクジェットプリンタでひとつのページに印刷する場合に１ページの印刷完了後の乾燥待ち時間を短縮してそのページが利用可能になるまでの時間を短縮することができる。
【図面の簡単な説明】
【図１】本発明のシステム構成を示す図
【図２】印刷ページの例、および、それを上下反転した図と更に左右反転した図
【図３】印刷データの構成の例を示す図
【図４】ラインデータ位置管理テーブルを示す図
【図５】印刷処理の流れを示すフローチャート
【図６】描画データの１８０度回転処理の流れを示すフローチャート
【符号の説明】
１００  ホストコンピュータ
１０１  プリンタドライバ
１０２  描画手段
１０３  インク打ち込み量計算手段
１０４  インク打ち込み量判定手段
１０５  描画イメージデータ回転手段
１０６  印刷データ作成手段
１０７  描画イメージ用ワークファイル
１０８  回転イメージ用ワークファイル
１１０  通信手段
１２０  インクジェットプリンタ
２００  １ページにおける描画データの例
２０１  ビットマップデータ
２０２，２０３  図形データ
２１１〜２１６  バンド
２２０  ２００を上下反転したもの
２３０  ２２０を左右反転したもの
３００  １ラインの印刷データの例
３０１  ３００を構成するＫ  １ラインの印刷データ
３０２  ３００を構成するＣ  １ラインの印刷データ
３０３  ３００を構成するＭ  １ラインの印刷データ
３０４  ３００を構成するＹ  １ラインの印刷データ
３１０  １ピクセルの印刷データの例
３１１  ３１０を構成するＫ  １ピクセルの印刷データ
３１２  ３１０を構成するＣ  １ピクセルの印刷データ
３１３  ３１０を構成するＭ  １ピクセルの印刷データ
３１４  ３１０を構成するＹ  １ピクセルの印刷データ
４００  ラインデータ位置管理テーブル
４０１  ４００における総ライン数の記録エントリ
４０２  ４００における１ライン目の位置の記録エントリ
４０３  ４００における最終ラインの位置の記録エントリ
【図１】
2004262171.tif 000005
【図２】
2004262171.tif 000006
【図３】
2004262171.tif 000007
【図４】
2004262171.tif 000008
【図５】
2004262171.tif 000009
【図６】
2004262171.tif 000010