JP2004102619A - Print controller, print data transmitting method, computer program and computer readable storage medium - Google Patents

Print controller, print data transmitting method, computer program and computer readable storage medium Download PDF

Info

Publication number
JP2004102619A
JP2004102619A JP2002263219A JP2002263219A JP2004102619A JP 2004102619 A JP2004102619 A JP 2004102619A JP 2002263219 A JP2002263219 A JP 2002263219A JP 2002263219 A JP2002263219 A JP 2002263219A JP 2004102619 A JP2004102619 A JP 2004102619A
Authority
JP
Japan
Prior art keywords
print data
print
printer
instruction
issued
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.)
Withdrawn
Application number
JP2002263219A
Other languages
Japanese (ja)
Inventor
Masakazu Takahashi
高橋 正和
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2002263219A priority Critical patent/JP2004102619A/en
Publication of JP2004102619A publication Critical patent/JP2004102619A/en
Withdrawn legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To surely transfer all print data to a printer for each print data for one scan print width of a recording head in an output timing desired by a printer driver regardless of the specifications of a spooler function prepared for an OS. <P>SOLUTION: A printer driver 103 issues a StartPagePrinter instruction and an EndPagePringer instruction before and after print processing for one page, and issues those two instructions as a pair in the order of the EndPagePrinter instruction and the StarPagePrinter instruction by each predetermined processing unit in the same page during print processing each time the preparation of print data necessary for the operation of a print head is completed as each predetermined processing unit. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は、プリンタの動作を制御するための印刷制御装置に搭載されるプリンタドライバ(プリンタドライバプログラム)の技術分野に関する。
【0002】
【従来の技術】
従来より、プリンタとホストコンピュータとを利用して印刷システムを構成する際には、そのホストコンピュータを、係るプリンタの動作制御を行なうための印刷制御装置として機能させるべく、所謂プリンタドライバ(プリンタドライバプログラム)が搭載される。
【0003】
プリンタドライバは、ホストコンピュータにて実行されるソフトウエア・プログラムであって、ホストコンピュータに搭載されたアプリケーションソフトで作成した文字や図形などのグラフィックス画像データや、自然画などのイメージ画像データをプリンタによって印刷出力する際に、アプリケーションソフトからオペレーティングシステム(OS)を介して供給された画像データに基づく描画命令を解析し、その解析結果に従ってメモリ上にRGB多階調イメージデータを作成し、例えばインクジェット方式のプリンタでは、プリンタインクの各色を表すCMYK多値情報に変換し、インクを打つか打たないかを表すCMYK二値のデータに変換する処理が行われた後、プリンタが解析できるデータ形式の印刷データを生成してプリンタに転送する機能を有する。
【0004】
また、このようなプリンタドライバのうち、Microsoft Windows(登録商標)2000等のスプール機能を備えるオペレーティングシステムに対応したプリンタドライバでは、プリンタドライバによって作成された印刷データを、オペレーティングシステムが管理するスプール機能を利用してプリンタに転送するのが一般的な処理構成である。
【0005】
特に、上記の一般的なプリンタドライバでは、指定したプリンタに対してデータ書き込みを行なうべく、OSのスプール機能に通知すると共に、生成した印刷データをプリンタに転送するに際して、スプール機能に用意されている印刷データ書き込み命令関数を当該プリンタドライバにてコールすることによって、係る印刷データをプリンタ側に渡す処理構成が採用されている(例えば、特許文献1参照)。
【0006】
【特許文献1】
特開平10−240469号公報(第8図)
【発明が解決しようとする課題】
上述したバンディング方式のプリンタドライバによって制御される従来のインクジェット方式のプリンタにおいては、印刷幅分のプリントバッファを持ち、そのプリントバッファに印刷幅分の印刷データが溜まった(バッファリングされた)時点で記録ヘッドが駆動され、1スキャン(記録走査)分の印刷を、プリントバッファ内の印刷データを更新すると共に、記録ヘッドと記録媒体との相対的な位置をずらしながら複数回行うことによって、1ページ分の印刷を行なうのが一般的である。
【0007】
しかしながら、最近の廉価なインクジェットプリンタにおいては、製品コストを削減する必要性から、1スキャン印刷幅分の印刷データをバッファリング可能な記憶容量のプリントバッファを自装置内に備えないプリンタも登場しており、このような装置構成のインクジェットプリンタでは、1スキャン分の印刷動作を開始した時点では、1スキャンで印刷すべき所定の印刷幅分の印刷データがプリントバッファに蓄えられていないため、係る1スキャン分の印刷動作を行なうための記録ヘッドの駆動中に、その1スキャン分の印刷データのうち、当該プリントバッファに未だ蓄えられていない残りの印刷データを受信しながら印刷する必要がある。
【0008】
そしてプリンタが上記の如く記録ヘッドを駆動している最中に、処理対象である1スキャン分の所定の印刷幅分の残りの印刷データを受信できなかった場合、上記の装置構成のプリンタにおいては、記録ヘッドを一旦、印刷開始位置に戻して、残りの印刷幅分のデータを受信し終わってから、再度同一スキャンの残り印刷幅分の印刷を行う、という「見切り印刷」と呼ばれる動作が採用される場合がある。
【0009】
この見切り印刷では、1スキャンの印刷に、記録ヘッドを複数回(例えば2回)駆動させる処理が必要とされるため、プリンタの印刷速度(ここでは、印刷の所要時間)が低下するだけでなく、残り印刷幅分の印刷タイミングと、その前の駆動における印刷タイミングとの時間差や、印刷位置誤差等の影響から、印刷品位が悪くなる可能性もある。
【0010】
また、上記のような装置構成を有するインクジェットプリンタに対応したプリンタドライバでは、一般に、記録ヘッドの1スキャンの印刷幅分の印刷データを作成した後で、OSによって管理されているスプーラ機能に印刷データを渡す処理が行われる。このため、記録ヘッドの1スキャン印刷幅分の印刷データ毎にプリンタへのデータ転送を行うという処理手順によれば、ホストコンピュータのCPU処理速度が非常に遅い場合等を除いて、上述した見切り印刷がプリンタにて発生する頻度が少なくなると考えられていた。
【0011】
しかしながら、スプーラ機能の仕様によっては、ホストコンピュータ上において、プリンタドライバから受け取った印刷データを、そのスプーラ機能独自の単位に分けてバッファリングして、プリンタに送信している場合があり、この場合、オペレーティングシステムに予め用意されているプリンタへの印刷データの出力要求命令をプリンタドライバが発行しても、結果として、所定の印刷幅分の印刷データをプリンタに送信し切れず、係るスプーラ機能が管理するホストコンピュータ内のバッファに、出力要求命令の発行に応じて送信されるべき印刷データが残っている、という状況が発生することが判った。そして、このことは、1スキャン分の印刷データをバッファリング可能な記憶容量を有するプリントバッファを装置内に備えない上記のインクジェットプリンタにおいては、上記の見切り印刷が多発することを意味するから、結果として、プリンタドライバが所望する出力タイミング、或いは、プリンタドライバの設計段階において想定されていた出力タイミングで、迅速な印刷を行なえないという問題となる。
【0012】
本発明は、上述した問題点に鑑みてなされたものであり、OSに用意されているスプーラ機能の仕様に関らずに、プリンタドライバが所望する出力タイミングで、記録ヘッドの1スキャン印刷幅分の印刷データ毎に、すべての印刷データをプリンタに確実に転送することを目的とする。
【0013】
【課題を解決するための手段】
上記の目的を達成するため、本発明に係る印刷制御装置は、以下の構成を特徴とする。
【0014】
即ち、生成した印刷データを、オペレーティングシステムのスプール機能を利用してプリンタに転送する印刷制御装置であって、
前記スプール機能に対して印刷データ出力命令を発行した後、更に、前記スプール機能を制御可能なシステム命令を、所定の処理単位毎に発行することにより、前記スプーラ機能がバッファリングしている印刷データをすべてプリンタに送信させる印刷制御手段を備えることを特徴とする。
【0015】
また、例えば前記プリンタは、記録ヘッドが搭載されたインクジェット方式のプリンタであって、
前記所定の処理単位は、前記記録ヘッドの動作に必要な所定量の印刷データ(前記記録ヘッドの1スキャン印刷幅分の印刷データ)の作成が完了する処理タイミングであることを特徴とする。
【0016】
また例えば、前記印刷データ出力命令は、1ページ分の印刷データの印刷処理を指示する前と後とに発行される第1及び第2命令からなり、
前記印刷制御手段は、前記所定の処理単位毎に発行するシステム命令として、少なくとも前記第2命令を発行すると良い。
【0017】
この場合、好ましくは、前記印刷制御手段は、前記システム命令としての前記第1及び第2命令を、前記第2命令、そして前記第1命令の順番で、前記所定の処理単位毎に発行すると良い。
【0018】
或いは、同目的を達成する本発明の他の構成は、コンピュータ読み取り可能なプリンタドライバプログラムであって、
プリンタに送信すべき分の印刷データをオペレーティングシステムのスプーラに送信すると共に、前記スプーラでバッファリングされる前記印刷データを残さずプリンタに送信させるための命令を発行することを特徴とする。
【0019】
尚、同目的は、上記の各構成の印刷制御装置に対応する印刷データ送信方法によっても達成される。
【0020】
また、同目的は、上記の各構成の印刷制御装置に対応する方法を、コンピュータによって実現するプログラムコード(即ち、プリンタドライバプログラム)、及びそのプログラムコードが格納されている、コンピュータ読み取り可能な記憶媒体によっても達成される。
【0021】
【発明の実施の形態】
以下、本発明に係る印刷制御装置の一実施形態を、図面を参照して詳細に説明する。
【0022】
図1は、本実施形態における印刷システムの構成を示すブロック図であり、本実施形態において、ホストコンピュータ100は、プリンタ105の動作を制御する印刷制御装置としての機能を有しており、そのホストコンピュータ100には、ページ記述言語を持たないラスター系のプリンタ(例えばインクジェットプリンタ)であるプリンタ105、液晶表示装置等のモニタ104、並びにキーボード(一般的なポインティングデバイスを含む)106が接続されている。
【0023】
また、ホストコンピュータ100には、CPU108にて実行すべきソフトウエア・プログラムとして、例えばMicrosoft Windows(登録商標)2000等のスプール機能を備えるオペレーティングシステム(OS)102、ワープロ機能、表計算機能、インターネットブラウザ機能等のアプリケーションソフトウエア101、並びにそのアプリケーションソフトウエアによってOS102に発行される出力画像を示す各種描画命令群(イメージ描画命令、テキスト描画命令、グラフィックス描画命令等)を一般的な手順によって処理することによって印刷データを作成するプリンタドライバ103がインストールされている。
【0024】
ホストコンピュータ100は、上記のソフトウエア群が動作可能な各種ハードウエアとして、中央演算処理装置(CPU)108、ハードディスク(HD)107、ランダムアクセスメモリ(RAM)109、リードオンリーメモリ(ROM)110、並びにこれら各構成を接続するデータバス111等を備える。
【0025】
尚、ホストコンピュータ100及びそのハードウエア上で動作するOS102には、例えば一般的に普及しているパーソナルコンピュータ及び一般的なOSを採用することができるので、本実施形態における詳細な説明は省略する。
【0026】
ここで、図1に示す構成を印刷システムにおいて印刷処理が行われる際の、バンディング方式のプリンタドライバと、OSとの間の処理手順について、図2を参照して概説する。
【0027】
図2は、本実施形態に係る印刷システムにおけるプリンタドライバとOSとの処理手順を説明する図である。
【0028】
同図において、ホストコンピュータ100上のアプリケーションソフト101は、文字などのテキストに分類されるテキストデータや、図形などのグラフィックスに分類されるグラフィックスデータや、自然画などに分類されるイメージ画像データなどを、印刷対象の文書を表わす出力画像データとして作成する。
【0029】
作成された出力画像データを印刷出力するときには、アプリケーションソフト101からOS102に印刷出力要求を行ない、テキストデータ部分はテキスト描画命令、グラフィックスデータ部分はグラフィックス描画命令、そしてイメージ画像データ部分はイメージ描画命令によって構成されるところの、当該印刷対象の文書を表わす出力画像を示す描画命令群をOS102に発行する。そして、OS102は、アプリケーションソフトウエア101の出力要求を受け、出力プリンタに対応するプリンタドライバ103に印刷要求を発行する。
【0030】
プリンタドライバ103では、OS102から印刷要求が送られてくると、ホストコンピュータ100上にバンド用の作業領域(バンドメモリ、バンドバッファ)を確保し、確保した作業領域の位置及び容量を表わす座標データ(バンドサイズのデータ)をOS102に送る。このときOS102は、渡されたバンドサイズのバッファ内に存在する描画命令群をプリンタドライバ103に発行する。
【0031】
ここで、バンド用の作業領域を確保する理由は、一般に、本実施形態で示したようなページ記述言語を持たないラスター系のプリンタでは、ホストコンピュータ上のプリンタドライバがイメージ展開処理を行うのだが、ホストコンピュータには、通常一ページ分すべての描画命令を展開するだけの十分な記憶装置が搭載されていないので、イメージ展開処理に際して、横に細長く分割した「バンド」と呼ばれる単位ごとに、メモリ上にイメージを作成するためである。
【0032】
プリンタドライバ103は、OS102のスプール機能を利用して印刷データをプリンタに送信する。即ち、プリンタドライバ103は、OS102からの描画命令群を、例えばRGB24ビットの形式でバンドメモリに順次ラスタライズする。そして、プリンタドライバ103は、全ての描画命令がラスタライズした後で、バンドメモリに展開したデータ内容を1スキャンライン毎にCMYKデータに変換すると共に量子化処理を施した後、プリンタ105が印刷可能な所定のデータ形式に変換する印刷データ化処理を行なう。更にプリンタドライバ103は、OS102のスプーラ機能を利用して印刷データ送信命令を発行することにより、印刷データ化処理が施された印刷データを、プリンタ105に転送する。
【0033】
OS102は、上述した一連の処理手順を、アプリケーションソフトウエア101で作成された印刷対象の文書を対象として、その文書のページ内に存在するすべての描画命令群の発行を、バンド毎に繰り返し、プリンタドライバ103では、バンド単位で各スキャンライン毎に前述した印刷データ化処理を行ない、これによってすべての印刷データをプリンタ105に転送して処理完了する。
【0034】
次に、本実施形態に係るバンディング方式のプリンタドライバによる印刷データ処理の流れについて、図3乃至図5を参照して詳しく説明する。
【0035】
図3は、本実施形態に係るバンディング方式のプリンタドライバが行なう印刷データ化処理を概念的に説明する図である。また、図4及び図5は、本実施形態に係るバンディング方式のプリンタドライバが行なう印刷データ化処理を示すフローチャートであり、CPU108がプリンタドライバ103として行なう処理の手順を表わす。
【0036】
ここで、図4及び図5に示す個々のステップの説明に先立って、本実施形態の特徴的な点について説明する。
【0037】
従来の一般的なプリンタドライバにおいて、StartPagePrinter命令と、EndPagePrinter命令とは、本来、1ページ分の印刷処理をする前(本実施形態ではステップS2)と、そのページを処理した後(本実施形態ではステップS13)に発行されるが、本願出願人は、OSのスプーラ機能によってバッファリングされている印刷データは、EndPagePrinter命令をコールするのに応じて、プリンタにすべて送信されることを見出している。そこで、本実施形態では、このEndPagePrinter命令の機能に着目すると共に、EndPagePrinter命令をページ単位でコールする従来の処理構成とは異なり、本実施形態では、所定の処理単位毎(プリントヘッドの動作に必要な印刷データの作成が完了する度)にEndPagePrinter命令をコールする。
【0038】
即ち、従来の処理手順では、
・ページ先頭ではStartPagePrinter命令の発行,
・プリントヘッドの動作に必要な印刷データの生成完了に応じてWritePrinter命令で送信,
・ページ後端ではEndPagePrinter命令の発行,
がなされる。
【0039】
これに対して、本実施形態に係る処理手順では、
・ページ先頭ではStartPagePrinter命令の発行,
・プリントヘッドの動作に必要な印刷データの生成完了に応じてWritePrinter命令で送信後、EndPagePrinter命令の発行,
・プリントヘッドの動作に必要な印刷データの生成完了に応じてWritePrinter命令で送信後、EndPagePrinter命令の発行,
・・・・,
・プリントヘッドの動作に必要な印刷データの生成完了に応じてWritePrinter命令で送信後、EndPagePrinter命令の発行,
・ページ後端ではEndPagePrinter命令の発行,
がなされる。
【0040】
但し、上記の如く同一ページ中にEndPagePrinter命令を複数回コールする処理構成は、ページ先頭及び後端にて1回ずつコールする処理手順とは異なり、EndPagePrinter命令と、StartPagePrinter命令とを対(ペア)で使用していない。そこで、好適な実施形態では、これら2つの命令順との整合性を採るため、同一ページ中において、プリントヘッドの動作に必要な印刷データの生成が完了する度に、EndPagePrinter命令、StartPagePrinter命令の順で、当該2つの命令を対(ペア)で使用する。
【0041】
即ち、好適な実施形態では、
・ページ先頭ではStartPagePrinter命令の発行,
・プリントヘッドの動作に必要な印刷データの生成完了に応じてWritePrinter命令で送信後、EndPagePrinter命令とStartPagePrinter命令とを順次発行,
・プリントヘッドの動作に必要な印刷データの生成完了に応じてWritePrinter命令で送信後、EndPagePrinter命令とStartPagePrinter命令とを順次発行,
・・・・,
・プリントヘッドの動作に必要な印刷データの生成完了に応じてWritePrinter命令で送信後、EndPagePrinter命令とStartPagePrinter命令とを順次発行,
・ページ後端ではEndPagePrinter命令の発行,
がなされる。
【0042】
尚、本実施形態では、EndPagePrinter命令とStartPagePrinter命令とを組み合わせて発行する処理形態であるが、一例であって、その他にスプーラ機能がバッファリングしている印刷データをすべてプリンタに送信させ、これによりプリンタ側における見切り印刷の発生を低減することができる命令であれば、代用することができる。例えば、上記の処理手順では、結果的に同一ページの印刷処理中に、StartPage命令と、EndPagePrinter命令とを何回もコールすることになるので、1ジョブにおける印刷処理途中のページ数管理が繁雑となる。そこで、EndPagePrinter命令とStartPagePrinter命令とに置き換えて、EnumJobs命令という構造体を初期化する命令をコールすることによっても、プリンタ側における見切り印刷の発生を低減できることは確認済みである。
【0043】
これにより、スプーラ機能によってバッファリングされている印刷データを、バッファ内に残すこと無くプリンタにすべて送信することができる。
【0044】
次に、上述した特徴的な処理を含むところの、図4及び図5に示すフローチャートの個々のステップについて説明する。
【0045】
まず、プリンタドライバ103は、OS102から印刷要求を受けると、ステップS1において、「印刷ジョブ単位」での印刷情報処理の初期化を行い、メモリ上にバンド領域(単位はpixel, 幅BandWidth, 高さBandHeight)を確保する。このとき、プリンタドライバ103は、スプール機能を使用するための初期化動作を行なうと共に、OpenPrinter命令を発行する。
【0046】
ステップS2では、「ページ単位」での印刷情報処理の初期化を行い、用紙サイズ全体のうちの縦方向の現在位置情報を示す変数CurYをゼロに初期化する。また、このとき、スプール機能を使用する際のページ単位での初期化動作も同時に行われると共に、StartPagePrinter命令が発行される。
【0047】
ステップS3において、プリンタドライバ103は、バンド単位での印刷情報処理の初期化を行った後、OS102からバンド領域内に描画すべき描画命令を1つづつ受け取り、この描画命令実行時に、プリンタの解像度に応じ、予め確保しておいたRGB24ビットバンドメモリに順次ラスタライズを行なうことによってRGB画像データを生成し、バンドメモリの位置情報(BandX, BandY)を獲得しでおく(図3(a)に示す概念図参照)。
【0048】
ステップS4では、縦方向の位置情報BandYで、縦方向の現在位置情報を初期化しておく(CurY = BandY)。また、バンド領域の縦方向の現在位置情報を示すScanYをゼロに初期化しておく。
【0049】
ステップS5では、作成されたRGB画像データのバンドメモリに対して、バンド内の1スキャンライン毎に、該当スキャンラインの先端から終端まで、データが存在するかどうかを検索し、スキャンライン上のデータが存在しているpixel幅(Width)と、左側の空白pixel幅(Left)と、右側の空白pixel幅(Right)を求める(図3(b)に示す概念図参照)。
【0050】
該当スキャンライン上のWidth, Left, Rightを求めた後、ステップS6において該当スキャンライン上にデータが存在すると判断した場合(Width>0)に、ステップS7では、RGB24bitデータを、予め確保しておいた1スキャンライン分のCMYK32bitを展開するためのメモリに、CMYKに色変換(減色処理)を行った後で格納する。一方、ステップS6でデータが存在しないと判断した場合には、ステップS11に処理を移す。
【0051】
ステップS8では、変換されたCMYK32bitデータに対して、2値化処理を施した後、印刷コマンドに変換し、1スキャンライン分の印刷データを作成する。
【0052】
ステップS9では、印刷データがプリンタ105に出力すべき分だけ生成されたかを判断する。ここで、プリンタ105に出力すべき分の印刷データのサイズは、本実施形態において、プリンタ105に搭載された記録ヘッド(不図示)が1回のスキャンで印刷できる量である。そして、この判断の結果、プリンタ150に出力するときはステップS10に処理を移す。一方、出力しないときは、ステップS11に飛ぶ。
【0053】
ステップS10では、生成された印刷データを、OS102のスプーラ機能を利用して、プリンタ015に対して送信する。このときに、スプーラ機能を利用したプリンタ105への印刷データ送信命令として、WritePrinter命令を発行する。本処理で、プリンタ105への印刷データの送信を終了したことになる。
【0054】
その後、スプーラ機能でバッファリングされている印刷データをすべてプリンタ側に送信させるために、OS102に用意されているシステム命令としてのEndPagePrinter命令を発行する、或いは、EndPagePrinter命令と、StartPagePrinter命令とを順に発行する。
【0055】
ステップS11では、スキャンライン単位での印刷情報処理が終了したので、ページ内およびバンド内の縦方向位置情報を1増やす。
【0056】
ステップS12では、バンド内縦方向位置情報であるScanYが、バンド高さであるBandHeightに満たない場合は、ステップS5に処理を移す。この判断を、1バンド内のすべてのスキャンラインに対して行うと、ScanYがバンド高さのBandHeightを越えて、プリンタドライバ103のバンド毎の印刷情報処理が終わったことになるので、その時点でステップS13に進む。
【0057】
ステップS13では、ページ内縦方向位置情報であるCurYが、ページ長PageHeightに満たない場合には、ステップS3からのバンド毎の処理をページ長分だけ繰り返す。そして、CurYがページ長PageHeightを超えたときに、1ページ分の印刷情報処理を終了とし、印刷情報処理のページ終了処理を行った後、ステップS14に進む。印刷情報処理のページ終了処理の際には、スプーラ機能にページ終了を通知するため、EndPagePrinter命令を発行する。
【0058】
ステップS14で複数ページが存在した場合には、すべてページの印刷処理を終えるまでステップS2からの処理を繰り返す。そして、最後にステップS15で確保したバンドメモリを開放し、1印刷ジョブの処理を終了する。
【0059】
<実施形態の変形例>
次に、上述した実施形態を基本とする変形例について説明する。以下の説明においては、第1の実施形態と同様な構成については重複する説明を省略し、本変形例における特徴的な部分を中心に説明する。
【0060】
図6及び図7は、本実施形態の変形例に係るバンディング方式のプリンタドライバが行なう印刷データ化処理を示すフローチャートであり、CPU108がプリンタドライバ103として行なう処理の手順を表わす。
【0061】
本変形例では、ホストコンピュータ100とプリンタ105との間において、プリンタ105が、1スキャン印刷幅分の一時記憶領域を有するプリントバッファを装備しているか否かを識別するためのプリントバッファ情報をホストコンピュータ100に渡すことができるシステム構成の場合について説明する。
【0062】
ステップS21では、プリンタ105から、上記のプリントバッファ情報を入手する。
【0063】
ステップS22乃至ステップSステップS36の個々のステップでは、図4び図5に示す上述したステップS1乃至ステップS15と略同様な手順で処理を行なう。
【0064】
但し、本変形例では、ステップS10とは異なり、ステップS31では、ステップS21にてプリンタ105から入手した上記のプリントバッファ情報に基づいて、
・OS102のスプーラ機能を利用して印刷データ送信命令のみを発行すべき場合と、
・その印刷データ送信命令の後に、上述したステップS10(図5)の場合と同様に、他の命令を付加すべき場合と、
を切り替える処理を実行する。何れの場合にも、本ステップにおける印刷データ送信命令の発行によって、印刷データ化処理が施された印刷データが、プリンタ105に転送される。
【0065】
従って、本変形例によれば、上述した実施形態の場合と同様に、OS102のスプーラ機能によってバッファリングされている印刷データを、バッファ内に残すこと無くプリンタ105にすべて送信することができるのに加えて、プリントバッファ情報によって、ホストコンピュータ100に接続されているプリンタ105が1スキャン印刷幅分のプリントバッファを装備していると認識できた場合には、印刷データ送信命令の後に他の命令を付加する処理を行なわなくて済むので、CPU108への不必要な処理負担の増大を防止することができる。
【0066】
このように、上述した本実施形態及びその変形例では、プリンタドライバ103が、オペレーティングシステム(OS)102に用意されているスプーラ機能を利用して、ホストコンピュータ100からプリンタ105に送信するに際して、そのスプーラ機能への出力要求命令を発行する処理ステップの後に、他のシステム命令を付加することにより、生成した所定の処理単位毎(プリントヘッドの動作に必要な印刷データの作成が完了する度)に印刷データを、係るスプーラ機能の仕様に関らずに、プリンタ105へのデータ転送を確実に行うことができる。
【0067】
従って、1スキャン印刷幅分の印刷データをバッファリング可能な記憶容量のプリントバッファを装置内に備えないプリンタにおいて、「発明が解決しようとする課題」にて説明したように、その1スキャン分の印刷動作を行なう記録ヘッドの駆動中に未だ蓄えられていない残りの印刷データを受信しながら印刷する場合に、1スキャン印刷幅分の印刷に記録ヘッドを複数回(例えば2回)駆動させる処理(「見切り印刷」)が採用される場合であっても、本実施形態に係るプリンタドライバ103の機能によれば、スプーラ機能の仕様に関らずに、接続されているプリンタの記録ヘッドの1スキャン印刷幅分の印刷データ毎に、プリンタ105へのデータ転送を確実に行うことができるので、プリンタ側における「見切り印刷」の発生を従来と比較して低減させることができ、結果として、印刷品位の向上を図ることができる。
【0068】
尚、上述した各実施形態を例に説明した本発明は、上述したホストコンピュータ100に対して、その説明において参照したフローチャートの機能を実現可能なコンピュータ・プログラムを供給した後、その装置のCPUに読み出して実行することによって達成される。また、当該装置内に供給されたコンピュータ・プログラムは、読み書き可能なメモリまたはハードディスク装置等の記憶デバイスに格納すれば良い。
【0069】
また、前記の場合において、当該各装置内へのコンピュータ・プログラムの供給方法は、フレキシブルディスク等の各種記録媒体を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等のように、現在では一般的な手順を採用することができ、このような場合において、本発明は、係るコンピュータ・プログラムのコード或いは記憶媒体によって構成される。
【0070】
【発明の効果】
以上説明した本発明によれば、OSに用意されているスプーラ機能の仕様に関らずに、プリンタドライバが所望する出力タイミングで、記録ヘッドの1スキャン印刷幅分の印刷データ毎に、すべての印刷データをプリンタに確実に転送することができる。
【図面の簡単な説明】
【図1】本実施形態における印刷システムの構成を示すブロック図である。
【図2】本実施形態に係る印刷システムにおけるプリンタドライバとOSとの処理手順を説明する図である。
【図3】本実施形態に係るバンディング方式のプリンタドライバが行なう印刷データ化処理を概念的に説明する図である。
【図4】本実施形態に係るバンディング方式のプリンタドライバが行なう印刷データ化処理を示すフローチャートである。
【図5】本実施形態に係るバンディング方式のプリンタドライバが行なう印刷データ化処理を示すフローチャートである。
【図6】本実施形態の変形例に係るバンディング方式のプリンタドライバが行なう印刷データ化処理を示すフローチャートである。
【図7】本実施形態の変形例に係るバンディング方式のプリンタドライバが行なう印刷データ化処理を示すフローチャートである。
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a technical field of a printer driver (printer driver program) mounted on a print control device for controlling an operation of a printer.
[0002]
[Prior art]
2. Description of the Related Art Conventionally, when a printing system is configured using a printer and a host computer, a so-called printer driver (printer driver program) is used so that the host computer functions as a print control device for controlling the operation of the printer. ) Is mounted.
[0003]
The printer driver is a software program executed on the host computer. The printer driver converts graphics image data such as characters and figures created by application software installed on the host computer and image image data such as natural images into a printer. At the time of printing out by the application software, a rendering command based on image data supplied from an application software via an operating system (OS) is analyzed, and RGB multi-tone image data is created on a memory according to the analysis result. In a printer of the system, the data is converted into CMYK multi-valued information representing each color of the printer ink, and then converted into CMYK binary data representing whether or not the ink is applied, and then the data format which can be analyzed by the printer Generate print data for the printer It has a function of transferring.
[0004]
Among such printer drivers, a printer driver compatible with an operating system having a spool function such as Microsoft Windows (registered trademark) 2000 has a spool function for managing print data created by the printer driver by the operating system. It is a general processing configuration to transfer the data to a printer by using it.
[0005]
In particular, in the above-described general printer driver, a spool function is provided for notifying the spool function of the OS to write data to the designated printer and transferring the generated print data to the printer. A processing configuration in which the print data is transmitted to the printer by calling a print data write command function in the printer driver is employed (for example, see Patent Document 1).
[0006]
[Patent Document 1]
JP-A-10-240469 (FIG. 8)
[Problems to be solved by the invention]
A conventional inkjet printer controlled by the above-described banding printer driver has a print buffer for the print width, and when print data for the print width is accumulated (buffered) in the print buffer. The print head is driven, and one scan (print scan) is performed a plurality of times while updating the print data in the print buffer and shifting the relative position between the print head and the print medium a plurality of times. It is common to print minutes.
[0007]
However, recently, inexpensive ink-jet printers have come to have a printer which does not have a print buffer having a storage capacity capable of buffering print data for one scan printing width in its own device due to the necessity of reducing product cost. In the ink jet printer having such an apparatus configuration, since the print data for a predetermined print width to be printed in one scan is not stored in the print buffer at the time of starting the printing operation for one scan, During the driving of the recording head for performing the printing operation for the scan, it is necessary to print while receiving the remaining print data not yet stored in the print buffer among the print data for one scan.
[0008]
If the printer cannot drive the recording head as described above and cannot receive the remaining print data of a predetermined print width for one scan to be processed, The print head is returned to the print start position, and after receiving the data for the remaining print width, printing is performed again for the remaining print width of the same scan. May be done.
[0009]
In this part-time printing, a process of driving the recording head a plurality of times (for example, two times) is required for one scan printing, so that not only the printing speed of the printer (here, the time required for printing) decreases, but also The print quality may be degraded due to the time difference between the print timing for the remaining print width and the print timing in the preceding drive, the print position error, and the like.
[0010]
Further, in a printer driver corresponding to an ink jet printer having the above-described device configuration, generally, after creating print data for a print width of one scan of a printhead, the print data is sent to a spooler function managed by the OS. Is passed. For this reason, according to the processing procedure of transferring data to the printer for each print data for one scan print width of the recording head, the above-described parting-out printing is performed except when the CPU processing speed of the host computer is extremely low. It is thought that the frequency of occurrence in printers is reduced.
[0011]
However, depending on the specifications of the spooler function, the print data received from the printer driver may be buffered in a unit unique to the spooler function and transmitted to the printer on the host computer. Even if the printer driver issues a print data output request command to the printer prepared in advance in the operating system, as a result, the print data for a predetermined print width cannot be completely transmitted to the printer, and the spooler function is managed. It has been found that a situation occurs in which the print data to be transmitted in response to the issuance of the output request command remains in the buffer in the host computer. This means that in the above-described inkjet printer which does not include a print buffer having a storage capacity capable of buffering print data for one scan in the apparatus, the above-described part-time printing frequently occurs. As a result, there is a problem that printing cannot be performed quickly at an output timing desired by the printer driver or at an output timing assumed in the design stage of the printer driver.
[0012]
SUMMARY OF THE INVENTION The present invention has been made in view of the above-described problem, and it is possible for a printer driver to output one scan printing width of a print head at a desired output timing regardless of the specifications of a spooler function provided in an OS. An object of the present invention is to reliably transfer all print data to a printer for each print data.
[0013]
[Means for Solving the Problems]
In order to achieve the above object, a print control device according to the present invention has the following configuration.
[0014]
That is, a print control device that transfers generated print data to a printer using a spool function of an operating system,
After issuing a print data output instruction for the spool function, the system further issues a system instruction capable of controlling the spool function for each predetermined processing unit, so that the print data stored in the spooler function is buffered. Is transmitted to the printer.
[0015]
Further, for example, the printer is an inkjet printer equipped with a recording head,
The predetermined processing unit is a processing timing at which creation of a predetermined amount of print data required for the operation of the recording head (print data for one scan print width of the recording head) is completed.
[0016]
Further, for example, the print data output command includes first and second commands issued before and after instructing a print process of one page of print data,
The print control unit may issue at least the second instruction as a system instruction issued for each of the predetermined processing units.
[0017]
In this case, it is preferable that the print control unit issues the first and second instructions as the system instructions in the order of the second instruction and the first instruction for each of the predetermined processing units. .
[0018]
Alternatively, another configuration of the present invention that achieves the same object is a computer-readable printer driver program,
The print data to be transmitted to the printer is transmitted to a spooler of an operating system, and an instruction for transmitting the print data buffered by the spooler to the printer without leaving the print data is issued.
[0019]
The above object is also achieved by a print data transmission method corresponding to the above-described print control devices.
[0020]
Further, the same object is also achieved by a program code (that is, a printer driver program) for realizing a method corresponding to each of the above-described print control devices by a computer, and a computer-readable storage medium storing the program code. Is also achieved by
[0021]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, an embodiment of a print control apparatus according to the present invention will be described in detail with reference to the drawings.
[0022]
FIG. 1 is a block diagram illustrating the configuration of a printing system according to the present embodiment. In the present embodiment, the host computer 100 has a function as a print control device that controls the operation of the printer 105. The computer 100 is connected to a printer 105 that is a raster printer (eg, an inkjet printer) having no page description language, a monitor 104 such as a liquid crystal display device, and a keyboard (including a general pointing device) 106. .
[0023]
The host computer 100 includes, as software programs to be executed by the CPU 108, an operating system (OS) 102 having a spool function such as Microsoft Windows (registered trademark) 2000, a word processing function, a spreadsheet function, and an Internet browser. Application software 101 such as functions and various drawing commands (image drawing command, text drawing command, graphics drawing command, etc.) indicating an output image issued to the OS 102 by the application software are processed by a general procedure. Accordingly, a printer driver 103 that creates print data is installed.
[0024]
The host computer 100 includes a central processing unit (CPU) 108, a hard disk (HD) 107, a random access memory (RAM) 109, a read-only memory (ROM) 110, And a data bus 111 for connecting these components.
[0025]
The host computer 100 and the OS 102 operating on the hardware thereof may be, for example, a personal computer and a general OS that are widely used, and thus a detailed description of the present embodiment will be omitted. .
[0026]
Here, the processing procedure between the OS and the banding-type printer driver when the printing process is performed in the printing system in the configuration shown in FIG. 1 will be outlined with reference to FIG.
[0027]
FIG. 2 is a diagram illustrating a processing procedure between the printer driver and the OS in the printing system according to the present embodiment.
[0028]
In FIG. 1, application software 101 on a host computer 100 includes text data classified as text such as characters, graphics data classified as graphics such as figures, and image image data classified as natural images. Are created as output image data representing a document to be printed.
[0029]
To print out the created output image data, the application software 101 issues a print output request to the OS 102. The text data portion is a text drawing command, the graphics data portion is a graphics drawing command, and the image data portion is an image drawing command. It issues to the OS 102 a drawing command group, which is constituted by the command and indicates an output image representing the document to be printed. Then, the OS 102 receives the output request of the application software 101 and issues a print request to the printer driver 103 corresponding to the output printer.
[0030]
When a print request is sent from the OS 102, the printer driver 103 secures a band work area (band memory and band buffer) on the host computer 100, and stores coordinate data (position and capacity) of the secured work area. Band size data) to the OS 102. At this time, the OS 102 issues a drawing command group existing in the buffer of the passed band size to the printer driver 103.
[0031]
Here, the reason for securing the work area for the band is that, in general, in a raster printer having no page description language as described in the present embodiment, the printer driver on the host computer performs the image expansion processing. Since the host computer usually does not have enough storage to expand all drawing commands for one page, the memory is divided into units called "bands" that are divided horizontally and horizontally during image expansion processing. To create an image on top.
[0032]
The printer driver 103 uses the spool function of the OS 102 to transmit print data to the printer. That is, the printer driver 103 sequentially rasterizes a drawing command group from the OS 102 to the band memory in, for example, a 24-bit RGB format. After rasterizing all drawing commands, the printer driver 103 converts the data contents expanded in the band memory into CMYK data for each scan line and performs quantization processing, and then the printer 105 can print. A print data conversion process for converting the data into a predetermined data format is performed. Further, the printer driver 103 issues a print data transmission command using the spooler function of the OS 102 to transfer the print data that has been subjected to the print data processing to the printer 105.
[0033]
The OS 102 repeats the above-described series of processing procedures for a printing target document created by the application software 101 and issues all drawing command groups existing in the page of the document for each band. The driver 103 performs the above-described print data conversion process for each scan line in band units, and thereby transfers all print data to the printer 105 to complete the process.
[0034]
Next, the flow of print data processing by the banding-type printer driver according to the present embodiment will be described in detail with reference to FIGS.
[0035]
FIG. 3 is a diagram conceptually illustrating print data conversion processing performed by the banding-type printer driver according to the present embodiment. 4 and 5 are flowcharts showing print data conversion processing performed by the banding-type printer driver according to the present embodiment, and show the procedure of processing performed by the CPU 108 as the printer driver 103.
[0036]
Here, prior to the description of the individual steps shown in FIGS. 4 and 5, the characteristic points of the present embodiment will be described.
[0037]
In a conventional general printer driver, a StartPagePrinter instruction and an EndPagePrinter instruction are originally used before printing a page (step S2 in the present embodiment) and after processing the page (in the present embodiment). Although issued in step S13), the present applicant has found that the print data buffered by the spooler function of the OS is all transmitted to the printer in response to calling the EndPagePrinter instruction. Therefore, the present embodiment focuses on the function of the EndPagePrinter instruction and, unlike the conventional processing configuration in which the EndPagePrinter instruction is called in page units, in the present embodiment, in the present embodiment, each predetermined processing unit (necessary for the operation of the print head). EndPagePrinter instruction is called each time the creation of a new print data is completed).
[0038]
That is, in the conventional processing procedure,
-At the top of the page, a StartPagePrinter instruction is issued,
・ Send by WritePrinter command according to completion of generation of print data required for operation of print head,
At the end of the page, an EndPagePrinter instruction is issued,
Is made.
[0039]
On the other hand, in the processing procedure according to the present embodiment,
-At the top of the page, a StartPagePrinter instruction is issued,
-After the print data required for the operation of the print head has been generated and transmitted by the WritePrinter command, an EndPagePrinter command is issued,
-After the print data required for the operation of the print head has been generated and transmitted by the WritePrinter command, an EndPagePrinter command is issued,
...
-After the print data required for the operation of the print head has been generated and transmitted by the WritePrinter command, an EndPagePrinter command is issued,
At the end of the page, an EndPagePrinter instruction is issued,
Is made.
[0040]
However, the processing configuration in which the EndPagePrinter instruction is called a plurality of times in the same page as described above is different from the processing procedure in which the EndPagePrinter instruction is called once at the beginning and end of the page, and the EndPagePrinter instruction and the StartPagePrinter instruction are paired. Not used in Therefore, in a preferred embodiment, in order to ensure consistency with the order of these two instructions, each time the generation of print data necessary for the operation of the print head is completed in the same page, the order of the EndPagePrinter instruction and the StartPagePrinter instruction is changed. Then, the two instructions are used in pairs.
[0041]
That is, in a preferred embodiment,
-At the top of the page, a StartPagePrinter instruction is issued,
After the print data required for the operation of the print head has been generated and transmitted by the WritePrinter command, an EndPagePrinter command and a StartPagePrinter command are sequentially issued,
After the print data required for the operation of the print head has been generated and transmitted by the WritePrinter command, an EndPagePrinter command and a StartPagePrinter command are sequentially issued,
...
After the print data required for the operation of the print head has been generated and transmitted by the WritePrinter command, an EndPagePrinter command and a StartPagePrinter command are sequentially issued,
At the end of the page, an EndPagePrinter instruction is issued,
Is made.
[0042]
Note that, in the present embodiment, a processing mode in which an EndPagePrinter instruction and a StartPagePrinter instruction are combined and issued, but this is an example, and in addition, all the print data buffered by the spooler function is transmitted to the printer. Any command that can reduce the occurrence of part-time printing on the printer side can be used instead. For example, in the above-described processing procedure, the StartPage command and the EndPagePrinter command are called many times during the printing process of the same page, so that the management of the number of pages during the printing process in one job is complicated. Become. Therefore, it has been confirmed that the occurrence of part-time printing on the printer side can be reduced by calling an instruction for initializing a structure called an EnumJobs instruction instead of the EndPagePrinter instruction and the StartPagePrinter instruction.
[0043]
Thereby, all the print data buffered by the spooler function can be transmitted to the printer without being left in the buffer.
[0044]
Next, individual steps of the flowcharts shown in FIGS. 4 and 5 that include the above-described characteristic processing will be described.
[0045]
First, upon receiving a print request from the OS 102, the printer driver 103 initializes print information processing in "print job units" in step S1, and stores a band area (unit is pixel, width BandWidth, height) in the memory. Band Height). At this time, the printer driver 103 performs an initialization operation for using the spool function and issues an OpenPrinter instruction.
[0046]
In step S2, the printing information is initialized in "page units", and a variable CurY indicating the current position information in the vertical direction in the entire sheet size is initialized to zero. At this time, an initialization operation for each page when the spool function is used is performed at the same time, and a StartPagePrinter instruction is issued.
[0047]
In step S3, the printer driver 103 initializes print information processing in band units, receives drawing commands to be drawn in the band area from the OS 102 one by one, and executes the resolution of the printer when executing the drawing command. , RGB image data is generated by sequentially rasterizing the RGB 24-bit band memory secured in advance, and the position information (BandX, BandY) of the band memory is acquired (see FIG. 3A). See conceptual diagram).
[0048]
In step S4, the current position information in the vertical direction is initialized with the position information BandY in the vertical direction (CurY = BandY). Also, ScanY indicating the current position information in the vertical direction of the band area is initialized to zero.
[0049]
In step S5, the band memory of the created RGB image data is searched for every scan line in the band from the beginning to the end of the scan line to see if data exists, and the data on the scan line is searched. Is found, the left blank pixel width (Left), and the right blank pixel width (Right) are obtained (see the conceptual diagram shown in FIG. 3B).
[0050]
After determining the Width, Left, and Right on the scan line, if it is determined in step S6 that data exists on the scan line (Width> 0), in step S7, RGB 24-bit data is reserved in advance. The CMYK 32 bits for one scan line are stored after being subjected to color conversion (color reduction processing) to CMYK in a memory for developing the CMYK 32 bits. On the other hand, if it is determined in step S6 that no data exists, the process proceeds to step S11.
[0051]
In step S8, the converted CMYK 32-bit data is subjected to binarization processing, converted into a print command, and print data for one scan line is created.
[0052]
In step S9, it is determined whether the print data has been generated to the extent that it should be output to the printer 105. Here, the size of the print data to be output to the printer 105 is an amount that can be printed by a recording head (not shown) mounted on the printer 105 in one scan in the present embodiment. Then, as a result of this determination, when outputting to the printer 150, the process proceeds to step S10. On the other hand, when not outputting, it jumps to step S11.
[0053]
In step S10, the generated print data is transmitted to the printer 015 using the spooler function of the OS 102. At this time, a WritePrinter command is issued as a print data transmission command to the printer 105 using the spooler function. In this process, transmission of the print data to the printer 105 has been completed.
[0054]
Then, an EndPagePrinter command is issued as a system command prepared in the OS 102, or an EndPagePrinter command and a StartPagePrinter command are issued in order to cause the printer to transmit all print data buffered by the spooler function. I do.
[0055]
In step S11, since the print information processing in scan line units has been completed, the vertical position information in the page and in the band is increased by one.
[0056]
In step S12, if ScanY, which is the vertical position information in the band, is less than BandHeight, which is the band height, the process proceeds to step S5. When this determination is made for all scan lines in one band, ScanY exceeds BandHeight of the band height, and print information processing for each band of the printer driver 103 has been completed. Proceed to step S13.
[0057]
In step S13, when CurY, which is vertical position information in the page, is less than the page length PageHeight, the processing for each band from step S3 is repeated for the page length. Then, when CurY exceeds the page length PageHeight, the print information processing for one page is terminated, the page end processing of the print information is performed, and the process proceeds to step S14. At the time of page end processing of print information processing, an EndPagePrinter instruction is issued to notify the spooler function of page end.
[0058]
If there are a plurality of pages in step S14, the processing from step S2 is repeated until the printing processing of all pages is completed. Then, finally, the band memory secured in step S15 is released, and the processing of one print job ends.
[0059]
<Modification of Embodiment>
Next, a modified example based on the above-described embodiment will be described. In the following description, the same configuration as that of the first embodiment will not be described repeatedly, and will be described focusing on the characteristic portions of this modified example.
[0060]
6 and 7 are flowcharts showing print data conversion processing performed by a banding-type printer driver according to a modification of the present embodiment, and show the procedure of processing performed by the CPU 108 as the printer driver 103.
[0061]
In this modification, between the host computer 100 and the printer 105, print buffer information for identifying whether the printer 105 has a print buffer having a temporary storage area for one scan print width is provided by the host. A case of a system configuration that can be transferred to the computer 100 will be described.
[0062]
In step S21, the above-described print buffer information is obtained from the printer 105.
[0063]
In each of the steps S22 to S36, the processing is performed in substantially the same procedure as the above-described steps S1 to S15 shown in FIGS.
[0064]
However, in this modified example, unlike step S10, in step S31, based on the print buffer information obtained from the printer 105 in step S21,
A case where only a print data transmission command should be issued using the spooler function of the OS 102;
A case where another command should be added after the print data transmission command in the same manner as in step S10 (FIG. 5) described above;
Execute the process of switching. In any case, the print data subjected to the print data conversion process is transferred to the printer 105 by issuing the print data transmission instruction in this step.
[0065]
Therefore, according to the present modification, the print data buffered by the spooler function of the OS 102 can be all transmitted to the printer 105 without being left in the buffer, as in the case of the above-described embodiment. In addition, when it is recognized from the print buffer information that the printer 105 connected to the host computer 100 has a print buffer for one scan print width, another command is issued after the print data transmission command. Since it is not necessary to perform the additional processing, it is possible to prevent an unnecessary increase in processing load on the CPU 108.
[0066]
As described above, in the above-described embodiment and its modifications, when the printer driver 103 uses the spooler function provided in the operating system (OS) 102 to transmit from the host computer 100 to the printer 105, After the processing step of issuing an output request command to the spooler function, another system command is added to generate a predetermined processing unit (every time the creation of print data necessary for the operation of the print head is completed). It is possible to reliably transfer print data to the printer 105 regardless of the specifications of the spooler function.
[0067]
Therefore, in a printer that does not include a print buffer having a storage capacity capable of buffering print data for one scan print width in the apparatus, as described in “Problems to be Solved by the Invention”, When printing while receiving the remaining print data that has not been stored while the recording head performing the printing operation is being driven, a process of driving the recording head a plurality of times (for example, twice) for printing for one scan printing width ( Even in the case where “close-out printing” is employed, according to the function of the printer driver 103 according to the present embodiment, one scan of the recording head of the connected printer can be performed regardless of the specifications of the spooler function. Data transfer to the printer 105 can be reliably performed for each print data of the print width. Compared to it can be reduced and, as a result, it is possible to improve the print quality.
[0068]
The present invention described in each of the embodiments described above as an example supplies the above-described host computer 100 with a computer program capable of realizing the functions of the flowcharts referred to in the description, and then supplies the computer program to the CPU of the device. It is achieved by reading and executing. The computer program supplied to the apparatus may be stored in a readable / writable memory or a storage device such as a hard disk drive.
[0069]
Further, in the above case, the method of supplying the computer program to each device may be a method of installing the computer program in the device via various recording media such as a flexible disk, or a method of supplying the computer program from the outside via a communication line such as the Internet. At present, a general procedure such as a download method can be adopted, and in such a case, the present invention is configured by the code of the computer program or the storage medium.
[0070]
【The invention's effect】
According to the present invention described above, regardless of the specifications of the spooler function provided in the OS, at the output timing desired by the printer driver, all the print data for one scan print width of the print head are output. The print data can be reliably transferred to the printer.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a configuration of a printing system according to an embodiment.
FIG. 2 is a diagram illustrating a processing procedure between a printer driver and an OS in the printing system according to the embodiment.
FIG. 3 is a diagram conceptually illustrating print data conversion processing performed by a banding-type printer driver according to the embodiment.
FIG. 4 is a flowchart illustrating print data conversion processing performed by a banding-type printer driver according to the embodiment.
FIG. 5 is a flowchart illustrating print data conversion processing performed by a banding-type printer driver according to the embodiment.
FIG. 6 is a flowchart illustrating a print data conversion process performed by a banding-type printer driver according to a modified example of the embodiment.
FIG. 7 is a flowchart illustrating print data conversion processing performed by a banding-type printer driver according to a modification of the embodiment.

Claims (15)

生成した印刷データを、オペレーティングシステムのスプール機能を利用してプリンタに転送する印刷制御装置であって、
前記スプール機能に対して印刷データ出力命令を発行した後、更に、前記スプール機能を制御可能なシステム命令を、所定の処理単位毎に発行することにより、前記スプーラ機能がバッファリングしている印刷データをすべてプリンタに送信させる印刷制御手段を備える
ことを特徴とする印刷制御装置。
A print control device that transfers the generated print data to a printer using a spool function of an operating system,
After issuing a print data output instruction for the spool function, the system further issues a system instruction capable of controlling the spool function for each predetermined processing unit, so that the print data stored in the spooler function is buffered. A print control unit for transmitting all the print data to the printer.
前記プリンタは、記録ヘッドが搭載されたインクジェット方式のプリンタであって、
前記所定の処理単位は、前記記録ヘッドの動作に必要な所定量の印刷データの作成が完了する処理タイミングである
ことを特徴とする請求項1記載の印刷制御装置。
The printer is an inkjet printer equipped with a recording head,
2. The print control apparatus according to claim 1, wherein the predetermined processing unit is processing timing at which creation of a predetermined amount of print data required for operation of the recording head is completed.
前記所定量の印刷データは、前記記録ヘッドの1スキャン印刷幅分の印刷データである
ことを特徴とする請求項1記載の印刷制御装置。
2. The print control apparatus according to claim 1, wherein the predetermined amount of print data is print data for one scan print width of the recording head.
前記印刷データ出力命令は、
1ページ分の印刷データの印刷処理を指示する前と後とに発行される第1及び第2命令からなり、
前記印刷制御手段は、
前記所定の処理単位毎に発行するシステム命令として、少なくとも前記第2命令を発行する
ことを特徴とする請求項1乃至請求項3の何れかに記載の印刷制御装置。
The print data output command includes:
The first and second commands are issued before and after instructing a print process of one page of print data,
The print control unit includes:
4. The print control apparatus according to claim 1, wherein at least the second instruction is issued as a system instruction issued for each of the predetermined processing units.
前記印刷制御手段は、
前記システム命令としての前記第1及び第2命令を、前記第2命令、そして前記第1命令の順番で、前記所定の処理単位毎に発行する
ことを特徴とする請求項4記載の印刷制御装置。
The print control unit includes:
5. The printing control apparatus according to claim 4, wherein the first and second instructions as the system instructions are issued for each of the predetermined processing units in the order of the second instruction and the first instruction. .
前記印刷制御手段は、
前記プリンタが1スキャン印刷幅分の一時記憶領域を有するプリントバッファを装備しているか否かを識別するための情報を入手する手段を含み、
その手段によって入手した情報によって、前記プリンタが前記プリントバッファを装備していないと判断された際に、前記システム命令を前記所定の処理単位毎に発行する制御を行なう
ことを特徴とする請求項1記載の印刷制御装置。
The print control unit includes:
Means for obtaining information for identifying whether the printer is equipped with a print buffer having a temporary storage area for one scan printing width,
2. The system according to claim 1, wherein when the printer is determined not to be equipped with the print buffer based on information obtained by the means, the system command is issued for each of the predetermined processing units. The print control device as described in the above.
生成した印刷データを、オペレーティングシステムのスプール機能を利用してプリンタに転送する印刷データ送信方法であって、
前記スプール機能に対して印刷データ出力命令を発行した後、更に、前記スプール機能を制御可能なシステム命令を、所定の処理単位毎に発行することにより、前記スプーラ機能がバッファリングしている印刷データをすべてプリンタに送信させる
ことを特徴とする印刷データ送信方法。
A print data transmission method for transferring generated print data to a printer using a spool function of an operating system,
After issuing a print data output instruction for the spool function, the system further issues a system instruction capable of controlling the spool function for each predetermined processing unit, so that the print data stored in the spooler function is buffered. A print data transmission method, wherein all print data is transmitted to a printer.
前記プリンタは、記録ヘッドが搭載されたインクジェット方式のプリンタであって、
前記所定の処理単位は、前記記録ヘッドの動作に必要な所定量の印刷データの作成が完了する処理タイミングである
ことを特徴とする請求項7記載の印刷データ送信方法。
The printer is an inkjet printer equipped with a recording head,
8. The print data transmission method according to claim 7, wherein the predetermined processing unit is processing timing at which creation of a predetermined amount of print data required for operation of the recording head is completed.
前記所定量の印刷データは、前記記録ヘッドの1スキャン印刷幅分の印刷データである
ことを特徴とする請求項7記載の印刷データ送信方法。
8. The print data transmission method according to claim 7, wherein the predetermined amount of print data is print data for one scan print width of the recording head.
前記印刷データ出力命令は、1ページ分の印刷データの印刷処理を指示する前と後とに発行される第1及び第2命令からなり、
前記所定の処理単位毎に発行するシステム命令として、少なくとも前記第2命令を発行する
ことを特徴とする請求項7乃至請求項9の何れかに記載の印刷データ送信方法。
The print data output instruction includes first and second instructions issued before and after instructing a print process of one page of print data,
10. The print data transmission method according to claim 7, wherein at least the second instruction is issued as a system instruction issued for each of the predetermined processing units.
前記システム命令としての前記第1及び第2命令を、前記第2命令、そして前記第1命令の順番で、前記所定の処理単位毎に発行する
ことを特徴とする請求項7記載の印刷データ送信方法。
8. The print data transmission according to claim 7, wherein the first and second instructions as the system instructions are issued for each of the predetermined processing units in the order of the second instruction and the first instruction. Method.
請求項1記載の印刷制御装置として、コンピュータを動作させる指示をなす
ことを特徴とするコンピュータ・プログラム。
A computer program for issuing an instruction to operate a computer as the print control device according to claim 1.
請求項1記載の印刷制御装置として、コンピュータを動作させるプログラムコードが格納されている
ことを特徴とするコンピュータ読み取り可能な記憶媒体。
A computer-readable storage medium storing a program code for operating a computer as the print control device according to claim 1.
プリンタに送信すべき分の印刷データをオペレーティングシステムのスプーラに送信すると共に、前記スプーラでバッファリングされる前記印刷データを残さずプリンタに送信させるための命令を発行する
ことを特徴とするコンピュータ読み取り可能なプリンタドライバプログラム。
A computer readable computer which transmits print data to be transmitted to a printer to a spooler of an operating system and issues an instruction to cause the printer to transmit the print data remaining in the spooler without leaving the print data. Printer driver program.
プリンタに送信すべき分の印刷データをオペレーティングシステムのスプーラに送信すると共に、前記スプーラでバッファリングされる前記印刷データを残さずプリンタに送信させるための命令を発行する
ことを特徴とする印刷データ送信方法。
Transmitting print data to be transmitted to a printer to a spooler of an operating system, and issuing a command to cause the printer to transmit the print data buffered by the spooler without leaving the print data. Method.
JP2002263219A 2002-09-09 2002-09-09 Print controller, print data transmitting method, computer program and computer readable storage medium Withdrawn JP2004102619A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002263219A JP2004102619A (en) 2002-09-09 2002-09-09 Print controller, print data transmitting method, computer program and computer readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002263219A JP2004102619A (en) 2002-09-09 2002-09-09 Print controller, print data transmitting method, computer program and computer readable storage medium

Publications (1)

Publication Number Publication Date
JP2004102619A true JP2004102619A (en) 2004-04-02

Family

ID=32263037

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002263219A Withdrawn JP2004102619A (en) 2002-09-09 2002-09-09 Print controller, print data transmitting method, computer program and computer readable storage medium

Country Status (1)

Country Link
JP (1) JP2004102619A (en)

Similar Documents

Publication Publication Date Title
JP3936016B2 (en) How to print document images
US6860203B2 (en) Method and apparatus for printing computer generated images
JP4627683B2 (en) Printing system, printing system control method and program
US5960166A (en) Image printing solution for a printing device
JP4174476B2 (en) Data processing apparatus, data processing method, printer driver program, print control apparatus, print control method, and printing system
JP3962606B2 (en) Printing command generation apparatus and method, printing apparatus and control method thereof, information processing apparatus, and printing system
US20050094163A1 (en) Printer driver and method of forming user interface
JP2001325087A (en) Command analysis utilizing rewritable command storing part
US8098385B2 (en) Spool file modifying device
JP4717717B2 (en) RECORDING CONTROL DEVICE AND RECORDING CONTROL DEVICE CONTROL METHOD
JP2004102619A (en) Print controller, print data transmitting method, computer program and computer readable storage medium
JP2007130887A (en) Printer, and its controlling method
US8339659B2 (en) Partitioning of sheetside bitmaps for transfer from a print controller to printhead controllers
US20040070784A1 (en) Methods, computer media and devices for processing compressed data intended for printing
US11029904B2 (en) Printing apparatus capable of converting image data
KR100571960B1 (en) Apparatus and method for controlling image forming apparatus
JP2001228996A (en) Image forming system
JP3611921B2 (en) Data compression / decompression method and page printer in page printer
JP3867344B2 (en) Image output device
JP3147264B2 (en) Image processing apparatus and conversion method thereof
JP3985568B2 (en) Printer host, printer driver and printing system
JP3862363B2 (en) Information output system and information output method
JP3927766B2 (en) Image processing apparatus and method
JP2005169768A (en) Printing device and method for writing image data in printing device
JP2003072162A (en) Printing controller, method for processing data, storage medium, and program

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060110