JP3925224B2 - プリンタドライバ - Google Patents
プリンタドライバ Download PDFInfo
- Publication number
- JP3925224B2 JP3925224B2 JP2002031084A JP2002031084A JP3925224B2 JP 3925224 B2 JP3925224 B2 JP 3925224B2 JP 2002031084 A JP2002031084 A JP 2002031084A JP 2002031084 A JP2002031084 A JP 2002031084A JP 3925224 B2 JP3925224 B2 JP 3925224B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- print data
- attribute
- storage unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Accessory Devices And Overall Control Thereof (AREA)
Description
【発明の属する技術分野】
本発明は、プリンタへ印刷データを供給するためにコンピュータ上で実行されるプリンタドライバに、関する。
【0002】
【従来の技術】
プリンタを利用するためにコンピュータにて実行されるプリンタドライバには、コンピュータ(CPU)に過度の負担がかからない手順で印刷データをプリンタに供給できるものであることが望まれる。このため、コンピュータに、印刷データを生成するための処理(以下、印刷データ生成処理と表記する)と、生成された印刷データをプリンタに送信するための処理(以下、印刷データ送信処理と表記する)とを独立して(並行して非同期的に)行なわせることが出来るプリンタドライバ(以下、並列型プリンタドライバと表記する)が、開発されている。
【0003】
また、プリンタドライバには、コンピュータとプリンタとからなる印刷システムを、ユーザから印刷の中止が指示された際に即座に印刷関連の動作を中止するシステムとして機能させることが出来ることも望まれる。そして、この要望を満たす並列型プリンタドライバを作成するためには、並列型プリンタドライバに、印刷データ生成処理によって生成された印刷データが、どの部分まで印刷データ送信処理により送信されたかを管理する機能を付与しておかなければならない。何故ならば、プリンタは、所定サイズのデータを受信する度にそのデータがコマンドであるか否かを判断している訳ではないので、プリンタがコマンドを受信可能なタイミングを並列型プリンタドライバが把握できるようにしておく必要があるからである。
【0004】
そのような機能が付与された並列型プリンタドライバとしては、特開平11−316661号公報に記載の並列型プリンタドライバ(公報での名称は、印刷制御プログラム;以下、従来ドライバと表記する)が、知られている。
【0005】
この公報に記載の従来ドライバが実行されたコンピュータでは、印刷データ生成処理として、印刷データを構成する印刷コマンド群を生成するとともに、生成した各印刷コマンドに、その印刷コマンドのサイズとその印刷コマンドが次の印刷コマンドの送信が常に(印刷の中止が指示された場合にも)必要とされるものであるか否かとを示すヘッダ(或いはその印刷コマンドがどのようなコマンドであるかのみを示すヘッダ)を付加した形で、コマンドファイルに記憶する処理が行なわれる。なお、この従来ドライバによって実行される印刷データ生成処理は、中止指示が出されたか否かによって内容の変わらない処理となっている。
【0006】
そして、従来ドライバが実行されたコンピュータでは、印刷データ送信処理として、通常は、コマンドファイルから各印刷コマンドを抽出してプリンタに送信する処理が行なわれ、印刷の中止が指示された後には、コマンドファイルに記憶されたヘッダに基づきプリンタに送信することが必要な印刷コマンドのみをコマンドファイルから抽出してプリンタに送信する処理が行なわれる。
【0007】
【発明が解決しようとする課題】
上記した従来ドライバを用いれば、印刷の中止が指示されたときに即座に印刷が中止されるシステムを、一応、実現することが出来る。しかしながら、この従来ドライバを用いた場合、印刷データ生成処理が中止指示に応じた内容の処理となっていないことから明らかなように、印刷データ生成処理が完了する前に印刷の中止を指示した場合、印刷データ生成処理が完了するまでは印刷が終了しないことになる。また、従来ドライバの制御下、実行される印刷データ送信処理は、通常時にも、コンピュータ(CPU)が、コマンドファイル内から印刷コマンドを抽出しなければならない処理、換言すれば、単純なデータ送信処理よりも若干CPUの負荷が大きい処理となっている。さらに、従来ドライバは、生成したコマンド毎にヘッダの記憶が行なわれるように構成されているので、その動作のために、比較的に多くのメモリ資源を消費するものともなっている。
【0008】
本発明は、このような事情に鑑みなされたものであり、本発明の課題は、プリンタに対する中止制御を含む制御をより効率的にコンピュータに行なわせることが出来るプリンタドライバを、提供することにある。
【0009】
【課題を解決するための手段】
上記課題を解決するために、本発明のプリンタドライバは、コンピュータを、プリンタに供給されるべき印刷データの要素である印刷要素データを一時記憶するための印刷データ記憶部と、属性データを一時記憶するための属性データ記憶部と、プリンタに供給されるべき印刷データに関する印刷要素データを順次生成して印刷データ記憶部に記憶する処理を行なうとともに、必要に応じて、属性データ記憶部に、印刷データ記憶部内に記憶されている印刷要素データの中から、印刷の中止指示が出された場合に破棄されることなくプリンタに送信されるべき印刷要素データである破棄不可印刷要素データを特定可能な属性データを記憶する処理を行なう印刷データ生成部と、印刷の中止指示が出されていない場合には、印刷データ記憶部に記憶されている印刷要素データを、印刷データ記憶部への記憶順に従った順番でプリンタに送信する処理を行ない、印刷の中止指示が出された後には、属性データ記憶部に記憶されている属性データに基づき、印刷データ記憶部内の破棄不可印刷要素データのみをプリンタに送信する処理を行なう印刷データ送信部とを備える装置として動作させることが出来るように作成される。
【0010】
すなわち、本発明のプリンタドライバが実行されたコンピュータでは、属性データが印刷要素データ毎に記憶されない(所定条件を満たす印刷要素データが生成された場合にのみ属性データが記憶される)形で、印刷データ(印刷要素データ群)が生成される。従って、このプリンタドライバを用いれば、印刷要素データ毎に属性データが記憶されるようにした場合よりも、コンピュータ内でのメモリの消費量が少ない形で、プリンタに印刷を行なわせることが出来ることになる。また、本プリンタドライバを用いたコンピュータでは、印刷要素データと属性データとは、印刷データ記憶部と属性データ記憶部とに分けて記憶されるため、コンピュータ(印刷データ送信部)は、プリンタへの印刷要素データの送信を極めて単純な処理(送信すべきデータを他データから分離する処理が必要とされない処理)により行なうことが出来ることになる。従って、本プリンタドライバを用いれば、通常の印刷時(中止指示が出されていないとき)にCPUが行なわなければならない処理量を、従来よりも、低減できることにもなる。
【0011】
本発明のプリンタドライバは、印刷データ生成部が、印刷の中止指示が出された後には、破棄不可印刷要素データのみを印刷データ記憶部に記憶するユニットとして動作するように、構成(作成)しておくことが出来る。
【0012】
このように構成されたプリンタドライバを用いれば、印刷データの生成が完了していない状態で受け付けた印刷の中止指示に即座に応答できる印刷システムを実現できることになる。
【0013】
なお、属性データ記憶部に、印刷データ記憶部内に記憶されている印刷要素データの中から、印刷の中止指示が出された場合に破棄されることなくプリンタに送信されるべき印刷要素データである破棄不可印刷要素データを特定可能な属性データを記憶する処理としては、さまざまなものが採用可能であり、例えば、破棄不可印刷データを生成した後に破棄不可印刷要素データではない印刷要素データを生成したときと、破棄不可印刷要素データではない印刷要素データを生成した後に破棄不可印刷要素データを生成したときとに、属性データを属性データ記憶部に記憶する処理を、採用することが出来る。
【0014】
そのような処理が印刷データ生成部によって行われるように本発明のプリンタドライバを構成する場合には、さらに、印刷データ生成部が、属性データ記憶部に記憶しない属性データも生成するものとなり、印刷データ生成部が、印刷データ生成部によって生成されたが属性データ記憶部に記憶されなかった属性データを、印刷データ生成部から当該属性データの供給を受けることなく、復元する機能を有するものとなるようにすることが出来る。また、印刷データ送信部が、印刷の中止指示が出された場合、その中止指示が出された時に送信を行っていた印刷要素データを含む一連の不可分な印刷要素データ群の送信を終えた後に、属性データ記憶部に記憶されている属性データに基づき、印刷データ記憶部内の破棄不可印刷要素データのみをプリンタに送信する処理を開始するものとなるように、プリンタドライバを構成しておくことも、出来る。
【0015】
【発明の実施の形態】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
【0016】
図1に模式的に示したように、本発明の一実施形態に係るプリンタドライバ10は、プリンタ30へ印刷データを供給するためにパーソナルコンピュータ(PC)にインストールされるプログラムである。また、プリンタドライバ10は、一般的なプリンタドライバと同様に、ユーザが、PC20に対して、何らかのドキュメントの印刷を指示したときに、起動されるプログラムとなっている。なお、プリンタドライバ10のPC20へのインストールは、CD−ROM等の過般型記録媒体からの読み出しや、インターネット上のWebサイトからのダウンロードにより、行なわれる。
【0017】
以下、機能ブロック図と流れ図とを用いて、本実施形態に係るプリンタドライバ10の構成及び機能を、説明する。
【0018】
まず、プリンタドライバ10が実行されている場合におけるPC20の機能ブロック図である図2を用いて、プリンタドライバ10の概要を説明する。
【0019】
図示したように、プリンタドライバ10が実行されているPC20は、印刷データ生成部11、印刷データ記憶部12、属性データ記憶部13、及び、印刷データ送信部14を備える装置として機能する。
【0020】
印刷データ生成部11は、印刷が指示されたドキュメントの電子的データ(以下、印刷対象ドキュメントデータと表記する)に基づき、そのドキュメントに関する印刷データを、コマンド単位で順次生成するとともに、所定条件を満たすコマンドを生成した場合には属性データを生成する機能ブロックである。ここで、コマンドとは、プリンタ30が一情報として受信するデータ(途中で送信を中断できないデータ)のことである。また、印刷データ生成部11は、ユーザによりキャンセル要求(印刷処理の中止指示)が出されるのを監視し、キャンセル要求が出された場合には、キャンセルフラグを“ON”とする処理も行なう機能ブロックとなっている。
【0021】
印刷データ記憶部12は、印刷データ生成部11によって生成されたコマンドをFIFO(first-in first-out)形式(記憶された順にデータを読み出せる形式)で一時記憶するための機能ブロックである。この印刷データ記憶部12は、印刷データ送信部14が1度に送信できるサイズのデータを記憶可能な1つ又は複数個の記憶領域を有していると共に、個々の記憶領域に割り当てられているユニークな番号であるデータIndex値や、各記憶領域に記憶された印刷データの大きさを示すデータサイズIndex値を、必要に応じて属性データ記憶部13に属性データ情報として通知する機能を有している。属性データ記憶部13は、印刷データ生成部11によって生成された属性データをFIFO形式で一時記憶するための機能ブロックである。
【0022】
印刷データ送信部14は、印刷データ記憶部12に記憶されているコマンド群を、プリンタ30に送信する処理を行なうための機能ブロックである。この印刷データ送信部14は、印刷データ生成部11からの指示に従って動作を開始、終了する機能ブロックとなっている。
【0023】
次に、図3〜図5に示した流れ図を用いて、印刷データ生成部11の機能を、より具体的に説明する。
【0024】
図3に示したように、印刷データ生成部11は、起動された際(プリンタドライバ10の実行が開始された際)には、まず、キャンセルフラグ及びデータ保持フラグを“OFF”に初期化する(ステップS101)。
【0025】
キャンセルフラグは、既に概要説明を行なったように、キャンセル要求(印刷処理の中止指示)がユーザによって出されている状態にあるか否かを“ON”、“OFF”で記憶しておくためのフラグである。なお、このキャンセルフラグは、印刷データ生成部11によって変更(設定)が行われ、印刷データ生成部11及び印刷データ送信部14によって参照されるフラグとなっている。
【0026】
データ保持フラグは、前回、生成したコマンドが、キャンセル要求が出されている状態にあるときにはプリンタ30に転送することなく破棄可能なコマンド(以下、破棄可コマンドと表記する)であるか、キャンセル要求が出されている状態にあるときにもプリンタ30に転送することが必要なコマンド(排紙コマンド等、以下、破棄不可コマンドと表記する)であるかを、“ON”、“OFF”で記憶しておくためのフラグである。なお、このデータ保持フラグは、印刷データ生成部11或いは印刷データ送信部14により、利用(変更及び更新)されるフラグとなっている。
【0027】
このような用途のフラグであるキャンセルフラグ及びデータ保持フラグの初期化をステップS101にて行なった印刷データ生成部11は、印刷データ出力部14に対して動作の開始を指示する(ステップS102)。その後、印刷データ生成部11は、ステップS103〜S108からなる処理ループに入り、まず、全てのコマンドの生成(1ドキュメント分の印刷データの生成)が完了しているか否かを判断する(ステップS103)。そして、印刷データ生成部11は、全てのコマンドの生成が完了していなかった場合(ステップS103;NO)には、キャンセルフラグが“ON”となっているか否かを判断する(ステップS104)。
【0028】
キャンセルフラグが“ON”ではなかった場合(ステップS104;NO)、印刷データ生成部11は、キャンセル要求が出されているか否かを判断する(ステップS105)。すなわち、印刷データ生成部11は、前回のステップS105の実行時から今回のステップS105の実行時までの間にキャンセル要求が出されたか否かを判断する。
【0029】
キャンセル要求が出されていなかった場合(ステップS105;NO)、印刷データ生成部11は、コマンド生成処理(ステップS108)を開始する。詳細は後述するが、このコマンド生成処理は、印刷対象ドキュメントデータから1コマンドが生成され、当該コマンドの印刷データ記憶部12への記憶、或いは、当該コマンドの破棄が行なわれる処理であるとともに、必要である場合には、属性データを属性データ記憶部13に記憶する処理となっている。
【0030】
コマンド生成処理を終了した印刷データ生成部11は、印刷対象ドキュメントデータの残りの部分を処理するために、ステップS103からの処理を再び実行する。
【0031】
一方、キャンセル要求が出されていた場合(ステップS105;NO)、印刷データ生成部11は、キャンセルフラグを“ON”に書き換え(ステップS106)、その後、全ての破棄不可コマンドの生成が完了しているか否かを判断する(ステップS107)。また、印刷データ生成部11、キャンセルフラグが“ON”となっていた場合(ステップS104;YES)には、ステップS105、S106の処理を行なうことなく、このステップS107の処理(判断)を行なう。
【0032】
そして、全ての破棄不可コマンドの生成が完了していなかった場合(ステップS107;NO)、印刷データ生成部11は、コマンド生成処理(ステップS108)を開始する。
【0033】
ここで、図4及び図5を用いて、コマンド生成処理の説明を行なうこととする。
【0034】
図4に示してあるように、コマンド生成処理を開始した印刷データ生成部11は、印刷対象ドキュメントデータに基づき、1コマンドの生成(ステップS121)を行なった後、生成したコマンド(以下、処理対象コマンドと表記する)が、破棄可コマンドであるか破棄不可コマンドであるかを判断する(ステップS122)。
【0035】
処理対象コマンドが破棄可コマンドであった場合(ステップS122;YES)、印刷データ生成部11は、データ保持フラグが“OFF”であるか否かを判断する(図5:ステップS130)。
【0036】
データ保持フラグが“OFF”でなかった場合(ステップS130;NO)、印刷データ生成部11は、データ保持フラグを“OFF”に変更(ステップS131)した後に、キャンセルフラグが“ON”であるか否かを判断する(ステップS132)。キャンセルフラグが“ON”でなかった場合(ステップS132;NO)、印刷データ生成部11は、印刷データ記憶部12に処理対象コマンドを記憶(ステップS133)した後、現在のデータIndex値、データサイズIndex値を取得する(ステップS134)。一方、キャンセルフラグが“ON”であった場合(ステップS132;YES)、印刷データ生成部11は、印刷データ記憶部12に処理対象コマンドを記憶することなく(ステップS133を実行することなく)、ステップS134を実行する。
【0037】
そして、印刷データ生成部11は、データ保持終了属性値(対応するコマンドが破棄可コマンドであり、前コマンドが破棄不可コマンドであることを示す属性値)と、取得したデータIndex値及びデータサイズIndex値とからなる属性データを、属性データ記憶部13に記憶(ステップS135)した後、データIndex記憶値、属性記憶値を、それぞれ、取得したデータIndex値、データ保持終了属性値に更新する処理(図4:ステップS129)を行う。そして、印刷データ生成部11は、コマンド生成処理を終了して図3のステップS103からの処理を開始する。
【0038】
一方、データ保持フラグが“OFF”であった場合(ステップS130;YES)、印刷データ生成部11は、キャンセルフラグが“ON”であるか否かを判断(ステップS136)し、キャンセルフラグが“ON”でなかった場合(ステップS136:NO)には、印刷データ記憶部12内に処理対象コマンドを記憶(ステップS137)した後に、現在のデータIndex値、データサイズIndex値を取得する(ステップS138)。
【0039】
次いで、印刷データ生成部11は、属性データ出力省略条件が満たされているか否かを判断する(ステップS139)。ここで、属性データ出力省略条件とは、「取得したデータIndex値と、データIndex記憶値とが等しく、属性記憶値が、コマンド境界属性値(コマンド境界であることを示す属性値)となっている」という条件のことである。
【0040】
属性データ出力省略条件が満たされていなかった場合(ステップS139;NO)、印刷データ生成部11は、コマンド境界属性値と、ステップS138で取得したデータIndex値及びデータサイズIndex値とからなる属性データを、属性データ記憶部13に記憶する(ステップS140)。次いで、印刷データ生成部11は、図4のステップS129以降の処理を開始する。
【0041】
一方、属性データ出力省略条件が満たされていた場合(ステップS131;YES)、印刷データ生成部11は、ステップS140の処理を行なうことなく、ステップS129以降の処理を実行する。換言すれば、印刷データ生成部11は、同一データINDEX内で同一属性(データ保持属性又はデータ破棄属性)が連続する場合には、属性データのデータ記憶部13への記憶を、省略する。
【0042】
また、ステップS136にて、キャンセルフラグが“ON”であることを検出した場合、印刷データ生成部11は、処理対象コマンドを印刷データ記憶部12に記憶する処理等を行なうことなく(換言すれば、処理対象コマンドを破棄して)、ステップS129以降の処理を実行する。
【0043】
処理対象コマンドが破棄可コマンドではなかった場合(図4:ステップS122;NO)、印刷データ生成部11は、データ保持フラグが“ON”であるか否かを判断する(ステップS123)。データ保持フラグが“ON”でなかった場合(ステップS123;NO)、印刷データ生成部11は、データ保持フラグを“ON”に書き換える(ステップS124)とともに、現在のデータIndex値、データサイズIndex値を、取得する(ステップS125)。そして、印刷データ生成部11は、データ保持開始属性値と、取得したデータIndex値及びデータサイズIndex値とからなる属性データを、属性データ記憶部13に記憶(ステップS126)した後に、既に説明したステップS127からの処理を行なう。
【0044】
要するに、図3のステップS103〜S108からなる処理ループでは、通常の状態(印刷処理の中止が指示されていない状態)では、プリンタ30に供給すべきコマンド群を順次生成して印刷データ記憶部12に記憶する処理、並びに、順序づけられて(時系列的に)印刷データ記憶部12に記憶されているコマンドの中から、破棄可コマンドで前後が挟まれている破棄不可コマンドの並びを特定できる情報(データ保持開始属性値を含む属性データとデータ保持終了属性値を含む属性データ)を属性データ記憶部13に記憶する処理が、行なわれる。また、幾つかの破棄可コマンドについては、その印刷データ記憶部12内での位置を特定するための属性データ(コマンド境界属性値を含む属性データ)を、属性データ記憶部13に記憶する処理も、行なわれる。そして、この処理ループは、印刷処理の中止が指示された後には、上記のような内容の処理が破棄可コマンドを印刷データ記憶部12に記憶する処理を省略した形で実行されるループとなっている。
【0045】
印刷データ生成部11は、この処理ループを、全コマンドの生成が完了したとき(図3:ステップS103;YES)と、全ての破棄不可コマンドの生成が完了したとき(ステップS107;YES)とに、抜け出す。そして、印刷データ生成部11は、ステップS109にて、印刷データ記憶部12が空となる(印刷データ記憶部12に記憶された全コマンドが印刷データ送信部14によって取り出される)のを待機し、印刷データ記憶部12が空となったとき(ステップS109;YES)に、印刷データ送信部14に動作の終了を指示する(ステップS110)。その後、印刷データ生成部11は、印刷データ送信部14が動作を終了するのを監視(ステップS111)し、印刷データ送信部14が動作を終了した際(ステップS111;NO)に、自身も動作を終了する。
【0046】
次に、図6〜図10を用いて、印刷データ送信部14の動作を説明する。
【0047】
印刷データ生成部11から動作の開始が指示された印刷データ送信部14は、図6に示してあるように、まず、キャンセル処理開始フラグを“OFF”にするとともに、第2データ保持フラグを“OFF”にする(ステップS201)。
【0048】
具体的な利用手順については後述するが、キャンセル処理開始フラグは、印刷データ生成部11によって、キャンセルフラグが“OFF”から“ON”に変えられた後、印刷データ送信部14によって、コマンドの境界まで印刷データの送信が行われたときに、印刷データ送信部14により、“ON”に変更されるフラグである。要するに、キャンセル処理開始フラグは、キャンセルフラグが“ON”に変更される前に処理(プリンタ30への送信)を開始したコマンドの処理が確認された状態にあるか否かを記憶しておくために、印刷データ送信部14が参照、更新するフラグとなっている。また、第2データ保持フラグは、印刷データ生成部11が処理履歴(過去に生成したコマンドが破棄可コマンドであるか破棄不可コマンドであるか)を記憶しておくために使用しているデータ保持フラグに相当するフラグとなっている。
【0049】
ステップS201にて、キャンセル処理開始フラグ及び第2データ保持フラグをいずれも“OFF”とした印刷データ送信部14は、動作の終了が指示されているか否かを判断(ステップS202)し、動作の終了が指示されていない場合(ステップS202;NO)には、印刷データ記憶部12内に印刷データ(1個以上のコマンド)が記憶されているか否かを判断する(ステップS203)。
【0050】
印刷データ記憶部12内に印刷データが記憶されていなかった場合(ステップS203;YES)、印刷データ送信部14は、ステップS202に戻って、再び、動作の終了が指示されているか否かを判断する。
【0051】
一方、印刷データ記憶部12内に印刷データが記憶されていた場合(ステップS203;NO)、印刷データ送信部14は、印刷データ記憶部12内に送信可能な印刷データが記憶されているか否かを判断する。(ステップS204)。そして、印刷データ送信部14は、印刷データ記憶部12内に送信可能な印刷データが記憶されていなかった場合(ステップS204;NO)には、ステップS202からの処理を、再び、実行する。
【0052】
一方、印刷データ記憶部12内に送信可能な印刷データが記憶されていた場合(ステップS204;NO)、印刷データ送信部14は、印刷データ記憶部12内の最古の印刷データに関するデータIndex値を特定する(ステップS205)。
【0053】
その後、印刷データ送信部14は、キャンセルフラグが“ON”となっているか否かを判断(ステップS206)し、キャンセルフラグが“ON”となっていなかった場合(ステップS206;NO)には、第2データ保持フラグ設定処理(ステップS207)を実行する。
【0054】
図10に示してあるように、この第2データ保持フラグ設定処理時、印刷データ送信部14は、まず、属性データを保持しているか否かを判断する(ステップS221)。
【0055】
属性データを保持していなかった場合(ステップS221;NO)、印刷データ送信部14は、属性データ記憶部13内に属性データが記憶されているか否かを判断(ステップS222)し、属性データが記憶されていなかった場合(ステップS222;NO)には、第2データ保持フラグ設定処理を終了する。
【0056】
一方、属性データ記憶部13内に属性データが記憶されていた場合(ステップS222;YES)、印刷データ送信部14は、属性データ記憶部13から、最古の印刷データに関する属性データを取り出して保持する(ステップS223)。その後、印刷データ送信部14は、保持している属性データ中のデータIndex値が、印刷データ記憶部12内の最古の印刷データ記憶領域に関するデータIndex値(ステップS205で特定したデータIndex値)と一致しているか否かを判断する(ステップS224)。
【0057】
そして、両者が一致していなかった場合(ステップS224;NO)、印刷データ送信部14は、第2データ保持フラグ設定処理を終了する。すなわち、この場合、印刷データ送信部14が保持している属性データは、処理すべき印刷データについての属性データではなく、それに続く印刷データについての属性データであるので、印刷データ送信部14は、その属性データの内容に応じた処理を行うことなく、この第2データ保持フラグ設定処理を終了する。
【0058】
なお、印刷データ送信部14は、第2データ保持フラグ設定処理開始時に属性データを保持していた場合(ステップS221;YES)には、ステップS222、S223の処理を行うことなく、ステップS224の判断を行う。
【0059】
一方、上記した2つのデータIndex値が一致していた場合(ステップS224;YES)、印刷データ送信部14は、保持している属性データの属性が、コマンド境界属性、データ保持終了属性、データ保持開始属性のいずれであるかを判断する(ステップS225)。そして、属性データの属性がコマンド境界属性であった場合(ステップS225;境界)には、第2データ保持フラグ設定処理を終了する。属性データの属性がデータ保持終了属性であった場合(ステップS225;保持終了)には、第2データ保持フラグを“OFF”とする(ステップS226)。次いで、印刷データ送信部14は、保持している属性データを破棄(ステップS228)して、ステップS222に戻る。また、属性データの属性がデータ保持開始属性であった場合(ステップS225;保持開始)、印刷データ送信部14は、第2データ保持フラグを“ON”とする処理(ステップS227)を行った後に、ステップS228以降の処理を行う。
【0060】
このような内容の第2データ保持フラグ設定処理を終えた印刷データ送信部14は、図6に示してあるように、特定してあるデータIndex値の印刷データ(最古の印刷データ)を印刷データ記憶部12から読み出してプリンタ30へ送信する(ステップS208)。そして、データIndex値と一致するデータIndex値を含む全ての属性データ(つまり、送信済みの印刷データの属性データ)を破棄(ステップS209)してから、ステップS202に戻る。
【0061】
このような処理を繰り返している間に、キャンセルフラグが“ON”に変化した場合(ステップS206;YES)、印刷データ送信部14は、図8に示してあるように、キャンセル処理開始フラグが“ON”となっているか否かを判断する(ステップS241)。
【0062】
そして、キャンセル処理開始フラグが“ON”ではなかった場合(ステップS241;NO)、印刷データ送信部14は、属性データを保持しているか否かを判断(ステップS242)し、属性データを保持していなかった場合(ステップS242;NO)には、図6のステップS208以降の処理を実行する。すなわち、この場合、キャンセルフラグが“ON”となる前に出力が開始されたコマンドが途中までしか出力されていないことになるので、キャンセル処理開始フラグが“ON”とされることなく、ステップS208以降の処理が実行される。
【0063】
属性データを保持していた場合(ステップS242;NO)、印刷データ送信部14は、保持している属性データ中のデータIndex値が、印刷データ記憶部12内の最古の印刷データに関するデータIndex値(ステップS205で特定したデータIndex値)と一致しているか否かを判断する(ステップS243)。
【0064】
そして、両者が一致していなかった場合(ステップS243;NO)、印刷データ送信部14は、ステップS208以降の処理を実行する。すなわち、この場合も、キャンセルフラグが“ON”となる前に出力が開始されたコマンドが途中までしか出力されていないことになるので、キャンセル処理開始フラグが“ON”とされることなく、ステップS208以降の処理が実行される。
【0065】
一方、2つのデータIndex値が一致していた場合(ステップS243;YES)、すなわち、保持している属性データが処理すべき印刷データの属性データであった場合、印刷データ送信部14は、その属性データによって特定される印刷データを取り出してプリンタ30へ送信する(ステップS244)。
【0066】
次いで、印刷データ送信部14は、保持している属性データ中のデータサイズIndex値を位置変数に記憶する(ステップS245)。次いで、印刷データ送信部14は、保持している属性データの属性が、コマンド境界属性、データ保持終了属性、データ保持開始属性のいずれであるかを判断(ステップS246)し、属性データの属性がデータ保持終了属性であった場合(ステップS246;保持終了)には、第2データ保持フラグを“OFF”とする処理(ステップS247)を行った後に、ステップS249の処理を実行する。属性データの属性がデータ保持開始属性であった場合(ステップS246;保持開始)、第2データ保持フラグを“ON”とする処理(ステップS248)を行った後に、ステップS249の処理を実行する。また、属性データの属性がコマンド境界属性であった場合(ステップS246;境界)には、第2データ保持フラグの値を変更することなく、ステップS249の処理を実行する。
【0067】
そして、ステップS249にて、印刷データ送信部14は、保持している属性データを破棄するとともに、キャンセル処理開始フラグを“ON”とする処理を行い、その後、図9のステップS261以降の処理を開始する。
【0068】
また、キャンセル処理開始フラグが既に“ON”であった場合(ステップS241;YES)、印刷データ送信部14は、ステップS242〜S249の処理を行うことなく、未送信の印刷データの先頭位置を示す値を位置変数に記憶する(ステップS250)。そして、印刷データ送信部14は、図9のステップS261以降の処理を開始する。
【0069】
ステップS261にて、印刷データ送信部14は、属性データを保持しているか否かを判断する。
【0070】
そして、印刷データ送信部14は、属性データを保持していなかった場合(ステップS261;NO)には、属性データ記憶部13内に属性データが記憶されているか否かを判断(ステップS262)し、属性データが記憶されていた場合(ステップS262;YES)には、属性データ記憶部13から属性データを取り出して保持する(ステップS263)。
【0071】
次いで、保持した属性データ内のデータIndex値と、印刷データ記憶部12内の最古の印刷データに関するデータIndex値とが一致しているか否かを判断(ステップS264)し、両者が一致していなかった場合(ステップS264;NO)には、第2データ保持フラグが“ON”であるか否かを判断する(ステップS265)。なお、属性データが記憶されていなかった場合(ステップS262;NO)、印刷データ送信部14は、属性データを保持していない状態で、このステップS265の判断を行う。
【0072】
第2データ保持フラグが“ON”であった場合(ステップS265;YES)、印刷データ送信部14は、位置変数が示す位置からステップS205で特定したデータIndex値が示す位置までの印刷データをプリンタ30へ送信(ステップS266)した後に、ステップS209以降の処理を実行する。一方、第2データ保持フラグが“OFF”であった場合(ステップS265;NO)、印刷データ送信部14は、位置変数が示す位置からステップS205で特定したデータIndex値が示す位置までの印刷データを破棄(ステップS267)した後に、ステップS209以降の処理を実行する。
【0073】
すなわち、本プリンタドライバ10では、属性データの属性データ記憶部13への記憶が省略されることがあるので、未処理(未送信or未破棄)の印刷データについての属性データが存在しないときがある。ただし、第2データ保持フラグ設定処理が実行される結果として、第2データ保持フラグは、当該印刷データが破棄可コマンドであるか破棄不可コマンドであるかを示す情報となっているため、上記のような手順の処理により、印刷データを破棄するか送信するかが決定されているのである。
【0074】
一方、未処理(未送信or未破棄)の印刷データについての属性データが存在していた場合(ステップS264;YES)、印刷データ送信部14は、その属性データの属性に応じた処理を、ステップS281〜S288(図10)にて実行する。
【0075】
すなわち、保持している属性データの属性がコマンド境界属性であった場合(ステップS281;境界)、印刷データ送信部14は、属性データを破棄(ステップS282)してから、ステップS262以降の処理を実行する。
【0076】
属性データの属性がデータ保持開始属性であった場合(ステップS281;保持開始)、印刷データ送信部14は、位置変数が示す位置から属性データ中のデータサイズIndex値が示す位置までの印刷データを破棄(ステップS283)し、第2データ保持フラグを“ON”とする(ステップS284)。次いで、印刷データ送信部14は、属性データ中のデータサイズIndex値を位置変数に記憶(ステップS287)し、属性データを破棄する(ステップS288)。その後、印刷データ送信部14は、位置変数の値がデータサイズIndex値と一致していた場合(ステップS289;YES)には、図6のステップS209以降の処理を実行し、一致していなかった場合(ステップS289;NO)には、図9のステップS262以降の処理を実行する。
【0077】
また、属性データの属性がデータ保持終了属性であった場合(ステップS281;保持終了)、印刷データ送信部14は、位置変数が示す位置から属性データ中のデータサイズIndex値が示す位置までの印刷データをプリンタ30へ送信(ステップS285)し、第2データ保持フラグを“OFF”とする(ステップS286)。そして、印刷データ送信部14は、ステップS287以降の処理を実行する。
【0078】
以上、説明したように、本実施形態に係るプリンタドライバ10が実行されたPC20では、属性データがコマンド毎に記憶されない(所定条件を満たすコマンドが生成された場合にのみ属性データが記憶される)形で、印刷データ(コマンド群)が生成される。従って、プリンタドライバ10を用いれば、コマンドが生成される毎にヘッダの記憶が行なわれる従来技術(特開平11−316661号公報に開示されている技術)よりも、メモリの消費量が少ない形で、プリンタ30に印刷を行なわせることが出来ることになる。また、プリンタドライバ10を用いた場合、コマンドと属性データとは、印刷データ記憶部12と属性データ記憶部13とに分けて記憶されるので、PC20(印刷データ送信部14として動作しているCPU)は、プリンタ30へのコマンドの送信を極めて単純な内容の処理(送信すべきデータを他データから分離する処理が必要とされない処理)により行なうことが出来ることになる。従って、プリンタドライバ10を用いれば、通常の印刷時(中止指示が出されていないとき)にCPUが行なわなければならない処理量を、記憶したデータからヘッダの分離を行なっている従来技術よりも、低減できることにもなる。
【0079】
さらに、プリンタドライバ10を用いた場合、印刷処理の中止が指示された後には、プリンタ30に送信することが必要とされるコマンドのみが、印刷データ記憶部12に記憶される。従って、プリンタドライバ10を用いれば、全てのコマンドの生成、記憶が完了しない限り、印刷が中止されないといった従来技術の問題を解決できることにもなる。
【0080】
<変形形態>
上記したプリンタドライバ10は、各種の変形を行なうことが出来る。例えば、破棄不可コマンド(印刷データを構成する単位データ)として、幾つかの破棄不可データと幾つかの破棄可データとにさらに細分化できるものが用いられている場合には、プリンタドライバ10を、ステップS244等にて破棄不可データのみをプリンタ30に送信する処理が行なわれるように変形しても良く、ステップS244等にて破棄不可データのみが特定の記憶領域に記憶され、動作終了指示が出された後(ステップS202で“YES”側への分岐が行なわれるとき)に、キャンセルフラグが“ON”であるか否かが判断され、キャンセルフラグが“ON”であった場合には、その特定の記憶領域に記憶されたデータがプリンタ30に送信されるように変形しても良い。
【0081】
また、ステップS139の判断が行われないように(ステップS136で“NO”側への分岐が行われた場合には、常に、ステップS140の処理が実行されるように)、プリンタドライバ10を作成しておいても良い。
【0082】
【発明の効果】
本発明のプリンタドライバを用いれば、コンピュータに、プリンタに対する中止制御を含む制御をより効率的に行なわせることが出来ることになる。
【図面の簡単な説明】
【図1】 本発明の一実施形態に係るプリンタドライバの使用形態の説明図である。
【図2】 実施形態に係るプリンタドライバが実行されているコンピュータの機能ブロック図である。
【図3】 図2に示されている印刷データ生成部の全体的な動作手順を示した流れ図である。
【図4】 図3のステップS108で実行されるコマンド生成処理の流れ図である。
【図5】 図3のステップS108で実行されるコマンド生成処理の流れ図である。
【図6】 図2に示されている印刷データ送信部の動作手順を示した流れ図である。
【図7】 印刷データ送信部の動作手順を示した流れ図である。
【図8】 印刷データ送信部が実行する第2データ生成処理の流れ図である。
【図9】 印刷データ送信部の動作手順を示した流れ図である。
【図10】 印刷データ送信部の動作手順を示した流れ図である。
【符号の説明】
10 プリンタドライバ
11 印刷データ生成部
12 印刷データ記憶部
13 属性データ記憶部
14 印刷データ送信部
20 コンピュータ
30 プリンタ
Claims (5)
- プリンタに印刷データを供給するためにコンピュータ上で実行されるプリンタドライバであって、
前記コンピュータを、
前記プリンタに供給されるべき印刷データの要素である印刷要素データを一時記憶するための印刷データ記憶部と、
属性データを一時記憶するための属性データ記憶部と、
前記プリンタに供給されるべき印刷データに関する印刷要素データを順次生成して前記印刷データ記憶部に記憶する処理を行なうとともに、必要に応じて、前記属性データ記憶部に、前記印刷データ記憶部内に記憶されている印刷要素データの中から、印刷の中止指示が出された場合に破棄されることなく前記プリンタに送信されるべき印刷要素データである破棄不可印刷要素データを特定可能な属性データを記憶する処理を行なう印刷データ生成部と、
印刷の中止指示が出されていない場合には、前記印刷データ記憶部に記憶されている印刷要素データを、印刷データ記憶部への記憶順に従った順番で前記プリンタに送信する処理を行ない、印刷の中止指示が出された後には、前記属性データ記憶部に記憶されている属性データに基づき、前記印刷データ記憶部内の前記破棄不可印刷要素データのみを前記プリンタに送信する処理を行なう印刷データ送信部
とを備える装置として動作させることを特徴とするプリンタドライバ。 - 前記印刷データ生成部は、印刷の中止指示が出された後には、前記破棄不可印刷要素データのみを前記印刷データ記憶部に記憶する
ことを特徴とする請求項1記載のプリンタドライバ。 - 前記印刷データ生成部は、少なくとも、破棄不可印刷データを生成した後に破棄不可印刷要素データではない印刷要素データを生成したときと、破棄不可印刷要素データではない印刷要素データを生成した後に破棄不可印刷要素データを生成したときとに、属性データを前記属性データ記憶部に記憶する
ことを特徴とする請求項1又は請求項2記載のプリンタドライバ。 - 前記印刷データ生成部は、前記属性データ記憶部に記憶しない属性データも生成し、
前記印刷データ生成部は、前記印刷データ生成部によって生成されたが前記属性データ記憶部に記憶されなかった属性データを、前記印刷データ生成部から当該属性データの供給を受けることなく、復元する機能を有する
ことを特徴とする請求項3記載のプリンタドライバ。 - 前記印刷データ送信部は、印刷の中止指示が出された場合、その中止指示が出された時に送信を行っていた印刷要素データを含む一連の不可分な印刷要素データ群の送信を終えた後に、前記属性データ記憶部に記憶されている属性データに基づき、前記印刷データ記憶部内の前記破棄不可印刷要素データのみを前記プリンタに送信する処理を開始する
ことを特徴とする請求項3又は請求項4記載のプリンタドライバ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002031084A JP3925224B2 (ja) | 2002-02-07 | 2002-02-07 | プリンタドライバ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002031084A JP3925224B2 (ja) | 2002-02-07 | 2002-02-07 | プリンタドライバ |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2003233478A JP2003233478A (ja) | 2003-08-22 |
JP2003233478A5 JP2003233478A5 (ja) | 2005-02-10 |
JP3925224B2 true JP3925224B2 (ja) | 2007-06-06 |
Family
ID=27774588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002031084A Expired - Fee Related JP3925224B2 (ja) | 2002-02-07 | 2002-02-07 | プリンタドライバ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3925224B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4748246B2 (ja) * | 2009-04-22 | 2011-08-17 | ブラザー工業株式会社 | プログラム、およびコンピュータ |
-
2002
- 2002-02-07 JP JP2002031084A patent/JP3925224B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003233478A (ja) | 2003-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5907410A (en) | Image processing apparatus capable of displaying only alterable process items | |
CN100562836C (zh) | 数据处理装置和省电控制方法 | |
US7265866B2 (en) | Cache memory system and method for printers | |
US20040021905A1 (en) | System and method for managing printable assets | |
US7916315B2 (en) | Method and apparatus for executing load distributed printing | |
US8711379B2 (en) | Method and apparatus for executing load distributed printing | |
US8127178B2 (en) | Image forming apparatus, method of controlling image forming apparatus, program, and storage medium | |
US20040024844A1 (en) | Downloading data for printers | |
JP3925224B2 (ja) | プリンタドライバ | |
JP4320966B2 (ja) | プリンタ管理システム及びその制御プログラム | |
JPH11224168A (ja) | 画像データ印刷装置およびその印刷制御方法 | |
US6894797B1 (en) | Method and apparatus for supporting line-conditioned data stream (LCDS) data in a networked job-oriented printing environment | |
JP3134539B2 (ja) | プリンタ制御装置 | |
US20040078539A1 (en) | De-fragmenting memory by re-booting based on time | |
JP3919242B2 (ja) | 印刷システム及びその制御方法 | |
JP2011130110A (ja) | 画像形成装置 | |
JPH08258365A (ja) | 画像出力装置、画像出力システム、画像出力方法および情報処理装置 | |
JP2003058387A (ja) | 画像処理装置、プログラム及び管理ユニット | |
JP2005349768A (ja) | 印刷装置及び印刷方法 | |
JP3134631B2 (ja) | 印刷システム | |
JP5499679B2 (ja) | 画像形成装置 | |
JP2002259103A (ja) | 印刷ログの管理を行なう印刷管理システムおよび印刷管理方法並びにコンピュータプログラム | |
JP2007065830A (ja) | プリントサーバ、プリントサーバの制御方法およびプログラム | |
JPH07334323A (ja) | ネットワークプリンタ及び通信システム | |
JPH07230371A (ja) | プリンタ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040305 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040305 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060522 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060620 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070206 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070219 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100309 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110309 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120309 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120309 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130309 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140309 Year of fee payment: 7 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |