(57)【特許請求の範囲】
【請求項１】
シリアルプリンタ用のプリンタドライバプログラムであって、
コンピュータに、
自装置の状況が、使用可能メモリ量がメモリ量しきい値以下である第１状況、第１状況ではないが自装置のデータ処理能力に関するＣＰＵ動作周波数が所定値を超えていない第２状況、第１状況及び第２状況のいずれでもない第３状況のいずれにあるかを判定する判定ステップと、
前記判定ステップにおいて自装置の状況が前記第１状況にあると判定されたときに、予め定められた規定サイズの複数の矩形領域が得られるように、印字領域を用紙の搬送方向に垂直な線で分割した上で、分割によって得られた複数の矩形領域のそれぞれについて、用紙の先端側に位置する矩形領域から順次、その矩形領域への描画内容を規定する領域単位印刷データを生成する領域単位印刷データ生成処理を実行する第１の領域単位印刷データ生成ステップと、
前記判定ステップにおいて自装置の状況が前記第２状況にあると判定されたときに、最も用紙の先端側に位置する矩形領域のサイズが前記規定サイズとなり、かつ、他の全ての矩形領域のサイズが前記使用可能メモリ量に応じた前記規定サイズよりも大きなサイズとなるように、前記印字領域を用紙の搬送方向に垂直な線で分割した上で、前記領域単位印刷データ生成処理を実行する第２の領域単位印刷データ生成ステップと、
前記判定ステップにおいて自装置の状況が前記第３状況にあると判定されたときに、全ての矩形領域のサイズが前記使用可能メモリ量に応じた前記規定サイズよりも大きなサイズとなるように、前記印字領域を用紙の搬送方向に垂直な線で分割した上で、前記領域単位印刷データ生成処理を実行する第３の領域単位印刷データ生成ステップと、
前記第１乃至第３の領域単位印刷データ生成ステップのいずれかにおいて前記領域単位印刷データが生成される度に、その領域単位印刷データを、指定されているポートから送出する領域単位印刷データ送出ステップと
を実行させることを特徴とするプリンタドライバプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、シリアルプリンタ用のプリンタドライバプログラムに、関する。
【０００２】
【従来の技術】
周知のように、プリンタに印刷を行なわせる際には、そのプリンタに接続されたコンピュータ側で、プリンタドライバの制御下、印刷データを生成する処理（以下、印刷データ生成処理と表記する）が、行なわれている。
【０００３】
そして、この印刷データ生成処理は、一般に、小容量のメモリで印刷データを生成できるようにするために、印字領域を用紙の搬送方向に垂直な線で分割することに得られる矩形領域毎に（矩形領域単位で）、印刷データが生成されるものとなっている。以下、一般的な呼称に従い、この矩形領域のことを、バンドと表記する。
【０００４】
バンド毎に印刷データを生成する際に必要とされるメモリ容量は、バンドサイズ（バンドの幅と高さ；幅は印字領域の幅で決まるので、変更可能なのは、バンドの高さ）に比例するので、バンドサイズを小さくすれば、他処理のためにより多くのメモリ容量を残しておけることになる。ただし、バンドサイズの減少により１ページ分のバンドの数が増えるにつれて、１ページ分の印刷データの生成が完了するまでにより長い時間が必要とされるようになる。従って、印刷データの生成が完了するまでに要する時間の観点からは、バンドサイズを出来る限り大きくしておくことが望ましいこととなり、そのため、バンドサイズを、使用可能なメモリ容量（或いは実装メモリ容量）に応じたサイズとして、印刷データを生成するプリンタドライバプログラムも、開発されている。
【０００５】
【発明が解決しようとする課題】
上記した、バンドサイズをメモリ容量に応じて変更するプリンタドライバプログラムによれば、それがインストールされたコンピュータに、効率的な印刷データ生成処理を実行させることが出来る。
【０００６】
しかしながら、バンドサイズをメモリ容量に応じて変更する、インクジェットプリンタや熱転写プリンタ等のシリアルプリンタ用のプリンタドライバプログラム（以下、従来ドライバと表記する）は、シリアルプリンタを、“印刷が遅いプリンタ”として機能させてしまうことがあるものとなっていた。
【０００７】
すなわち、シリアルプリンタは、一般に、印刷データの受信開始時に用紙の取り込みが開始されるように構成されている。また、コンピュータ側で、上記のような印刷データ生成処理が完了するまで要する時間は、通常（コンピュータがどのような仕様のものであっても）、シリアルプリンタ側で、１ページ分の印刷データに応じた描画が完了するまでに必要とされる時間よりも短い。このため、シリアルプリンタと、従来ドライバがインストールされたコンピュータとで構成される一般的なシステムでは、コンピュータの搭載メモリ量等に依らず、原則として（コンピュータ側で何らかの問題が生じない限り）、１番目のバンドに関する印刷データのシリアルプリンタへの供給が開始された時点から、シリアルプリンタの仕様に応じた時間が経過したときに、１ページの印刷結果が排出されている。
【０００８】
そして、従来ドライバは、上記説明から明らかなように、インストールされたコンピュータのメモリ容量が多いほど、ユーザが印刷の指示を当該コンピュータ（従来ドライバ）に対して出した後、１番目のバンドに関する印刷データの送信が開始されるまでに要する時間が長いプログラムとなっているので、結局、従来ドライバは、シリアルプリンタを、“印刷が遅いプリンタ”として機能させてしまうことがあるものとなっていた。特に、大容量のメモリが搭載されているが、ＣＰＵの処理能力がさほど高くないコンピュータにインストールされた従来ドライバは、シリアルプリンタを、印刷結果の排出にかなりの時間を要するプリンタとして機能させてしまっていた。
【０００９】
本発明は、このような事情に鑑みなされたものであり、本発明の課題は、シリアルプリンタを高速に動作させることが出来るプリンタドライバプログラムを、提供することにある。
【００１０】
【課題を解決するための手段】
【００１７】
本発明のプリンタドライバプログラムは、シリアルプリンタ用のプリンタドライバプログラムであって、コンピュータに、自装置の状況が、使用可能メモリ量がメモリ量しきい値以下である第１状況、第１状況ではないが自装置のデータ処理能力に関するＣＰＵ動作周波数が所定値を超えていない第２状況、第１状況及び第２状況のいずれでもない第３状況のいずれにあるかを判定する判定ステップと、判定ステップにおいて自装置の状況が第１状況にあると判定されたときに、予め定められた規定サイズの複数の矩形領域が得られるように、印字領域を用紙の搬送方向に垂直な線で分割した上で、分割によって得られた複数の矩形領域のそれぞれについて、用紙の先端側に位置する矩形領域から順次、その矩形領域への描画内容を規定する領域単位印刷データを生成する領域単位印刷データ生成処理を実行する第１の領域単位印刷データ生成ステップと、判定ステップにおいて自装置の状況が第２状況にあると判定されたときに、最も用紙の先端側に位置する矩形領域のサイズが規定サイズとなり、かつ、他の全ての矩形領域のサイズが使用可能メモリ量に応じた規定サイズよりも大きなサイズとなるように、印字領域を用紙の搬送方向に垂直な線で分割した上で、領域単位印刷データ生成処理を実行する第２の領域単位印刷データ生成ステップと、判定ステップにおいて自装置の状況が第３状況にあると判定されたときに、全ての矩形領域のサイズが使用可能メモリ量に応じた規定サイズよりも大きなサイズとなるように、印字領域を用紙の搬送方向に垂直な線で分割した上で、領域単位印刷データ生成処理を実行する第３の領域単位印刷データ生成ステップと、第１乃至第３の領域単位印刷データ生成ステップのいずれかにおいて領域単位印刷データが生成される度に、その領域単位印刷データを、指定されているポートから送出する領域単位印刷データ送出ステップとを実行させることが出来るように、作成される。
【００１８】
すなわち、本発明のプリンタドライバプログラムがインストールされたコンピュータは、指定されているポートに接続されたシリアルプリンタに印刷データを送信するに際して、使用可能メモリ量がメモリ量しきい値以下である場合（第１状況のある場合）には、規定サイズの矩形領域毎に領域単位印刷データを、生成、送信する。また、使用可能メモリ量がメモリ量しきい値以下ではないが、自装置のデータ処理能力に関するＣＰＵ動作周波数が所定値を超えていない場合（第２状況にある場合）、最も用紙の先端側に位置する矩形領域のサイズを規定サイズとし、かつ、他の全ての矩形領域のサイズを、メモリの容量に関する使用可能メモリ量に応じた、規定サイズよりも大きなサイズとして、矩形領域毎に領域単位印刷データを生成、送信する。そして、使用可能メモリ量がメモリ量しきい値以下でもなく、自装置のデータ処理能力に関するＣＰＵ動作周波数が所定値を超えている場合（第３状況にある場合）には、全ての矩形領域のサイズを、使用可能メモリ量に応じたサイズ（規定サイズよりも大きなサイズ）として、矩形領域毎に領域単位印刷データを生成、送信する。
【００１９】
従って、このプリンタドライバプログラムを用いれば、インストールされたコンピュータがどのような仕様のものであっても、シリアルプリンタに早く用紙の取り込みを開始させることが出来ることとなり、その結果として、シリアルプリンタを高速に動作させることが出来ることになる。
【００２２】
【発明の実施の形態】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
【００２３】
図１に模式的に示したように、本発明の一実施形態に係るプリンタドライバプログラム１０は、インクジェットプリンタ２０に供給する印刷データを生成するためのプログラムである。プリンタドライバプログラム１０は、ＣＤ−ＲＯＭ１５から読み出されて(或いは、Ｗｅｂサイトからダウンロードされて)、インクジェットプリンタ２０を利用するパーソナルコンピュータ(ＰＣ)５０にインストールされる。
【００２４】
このプリンタドライバプログラム１０が起動されたＰＣ５０（ユーザによって印刷が指示されたＰＣ５０）では、図２に示した手順の処理が行なわれる。なお、図示した処理は、請求項１に相当するものであり、ステップＳ１０１及びＳ１０４の処理が、請求項１における判定ステップとしての処理に相当しており、ステップＳ１０２の処理が、請求項１における第１の領域単位印刷データ生成ステップ及び領域単位印刷データ送出ステップの一部としての処理に相当している。また、ステップＳ１０３及びＳ１０６の処理が、請求項１における第２の領域単位印刷データ生成ステップ及び領域単位印刷データ送出ステップの一部としての処理に相当しており、ステップＳ１０３及びＳ１０５の処理が、請求項１における第３の領域単位印刷データ生成ステップ及び領域単位印刷データ送出ステップの一部としての処理に相当している。
【００２５】
すなわち、まず、その時点における使用可能メモリ量Ｖと、プリンタドライバプログラム１０が保持している(プリンタドライバプログラム１０内に設定されている)メモリ量しきい値ＶTとの大小関係が判断される(ステップＳ１０１)。そして、使用可能メモリ量Ｖがメモリ量しきい値ＶT以下であった場合(ステップＳ１０１；ＮＯ)には、各バンドのバンド高さを、プリンタドライバプログラム１０が保持している規定値ＨB0として、印刷データの生成、送信が行なわれる(ステップＳ１０２)。すなわち、バンド高さをＨB0としたバンド単位で印刷データを生成する処理と、バンド単位の印刷データが生成される度に、そのバンド単位の印刷データを、指定されているポートから送信する処理とが並行して行なわれる。なお、このステップＳ１０２及び後述するステップＳ１０５、Ｓ１０６における印刷データを送信する処理は、プリンタドライバプログラム１０の指示を受けたＯＳにより行なわれる。
【００２６】
一方、使用可能メモリ量Ｖがメモリ量しきい値ＶTを超えていた場合(ステップＳ１０１；ＹＥＳ)、使用可能メモリ量Ｖと、係数ｋ(プリンタドライバプログラム１０が保持している１以下の値、本実施形態では、１／３)と、印字領域分のＲＧＢデータの記憶に必要なメモリ量Ｖmaxとから、下記の(１)、(２)式により、必要メモリ量がほぼｋ・Ｖとなるバンド高さＨBが算出される(ステップＳ１０３)。
【００２７】
【数１】
0004239448.tif 000002
【００２８】
なお、(１)式に使用されるメモリ量Ｖmaxは、印字領域の縦方向のドット数Ｈと横方向のドット数とから求められる。また、(１)式にて算出されるＮBは、各バンドのバンド高さがＨBとされたときのバンド数であり、(２)式に、２つの“３２”が含まれているのは、バンド高さを３２の倍数とするためである。
【００２９】
例えば、使用可能メモリ量Ｖが、９６ＭＢ(＝９６・１０２４2バイト)で、印字領域が５７８４×７９３８ドット分の領域であった場合、このステップＳ１０３では、
Ｖmax＝５７８４×７９３８×３［Ｂ］
＝１２０［ＭＢ］
であり(１ドット当たり、３バイトのデータの記憶が必要)、
ｋ・Ｖ＝９６／３［Ｂ］＝３２［ＭＢ］
であるので、
ＮBとして、４(＝ｉｎｔ(１２０／３２)＋１)が算出され、
その結果、ＨBとして、１９８２(＝３２・ｉｎｔ(７９３８／(３２・４)))が、算出される。
【００３０】
ＨBの算出完了後には、ＰＣ５０に搭載されたＣＰＵが、高性能ＣＰＵに分類されるものであるか否かが判断される(ステップＳ１０４)。具体的には、ＣＰＵの動作周波数(ＯＳが管理している情報)が所定値を超えているか否かにより、ＣＰＵが高性能ＣＰＵに分類されるものであるか否かが、判断される。
【００３１】
ＣＰＵが高性能ＣＰＵに分類されるものであった場合(ステップＳ１０４；ＹＥＳ)、各バンドのバンド高さを、ステップＳ１０３にて算出した値ＨBとして、印刷データの生成、送信が行なわれる(ステップＳ１０５)。一方、ＣＰＵが高性能ＣＰＵに分類されないものであった場合(ステップＳ１０４；ＮＯ)、第１バンドのバンド高さを規定値ＨB0とし、第２バンド以降の各バンドのバンド高さを、ステップＳ１０３にて算出した値ＨBとして、印刷データの生成、送信印刷データの生成、送信が行なわれる(ステップＳ１０６)。
【００３２】
すなわち、プリンタドライバプログラム１０は、使用可能メモリ量Ｖが、メモリ量しきい値ＶT未満であった場合(ＰＣ５０に搭載されているメモリの容量が元々少ない場合、他のプロセスによってメモリの大部分が使用されている場合)には、図３(ａ)に模式的に示したように、各バンドのバンド高さを、プリンタドライバプログラム１０が保持している規定値ＨB0として、印刷データを生成する。
【００３３】
また、使用可能メモリ量Ｖがメモリ量しきい値ＶT以上であった場合、プリンタドライバプログラム１０は、ＣＰＵが高性能ＣＰＵであるときには、図３(ｃ)に模式的に示したように、各バンドのバンド高さを、使用可能メモリ量Ｖ等から算出した値ＨBとして、印刷データの生成を行なう。一方、ＣＰＵが高性能ＣＰＵでないとき、プリンタドライバプログラム１０は、図３(ｂ)に模式的に示したように、第１バンドのバンド高さのみをＨB0とし、他の各バンドのバンド高さを、使用可能メモリ量Ｖ等から算出した値ＨBとして、印刷データを生成する。
【００３４】
以上、説明したように、本実施形態に係るプリンタドライバプログラム１０は、原則として、各バンドのバンド高さを、使用可能メモリ量Ｖに応じた値として印刷データを生成するが、自身がインストールされたＰＣ５０のＣＰＵが低性能のものであった場合には、使用可能メモリ量Ｖが多いときにも、１番目のバンドのバンド高さを、バンド高さの最小値として与えられている規定値ＨB0として、印刷データを生成する。
【００３５】
そして、既に説明したように、ユーザがＰＣ５０に対して印刷を指示した後、インクジェットプリンタ２０から印刷結果が排出されるまでに要する時間と、ユーザがＰＣ５０に対して印刷を指示した後、１番目のバンドに関するデータがＰＣ５０からインクジェットプリンタ２０へ送信されるまでの時間との間には正の相関があるので、このプリンタドライバプログラム１０によれば、ＰＣ５０がどのような仕様のものであっても、インクジェットプリンタ２０に早く印刷結果を排出させることが出来ることになる。
【００３６】
＜変形形態＞
実施形態に係るプリンタドライバプログラム１０は、各種の変形を行なうことが出来る。例えば、使用可能メモリ量Ｖがメモリ量しきい値ＶT以上であった場合には、常に、ステップＳ１０６が実行されるように(ステップＳ１０５が実行されることがないように)、プリンタドライバプログラム１０を変形しても良い。また、使用可能メモリ量ではなく、搭載メモリ量で、ステップＳ１０１の判断や、バンド高さの算出が行なわれるように、プリンタドライバプログラム１０を変形しても良い。また、プリンタドライバプログラム１０のインストーラー(セットアッププログラム)にＣＰＵの性能等を把握し、その把握結果に応じた設定をプリンタドライバプログラム１０に対して行なう機能を付与しておき、インストーラー等による設定内容に応じて動作するように、プリンタドライバプログラム１０を作成しておいても良い。
【００３７】
【発明の効果】
本発明のプリンタドライバプログラム、印刷データ供給方法によれば、シリアルプリンタを高速に動作させることが出来ることにある。
【図面の簡単な説明】
【図１】  本発明の一実施形態に係るプリンタドライバプログラムの使用形態の説明図である。
【図２】  実施形態に係るプリンタドライバプログラムによる印刷データの生成手順を示した流れ図である。
【図３】  実施形態に係るプリンタドライバプログラムによって生成される３種の印刷データのバンド構成を示した説明図である。
【符号の説明】
１０  プリンタドライバプログラム
１５  ＣＤ−ＲＯＭ
２０  インクジェットプリンタ
５０  パーソナルコンピュータ
【図１】
0004239448.tif 000003
【図２】
0004239448.tif 000004
【図３】
0004239448.tif 000005