JP4164222B2 - プリンタドライバによる状態に基づく制御 - Google Patents
プリンタドライバによる状態に基づく制御 Download PDFInfo
- Publication number
- JP4164222B2 JP4164222B2 JP2000113860A JP2000113860A JP4164222B2 JP 4164222 B2 JP4164222 B2 JP 4164222B2 JP 2000113860 A JP2000113860 A JP 2000113860A JP 2000113860 A JP2000113860 A JP 2000113860A JP 4164222 B2 JP4164222 B2 JP 4164222B2
- Authority
- JP
- Japan
- Prior art keywords
- printer
- printing
- recording medium
- command
- 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
- 230000004044 response Effects 0.000 claims abstract description 45
- 238000000034 method Methods 0.000 claims description 445
- 230000008859 change Effects 0.000 claims description 38
- 230000002457 bidirectional effect Effects 0.000 claims description 36
- 238000012937 correction Methods 0.000 claims description 32
- 238000011084 recovery Methods 0.000 claims description 30
- 238000003860 storage Methods 0.000 claims description 21
- 230000005540 biological transmission Effects 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 3
- 230000000977 initiatory effect Effects 0.000 abstract 1
- 239000000123 paper Substances 0.000 description 418
- 238000007639 printing Methods 0.000 description 402
- 230000008569 process Effects 0.000 description 353
- 239000000976 ink Substances 0.000 description 345
- 238000012545 processing Methods 0.000 description 145
- 238000004140 cleaning Methods 0.000 description 78
- 239000000872 buffer Substances 0.000 description 64
- 230000002441 reversible effect Effects 0.000 description 60
- 238000010586 diagram Methods 0.000 description 52
- 230000006870 function Effects 0.000 description 46
- 230000007246 mechanism Effects 0.000 description 22
- 230000006854 communication Effects 0.000 description 16
- 238000004891 communication Methods 0.000 description 15
- 239000007788 liquid Substances 0.000 description 14
- 230000001133 acceleration Effects 0.000 description 13
- 125000004122 cyclic group Chemical group 0.000 description 13
- 230000015556 catabolic process Effects 0.000 description 12
- 238000006731 degradation reaction Methods 0.000 description 12
- 230000007175 bidirectional communication Effects 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 11
- 238000012544 monitoring process Methods 0.000 description 10
- 230000000740 bleeding effect Effects 0.000 description 9
- 238000013144 data compression Methods 0.000 description 9
- 238000012840 feeding operation Methods 0.000 description 9
- 238000010438 heat treatment Methods 0.000 description 9
- 230000007423 decrease Effects 0.000 description 8
- 238000013461 design Methods 0.000 description 8
- 230000002829 reductive effect Effects 0.000 description 8
- 238000002360 preparation method Methods 0.000 description 7
- 230000003111 delayed effect Effects 0.000 description 6
- 238000009792 diffusion process Methods 0.000 description 6
- 238000001035 drying Methods 0.000 description 6
- 238000012423 maintenance Methods 0.000 description 6
- 230000035699 permeability Effects 0.000 description 6
- 230000003247 decreasing effect Effects 0.000 description 5
- 230000006866 deterioration Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000000737 periodic effect Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 238000007599 discharging Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 239000000049 pigment Substances 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 230000002411 adverse Effects 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 3
- 230000004397 blinking Effects 0.000 description 3
- 238000009835 boiling Methods 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- -1 dirt Substances 0.000 description 3
- 238000001208 nuclear magnetic resonance pulse sequence Methods 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 230000008602 contraction Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000001343 mnemonic effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003825 pressing Methods 0.000 description 2
- 239000013643 reference control Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- WYWHKKSPHMUBEB-UHFFFAOYSA-N 6-Mercaptoguanine Natural products N1C(N)=NC(=S)C2=C1N=CN2 WYWHKKSPHMUBEB-UHFFFAOYSA-N 0.000 description 1
- 238000010521 absorption reaction Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 238000005452 bending Methods 0.000 description 1
- 230000004456 color vision Effects 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 239000001041 dye based ink Substances 0.000 description 1
- 238000001704 evaporation Methods 0.000 description 1
- 230000008020 evaporation Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000009931 harmful effect Effects 0.000 description 1
- 231100001261 hazardous Toxicity 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 238000007641 inkjet printing Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000005499 meniscus Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 239000005022 packaging material Substances 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000000149 penetrating effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000001042 pigment based ink Substances 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000011946 reduction process Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 229940095374 tabloid Drugs 0.000 description 1
- 230000002277 temperature effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1203—Improving or facilitating administration, e.g. print management
- G06F3/1204—Improving or facilitating administration, e.g. print management resulting in reduced user or operator actions, e.g. presetting, automatic actions, using hardware token storing data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1203—Improving or facilitating administration, e.g. print management
- G06F3/1208—Improving or facilitating administration, e.g. print management resulting in improved quality of the output result, e.g. print layout, colours, workflows, print preview
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1229—Printer resources management or printer maintenance, e.g. device status, power levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1253—Configuration of print job parameters, e.g. using UI at the client
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1278—Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
- G06F3/1284—Local printer device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
- Ink Jet (AREA)
Description
【発明の属する技術分野】
本発明はコンピュータ機器で実行される、プリンタの状態に基づいてプリンタを制御するプリンタドライバに関する。
【0002】
【従来の技術】
現在のプリンタは、幅広い環境および配置状態で動作するように設計されている。例えば、市販のプリンタは、約5°Cから約50°Cまでの温度範囲で動作するように設計されていることが多い。
【0003】
プリンタが動作するように設計される両極端を広げるため、プリンタには当初の設計から大きな設計マージンが設けられている。このような大きな設計マージンにより、動作および配置が最も一般的な状況で、動作性能に望ましくないトレードオフがしばしば生じる。
【0004】
【発明が解決しようとする課題】
このようなトレードオフの1例は、記録媒体に対して往復移動するインクジェットヘッドに設けられた多数の小さなインクジェットノズルからインク滴を吐出して画像を形成するバブルジェットプリンタで見受けられる。このようなバブルジェットプリンタは、温度および湿度並びに他の環境および配置状態が平均的な家庭環境で、最も一般的かつ普通に使用される。しかしながら、プリンタは極限温度でも動作するように設計されているため、通常の温度での性能が低下することがよくある。極限温度では、例えば、インク粘度は、低温では極端に高く、高温では極端に低くなったりする。その結果、設計の時点で、ノズルクリーニング動作、記録媒体の給紙速度、排紙間隔などの動作パラメータを、両極端の状態を含めるように適切なマージンで選択しなければならない。しかしながら、このような大きな設計マージンをとると、プリンタが最も良く使用される通常状態でのプリンタの性能が低下してしまう。
【0005】
本発明は上記のような状況に対処するために、プリンタの状態に基づいて、プリンタの動作パラメータを変更するプリンタドライバ、並びにプリンタドライバがプリンタに送信するプリントデータの生成動作を変更する方法を提供して、デフォルト動作と異なる動作を実行し、印刷時のプリンタの特定状態に対してより最適な性能を発揮させることを目的とする。
【0006】
【課題を解決するための手段】
上記目的を達成する本発明の一つの態様は、プリンタと接続可能なコンピュータ機器で実行可能であり、該プリンタを駆動するプリンタドライバであって、プリントジョブの開始に応答してプリンタに現在の状態を照会し、現在の状態に従ってプリンタの動作パラメータおよび/またはプリンタドライバ自身の動作を変更するプリンタドライバである。好適な実施形態では、プリンタの状態は、周辺温度、プリンタで継続中の動作の状態(クリーニングおよび回復動作、および印刷および給紙動作など)を含んでいる。このような状態に基づいて、プリンタドライバはプリンタの動作パラメータを変更する。プリンタの動作パラメータは、プリンタの回復および保全動作に関するパラメータ(浄化間隔や予備吐出間隔など)、給紙の速度、浄化速度、スミヤ除去時間間隔、などを含むのが好ましい。本発明のプリンタドライバは、プリンタの状態に基づいて自分自身の動作フローのシーケンスを変更してもよい。このような動作の変更は、例えば、プリンタの状態に基づいてプリントデータの計算および導出を変えること、プリンタの状態に基づいてデータの転送を変えること、プリンタの状態に基づいてユーザ相互作用を変えることを含んでいてもよい。
【0007】
本発明によれば、時間、位置および日付などのプリンタドライバが実行されるコンピュータ機器の現在の構成情報をプリンタドライバが入手することもできる。本発明のプリンタドライバは、この構成情報をプリンタの状態と組合わせることにより、プリンタの状態だけに基づいて、あるいはプリンタの状態とコンピュータ機器の現在の構成とに基づいて、プリンタの動作パラメータまたは自身の動作を変更してもよい。
【0008】
本発明の他の態様によれば、上記のようなプリンタドライバによって実施される制御方法、上記のプリンタドライバを実現する処理工程を記憶するコンピュータ可読記憶媒体、並びに上記のプリンタドライバを実現するコンピュータで実行可能なコンピュータプログラム列が提供される。
【0009】
本発明の主旨が簡単に解るようにここでは簡単な概略を述べた。以下の本発明の好適な実施形態を添付図面と共に参照することにより、本発明をより良く理解できるであろう。
【0010】
【発明の実施の形態】
本実施の形態においては、以下に示すセクションに分けてそれぞれ詳細に説明する。
【0011】
【0012】
<1.0 機械的構成>
本セクションでは、本発明の実施の形態におけるプリンタの機械的配置と機能について説明する。
【0013】
<1.1 構成>
図1は、本実施の形態のプリンタと接続して用いられるコンピューター機器の外観図である。コンピューター機器1は、ホストプロセッサー2を含む。ホストプロセッサー2は、パーソナルコンピュータ(以下、「PC」と呼ぶ。)であってもよく、特に、マイクロソフト(登録商標)ウィンドウズ95などのウィンドウ環境で動作可能な、IBM社のPCコンパチブルコンピュータが好ましい。コンピューター機器1は、カラーモニタなどのディスプレイ4、テキストデータやユーザコマンドなどを入力するためのキーボード5、ポインティングデバイス6を有する。ポインティングデバイス6は、ディスプレイ4上のオブジェクトを指し示し、操作するためのマウスが好ましい。
【0014】
また、コンピューター機器1は、ハードディスク8やフロッピーディスクインタフェース9などのコンピューター可読メモリ媒体を有する。フロッピーディスクインタフェース9は、コンピューター機器1がフロッピーディスクに保持されているデータやアプリケーションプログラムなどの情報にアクセスできる手段を提供する。同様に、コンピューター機器1にCD−ROMインタフェース(不図示)を付加してもよく、その場合、コンピューター機器1はCDーROMインタフェースを介して、CDーROMに保持された情報にアクセスすることができる。
【0015】
ディスク8は様々なデータと共にアプリケーションプログラムを保持し、ホストコンピューター2はこのプログラムを用いてファイルを作成したり、作成したファイルをディスク8上で操作・保持したり、ディスプレイ4によりこれらのファイルをオペレーターに示したり、プリンタ10によりこれらのファイル中のデータをプリントしたりする。ディスク8は、上述した通り、好ましくはウィンドウズ95などのウィンドウオペレーティングシステムの、オペレーティングシステムも保持している。デバイスドライバもディスク8に保持されている。デバイスドライバの内、少なくとも一つはプリンタ10のファームウエアに対するソフトウエアインタフェースを提供するプリンタドライバである。ホストプロセッサー2とプリンタ10間のデータ交換について、以下に詳細に説明する。
【0016】
本発明の好適な実施の形態においては、プリンタ10はマルチヘッドシリアルプリンタである。従って、本発明はマルチヘッドシリアルプリンタに限るものではないが、マルチヘッドシリアルプリンタである場合を例にとって説明を行う。
【0017】
図2及び図3は、それぞれプリンタ10の前面および後面斜視図である。物理的な構成として、本実施の形態におけるプリンタ10は、1997年11月17日出願の米国特許出願第08/972,113号の「異なる解像度でのマルチヘッド印刷」に開示されたプリンタに類似したものである。
【0018】
図2及び図3に示すように、プリンタ10は、筐体11、アクセスドア12、自動給紙部14、自動給紙アジャスター16、手差し給紙部17、手差し給紙アジャスター19、排紙口20、排紙トレイ21、トレイ受22、インジケーターライト23、電源ボタン24、再スタートボタン26、電源部27、電源コード29、パラレルポートコネクタ30を有する。
【0019】
筐体11は幅約498mm、奥行き約271mm、高さ約219mmであり、画像を記録媒体に印刷する、後述するプリンタエンジンを含むプリンタ10の内部動作部を内包する。筐体11はアクセスドア12を有し、アクセスドア12はユーザがプリンタ10の内部作業部、特にプリンタ10に取り付けられたプリントカートリッジの交換または置き換えのために、プリントカートリッジにアクセスすることができるように、手動で開閉することができる。
【0020】
アクセスドア12の上部にはインジケーターライト23、電源ボタン24、再スタートボタン26を備えたフロントパネルが備え付けられている。電源ボタン24により、ユーザはプリンタ10の電源をオン/オフすることができる。また、他の追加機能も電源ボタン24を利用することができる。例えば、プリンタ10のスピーカー(不図示)がビープ音などの音を発するまで電源ボタン24を押し続けることにより、テストプリント機能を選択することができる。テストプリント機能が選択されると、プリンタ10はテストパターンを印刷する。
【0021】
再スタートボタン26は、エラーが起こった後にオペレーターが印刷動作を再スタートさせるためのものである。また、再スタートボタン26を他の機能を実行させるために使用することもできる。例えば、プリンタ10のスピーカーがビープ音を発するまで再スタートボタン26を押し続けることにより、プリントヘッドクリーニング機能が実行される。
【0022】
なお、プリンタ10は様々な連続ビープ音を発生することができる。これらビープ音のそれぞれにより、用紙切れ、紙詰まりなどの異なるタイプのエラーを示すことができる。
【0023】
インジケーターライト23は、1つのライトパイプ(光導体)と、緑色の発光ダイオード(以下、「LED」と記す。)と、オレンジ色のLEDとからなる。インジケーターライト23は、プリンタ10の動作状態をユーザに示すものである。具体的には、このインジケーターライト23が消えているときには、プリンタ10の電源が入っていないことを示し、緑色に点灯している(すなわち、緑色のLEDが動作している)ときには、電源が入れられて、印刷の準備ができていることを示す。また、緑色に点滅しているときには、例えば電源投入中であるなど、プリンタの状態を示す。
【0024】
インジケーターライト23がオレンジ色に点灯する場合もあり、その場合、オペレーター呼び出しエラーなど、リカバリー可能なエラーがプリンタ10で起こったことを示す。リカバリー可能なエラーは、用紙切れ、紙詰まり、プリンタ10に取り付けられたカートリッジの欠陥、カートリッジ交換中などを含む。プリンタ10のスピーカーから発せられるビープ音の数により、リカバリー可能なエラーの種類を判断することも可能である。インジケーターのLEDがオレンジ色に点灯し続けたときにビープ音の数を数えることにより、ユーザはどのようなエラーが起きたかを判断し、対処することができる。
【0025】
インジケーターライト23がオレンジ色に点滅している時には、サービス呼び出しエラーなど、重大なエラーがプリンタ10に起きたことを示す。重大エラーの種類は、オレンジ色のライトが何回点滅したかを数えることにより判断することができる。
【0026】
また、図2及び図3に示すように、自動給紙部14もプリンタ10の筐体11に含まれる。自動給紙部14はプリンタ10の媒体供給部のことである。すなわち、自動給紙部14は、プリンタ10が画像を印刷するための記録媒体を保持する。この場合、プリンタ10は様々な種類の記録媒体に画像を印刷することが可能である。記録媒体の種類としては、普通紙、高解像度用紙、透明媒体、光沢紙、光沢フィルム、バックプリントフィルム、布、Tシャツ転写紙、バブルジェット用紙、カード類、パンフレット用紙、バナー(長尺)紙、厚紙等があるが、これらに限られるものではない。
【0027】
自動給紙部14は、約13mm厚の記録媒体スタックを保持することができる。その場合、自動給紙部14は64g/m2密度の紙であれば約130枚、または封筒であれば約15枚を保持することができる。印刷中は、自動給紙部14に重ねられた媒体が1枚ずつプリンタ10に給紙される。特に、プリンタ10のローラー(後述)が、自動給紙部14から記録媒体を1枚ずつ取り出してプリンタ10に給紙する。このようにして1枚ずつ供給された記録媒体は、ローラー間の「J」字型経路を通り、図2に示す排紙口20から排出される。
【0028】
自動給紙部14は自動給紙アジャスター16を有する。自動給紙部14に供給される様々なサイズの記録媒体に合わせて、自動給紙アジャスター16を横方向に動かすことができる。自動給紙部14は、自動給紙部14に供給された記録媒体を支えるために自動給紙部14から延長する支え板31を有する。使用しないときには、支え板31は図2に示すように自動給紙部14のスロット内に格納される。
【0029】
用紙は、図3に示す手差し給紙部17から1枚ずつプリンタ10に供給することも可能である。この手差し給紙部17も、プリンタ10の媒体供給部である。本実施の形態においては、手差し給紙部17は少なくとも64g/m 2から550g/m2の密度と、0.8mm厚を有する媒体に対応することができる。手差し給紙部17から供給される用紙は、プリンタ10内のローラーを介して真っ直ぐに排紙口20へ向かう。また、自動給紙部14と同様に、手差し給紙部17は手差し給紙アジャスター19を有する。手差し給紙アジャスターを横方向にスライドさせることにより、ユーザは手差し給紙部17が対応できる記録媒体のサイズを変更することができる。
【0030】
手差し給紙部17及び自動給紙部14使用することにより、プリンタ10は様々な異なるサイズの記録媒体に画像を印刷することができる。サイズとしては、レターサイズ、リーガルサイズ、A4、A3、A5、B4、B5、タブロイドサイズ、#10封筒、DL封筒、バナーサイズ、ワイドバナーサイズ、LTRフルブリード(full bleed)サイズなどがあるが、これらに限定されるものではない。また、既成サイズ以外の記録媒体をプリンタ10で使用することもできる。
【0031】
上記の通り、媒体は排紙口20からプリンタ10を通り排紙トレイ21に排紙される。排紙トレイ21は、プリンタ10から排紙される媒体を支える、バネにより支えられたフラップを有し、このフラップはより多くの媒体が積み重ねられるに従って、下方向へ動く。使用されないときは、図2に示すように、排紙トレイ21はプリンタ10のトレイ受22内に収納される。
【0032】
電源コード29はプリンタ10を外部AC電源に接続する。電源部27は、外部電源から供給されるAC電力を変換し、変換した電力をプリンタ10に供給するために用いられる。パラレルポート30はプリンタ10をホストプロセッサー2に接続する。パラレルポート30は好ましくはIEEE1284に準拠した両方向ポートであり、後述のセクション3.0で説明するデータ及びコマンドがプリンタ10とホストプロセッサー2との間でやりとりされる。
【0033】
図4及び図5は、それぞれプリンタ10の後面及び前面の切取斜視図である。図4に示すように、プリンタ10は自動給紙部14または手差し給紙部17からプリンタ10を介して排紙口20へ記録媒体を搬送する、上述の自動給紙ローラー32を有する。自動給紙ローラー32は媒体搬送中は、図4の矢印32aが示すように反時計回りに回転する。
【0034】
ラインフィードモータ34は自動給紙ローラー32の回転を制御する。ラインフィードモータ34と自動給紙ローラー32の動作関係を示す図4の構成は、説明のために簡略化して描かれたものである。動作関係については、図5A及び図5Bを参照して詳細に後述する。ラインフィードモータ34は、96ステップの2相パルスモータを含み、回路基板35から受け取った信号コマンドに応じて制御される。ラインフィードモータ34は4段階電流制御のモータドライバにより駆動され、その4段階は、好ましくは、最大電流の0%、40%、70%、100%である。
【0035】
本実施の形態においては、ラインフィードモータ34が最大速度で動作した場合、プリンタ10内で記録媒体を秒速238mmで搬送するように自動給紙ローラー32を回転させることができる。プリンタ10の主要モード動作においては、ラインフィードによる解像度は(1/720)インチ/パルス(2−2相)、1440dpiモードでは、(1/1440)インチ/パルス(1−2相)である。プリントモードについては、詳細に後述する。
【0036】
図5に示すように、プリンタ10はデュアルカートリッジプリンタであって、2つのプリントヘッド(カートリッジ1つにつきヘッド1つ)を使って画像を印刷する。特に、これらのカートリッジはお互いのプリントヘッドが水平方向にオフセットするように、カートリッジホルダ37a及び37bに隣り合わせに保持されることが好ましい。図4に示すキャリッジモータ39は、回路基板35からの信号コマンドに応じて、カートリッジホルダ37a及び37bの動きを制御する。具体的には、キャリッジモータ39はベルト40の動きを制御し、これによりベルト40はキャリッジ41に沿ったカートリッジホルダ37a及び37bの動きを制御する。すなわち、キャリッジモータ39はベルト40を双方向に動かし、これによりカートリッジホルダ37a及び37bも双方向に動かされる。こうすることにより、プリンタ10は左から右、右から左へのどちらの方向にも画像を印刷することができる。
【0037】
キャリッジモータ39は、96ステップの2相パルスモータからなり、(9/360)インチ/パルスのキャリッジ解像度を有する。キャリッジモータ39は、4段階電流制御のモータドライバにより駆動される。プリンタ10が標準のデフォルトモードである360dpiで印刷をしている場合、キャリッジモータ39は、カートリッジホルダ37a及び37bがキャリッジ41に沿って秒速22.5インチで動くように駆動される。秒速22.5インチは、プリントヘッドヒートパルス周波数6.51KHzに対応する。プリンタ10が360dpiドラフトモードで印刷をしている場合、キャリッジモータ39は、カートリッジホルダ37a及び37bがキャリッジ41に沿って秒速27.5インチで動くように駆動される。秒速27.5インチは、プリントヘッドヒートパルス周波数10.0KHzに対応する。これに対して、プリンタ10が720dpiモードで印刷をしている場合、キャリッジモータ39は、カートリッジホルダ37a及び37bがキャリッジ41に沿ってデフォルト速度の秒速13.8インチ(10.0KHz)で動くように駆動される。
【0038】
カートリッジホルダ37a及び37bはプリンタ10において、インクカートリッジ43aおよび43b(それぞれプリントヘッドを有し、インクを保持するための着脱可能な1つ以上のインクタンクを有することができる)を保持するために使用される。代表的なインクカートリッジについては、セクション1.3で図6を参照して後述する。
【0039】
図5において、プリンタ10は予備吐出受42a及び42b、ワイパー44a及び44b、インククリーニング機構45を有することが好ましい。インククリーニング機構45は、ホーム位置46に備え付けられており、回転ポンプ(不図示)と、プリントヘッド接続キャップ47a及び47bとを有する。プリントヘッド接続キャップ47a及び47bは、プリントヘッドのクリーニング中やプリンタ10の電源が切られている時などのその他の時に、カートリッジホルダ37a及び37bに取り付けられたカートリッジのプリントヘッドそれぞれに接続し、プリントヘッドを保護する。
【0040】
ラインフィードモータ34はインククリーニング機構45の回転ポンプを駆動して、プリントヘッド接続キャップ47a及び47bのいずれかに接続したプリントヘッドから余分なインクを吸引する。インクは1回につき1つのカートリッジから吸引することが好ましい。
【0041】
ワイパー44a及び44bは、カートリッジのプリントヘッドから余分なインクを拭き取るために、キャリッジモータ39により駆動されるブレードなどを有する。ワイパー44a及び44bは、所定の状態となった場合には、プリントヘッドに接触するように持ち上げられる。例えば、プリントヘッドにより所定数のドットを印刷した後に、ワイパー44a及び44bは持ち上げられる。
【0042】
図5Aは、自動給紙ローラー32及びインククリーニング機構45の動作のための、ラインフィードモータ34及びキャリッジモータ39の相互動作を示す。図5Aに示すように、ラインフィードモータ34はギヤ160,161,162を介してラインフィードローラー165を駆動する。クラッチ部140はラインフィードローラー165によりギヤ150,151を介して駆動される。クラッチ部140及び制御ロッド141は、ラインフィードモータ34及びキャリッジモータ39と共動して、クラッチ部140が以下に示す複数の位置のいずれかの位置に来るように駆動する。すなわち、(1)通常印刷のための中間位置、(2)自動給紙部の動作のための位置、(3)インククリーニング機構の動作のための位置のいずれかである。
【0043】
図5Aに示すように、キャリッジモータ39はベルト40を駆動してカートリッジホルダ37bをキャリッジ41に沿って直線移動させる。カートリッジホルダ7bがホームポジション46を過ぎてキャリッジ41の右端方向へ動くことで、制御ロッド141の尖形端をクラッチ部140から離すように、カートリッジホルダ37bはクラッチ部140から離れる方向に制御ロッド141を並進させることができる。その後、ラインフィードモータ34は、自動給紙ローラー32またはインククリーニング機構45のいずれかを駆動するために、クラッチ部140が新しい位置で再度かみ合うように所定の方向へ所定量回転する。
【0044】
図5Bは、自動給紙ローラー32の動作またはインククリーニング機構45の動作のために供給された、クラッチ部140と周辺ギヤの詳細図である。クラッチ部140は、制御ロッド141の尖形端と係合する独立した相互排他的な2つのスロット145及び146と、ギヤ150及び151を介してラインフィードローラー165により回転されるギヤ147と、ギヤ147により回転されるギヤ148とを有する。ギヤ148はクラッチ部140の駆動ギヤで、中間位置で自由に回転するか、インククリーニング機構45の清掃ポンプ(不図示)の駆動中であれば入力ギヤ152に係合し、自動給紙ローラー32の駆動中であればギヤ153に係合する。
【0045】
クラッチ部140の中間動作中は、クラッチ部140のスロット145が、制御ロッド141に係合する。この位置では、ギヤ148はギヤ152及び153の両方から外れ、これにより、インククリーニング機構45及び自動給紙ローラー32が動作しないようにする。インククリーニング機構45の動作中は、クラッチ部140のスロット146が制御ロッド141に係合し、これにより、ギヤ148が入力ギヤ152に係合するように偏らせる。入力ギヤ152はこの状態でインククリーニング機構45を動作させてプリントヘッドから余分なインクを除去する。自動給紙ローラー32の動作中は、制御ロッド141はクラッチユニット140の前面板167上に直接位置し、これにより、ギヤ153〜156を介して自動給紙ローラー32を駆動するようにギヤ148がギヤ153に係合するように偏らせる。
【0046】
図5Cは自動給紙ローラー32を駆動させるように、クラッチ140を係合させる場合の詳細なステップを示す。図5Cに示すように、まず、ステップS501ではクラッチ部140を遊離する。これは、キャリッジ容器37bをホームポジション46を通り過ぎるように動かすことにより、制御ロッド141がクラッチ140から遊離される。次のステップS502で、ラインフィードモータ34を順方向に動かし、ギヤ153〜156を介して自動給紙ローラー32を駆動するように、クラッチ部140のギヤ148をギア153に係合させる。ステップS503では、カートリッジホルダ37bをホームポジション46の左側に動かし、制御バネ142が制御ロッド141にクラッチ部140の前面板167の方向に偏向させるようにする。ステップS504では、ラインフィードモータ34は順方向に駆動され、これにより自動給紙ローラー32が回転する。この後、ステップS506においてクラッチ部140の中間スロット145を制御ロッド141に合わせるように、ラインフィードモータ34を反対方向に駆動する。こうすることにより、自動給紙ローラー32をラインフィードモータ34から遊離する。クラッチ部140を中間位置に戻すように、制御ロッド141は中間スロット145に係合するようにバネ142により偏向させられる(ステップS507)。
【0047】
図5Dは、インククリーニング機構45を駆動するようにクラッチ部140を係合させる場合の動作を示す。図5Dに示すように、ステップS551では、クラッチ部140を遊離する。これは、カートリッジ 容器37bをホームポジション46を通過するように動かすことにより、制御ロッド141をクラッチ部140から遊離させる。次のステップS552において、クラッチ部140のスロット146を制御ロッド141の位置に合わせするように、ラインフィードモータ34を逆方向へ回転させる。これにより、インククリーニング機構45を駆動するために、クラッチ140のギヤ148を入力ギヤ152に係合させることができる。ステップS553ではカートリッジホルダ37bをホームポジションの左側まで動かし、制御バネ142が制御ロッド141を偏向させて、クラッチ部140のスロット146に係合する。ステップS554では、ラインフィードモータ34は逆方向に1/4回転して、プリントヘッド接続キャップ47a及び47bがプリントヘッドに係合するように上に上げる。ステップS555では、ラインフィードモータ34を逆方向に半回転し、これによりインククリーニング機構45の回転ポンプがプリントヘッドの余分なインクを除去する。プリントヘッド接続キャップ47a及び47bは、ステップS556でラインフィードモータ34が逆方向に1/4回転することにより下へ下げられる。カートリッジホルダ37bをホームポジション46を通りすぎる用に動かして、クラッチユニット140から制御ロッド141を遊離させることにより、クラッチ部140はステップS557で中間位置に戻される。そして、ラインフィードモータ34は、ステップS558において、クラッチ部140の中間スロット145を制御ロッド141の位置に合わせるように、順方向に回転する。
【0048】
この後、ステップS559においてカートリッジホルダ37bはホームポジション46の左側に動かされ、これにより制御ロッド141がスロット145に係合し、クラッチ部140は中間位置に戻る。
【0049】
<1.2 クリーニング>
プリンタ10は、マニュアルクリーニング機能を有し、フロントパネルを介して実行される。例えば、マニュアルクリーニングは、プリンタ10が2秒間ビープ音を発し続けるまで再スタートボタン26を押し続けることにより、実行させることができる。マニュアルクリーニングの実行に移ったことを示すために、インジケーターライト23が点滅をする。そして印刷処理中の記録媒体は排紙口20から排紙される。インククリーニング機構45は、カートリッジホルダ37a及び37bに保持されたインクカートリッジのプリントヘッドを、例えばインクを吸引したり、拭き取るなどして、クリーニングする。吸引及び拭き取られたインクは、不用インク貯蔵領域に蓄えられる。その後、インジケーターライト23は点滅を止め、エラーが何も起こっていなければ点灯する。不用インクエラーが起こった場合、例えば、不用インク貯蔵領域が容量限界近くになった場合、オレンジ色のLEDが点灯してインジケーターライト23を照らし、プリンタ10はビープ音を6回鳴らす。
【0050】
<1.3 インクカートリッジ>
ここで説明するプリンタは、複数の異なるタイプのインクを保持するために着脱可能なインクタンクを有するインクカートリッジを使用することができる。
【0051】
図6は、カートリッジホルダ37a(図5参照)に取り付けるインクカートリッジ43aの構成を示す。インクカートリッジ43bはインクカートリッジ43aと同様の構成を有する。従って、説明を簡略化するために、ここではインクカートリッジ43aのみについて説明する。
【0052】
図6に示すように、インクカートリッジ43aはプリントヘッド51と、インクタンク52と、カートリッジホール54とを有する。なお、本発明は着脱式インクタンクを含まず、インク全部を内部に蓄えるインクカートリッジに適用することも可能である。
【0053】
インクタンク52は、インクカートリッジ43aから取り外すことができ、プリンタ10が画像を印刷するときに使用するインクを貯蔵する。特に、インクタンク52はカートリッジ43a内に挿入され、図6に示す矢印56の方向に引くことで取り外すことができる。インクタンク52はカラーインク(シアン、マゼンタ、イエロー)及び/または黒インクを貯蔵することができる。これについては詳細に後述する。プリントヘッド51は複数のノズル(不図示)を有し、印刷中は、インクタンク52からインクを吐出する。カートリッジホール54は、インクカートリッジ43aが定位置に保たれるように、カートリッジホルダ37aのピン(不図示)に係合する。
【0054】
一般的には、プリンタ10は様々な異なるタイプのカートリッジを用いて動作することができる。例えば、プリンタ10は染料ベースの黒インクを蓄えるカートリッジを用いることができ、垂直方向にノズルを128本を並べたプリントヘッドを有するカートリッジを使用することができる。このようなカートリッジの一例として、キャノンBC−20カートリッジがある。顔料黒インクを蓄えた、同様のカートリッジを使用してもよい。そのようなカートリッジの一例として、キャノンBC−23カートリッジがある。一般的には、染料ベースの黒インクは、記録媒体に対する浸透性が高く、反対に顔料ベースの黒インクは、記録媒体に対する浸透性が低い(全く浸透しないものもある)。
【0055】
プリンタ10は、カラーインクカートリッジを用いて動作することもできる。例えば、プリンタ10はシアン、マゼンタ、黄色、黒のインクを蓄え、垂直方向にノズル136本を並べたインクカートリッジを用いて動作することができる。そのようなカートリッジでは、ノズル24本でシアンのインクを印刷し、ノズル24本でマゼンタのインクを印刷し、ノズル24本で黄色のインクを印刷し、ノズル64本で黒のインクを印刷する。このようなカートリッジの一例として、キャノンBC−21(e)カートリッジがある。
【0056】
プリンタ10に用いることのできるインクカートリッジの別の例としては、光学的濃度の低い(例えば「フォト」)インクを蓄え、垂直方向にノズルを136本並べたものがある。このようなカートリッジも上述のカラーカートリッジと同様のノズル構成をしている。このようなカートリッジの一例としては、キャノンBC−22カートリッジがある。
【0057】
<1.4 プリントヘッド構成>
次に本実施の形態において使用されるカートリッジのプリントヘッドの物理的構成について説明する。図7は、プリンタ10が、ノズル128本をほぼ垂直に並べたプリントヘッド61を含む場合のノズル構成の拡大正面図である。それぞれのノズルと、隣のノズルとの間隔は狭い。このような構成は単色(例えば黒)印刷に適している。プリントヘッドが記録媒体を横切って進むに従って、すべてのノズルを1度にではなく、素早く連続的にノズルからインクを吐出することで垂直線を印刷することがことができるように、ノズルをわずかに傾斜して並べるのが好ましい。素早く、連続的にノズルからインクを吐出するために必要なパワーと制御の要件は、一度にインクを吐出する場合に比べてかなり削減することができる。傾斜を付ける場合の好ましい並べ方の一例としては、解像度360dpiで、垂直16ノズル毎に、水平方向に1画素分シフトするように傾けたものがある。
【0058】
プリントヘッド62は136のノズルを有し、そのうち24のノズルは好ましくは黄色インク用、24のノズルは好ましくはマゼンタインク用、24のノズルは好ましくはシアンインク用、そして64のノズルは好ましくは黒インク用であり、わずかな傾斜をもって縦方向に重なるように並べられている。それぞれ色のノズルグループは、他の色のノズルグループから垂直方向に8ノズル分、離れている。また上記と同様に、解像度360dpiで、垂直方向16ノズル毎に水平方向に1画素分シフトするようにわずかに傾斜している。
【0059】
<1.5 プリントモード>
プリンタ10は、ホストプロセッサー2(図1参照)からプリンタ10に対して発行されるコマンドを用いて設定される異なるモードで処理を行うことができる。これらのモードでは、プリンタ10に取り付けられたカートリッジは異なるサイズのインク滴を吐出し、異なる解像度の画像を形成することができる。プリンタ10が対応可能なモードは、プリンタ10に取り付けられたカートリッジのタイプに一部依存する。すなわち、あるタイプのプリントヘッドは、大きいインク滴や小さいインク滴など、異なる大きさのインク滴を吐出することができるが、別のタイプのカートリッジのプリントヘッドで1種類の大きさのインク滴しか吐出できないものもある。
【0060】
上述の通り、異なる動作モードにより異なる解像度の画像を形成するために、異なるサイズのインク滴を利用する。すなわち、インクジェットプリンタは、ページ上にドットを形成することで画像を作るため、形成された画像の解像度は、形成されるドット数と、これらの形成されたドットの並び具合とに一部依存する。本実施の形態のプリンタでは、上述のように、大きいインク滴または小さいインク滴のいずれかを用いて、様々な異なる解像度で画像を形成することができる。
【0061】
なお、印刷中のドット配置と並び方には、印刷に用いる紙のタイプにより幾分制限がある。具体的には、通常紙であれば360dpi画素当たり小さいインク滴を最大で4滴吸収することができ、高解像度紙(以下、「HR−101」と呼ぶ。)であれば360dpi画素当たり小さいインク滴を最大で6滴吸収することができる。
【0062】
<2.0 電気的構成>
セクション1.0で説明したように、プリンタ10は複数のプリントヘッドを、黒−黒、黒−カラー、カラー−カラー、カラー−フォトなど、異なる組み合わせで使用することができ、異なる解像度(例えば、180dpi、360dpi、720dpi)でいろいろなプリントモードを実行することができる。また、プリントヘッドの組み合わせは、テキストモード、テキスト及びカラーモード、カラー及び高画質カラーモードなど、異なるプリントモードに応じて変更することができる。この結果、異なるモードでのプリントタスクは、プリントヘッドの組み合わせ、記録媒体、及び印刷の質に基づいて変化する、複雑な処理を必要とする。図1に示す情報処理システムでは、プリントヘッドの構成や、プリントヘッドの位置の合わせ具合等に関係するプリンタパラメータがプリンタ10に格納されており、プリンタ10により得られるデータに基づいてホストプロセッサー2に送られる。好ましくは、ホストプロセッサー2のプリンタドライバは、異なるプリントモードに応じて複雑なプリントデータの処理とプリンタの設定を行い、プリンタには指示されたコマンド列を送ることにより、印刷の実行を簡素化することができる。
【0063】
<2.1 システムの構造>
図8はホストプロセッサー2及びプリンタ10の内部構成を示すブロック図である。図8に示すように、ホストプロセッサー2はコンピューターバス71にインタフェースしたプログラム可能なマイクロプロセッサーなどの中央処理装置70を含む。また、コンピューターバス71には、ディスプレイ4にインタフェースするためのディスプレイインタフェース72と、プリンタ10に双方向通信線76を介してインタフェースするためのプリンタインタフェース74と、フロッピーディスク77にインタフェースするためのフロッピーディスクインタフェース9と、キーボード5にインタフェースするためのキーボードインタフェース79と、ポインティングデバイス6にインタフェースするためのポインティングデバイスインタフェース80とが接続されている。ディスク8はオペレーティングシステム81を格納するためのオペレーティングシステム領域と、アプリケーション82を格納するためのアプリケーションシステム領域と、プリンタドライバ84を格納するためのプリンタドライバ領域とを含む。
【0064】
ランダムアクセスメインメモリ(RAM)86は、コンピューターバス71にインタフェースし、これによりCPU70はメモリー保持内容にアクセスする。例えば、ディスク8のアプリケーション領域82に保持されたアプリケーションプログラムに関連する命令列などの、アプリケーションプログラム命令列を実行する場合、CPU70はこれらのアプリケーション命令列をディスク8(またはネットワークやフロッピーディスクインタフェース9等を介してアクセス可能な他の媒体)からRAM86にダウンロードし、RAM86に格納した命令列を実行する。RAM86は、本実施の形態によれば、以下に詳しく説明するようにプリンタドライバ84により使用されるプリントデータバッファを提供する。なお、ウィンドウオペレーティングシステム環境下で可能な標準ディスクスワップ技術では、上述のプリントデータバッファを含むメモリーのセグメントをディスク8へ及びそこからスワップすることができる。ホストプロセッサー2の読み出し専用メモリ(ROM)87は、スタートアップ命令列や、キーボード5操作のための基本入出力オペレーティングシステム(BIOS)列などの不変命令列を保持する。
【0065】
図8に示し、また、上述したように、ディスク8はウィンドウオペレーティングシステムのプログラム命令列や、グラフィックアプリケーションプログラム、描画アプリケーションプログラム、デスクトップパブリッシングアプリケーションプログラムなどの様々なアプリケーションプログラムのためのプログラム命令列を保持する。また、ディスク8は、指示されたアプリケーションプログラムの制御により、ディスプレイ4に表示したりプリンタ10により印刷するカラー画像ファイルを保持する。ディスク8は、マルチレベルRGBカラー主要値をディスプレイインタフェース72に供給するやり方を制御するカラーモニタドライバを他のドライバ領域89に保持する。プリンタドライバ84は白黒及びカラー印刷両方のためにプリンタ10を制御し、プリンタ10の構成に基づいて出力するプリントデータを供給する。プリントデータはプリンタ10に送られ、また、制御信号はプリンタドライバ84の制御の下、通信線76に接続されたプリンタインタフェース74を介して、ホストプロセッサー2とプリンタ10間でやりとりされる。他のデバイスドライバも、ホストプロセッサー2に接続されたネットワークデバイスやファクシミリ装置等の様々なデバイスに適切な信号を供給するために、ディスク8に保持されている。
【0066】
普通は、ディスク8に保持されたアプリケーションプログラム及びドライバは、これらのプログラムやドライバを元々保持している他のコンピューター可読媒体からディスク8にユーザによりまずインストールしなければならない。通例、プリンタドライバを保持するフロッピーディスクや、CD−ROM等の他のコンピューター可読媒体をユーザが購入し、そのプリンタドライバを公知の技術でディスク8にインストールすることで、プリンタドライバがディスク8上にコピーされる。また、ファイルサーバーやコンピューター掲示板からダウンロードすると言ったように、ユーザが不図示のモデムインタフェースやネットワークを介してプリンタドライバをダウンロードすることも可能である。
【0067】
また、図8に示すように、プリンタ10は、バス97に接続された、プログラム可能なタイマや割り込み制御部を有する8ビットまたは16ビットのマイクロプロセッサー等のCPU91と、ROM92と、制御ロジック94と、I/Oポート部96とを搭載した回路基板35を含む。また、制御ロジック94には、RAM99が接続されている。制御ロジック94は、ラインフィードモータ34、RAM99のプリント画像バッファ記憶領域、ヒートパルスの生成、及びヘッドデータのためのコントローラーを含む。また、制御ロジック94は、プリントエンジン101のプリントヘッド100a及び100bのノズル、キャリッジモータ39、ラインフィードモータ34へは制御信号を、プリントヘッド100a及び100bにはプリントデータを供給し、プリントエンジン101からI/Oポート部96を介してプリントヘッド100a及び100bの位置合わせのための情報を受け取る。EEPROM102はI/Oポート部96に接続しており、プリントヘッド構成やプリントヘッド位置合わせパラメータなどのプリンタ情報のための不揮発メモリとなる。EEPROM102はプリンタ、ドライバ、プリントヘッド、プリントヘッドの位置合わせ、カートリッジ内のインクの状態などを特定するパラメータも保持し、これらのパラメータはプリンタ10の動作パラメータをホストプロセッサー2に通知するために、ホストプロセッサー2のプリンタドライバ84に送られる。
【0068】
I/Oポート部96はプリントエンジン101に接続されており、プリントエンジンでは、プリントヘッド対100a及び100b(それぞれカートリッジホルダ37a,37bに保持されていてもよい)がRAM99内のプリントバッファからのプリントデータを用いて印刷をしながら、記録媒体を走査することで記録を行う。制御信号を交換し、プリントデータ及びプリントデータアドレスを受信するために、制御ロジック94も通信線76を介してホストプロセッサー2のプリンタインタフェース74に接続されている。ROM92は、フォントデータ、プリンタ10を制御するために用いられるプログラム命令列、及びプリンタの動作のための不変データを格納する。RAM99は、プリントヘッド100a及び100bのためにプリンタドライバ84により定義されるプリントバッファにプリントデータを格納し、またプリンタの動作のための他の情報も格納する。
【0069】
プリントエンジン101のプリントヘッド100a及び100bはインクカートリッジに対応しており、それぞれカートリッジホルダ37a及び37bに保持されている。103として参照されるセンサーはプリントエンジン101内に配置構成されており、プリンタ状態を検知したり、温度や印刷に影響を与える他の数量を測定したりする。特に、回路基板35上に搭載された温度センサー103aは、周辺環境温度を測定する。摂氏で±3度内の誤差で温度を測定する低精度のサーミスタが温度センサー103aに適している。カートリッジホルダ37a及び/または37b内の光センサー(例えば、自動位置合わせセンサー)は、自動位置合わせのために印刷濃度とドット位置とを計測する。センサー103はまた、アクセスドア12の開閉状態や記録媒体の有無等の他の状態を検知するために、プリントエンジン101内に配置されている。更に、プリントヘッドの温度を計測するために、サーミスタを含むダイオードセンサーがプリントヘッド100a及び100bに設置されており、計測した温度はI/Oポート部96に送られる。
【0070】
I/Oポート部96は、電源ボタン24及び再スタートボタン26などのスイッチ104からの入力を受け取り、インジケーターライト23を点灯するために制御信号をLED105に送ったり、また、ブザー106、ラインフィードモータ34やキャリッジモータ39にそれぞれラインフィードモータドライバ34a及びキャリッジモータドライバ39aを介して制御信号を送信したりする。上述の通り、ブザー106はスピーカーであってもよい。
【0071】
図8では、プリンタ10の個々の構成要素は分離され、お互いに区別されて示されているが、これらの構成要素のいくつかを1つに組み合わせることが好ましい。例えば、制御ロジック94をASICのI/Oポート96と組み合わせることで、プリンタ10の機能の相互接続を簡素化することができる。
【0072】
<2.2 システムの機能>
図9は、ホストプロセッサー2とプリンタ10間の相互作用を示すハイレベルレベル機能ブロック図である。図9に示すように、プリント命令がディスク8のアプリケーション領域82に保持された画像処理アプリケーションプログラム82aから指示されると、オペレーティングシステム81はプリンタドライバ84を呼び出すグラフィックデバイスインタフェースを指示する。プリンタドライバ84はこれに応じてプリント命令に対応したプリントデータを生成し、このプリントデータをプリントデータ保持部107に保持する。プリントデータ保持部107は、RAM86やディスク8内にあってもよく、また、オペレーティングシステム81のディスクスワッピング操作を通して、プリントデータ保持部をRAM86に当初保持し、ディスク8へ及びそこからスワップするようにしてもよい。次に、プリンタドライバ84はプリントデータ保持部107からプリントデータを取得し、そのプリントデータをプリンタインタフェース74を介して双方向通信線76へ、更にプリンタ制御部110を介してプリントバッファ109へ送信する。プリントバッファ109はRAM99内にあり、プリンタ制御部110は、図8に示す制御ロジック94と、CPU91により実現されるファームウエア内にある。プリンタ制御部110はホストプロセッサー2から受信したコマンドに対応して、プリントバッファ109内のプリントデータを処理し、また、記録媒体上に画像を記録するために、プリントエンジン101へ適切なプリントデータ及びその他の制御信号を提供するために、ROM92(図8参照)に保持された命令に基づいてプリントタスクを行う。
【0073】
プリントバッファ109は、プリントヘッド100a及び100bのいずれか一方により印刷を行うためのプリントデータを保持する第1領域と、プリントヘッド100a及び100bの他方により印刷を行うためのプリントデータを保持する第2領域とを有する。それぞれのプリントバッファ領域は、関連づけられたプリントヘッドの印刷位置の数に対応した格納領域を有する。これらの格納領域は、印刷用に選択された解像度に応じて、プリンタドライバ84により定義される。また、それぞれのプリントバッファ領域は、プリントヘッド100a及び100bを印刷速度になるまで加速する間に、プリントデータを転送するための格納領域を更に含む。プリントデータはホストプロセッサー2のプリントデータ保持部107から、プリンタドライバ84によりアドレス制御されるプリントバッファ109の格納領域に転送される。その結果、次のスキャンのためのプリントデータは、ヘッドの加速中及び現在のスキャン印刷中の両方の間に、プリントバッファ109の空き領域領域に挿入される。
【0074】
<2.3 制御ロジック>
図10は図8に示す制御ロジック94及びI/Oポート部96のブロック図である。上述の通り、I/Oポート部96を制御ロジック94に含んでもよい。図10において、内部バス112はプリンタCPU91と通信を行うためにプリンタバス97に接続している。バス112は、例えばIEEE1284プロトコルに基づく通信などの双方向通信を実行するために、双方向通信線76に接続されているホストコンピューターインタフェース113と接続されている。これにより、双方向通信線76もまた、ホストプロセッサー2のプリンタインタフェース74と接続することになる。ホストコンピューターインタフェース113は、バス112と、プリントバッファ109(図8及び図9を参照)を含むRAM99を制御するためのDRAMバスアービター/コントローラー115とに接続している。データデコンプレッサ116は、バス112とDRAMバスアービター/コントローラー115との間に接続され、処理中にプリントデータを伸長する。また、バス112には、図8に示すラインフィードモータドライバ34aに接続するラインフィードモータコントローラー117と、シリアル制御信号及びヘッドデータ信号をプリントヘッド100a及び100bのそれぞれに供給する画像バッファコントローラー118と、プリントヘッド100a及び00bのそれぞれにブロック制御信号とアナログヒートパルスを供給するヒートパルス生成部119とがつながれている。キャリッジモータの制御は、ラインフィードモータ34とキャリッジモータ39が同時に動作できるように、I/Oポート部96とキャリッジモータドライバ39aとを介してCPU91により行われる。
【0075】
制御ロジック94は、CPU91で使用するためにホストプロセッサー2からコマンドを受信し、ホストコンピューターインタフェース113及び双方向通信線76を介して、プリンタ状態及びその他の応答信号をホストプロセッサー2に送信するように動作する。プリントデータ及びホストプロセッサー2から受信したプリントデータのプリントバッファメモリアドレスは、DRAMバスアービター/コントローラー115を介してRAM99内のプリントバッファ109に送られ、プリントバッファ109からのアドレスされたプリントデータはコントローラー115を介して、プリントヘッド100a及び100bによる印刷を行うためにプリントエンジン101に送られる。なお、ヒートパルス生成部119は、プリントデータを印刷するために必要なアナログヒートパルスを生成する。
【0076】
図11は、プリンタ10のメモリー構成を示す。図11に示すように、EEPROM102,RAM99,ROM92及び制御ロジック94のための一時格納部121が、単一のアドレス配置によりメモリ構成を形成している。図11で不揮発性メモリ領域123として示されているEEPROM102はホストプロセッサー2により使用されたり、プリンタ、プリントヘッド、プリントヘッド状態、プリントヘッドのアライメント、及び他のプリントヘッドの特性値を特定するパラメータの組を保持する。EEPROM102は、他にも、クリーニングを行う時間、自動位置合わせセンサーのデータなど、プリンタ10で使用されるパラメータの組も保持する。図11でメモリ領域124として示されているROM92は、プリンタタスクのプログラム列や、ノズルヒートパルスの生成を制御するために利用されるプリントヘッド動作温度テーブル等、プリンタ動作のための不変情報を保持する。ランダムアクセスメモリ領域121は制御ロジック94のための一時的な動作情報を保持し、RAM99に対応するメモリ領域126はプリンタタスクのための可変動作データの格納領域と、プリントバッファ109とを含む。
【0077】
<2.4 一般的動作>
図12は、図8のブロック図に示す情報処理システムの一般的な動作を示すフローチャートである。ステップS1201においてプリンタ10の電源が投入されると、ステップS1202においてプリンタ10は初期化される。セクション3.2で詳述するが、初期化中は、CPU91、制御ロジック94及びシステムタイマが初期状態に設定される。更に、プリンタ10のROM92、RAM99及びEEPROM102がチェックされ、CPU91の割り込みリクエストレベルが、プリンタ10への電力供給時に決められる。プリンタ10がオン状態にセットされると、EEPROM102はプリンタドライバ84により読み出され、プリンタのリセットや、システムタイマに基づくプリントヘッドのクリーニングが必要であるか否かの判断といった制御タスクがプリンタCPU91により開始される。また、ステップS1202での初期化処理では、データ圧縮モードを選択し、プリントヘッド100a及び100bへのヒートパルス及びバッファ制御を定義し、プリントバッファ109をクリアし、更にプリンタ10の状態を示すメッセージを表示する。
【0078】
次にステップS1203において、プリントヘッドの構成が変わったと判断されると、プリンタドライバ84は、ヘッドの構成及び並び方に関するプリンタの計測値に基づいてプリンタCPU91により得られるデータから、プリンタパラメータを算出する。位置合わせシステムに関しては、1997年7月28日に出願された米国特許出願第08/901,560号の「印刷装置のための自動位置合わせ装置」に詳しく説明されている。
【0079】
ステップS1203終了後はステップS1204に進み、プリンタ10がオンライン状態であるかどうかを判断する。一旦プリンタ10がオンライン状態であると判断されると、ステップS1205に進み、算出したプリンタパラメータをプリンタEEPROM102に登録する。
【0080】
特に、プリンタ10がオンライン状態であると判断された場合、EEPROM102に格納されたプリンタパラメータは、ステップS1205でプリンタドライバ84により登録される。パラメータはプリンタとプリントヘッドの駆動の制御のために使用される。ステップS1205では、プリンタドライバ84がプリンタ駆動のための適切なコマンドを生成できるように、パラメータはCPU91によってホストプロセッサー2に格納するために送信される。そのようなコマンドは図12の点線枠内のステップで示されており、現在のプリンタ10の確認、プリントヘッドの構成、プリントヘッドのアライメント、及びカートリッジのインクの状態を含む。
【0081】
ステップS1205でプリンタパラメータ情報の登録が終了すると、プリントヘッドカートリッジ43a、43b(図5参照)のそれぞれの状態をステップS1206で確認する。これは、アクセスドア12が開閉されたかを確認し、1つ以上のインクカートリッジまたはインクタンクが交換されたかを検出する。もし、カートリッジまたはインクタンクが交換されている場合には、対応するプリントヘッドのクリーニング処理を行い、プリントヘッドのノズルをクリーニングする。
【0082】
ステップS1206でカートリッジの交換処理が終了すると、ステップS1207に進み、プリントヘッドヒーター制御、自動給紙(ASF)制御、ヘッドクリーニング制御などの処理のために、プリンタ10から割り込みがリクエストされたか否かを判断する。割り込みリクエストが入力されると、リクエストされたプリンタ動作をステップS1208で行う。その後、処理はステップS1206に戻る。
【0083】
ステップS1207でプリンタからの割り込みリクエストが無かった場合、ステップS1209に進み、プリンタドライバ84がコマンド列をリクエストしたかどうかを判断する。図8に示すシステムにおいて、プリンタ10のタスクは、プリンタ10からのパラメータ及び状態情報に基づいて生成されたプリンタドライバ84からのコマンドにより制御される。
【0084】
ユーザインタフェースシーケンスが選択されるとステップS1213に移り、ユーザインタフェース処理が行われる。ユーザインタフェース画面においてキーボードやポインター入力による選択が終了すると、制御はステップS1206に戻り、プリントコマンドシーケンスを行うステップS1210に進む。
【0085】
ステップS1209でプリントシーケンスが選択されると、ステップS1210に進み、プリンタドライバ84はプリントヘッド構成、プリントヘッドのアライメント、媒体のタイプ及び大きさ、及びプリンタドライバ84が保持する目的の画像情報に基づいて、コマンド列を生成する。これらのコマンドはプリンタ10のプリンタ制御部110(図9参照)へ送られる。プリンタ10では、プリンタ制御部110がプリンタROM92からコマンド及びファームウエアを受け取り、プリントエンジン101によるコマンドタスクを実行させる。
【0086】
プリントコマンド列は、プリンタドライバ84から、それぞれのプリントジョブのために定義されたプリントバッファ109へのプリントデータ転送を含む。プリントデータ転送はプリンタ10の受信バッファを用いずに行われる。次のスキャンのためのプリントデータは、現行スキャンにおけるプリントヘッドの加速中に、プリントバッファ109中の現行スキャンの空き記憶領域に送られる。
【0087】
ステップS1210のコマンド列は、プリントヘッド100a及び100bの印刷解像度を設定するコマンドを含む。これらのコマンドは、プリントバッファ中に保持されたプリントヘッドのためのデジタルデータとプリントデータをプリントバッファから読み出す順番とに基づいて、インク滴の大きさを制御することにより設定することができる。好ましくは、プリントヘッドの解像度は個別に制御できるようにすることが好ましい。プリントバッファに保持されたデジタルデータに基づいてインク滴を吐出するインクジェットタイプのプリントヘッドでは、インク滴の大きさを制御し、プリントバッファからの読み出し順を制御することにより、解像度を制御することができるが、インク滴の大きさ及び読み出し順は、プリントヘッド個別に制御されることが好ましい。
【0088】
また、ステップS1210のプリントコマンド列においては、プリンタドライバ84は隣接する画素のマルチレベル画像分析データに基づいて、注目画素を印刷する際に用いられるインクのタイプを選択する。例えば、画像中、カラー画素に取り囲まれた黒注目画素を印刷するためには染料をベースとしたインクを選択し、黒画素に取り囲まれた黒注目画素を印刷するためには顔料ベースのインクを選択する。
【0089】
1ページ分の印刷が終了すると、図12のステップS1211へ進み、用紙排出コマンドに応じてプリンタ10から印刷されたページが出力される。
【0090】
図13は、印刷及びプリンタ10の駆動のために、プリンタドライバ84により生成されたコマンド列を示す図である。図13に示すコマンド列は、プリンタ10の動作を説明するための一般的な概要を示すために簡略化してある。本実施の形態の自動給紙制御等を含むより詳しいコマンド列の説明は、後述のセクション4.0で図20を参照して詳述する。
【0091】
図13のプリントコマンド列はステップS1301において、プリンタ動作をリセットするためにプリンタ制御部110に送信されるプリンタ初期化コマンドにより開始される。そして、給紙コマンドがプリンタ制御部110に入力すると(ステップS1302)、ステップS1303での給紙動作を選択し、ステップS1304で給紙を開始する。ステップS1305でプリンタ制御部110により給紙の終了が検知されると、給紙終了を示す信号がプリンタドライバ84に送られ、プリントヘッド100a及び100bの最初のスキャンのためのプリントデータが準備される。プリンタ制御部110にこのスキャン準備が報告される。プリンタドライバ84におけるプリントデータの準備については、1997年7月28日に出願されている米国特許出願第08/901,719号の「カラープリンタのためのプリントドライバ」に詳しく説明されている。ステップS1307において、スキャンのためのプリントデータが判断されない場合には、ステップS1308でプリンタドライバ84は仮想スキップを実行する。ステップS1309でページの終了が検知されない場合は制御はステップS1307に戻り、ページ終了が検出されるまでステップS1310〜S1314及びS1308が実施される。
【0092】
ステップS1310では、正しいプリントデータを印刷するように、実際のスキップコマンドがプリンタドライバ84からプリンタ制御部110に供給される。プリンタ制御部110は実際のスキップ動作を選択し(ステップS1303)、実際のスキップを実行する(ステップS1315)。そしてプリンタドライバ84においてスキャン設定が行われ(ステップS1311)、プリンタ制御部110に通知する。次に、プリンタドライバ84で生成されたプリントデータと、プリントデータのためのプリントバッファアドレスとがプリンタ制御部110に送られて、プリントバッファ109に格納される(ステップS1312)。そして次のスキャンがプリンタドライバ84内で準備され、プリンタ制御部110に通知する(ステップS1313)。次に、プリンタドライバ84で生成されたプリントコマンドがプリンタ制御部110に送られる。これに応じて、プリンタ制御部110はステップS1319のプリント動作を選択し、ステップS1314でプリントタスクを実行する。この後、印刷中のページの行を見失わないように、ステップS1308でプリンタドライバ84により仮想スキップが実行される。ステップS1309で1ページ分のスキャンが終了したと判断されると、ページ排紙命令がプリンタドライバ84からプリンタ制御部110へ送られる。これにより、ページ排紙処理を選択し(ステップS1316)、ページ排紙が開始される(ステップS1317)。ページ排紙が終了すると(ステップS1318)、プリンタドライバ84には排紙完了が報告されて、処理は図12のステップS1209へ移る。
【0093】
ホストプロセッサー2からプリンタ10へ送られる2つのカラープリントヘッドを用いてカラーモードで1ページ分の印刷を行うためのコマンド列の例を、図14の表Aに示す。表Aに示すように、まず、[UCT]コマンドを用いて現在時刻が設定され、[RESET]コマンドにより、プリンタ10がリセットされる。また、[COMPRESS]コマンドにより、プリントデータの詰め込み処理を行うためのデータ圧縮が選択される。印刷可能領域の下部余白のサイズは[BTM_MARGIN]コマンドにより選択される。プリントヘッド100a及び100bのプリントバッファは[DEFINE_BUF]コマンドにより定義される。プリントカラーテーブルは、[DEFINE_COLOR]コマンドにより定義される。また、ヒートパルス及びバッファ制御テーブルは、プリントヘッド構成のカラーモード用に[DEFINE_PULSE]コマンド及び[DEFINE_CONTOL]コマンドにより定義される。
【0094】
上記初期設定コマンドによりプリンタタスクが実行された後、ページまたは他の印刷媒体を供給するための給紙コマンド[LOAD]及び、最初のプリントヘッドスキャンの印刷位置へスキップするためのラスタースキップコマンド[SKIP]がプリンタ10に送られ、プリントヘッド100a及び100bによる印刷のために印刷方向[DIRECTION]及び端部[EDGE]が最初のスキャンのために設定される。そして、コマンドのループがページの複数行を印刷するために、プリンタタスクを制御するために送られる。各行のためのループの最初の部分では、その行のためのスキャンパラメータ([SPEED],[SIZE],[SELECT−PULSE],[SELECT−CONTROL])が設定される。バッファ制御テーブル選択コマンド[SELECT_CONTROL]のプリンタタスクの完了を受けて、[BLOCK]コマンドによりプリントデータブロックが選択され、またプリントヘッド100a及び100bのために決められた印刷領域に応じて、色選択コマンド[COLOR]及びデータ送信コマンド[DATA]が繰り返されることで、印刷する色が選択されて送信される。
【0095】
そして、次のスキャンの方向及び次のスキャンのための印刷領域の左右両端位置が[DIRECTION]及び[EDGE]コマンドにより設定される。次のスキャンのための逆方向スキャンのマージンは[SCAN_MARGIN]コマンドにより設定される。現スキャンの自動トリガ遅延は、[AT_DELAT]により設定される。このとき、最初のスキャンのための印刷を実行するために、[PRINT]コマンドがホストプロセッサー2からプリンタ10へ送信され、次のスキャンのための印刷位置にスキップするために、[SKIP]コマンドが送られる。最終行が印刷されると、排紙コマンド[EJECT]がプリンタ10に与えられて、排紙が実行される。
【0096】
本実施の形態の設定スキャン処理のためのコマンド列及び印刷動作例から分かるように、スキャン設定や印刷などのプリンタ動作のそれぞれは、プリントヘッドの構成及びプリントモードを考慮した上で、プリンタドライバ84により制御される。これによりプリンタ10により実行されるこれらのタスクは、プリンタドライバ84によってプリンタの構造が実質的により低コストとなるように、詳細に定義される。
【0097】
図12において、ステップS1209でプリンタ状態リクエストであると判断されると、ステップS1212に進み、プリンタ状態コマンド列を実行する。プリンタ状態の情報をリクエストする状態コマンドは、セクション3.6で詳細に説明する。一般には、各状態コマンドは、プリンタ動作についての情報またはプリンタ10に保持された情報をリクエストするために、ホストプロセッサー2からプリンタ10へ送られる。例えば、基本状態コマンド[BASE−STATUS]は、プリンタの現在の状態をリクエストする。これに応じてプリンタ10は以下に示す情報の内の一つを示す1バイトのデータを返す。これらの情報は、印刷状態、プリントバッファ109がデータを受信できるか否か、プリンタ10が開始動作中でビジーであるか、カートリッジ交換、プリントヘッドのクリーニング、テストプリント等、またエラーまたは警告が検出されたか否かを含む。[HEAD]コマンドは、プリントヘッドの構成をリクエストし、[DATA_SEND]コマンドは、EEPROMデータをホストプロセッサー2に返すようにリクエストをする。ステップS1212でリクエストされたデータを返し終えると、処理はステップS1206に戻る。
【0098】
<3.0 プリンタソフトウエアの構造>
プリンタ10の機能全体の制御は、CPU91で実行されるそれぞれのプログラムによる影響を受ける。独立プログラムには、電源投入時に実行されるルーチン等の初期化ルーチン、ホストプロセッサー2から受信した割り込みコマンドに対応するタスク、リアルタイムハードウエア割り込みの処理をするハンドラなどの割り込みハンドラ、及びホストプロセッサー2との双方向通信に関わる制御のためのハンドラなどの周期処理を取り扱う周期ハンドラが含まれる。
【0099】
プリンタCPU91は、更に独立プログラム(すなわち、初期化ルーチン、タスク、割り込みハンドラ、及び周期ハンドラ)それぞれの実行の調和をとるためのオペレーティングシステムも実行する。オペレーティングシステムは、メッセージのやりとりなどを通じたプログラム間通信や、適切なタイミングで一つのプログラムから別のプログラムに動作を切り替えるプログラム間切り替えを統括する役目をする。以下に、オペレーティングシステムの詳細を説明する。
【0100】
<3.1 オペレーティングシステム>
オペレーティングシステムは、プリンタ制御プログラムをモジュール化したり、メインテナンス、継承、及び拡張を促進するために作出されたリアルタイムオペレーティングシステム(つまり、「カーネル"kernel"」または「モニタ"monitor"」)である。このリアルタイムオペレーティングシステムは、プリエンプティブマルチタスクソフトウエア環境を提供するシステムソフトウエアであって、現在実行中のプログラムを、より優先度の高い別のプログラムへの切り替えに応じて、一時停止することができる。
【0101】
オペレーティングシステムは、それぞれのタイプに応じてオペレーティングシステムによって実行される、4つの異なるタイプのプログラムを動作させることができる。それらは、初期化ルーチン、タスク、割り込みハンドラ及び周期ハンドラである。初期化ルーチンは、プリンタ10のリセット後、オペレーティングシステムの初期化を行う前にすぐに行うようにオペレーティングシステムによりスケジュールされたルーチンである。タスクは、順次実行される連続処理の通常のプログラム(「実行部」と呼ばれることもある。)である。従って、タスクは、マルチプログラミングまたはマルチ処理環境においてCPU91により実行される仕事の単位として、オペレーティングシステムにより処理される、1以上のインストラクション列である。オペレーティングシステムがそれぞれのタスクユニット毎に処理を行うようにスケジュールすることで、あたかも同時処理が行われているように感じるのである。
【0102】
割り込みハンドラは、ハードウエア割り込みの受信に応じて、オペレーティングシステムにより即座に起動される(通常は短い)プログラムユニットである。周期ハンドラは割り込みハンドラと同様であるが、ハードウエア割り込みにより起動されるのではなく、オペレーティングシステムのタイマ割り込みにより起動される。
【0103】
プリンタ10がリセットされた時に、CPU91によりまず最初に実行されるソフトウエアは、オペレーティングシステムである。CPUレジスターは予め決められた要求に従って設定され、ユーザ設定の初期化ルーチンが存在する場合には、後からそれを実行する。そして、制御はオペレーティングシステムに戻り、システム内のそれぞれのタスクを起動する。そのようなタスクの一つとして、スタートタスクがある。スタートタスクが開始されると、システムコールが発行されたり、割り込みが発生する度に、オペレーティングシステムは起動される。システムコールの実行、又は割り込みの処理を終えると、実行はオペレーティングシステムに戻り、優先度の高い実行可能なタスクを実行するように、タスクのスケジュールを組む。
【0104】
タスクのスケジューリングでは、現在複数の実行可能なタスクがある場合、どのタスクを実行するかの判断を行う。タスクは、割り当てられた優先度に応じてスケジュールされ、より高い優先度のタスクを他の優先度の低いタスクに先立って実行する。実行可能であっても優先度が低いために現在実行されていないタスクは、優先度に応じて準備キューに並べられる。
【0105】
タスクが新たに実行可能になる度に、そのタスクは準備キューの最後に並べられる。タスクが発行したシステムコールの処理から戻った時、または割り込み処理からタスクへ戻った時にスケジューリングが実行されるが、どちらの場合も新たなタスクをキューに追加したり、キューにすでに存在するタスクの優先順位を変えるようにすることができる。タスクキュー内のタスクのスケジューリングの順序は、それぞれのタスクの優先度に基づいており、最も優先度の高いタスクを現在実行可能なランタスクにする。準備キューに同じ優先度のタスクが2つ以上ある場合、どのタスクを選択するかといった判断は、キューに登録された順番に応じてなされる。
【0106】
オペレーティングシステムは、タスク間の通信と、タスク間の制御または同期合わせを行うための基本的な手段の一つとして、セマフォを用いる。タスク間で、メッセージを用いて通信を行ったり、データを送信したりすることもできる。メッセージはあるタスクからメールボックスに送られ、そのメッセージを受信する必要のあるタスクは、そのメッセージを得るために、メールボックスに対して受信リクエストを発行する。
【0107】
オペレーティングシステムは、更に、タスク間の同期合わせを行うためにイベントフラグを用いる。あるイベントに基づいてタスクを待機状態から解放する場合には、イベントフラグパターンを登録することができ、そのフラグの発生に伴って、オペレーティングシステムはそのタスクを待機状態から解放する。
【0108】
オペレーティングシステムによる割り込み管理は、割り込みハンドラ及び割り込み許可レベルの設定により行われる。時間管理は、システムタイマに基づいて、オペレーティングシステムが割り込みハンドラを始動させることにより実現される。
【0109】
周期ハンドラは、オペレーティングシステムに登録された周期ハンドラに基づいて、所定時間毎に処理を実行する。周期ハンドラは通常、所定時間毎に実行されるタスクを特定する短いプログラムである。
【0110】
プリンタ10に適した初期化ルーチン、タスク、割り込みハンドラ、及び周期ハンドラについては、以下のセクションで説明する。
【0111】
<3.2 初期化>
電源立ち上げ時、制御ロジック94の初期化、ROM92のチェック、RAM99のチェック、EEPROM102のチェックなど、プリンタ10の初期化を行うために、初期化が実行される。
【0112】
図15及び16は、ハードの電源立ち上げ手順及びソフト電源立ち上げ手順をそれぞれ示す。ここで、プリンタ10に電力が供給されている限り、CPU91は、電源ボタン24の状態に関わらず、ソフトウエアを実行する。従って、「ハード電源オン」は、プリンタ10への初期電源供給のことを指している。このため、ユーザによる電源ボタン24の押下は、ソフト電源オンまたはソフト電源オフの状態にするものである。これによりプリンタ10が「オフ」されたとしても、プリンタ10は実行中の処理(例えば、経過時間)を監視することができるため、この構成が好まれる。
【0113】
ハード電源オン手順を示す図15において、初期電源供給時にステップS1501でROMのチェック、RAMのチェック、そしてEEPROMのチェックなどのメモリーチェックが行われる。ステップS1502では、ソフトウエアタスクを初期化し、ステップS1503でCPU91はソフト電源オンを待つ待機ループに入る。
【0114】
図16はソフト電源オン手順を示す。ステップS1601でホームポジションへのリセット等、プリンタエンジン101の機械的初期化を行い、ステップS1602でセントロニクス通信タスクを含むソフトウエア制御タスクを開始し、ステップS1603でメイン処理モードを開始する。
【0115】
図17はソフト電源オフ手順を示す。ステップS1701ではすべてのソフトウエアタスクを終了し、ステップS1702で待機ループに入り、その間にステップS1703でプリンタ10は次のソフト電源オン手順を待つ。
【0116】
<3.3 タスク>
図18は本発明の実施の形態にかかる、アプリケーションプログラム82aとホストプロセッサー2で実行中の他の処理及びプリンタ10で実行中の様々なタスク間の通信を示す図である。なお、図18に示す処理及びタスクは全てを含むものではなく、むしろ、印刷に関わる処理とタスク間の相互動作の全体像を示すものである。
【0117】
プリント処理のホストプロセッサー側では、アプリケーションプログラム82aは、オペレーティングシステム81のグラフィカルデバイスインタフェース(GDI)201と通信を行う。これに対し、GDI201はプリンタドライバ84及びスプーラー202と通信を行い、スプーラー202はルーター203を介してプリンタプロバイダー204と通信を行う。プリンタプロバイダー204は言語モニタ205、ポートモニタ206、プリンタ(LPT)ポート207、及びセントロニクスケーブル208を介して、プリンタ10と通信を行う。これら構成のそれぞれの機能について、以下に簡単に説明する。
【0118】
アプリケーションプログラム82aは、好ましくはホストプロセッサー2で作られる画像のため、または、ユーザコマンドに応じて、スキャナー等の不図示の画像入力装置からの画像入力のためのプリントジョブを生成する。このプリントジョブは、好ましくはグラフィック画像を出力するためにアプリケーションプログラム82aへのデバイスに依存しないインタフェースを提供するGDI201に送られる。これに対して、GDI201はプリンタドライバ84を利用して、プリントジョブをプリンタ固有のコマンドに変更する。
【0119】
プリンタドライバ84は印刷を容易にするためにプリントデータに対して様々な処理を行う。これらの処理には、入力補正210、色補正211、出力補正212、二値化・色相/値処理213、予備吐出検知214、及び状態基準制御215が含まれる。
【0120】
入力補正210は、例えばスキャナのスキャン特性など、画像入力装置の特性に基づくプリントデータの補正を含むことが好ましい。また、入力補正210はガンマ補正及びRGBカラー値などの加法混色カラー値からCMYまたはCMYKカラー値などの減法混色カラー値への変換も行うことが好ましい。
【0121】
カラー補正211は、記録媒体のタイプ、人の色知覚、印刷された画像を観賞する光源に応じた補正を含む。出力補正212は、記録媒体のインク吸収限界に基づく、例えば、プリントデータの間引きにより行われる補正を含むことが好ましい。
二値化・色相/値処理213は、異なるインクの選択及び、インクに基づく対応する色相及びカラー値データの決定を含むことが好ましい。詳細はセクション10で後述する。予備吐出検知214は、印刷品質を向上するために、インクジェットノズルの予備吐出に影響を与える様々な要因の検出を行う。詳細はセクション9で後述する。状態基準制御215はプリンタの状態に基づいて印刷パラメータを更新するもので、セクション7で詳述する。
【0122】
プリントデータは、通常、プリンタ10がデータを印刷する速度よりも速い速度で、アプリケーションプログラム82a及びGDI201により生成される。スプーラー202は、図18でスプールファイルとして示すように、GDI201からのプリントデータをデータが生成される毎にプリントデータ保持部107に格納する。これにより、アプリケーションプログラム82aはプリントジョブの送信を終えることができ、そのプリントジョブが完全に印刷される前に、他のタスクを続けることができる。
【0123】
ルーター203はプリントデータをスプーラー202からプリンタプロバイダー204へ回し、プリンタプロバイダー204は言語モニタ205、ポートモニタ206、LPTポート207,及びセントロニクスケーブル208などの双方向通信線を介してプリンタ10と接続する。言語モニタ205は、例えば言語がプリンタによりサポートされているかどうかを判断するためにプリントデータの言語をモニタする。ポートモニタ206はLPTポート207へのアクセスを制御する。
【0124】
ホストプロセッサー2からのプリントデータは、プリンタ10上で実行されている様々なタスクにより処理される。本発明の好適な実施の形態によれば、プリンタタスクは、それぞれのタスクがプリンタ制御の一つにそれぞれ対応するように、機能を分離するように設計されている。これらのタスクは、セントロニクスタスク220、直接画像コマンドタスク221、エンジンタスク222、マネージャータスク223を含む。
【0125】
セントロニクスタスク220はホストプロセッサー2との通信を制御する。ホストプロセッサー2から送られた文字は、文字取得処理225により直接画像コマンドタスク221へ転送される。直接画像コマンドタスク221からの状態、通信、コマンド(SCC)情報は、SCC分析処理226が受け取る。このSCC情報から、状態情報がホストコンピュータ2へ返される。
【0126】
直接画像コマンドタスク221はデータをセントロニクスタスク220から受信し、SCC情報をセントロニクスタスク220に受信する。セントロニクスタスク220から受信したデータは分析処理231により分析される。そのデータがプリントデータである場合は、プリントデータ処理236により画像バッファ233に送られる。また、そのデータが制御データである場合、エンジンインタフェースコマンド処理237は制御データを解釈し、対応するコマンドをエンジンタスク222に送る。
【0127】
エンジンタスク222はプリントヘッド100a及び100bによる、画像バッファ233から読み出されたプリントデータの実際の印刷の制御を行うと共に、記録媒体の給紙及び記録ヘッドの汚れを取り除くために、ラインフィードモータドライバ34a及びキャリッジモータドライバ39bの駆動制御を行う。ここで、エンジンタスク222は、エンジン制御タスク241、エンジン自動給紙(ASF)及び清掃タスク242、エンジンラインフィードタスク243、及びエンジンキャリッジタスク244等の他の様々なタスクを含む。
【0128】
エンジンタスク222は、例えば図19を参照して後述するように、周期処理を制御するために周期タイマ251を利用する。エンジンASF及び清掃タスク242、エンジンラインフィードタスク243、及びエンジンキャリッジタスク244はASF・清掃ラインフィードモータハンドラ252及びキャリッジモータハンドラ253を利用して、ラインフィードモータドライバ34a及びキャリッジモータドライバ39aそれぞれを制御し、記録媒体のシートを給紙し、プリントヘッド100a及び100bの汚れを落とす。給紙及び清掃動作は、図5Cおよび5Dを参照して上記詳述したとおりである。
【0129】
プリンタ10におけるタスク間のインタフェース及び他の通信は、マネージャータスク223により制御され、好ましくは、メッセージ通信を調整するために不図示のメールボックスにメッセージ及びセマフォを入れることによりなされる。
【0130】
<3.4 割り込みハンドラ>
オペレーティングシステムは、周期クロック割り込みのためのハンドラなどの割り込みハンドラを内包することができるが、そのような周期的に発生するイベントは、周期ハンドラで取り扱うことも可能である。
【0131】
<3.5 周期ハンドラ>
周期ハンドラは、図18を参照して上述したとおり、セントロニクスタスク220及びエンジンタスク222のために供給されたものである。更に、周期ハンドラは制御部タイマ処理を行う。
【0132】
図19は、この周期ハンドラにおける制御部タイマ制御を示すフローチャートである。図19に示すように、ステップS1901で10msの割り込みを受けると、プリントヘッドの温度が75℃を越える場合に印刷を一時中断するために、ヘッド防御制御が行われ(ステップS1902)、これによりプリントヘッドのダメージを回避する。
【0133】
次に更に図19に示すように、50msの割り込みを受けたかどうかを判断し(ステップS1903)、もし受けたならば処理は50ms割り込みロジック処理(ステップS1904)へ進み、それぞれのヘッドに加えられた駆動パルスの量に基づいて、それぞれのヘッド温度の算出(ステップS1905)を行う。計算は、ヘッドの吐出に基づく温度上昇及び温度下降の計算に用いられるための定数を提供する、ROM92に予め保持されたテーブルに基づいてなされる。
【0134】
50msの割り込みロジックは、セットアップタイム、プレヒートパルス、インターバル及びメインヒートパルスをプリントノズルそれぞれについて設定するために、ROM92に予め保持されたテーブルに基づいて、パルス幅変調制御(ステップS1906)を実行する。そして、パルスパラメータは制御ロジック94へ送られる。次に、500ms割り込みロジックを受け取ったか否かをステップS1907で判断する。受け取った場合、500ms割り込みロジック(ステップS1908)は、プリントヘッドの温度を良好に保つために、周辺温度が低く、印刷が行われる前である場合に用いられるメニスカスヒータ制御を開始する(ステップS1909)。次に、1秒間の割り込みを受け取ったか否かをステップS1910で判断する。1秒割り込みのロジック(ステップS1911)は予備吐出タイマを更新し(ステップS1912)、リアルタイムの周辺温度を更新する(ステップS1913)。
【0135】
次に、1分の割り込みを受信したか否かをステップS1914で判断する。1分割り込みロジックは(ステップS1915)は、長期に亘る周辺温度の更新をステップS1916で開始させる。その後、ステップS1917においてこの処理からリターンする。
【0136】
なお、図19に示す周期10ms、50ms、500ms、1秒、1分は、単なる例であり、変更可能であることは言うまでもない。
【0137】
<3.6 ホストコンピューターの入出力コマンド>
以下に、双方向通信プリンタインタフェース74によりホストプロセッサー2へ入出力するコマンドについて、以下に要約する。一般的に、それぞれのコマンドは1以上のパラメータを含み、いくつかのコマンド(例えば画像データ送信コマンド[DATA]など)はデータも含む。
【0138】
状態リクエストコマンド[STATUS]は、プリンタ10から双方向インタフェース74を介して回答を引き出す一般的なコマンドである。状態リクエストコマンドを利用することにより、ホストプロセッサー2は、EEPROM102の内容、アライメント、濃度センサーから得られる結果など、プリンタ10に関する詳細な情報を得ることができる。従って、この状態リクエストコマンドについては、以下に詳しく説明する。
【0139】
次のセクションでは、それぞれのコマンドのニーモニックを[ ]内に示す。以下に示す簡略表記は単なる例であり、コマンドのニーモニックを構成するために用いられる実際の文字のシーケンスや組み合わせは特定されるものではなく、使用法がプリンタ側とホストプロセッサー側で共通であり、どちらか一方から送られたコマンドが、他方により解釈できる限り、どのようなものであってもよい。
【0140】
(3.6.1 制御コマンド)
制御コマンドは、プリンタ10の印刷処理を制御するために用いられる。以下に、様々な制御コマンドを示す。
【0141】
[LOAD]−給紙
[LOAD]コマンドは、給紙を実行させるが、現在給紙されている記録媒体を排紙させるものではない。このコマンドは、たとえ媒体が手動ですでに給紙されている場合であっても、プリンタ10に必ず送られる。[LOAD]コマンドは記録媒体のタイプ及びサイズの特定、及び給紙モードの特定をするためのパラメータを含む。給紙モードは以下の内のいずれかである。すなわち、(1)自動給紙−通常給紙、(2)自動給紙−高速給紙、または(3)手差し給紙のいずれかである。
【0142】
[EJECT]−排紙
このコマンドはプリントバッファに残っているすべてのデータが印刷された後に、現在給紙されている印刷媒体を排紙するものである。このコマンドでは、様々な排紙速度を設定することができる。
【0143】
[PRINT]−印刷実行
印刷実行コマンドは、プリントバッファ内のデータを現在給紙された記録媒体上に印刷させるものである。印刷領域は、後述する[EDGE]コマンドの左右パラメータにより特定されるそれぞれのプリントバッファの左右端間となる。
【0144】
[CARRIAGE]−キャリッジ動作
キャリッジ動作コマンドは、コラム位置を単位としてキャリッジの位置を特定する位置パラメータを含む。このコマンドは順方向及び逆方向の動きに用いられる。
【0145】
[SKIP]−ラスタースキップ
ラスタースキップコマンドは、スキップパラメータにより特定されるラスターライン数分、垂直方向に印刷位置を進めるために用いられる。[SKIP]コマンドの引数ゼロは、プリンタ10にノズル数変更予備吐出処理の実行を命令するために用いられる。
【0146】
[DATA]−画像データ送信
このコマンドは、黄色(Y)、マゼンタ(M)、シアン(C)または黒(BkまたはK)のビット画像データを、コラム画像フォーマットでプリンタ10にそれぞれ送信するために用いられる。スキャンライン1行を作るためにこのコマンドは複数回続けて発行される。ビットイメージデータは、後述するブロック[BLOCK]及びカラー[COLOR]コマンドにより特定される領域に格納される。プリンタ10は、[PRINT]コマンドを受信すると、印刷を実際に開始する。
【0147】
(3.6.2 設定コマンド)
設定コマンドは、プリンタ10により実行される印刷処理の設定を特定するものである。これらのコマンドに基づいて一度設定されると、別のコマンドにより設定の変更がなされるまで、その設定が持続する。設定が供給されない場合は、デフォルトの設定にリセットされる。以下に、設定コマンドの詳細を記述する。
【0148】
[RESET]−プリンタリセット
モードパラメータはプリンタリセットコマンドを定義し、リセットモードを指定する。デフォルトの設定には、データ圧縮フラグ、バッファサイズ、インク滴サイズ、印刷速度、パルス制御テーブル、バッファ制御テーブル等がある。
【0149】
[COMPRESS]−データ圧縮選択
データ圧縮選択コマンドのモードパラメータは、画像データを圧縮するか否かを指定し、非圧縮をデフォルトとする。
【0150】
[BTM_MARGIN]−下マージン選択
下マージン選択コマンドは、記録媒体の印刷領域の下マージンを特定するために用いられる。このコマンドのマージンパラメータにより、複数の下マージンサイズから1つを選択することができる。
【0151】
[DEFINE_BUF]−プリントバッファ定義
プリントバッファ定義コマンドは、ヘッドA及びBそれぞれについて共通のプリントバッファ109のメモリサイズ及び構成を定義する。
【0152】
[DROP]−液滴サイズ選択
このコマンドは、それぞれのプリントヘッドのためにインク滴の大きさ(大小)を特定するために用いられる。
【0153】
[SPEED]−印刷速度選択
このコマンドは、印刷速度を特定するために用いられる。
【0154】
[SPEED_RSKIP]−ラスタースキップの速度選択
ラスタースキップの速度選択コマンドは、行送りのラスタースキップ速度を特定するために用いられる。このコマンドにより、使用可能な複数のラスタースキップ速度の内の1つを特定できる。
【0155】
[DIRECTION]−印刷方向設定
このコマンドの方向パラメータは、印刷を順方向(左から右へ)で行うか、逆方向(右から左へ)で行うかを特定するために用いられる。
【0156】
[EDGE]−印刷端設定
印刷端設定コマンドは、印刷位置の左端及び右端をコラム位置単位で特定する。左端は、右端より狭くしなければならない。
【0157】
[BLOCK]−印刷ブロック選択
このコマンドは、データブロックの左端及び右端を、それぞれのプリントバッファの先頭からコラム位置単位で特定するために用いられる。また、[BLOCK]コマンドは、[DATA]コマンド(上述)の後のビット画像が保持されている場所を特定する。
【0158】
[DEFINE_COLOR]−印刷色定義
印刷色定義コマンドは、[DATA]コマンドの後に格納されたビット画像データのプリントヘッドにおける位置を特定するカラーテーブルを定義するために用いられる。このコマンドは、定義するカラーテーブル、色開始位置(color start position:各色毎の最初に使用されるノズル先頭位置を示すパラメータ)、色の高さ(color height:各色のノズルで記録し搬送の上流側から何番目のノズルであるかを示すパラメータ)、及び色ずれ(color offset:各色ノズルに対応したメモリバッファ上での位置を示すパラメータ)を特定するパラメータを有する。
【0159】
[COLOR]ー印刷色選択
このコマンドは、[DEFINE_COLOR]コマンドにより定義されたカラーテーブルを特定するために使用される。
【0160】
[DEFINE_PULSE]−ヒートパルステーブルの定義
[DEFINE_PULSE]コマンドは、複数の異なるヒートパルスブロックテーブルを定義するために用いられる。パルスブロックテーブルは、プリンタ10が後述の[SELECT_PULSE]コマンドを受け取る前に定義されなければならない。
【0161】
[SELECT_PULSE]−ヒートパルステーブルの選択
ヒートパルステーブルの選択コマンドは、[DEFINE_PULSE]コマンドにより定義された複数のヒートパルステーブルの中から、すべてのヘッドに共通の一つのテーブルを選択するために用いられる。
【0162】
[DEFINE_CONTROL]−バッファ制御テーブルの定義
このコマンドは、複数の異なるプリントバッファ制御テーブルを定義するために用いられる。プリントバッファ制御テーブルは、プリンタ10が後述の[SELECT_CONTROL]コマンドを受け取る前に定義されなければならない。
【0163】
[SELECT_CONTROL]−バッファ制御テーブルの選択
このコマンドは、プリントヘッド100a及び100bそれぞれのために、[DEFINE_CONTROL]コマンドにより定義された複数のプリントとバッファ制御テーブルの中から1つずつを選択するために用いられる。
【0164】
[SCAN_MARGIN]−スキャンマージン設定
スキャンマージン設定コマンドは、スキャンマージンを設定するために用いられる。このコマンドは、プリンタ10が論理的にキャリッジを探せるように、1行の印刷が終わる前にプリンタ10が受信する必要がある。
【0165】
[AT_DELAY]−自動トリガ遅延設定
このコマンドは、順方向及び逆方向にスキャン方向を特定し、自動トリガ遅延時間を10μsec刻みで最大2,550μsecに特定することにより、自動トリガ遅延の設定をするために用いられる。
【0166】
(3.6.3 メインテナンスコマンド)
メインテナンスコマンドは、プリンタ10の印刷動作を保全するために使用され、以下に詳しく説明する。
【0167】
[RECOVER]−ヘッドリカバー
このコマンドを受信すると、プリンタ10はクリーニング及びインク吸引処理などのヘッドリカバリーモードに入る。
【0168】
[HEAD_EXC]−ヘッド交換
ヘッド交換コマンドは、プリンタ10をヘッド交換モードに移行させる。ヘッド交換モードに入るときには、キャリッジは交換位置まで動く。このコマンドのパラメータは、交換すべきヘッド及び/またはインクタンクを特定する。
【0169】
[PCR]−パルス制御率変換
このコマンドは、パルス制御テーブルの制御率を変更するために用いられる。それぞれの制御率は、1から200の間に設定することができ、それぞれ1%〜200%を意味する。デフォルトでは、100、すなわち100%に設定されている。
【0170】
[UCT]−協定世界時間
このコマンドは、プリンタ10に現在時間を設定するために用いられ、プリントジョブ開始の設定時にプリンタ10に送らなければならない。プリンタ10はこの時間を用いて、プリントヘッドのリカバリーを行うべきか否かを判断する。この時間値は、ホストプロセッサー2のシステムクロックに基づいて、1970年1月1日の深夜(00:00:00)からカウントされる秒数、すなわち協定世界時間として表現されている。
【0171】
[HEAD_CHECK]−ヘッドチェック
ヘッドチェックコマンドは、プリンタ10に現在搭載されているプリントヘッドのタイプをチェックするために用いられる。
【0172】
[AUT_POWER]−自動電源管理
このコマンドは、プリンタ10内の自動電源管理機能がイネーブルされているか否かを特定するために用いられる。
【0173】
[SCAN]−センサースキャン
このコマンドは、自動位置合わせセンサーの値を読み込み、結果をホストプロセッサー2に送り返すために用いられる。スキャン速度、方向、解像度、及び領域が[SPEED]、[DIRECTION]、[DEFINE_BUF]、[EDGE]の各コマンドにより上述の通りそれぞれ定義されている。
【0174】
[NVRAM]−NV−RAM制御
このコマンドは、EEPROM102からデータを読み込み、読んだデータをホストプロセッサー2に送り返すために用いられる。
【0175】
[SMEAR]−スミヤ制御
スミヤ制御コマンドは、湿ったインクがこすれて記録媒体が汚れること(スミヤ)を防ぐために用いられる。このコマンドは、現在のページの印刷時間を遅延させるように所定時間を設定することで、スミヤを防ぐ。
【0176】
[IF_CONTROL]−インタフェース制御
インタフェース制御コマンドは、プリンタ10のあるインタフェースモードがイネーブルであるか否かを特定するために用いられる。
【0177】
[STATUS]−状態リクエスト
このコマンドは、プリンタ10に状態リクエストを送るための予め固定されたコマンドとして用いられる。リクエストは、基本設定、主な状態、及び詳細な状態を得るために作成することができる。
【0178】
基本設定コマンドは、ホストプロセッサー2がプリンタ10を設定するために用い、プリンタ10からの応答を必ずしも必要としない。
【0179】
主状態リクエスト/応答コマンドは、通常モードにおける状態情報を得るために用いられ、基本状態[BASE_STATUS]、エコーコマンド[ECHO]、プリントヘッド構成[HEAD]、位置合わせセンサーの結果[SENSOR_RESULTS]、EEPROMデータのホストへの送信[DATA_SEND]、シフトバッファサイズのホストへの送信[BUFFER_SIZE]を含む。それぞれの主状態リクエスト/応答コマンドに対して、応答が自動的にホストプロセッサー2に返される。
【0180】
詳細な状態リクエスト/応答コマンドは、詳細な状態情報を得るために用いられる。これらのコマンドには、詳細なジョブの状態[JOB_STATUS]、詳細なビジー状態[BUSY_STATUS]、詳細な警告状態[WARNING_STATUS]、詳細なオペレーター呼び出し状態[OPERATOR_CALL]、詳細なサービス呼び出し状態[SERVICE_CALL]が含まれる。状態リクエスト/応答コマンドと同様に、それぞれの詳細状態リクエスト/応答コマンドに対して、応答が自動的にホストプロセッサー2に返される。
【0181】
[PREFIRE_EX]−予備吐出処理
予備吐出処理コマンドは、インクの予備吐出を実行するために用いられる。このコマンドのパラメータにより、特定のインクヘッドに予備吐出を行わせることができる。
【0182】
[PREFIRE_CYC]−予備吐出周期設定
予備吐出周期設定コマンドは、自動予備吐出実行の周期を設定するために用いられる。このコマンドのパラメータにより、予備吐出させる目的のヘッドを特定し、自動予備吐出周期の長さを、最長255秒まで秒単位で設定することができる。
【0183】
<4.0 自動給紙制御>
このセクションでは、本実施の形態のプリンタのための自動給紙制御処理について説明する。この処理では、プリンタは記録媒体シートをプリンタ内に供給し、その印刷のためのシートを、効率よく、確実に準備するように命令される。特に、本実施の形態は第1に給紙する記録媒体のタイプ、ユーザにより選択された印刷モード、及び他の印刷に関わる状態に基づいて、記録媒体をプリンタに給紙する速さを選択するためのロジックを提供することである。また、印刷中に記録媒体がプリンタ内を通過する行送り速度及び印刷後にプリンタから記録媒体を排紙する排紙速度も、同様の方法で選択することができる。また、本実施の形態では、自動給紙処理の完了に先立って、他の印刷前タスクを行うことができる自動給紙制御を提供する。最後に、本実施の形態は、給紙処理が成功したか否かを給紙終了前に判断することができる自動給紙処理手順を提供する。これにより、自動給紙処理の終了に先立って、プリンタドライバがプリンタにプリントデータを送ることができる。
【0184】
以下に更に詳しく説明するように、上記構成によれば、記録媒体をプリンタに給紙する最中の信頼度を向上させ、記録媒体を給紙するためにかかる時間及び記録媒体へ印刷を行うための準備として、他の印刷前タスクを完了するまでの時間を削減することができる。
【0185】
<4.1 ASF、行送り及び排紙速度の選択>
プリンタ10は印刷前に記録媒体をプリンタ10に自動的に給紙する自動給紙部14を有する。図5Aに示すように、記録媒体シートは、ラインフィードモータ34により駆動される自動給紙ローラー32によりクラッチ部140を介して自動給紙部14からプリンタ10へ給紙される。記録媒体をプリンタ10に給紙するために、自動給紙ローラー32とラインフィードモータ34とが係合する位置にクラッチ部140が来るように、カートリッジホルダ37a及び37bを動かす必要がある。自動給紙ローラー32をクラッチ部140を介して係合させ、駆動するために必要なこれらの一連の動作は、上記セクション1.1で図5Cを参照して詳しく説明した。
【0186】
自動給紙部14及び自動給紙ローラー32の動作は、プリンタ10により通信線76を介してプリンタ10に制御信号を送る、プリンタドライバ84と連係して制御される。本実施の形態では、プリンタドライバ84は、印刷に先立って、記録媒体の給紙を開始する命令をプリンタ10に送ることが好ましい。プリンタドライバ84からの給紙命令を受けて、プリンタ10は、給紙コマンドで特定されたパラメータ及び状態に応じて記録媒体の給紙を開始する。図14に示すように、給紙([LOAD])コマンドは、プリンタドライバ84からプリンタ10へのコマンド列の間に、プリンタ10に記録媒体を給紙するように命令するために、用いられる。給紙([LOAD])コマンドは、給紙する記録媒体の種類及び大きさに関するパラメータをプリンタ10に供給し、更に、自動給紙部14を用いて記録媒体を給紙するか、または手差し給紙部17を用いるかをプリンタ10に知らせる。自動給紙部14を用いる場合、給紙([LOAD])は、記録媒体をプリンタ10に給紙するために、例えば、高速、通常速度など、複数の速度のどれを自動給紙ローラー32が使用するかを指示する。図14を参照して上述したとおり、スキップ([SKIP])コマンドは印刷中に記録媒体をプリンタ10内で先に送るために用いられ、排紙([EJECT])コマンドは、印刷完了後に記録媒体をプリンタ10から排紙するために用いられる。
【0187】
図20は、本実施の形態において、好ましくはプリンタドライバ84内で実行される、記録媒体を給紙し、ページ印刷することをプリンタ10に命令する工程を示すフローチャートである。図20において、ステップS2000で処理が開始し、プリンタドライバ84は、プリンタ10を初期化するためにプリンタ10にリセットコマンド([RESET])を送る。プリンタドライバ84はプリントモードと、給紙する記録媒体のタイプ、記録媒体上に印刷する画像のタイプ、及びプリンタ10が画像を印刷する方法を定義するモードに関する状態を判断する(ステップS2001)。一旦プリントモード及び状態が判断されると、プリンタドライバ84は、記録媒体の給紙、印刷、及び排紙を行う際に用いられる適切な自動給紙速度、行送り速度、排紙速度を決定し、決定した給紙速度、行送り速度、及び排紙速度を含む給紙コマンド([LOAD])をプリンタ10に送り、記録媒体の給紙が開始される(ステップS2002)。プリンタドライバ84はステップS2003において1回目の印刷スキャンのためのプリントデータを準備し、プリントデータを準備していることをプリンタ10に知らせる。プリンタドライバ84によるプリントデータの準備に関しては、1997年7月28日に出願された米国特許出願第08/901,719号の「カラープリンタのためのプリントドライバ」に詳細に説明されている。ステップS2004では、プリンタドライバ84が記録媒体給紙の早期成功通知を受信したか、または給紙が完了通知を受信したかを判断する。どちらかを受信した場合には、プリンタ10は印刷及び制御をステップS2005へ進める。もし、両方とも受信していない場合には、処理はそのまま終了する。もし、このスキャンで印刷するプリントデータが無い場合には(ステップS2005)、処理はステップS2016へ進み、次のスキャンのためのプリントデータが準備される。プリンタドライバ84は、この記録媒体1ページで処理されたスキャンラインの総数に対応するように、ステップS2017で仮想スキップを行う。この記録媒体1ページ分の印刷が完了していないと判断されると(ステップS2013)、処理はステップS2005に戻る。そして、当該ページの印刷が終了したと判断されるまで、ステップS2005からステップS2013の処理を繰り返し実行する。
【0188】
また、当該スキャンで印刷する印刷データが存在する時は(ステップS2005)、プリンタドライバ84は、ユーザ入力に基づいて、以前に選択したプリンタ10の行送り速度をオーバーライドするか否かを判断する(ステップS2006)。例えば、ユーザは、「オーバーライド無し」「低速オーバーライド」、または「高速オーバーライド」のいずれかを選択し、プリンタ10に行送り速度コマンド([SPEED_RSKIP])を用いて送信する。そして、スキップコマンド([SKIP])がプリンタ10へ送られて(ステップS2007)、記録媒体の位置を現在のスキャンでのプリントデータの印刷を行うための位置にするために、所定ラスターライン数分、記録媒体を進めるようにラインフィードモータ34に命令する。プリンタドライバ84はスキャン設定を行い、現在のスキャンでのプリントデータ(([DIRECTION]、[EDGE]、[SPEED]、[SIZE]、[SELECT_PULSE]、[SELECT_CONTROL]))の印刷準備をプリンタ10が行えるように、スキャン設定をプリンタ10へ送る(ステップS2008)。スキャン設定パラメータをプリンタ10に送信した後、ステップS2009でプリンタドライバ84は現行スキャン用のプリントデータを、画像データ送信コマンド([DATA])を用いてプリンタ10に送る。そして、プリンタドライバ84は、ステップS2010で次のスキャン用のプリントデータを準備する。そして、記録媒体の給紙が成功したか否かを判断する(ステップS2011)。記録媒体の給紙が失敗した場合、制御はプリンタドライバ処理の最後に進む。
【0189】
記録媒体の給紙が成功した場合、プリンタドライバ84は、プリントコマンド([PRINT])をプリンタ10に送ることによりプリントデータの印刷を開始する(ステップS2012)。1ページ分の印刷が終了すると(ステップS2013)、プリンタドライバ84はステップS2014で、選択した排紙速度オーバーライドを「オーバーライド無し」、[低速オーバーライド」、「高速オーバーライド」のいずれかに設定し、プリンタ10が記録媒体を排紙するように、そのオーバーライド選択を排紙コマンド([EJECT])の一部として、プリンタ10へ送る(ステップS2015)。現行ページの印刷が終了していない場合には、処理はステップS2005に戻る。このようにすることにより、プリンタドライバ84は、使用中の記録媒体のタイプと、ユーザによりリクエストされたプリントモード及び状態と、及びその他の印刷関連状態に基づいて、詳細なコマンド及びデータをプリンタ10に供給する。
【0190】
図24は、図20のステップS2002における自動給紙速度、行送り速度及び排紙速度決定にあたってプリンタドライバ84により実行される処理手順の詳細を示すフローチャートである。まず、現行のプリントジョブについて、ユーザが記録媒体をプリンタ10の手差し給紙部17に給紙する手差し給紙を選択したか否かを判断する(ステップS2401)。手差し給紙が選択された場合には、プリンタドライバ84は清掃チェックコマンドをプリンタ10に送り、清掃チェックが終了するのを待つことにより、インククリーニング機構45に内包される清掃ポンプ(不図示)の動作中に、ユーザが記録媒体を手差し給紙することを防ぐ。清掃ポンプが動作中でないと判断されると、ダイアログボックスをディスプレイ4上に表示し、ユーザに手差し給紙部17に記録媒体を挿入するように促す(ステップS2403)。そして、ユーザが手差し給紙を促すダイアログボックスを確認したか否かを判断し(ステップS2404)、確認したと判断すると、処理はステップS2406に進み、手差し給紙を特定した給紙コマンド([LOAD])をプリンタ10に送る。ユーザがディスプレイ4上に表示されるダイアログボックスを確認していない場合には、ステップS2405でプリントジョブをキャンセルする。
【0191】
ステップS2406において、手差し給紙コマンドがプリンタ10に送られた後、記録媒体が適切に給紙されたか否かを判断する(ステップS2408)。適切でない場合、ユーザはプリンタから記録媒体を取り除いてもう一度挿入し、手差し給紙し直すように指示される(ステップS2409)。ユーザが手差し給紙し直しのリクエストを確認すると(ステップS2407)、処理はステップS2406に戻り、手差し給紙を特定した給紙コマンドを再度送る。ユーザが手差し給紙し直しのリクエストを確認していない場合(ステップS2407)、プリントジョブはキャンセルされる(ステップS2405)。ステップS2408では、手差し給紙コマンドの受信後に記録媒体がプリンタ10に正しく給紙された場合、ステップS2422でリターンする。
【0192】
また、ステップS2401でユーザが手差し給紙を選択しなかった場合、ステップS2425で現在時刻を得る。プリンタ10が、好ましくは日中のビジネス時間を定義する、予め決められた閾値T1とT2により定義される所定時間内で使用されている場合には(ステップS2423でYES)、処理はステップS2410に進む。プリンタ10が所定時間内で使用されていない場合には(ステップS2423でNO)、プリンタドライバ84は低速度の自動給紙コマンド、低速度行送りコマンド、及び低速度排紙コマンドを選択し、それらをプリンタ10へ送る(ステップS2416)。これにより、印刷中にプリンタ10で発生するノイズを低減する。これらの設定は、ユーザにより「オーバーライド無し」モードが選択されたときのデフォルトに対応する。また、プリンタ10が所定時間内で使用されており(ステップS2423でYES)、ユーザがドラフトまたは標準モードを設定していない場合には、プリンタドライバ84は低給紙速度設定、低速度行送り速度設定、及び低排紙速度設定を選択し、給紙([LOAD])コマンドによりプリンタ10へこれらの設定を送る(ステップS2416)。しかしながら、ユーザがドラフトまたは標準モードを選択していたならば、現在のプリントジョブをレギュラーモードで行うか否かを判断する(ステップS2411)。レギュラーモードが選択されていなければ、高解像度カラーモードが現在のプリントジョブで使用されているので、プリンタドライバ84は給紙、行送り、及び排紙の速度を低速度に選択し、給紙([LOAD])コマンドを利用してそれらをプリンタ10に送る(ステップS2416)。
【0193】
しかし、レギュラーモードが現在のプリントジョブに使用されているならば(ステップS2411でYES)、どのタイプの記録媒体が現在にプリントジョブで使用されているかをプリンタドライバが84で判断する(ステップS2412)。普通紙が使用されている場合(ステップS2412でYES)、給紙、行送り、排紙速度として高速が選択されて、給紙([LOAD])コマンドによりプリンタ10に送られる(ステップS2414)。しかし、現在のプリントジョブでバブルジェット用紙が使用されている場合(ステップS2413でYES)、給紙速度として低速、行送り速度として高速、そして、排紙速度として低速が選択されて、給紙([LOAD])コマンドによりプリンタ10に送られる(ステップS2415)。現在のプリントジョブで使用されているのが普通紙でもバブルジェット用紙でも無い場合、プリンタドライバ84は、給紙、行送り、排紙速度として低速が選択されて、給紙([LOAD])コマンドによりプリンタ10に送られる(ステップS2416)。給紙コマンドがステップS2414、S2415、S2416のいずれかのステップでプリンタ10に送られると、記録媒体が適切にプリンタ10に給紙されたか否かを判断する(ステップS2417)。適切に給紙されていない場合には、問題を正して再度給紙し直すように指示するダイアログボックスをディスプレイ4に表示する(ステップS2418)。ユーザディスプレイ4で給紙を再度行うことを選択した場合(ステップS2419)、処理はステップS2416に移り、給紙、行送り、排紙の速度として低速に設定し、プリンタに給紙([LOAD])コマンドを再度送信する(ステップS2416)。ユーザがディスプレイ4から再給紙を選択しなかった場合には、プリンタ10上の再スタートボタン26により再給紙を選択したかどうかを判断する(ステップS2420)。もしそうであれば、処理はステップS2416に進む。また、ユーザがディスプレイ4からもプリンタ10からも再給紙を選択しなかった場合には、プリントジョブはキャンセルされる(ステップS2421)。ステップS2417において、記録媒体がプリンタ10に適切に給紙されていると判断されると、処理はステップS2422に進み、リターンする。
【0194】
この本実施の形態の方法では、記録媒体のタイプ及び大きさ、プリントモード、過去の給紙の失敗回数、その他のモード及び状態など、与えられたプリントジョブの状態及び要求に応じて、自動給紙部14から記録媒体を給紙するための複数の速度から1つを選択し、そして同様に行送り速度及び排紙速度の選択のためのロジックをプリンタドライバ84内に有する。その結果、与えられたプリントジョブに適切な最高速度が、記録媒体の給紙中及び記録媒体への印刷及び記録媒体の排紙中に使われる。これにより、安定した動作を確保しながら、プリントジョブ全体にかかる時間を短縮することができる。
【0195】
図25は、プリンタドライバ84から供給されるオバーライドコマンドに基づいて排紙速度を設定するために、プリンタ10内のCPU91内で使用されるロジックを示すフローチャートである。ステップS2501で処理が開始され、プリンタドライバ84から「オーバーライド無し」コマンドを受信したか否かを判断する。「オーバーライド無し」コマンドが選択されていた場合、給紙速度が現在、高速に設定されているかどうかを判断する(ステップS2504)。給紙速度が高速に設定されている場合、排紙時の行送り速度も高速に設定する(ステップS2505)。また、給紙速度が高速に設定されていない場合、排紙時の行送り速度も低速に設定する(ステップS2506)。また、ステップS2501において、「オーバーライド無し」コマンドがドライバ84から送られていない場合には、「低速オーバーライド」が送られたかどうかを判断する(ステップS2502)。「低速オーバーライド」コマンドが送られている場合には、排紙時の行送り速度を低速に設定する(ステップS2507)。反対に、「低速オーバーライド」が送られなかった場合には、「高速オーバーライド」コマンドが送られたかどうかを判断し(ステップS2503)、送られている場合には、排紙時の行送り速度を高速に設定する(ステップS2508)。また、「オーバーライド無し」も「低速オーバーライド」も「高速オーバーライド」のいずれも送られなかった場合には、デフォルト値、好ましくは低速を排紙時の行送り速度として設定する(ステップS2509)。このようにすることにより、プリンタドライバ84は、プリンタドライバ84から以前に設定された排紙速度コマンドを変更するために、排紙速度オーバーライドを選択することができる。
【0196】
同様に、図26は、行送り速度の以前の設定がプリンタドライバ84により後でオーバーライドすることができることを示す、プリンタ10のCPU91におけるロジック処理を示すフローチャートである。ステップS2601で処理が開始され、印刷の解像度が1440dpiに設定されているか否かを判断する。解像度1440dpiがプリンタドライバ84により選択されている場合、1440dpi速度が行送り速度として選択される(ステップS2605)。しかし、解像度1440dpiが選択されていなければ、プリンタドライバ84が「低速オーバーライド」を送信したかを判断し(ステップS2602)、そうであれば、行送り速度として低速が選択される(ステップS2606)。また、「低速オーバーライド」が選択されていなければ、「高速オーバーライド」が選択されているか否かを判断し(ステップS2603)、そうであれば、行送り速度として高速を選択する(ステップS2607)。もし、「高速オーバーライド」を受信していなければ、給紙速度が高速に設定されているかどうかを判断し(ステップS2604)、そうであれば、行送り速度として高速を設定する(ステップS2608)。給紙速度として高速が設定されていなければ、行送り速度として、デフォルト速度である低速を選択する(ステップS2609)。このように、プリンタドライバ84から行送り速度を提供した後であっても、プリンタドライバ84は行送りのためのオーバーライド設定を選択することができる。
【0197】
<4.2 給紙成功可否の早期判定>
本発明の好適な実施の形態においては、記録媒体の給紙完了に先立って、給紙が成功しそうかどうかの判断をプリンタ10のCPU91において行う。給紙が成功しそうであれば、プリンタ10は、プリンタドライバ84ができるだけ早いタイミングでプリントデータをプリンタ10に送信開始できるように、早期給紙成功をプリンタドライバ84に通知する。このようにすることによって、プリンタは、記録媒体の給紙が問題なく終了した後に、より迅速に印刷を開始することができる。
【0198】
図21Aはプリンタ10の自動給紙部14による記録媒体の給紙中にプリンタ10のCPU91において実施される処理を示すフローチャートであり、記録媒体の給紙に関する早期成功通知を得ることが必要な工程を含む。ステップS2101で制御が開始し、カートリッジホルダ37a及び37bはホームポジション46に移動するように命令を受け、ホームポジション46に到着すると、待機状態に入る。キャリッジ容器37a,37bはキャリッジモータドライバ39aにより駆動される。次に、今回の給紙の直前に、先に給紙されていた記録媒体が排紙されたかどうかを判断する(ステップS2102)。排紙されている場合、処理はステップS2103へ移り、排紙行送り速度から、ラインフィードモータ34が自動給紙ローラー32が係合できる自動給紙ピックアップ速度へ変わるまで待つ。すなわち、自動給紙ローラー32に係合させるためのクラッチ部140の調整が、ラインフィードモータ34が適切な速度になるまで行われないように、待機する。ラインフィードモータ34が適切な速度になると、自動給紙ローラー32が現在、初期ホームポジションにあるか否かを判断する(ステップS2104)。ホームポジションにある場合には、自動給紙動作の始めに自動給紙ローラー32がホームポジションにあることを示すためにフラグを立てる(ステップS2106)。
【0199】
初期状態で自動給紙ローラー32がホームポジションに無い場合、フラグを「偽」に設定する(ステップS2105)。次に、カートリッジホルダ37a及び37bは、自動給紙ローラー32と係合するようにクラッチ部140まで移動するように命令を受ける(ステップS2107)。ステップS2108では再給紙フラグを「偽」に設定し、記録媒体の再給紙がまだ行われていないことを示す。次に、今回の給紙開始の前に、先に給紙された記録媒体の排紙が行われたか否かを判断する(ステップS2109)。排紙がされた場合には、処理はステップS2111に進み、排紙が行われていない場合には、図21Dを参照して詳述するように様々な状態に基づいて、給紙速度を選択する。その後、自動給紙ローラー32に動作開始を指示する(ステップS2110)。処理はステップS2111に進み、自動給紙ローラー32が現在、ホームポジションにあるかどうかを判断する。ホームポジションにある場合には、処理はまたステップS2111に戻り、ホームポジションに位置しなくなるまで、自動給紙ローラー32の位置を確認する。自動給紙ローラー32が現在ホームポジションに無く、且つ、自動給紙ローラー32がホームポジションから動作を開始したと判断されると、クラッチ部140は自動給紙ローラー32を駆動するために適切に係合され、これにより、カートリッジホルダ37a及び37bはクラッチ140の近辺にある必要が無くなる。その後、カートリッジホルダ37a及び37bは、プリントヘッド100a及び100bのクリーニングを行うために、ホームポジション46へ移動するように命令を受ける(ステップS2113)。
【0200】
ステップS2112において、自動給紙ローラー32が初期状態でホームポジションに無い場合には、自動給紙ローラー32が動作を終えるまでに十分な時間がとれるように、カートリッジホルダ37a及び37bは、自動給紙ローラー32と係合するようにクラッチ部140に当接するように位置される。この場合、カートリッジホルダ37a及び37bはホームポジションに移動するように命令されないが、その代わりに、ステップS2114で自動給紙ローラー32が現在動作中であるかどうかを判断する。動作中である場合、記録媒体の先端がプリンタ10内で検出されたかどうかを判断する(ステップS2115)。先端が検出されていない場合、処理はステップS2114に戻り、自動給紙ローラー32が現在動作中であるかどうかをもう一度判断する。また、ステップS2114で、例えば記録媒体給紙のために必要な動作が完了したために、自動給紙ローラー32が現在動作していないと判断すると、処理はステップS2117に進む。また、ステップS2115で記録媒体の先端が検知されると、初期成功ロジックが実行され(ステップS2116)、給紙が完了する前に、給紙が成功する見込みを判断する。この初期成功ロジックについては図21Cを参照してより詳細に後述する。初期成功ロジックの実施後(ステップS2116)、ステップS2117において自動給紙ローラー32が初期ホームポジションから動作を開始したかどうかを判断し、ホームポジションから開始していた場合には待機状態に入り(ステップS2118)、カートリッジホルダ37a及び37bがホームポジション46で停止するのを待つ。そして少なくとも良好な印刷状態を保つために、プリントヘッド100a及び100bに予備吐出を行うように命令する(ステップS2118)。
【0201】
ステップS2118での待機中には、カートリッジホルダ37a及び37bのホームポジション46への移動途中に拭くために、ワイパー44a及び44bを通過するようにすることもできる。自動給紙動作の開始時に自動給紙ローラー32がホームポジションに無い場合(ステップS2117でNO)、ステップS2118はスキップされる。そして処理は図21BのステップS2119に進み、自動給紙ローラー32が現在動作中であるかどうかを判断する。自動給紙ローラー32が動作中である場合には、自動給紙ローラー32の動きが止まったと判断されるまで、処理はステップS2119に戻る。自動給紙ローラー32の動きが止まると、処理はステップS2120に進み、自動給紙処理開始時点で、自動給紙ローラー32かホームポジションにあったかどうかを判断する。自動給紙ローラー32がホームポジションに無かった場合、カートリッジホルダ37a及び37bにホームポジション46に戻るように命令する(ステップS2121)。そして、自動給紙ローラー32が現在ホームポジションで止まっているかどうかを判断する(ステップS2122)。自動給紙ローラー32が動きが止まった後もホームポジションに戻っていない場合は(ステップS2122でNO)、深刻なエラーが起きているため、すべてのタスクを再開するために適切な処理を行い、エラーを記録する(ステップS2123)。自動給紙ローラー32がホームポジションに戻っている場合には、不図示の用紙端センサーにより記録媒体の先端が検出されたかどうかを判断する(ステップS2124)。
【0202】
記録媒体の先端が検出された場合、先端の検出が特定のモータステップ数内でなされたか、例えば、記録媒体が自動給紙ローラー32で滑ったなどの理由により記録媒体の給紙に必要以上の時間がかかっていないかを判断する(ステップS2125)。先端が予定時間内で検出された場合、記録媒体の先端が用紙端センサーを適切な分量過ぎたかを判断する(ステップS2126)。記録媒体が充分な分量送られていれば、記録媒体の給紙は成功しているため、給紙状態リターンフラグを「成功」に設定する(ステップS2128)。その後、自動給紙動作からリターンする。
【0203】
しかし、記録媒体の検出に時間がかかりすぎた場合(ステップS2125でNO)または、記録媒体が充分な分量用紙端センサーを通過しなかった場合には(ステップS2126でNO)、記録媒体の給紙は失敗しているため、ステップS2127に進み、その記録媒体を適切な位置に設定するためのリカバリー処理にその記録媒体を使用できるかどうかを判断する。記録媒体が6インチ以下の記録媒体、光沢紙、光沢のある写真カード、高光沢フィルムである場合にリカバリー動作を行えないようにすることが好ましい。リカバリー動作ができない記録媒体のタイプである場合には、給紙状態リターンフラグは「エラー」に設定され(ステップS2131)、全自動給紙処理からリターンする。リカバリー処理に使用できる記録媒体のタイプである場合には、処理はステップS2129のリカバリー処理に移る。このリカバリー処理は、図21Eを参照して後で詳細に説明する。リカバリーによって、給紙状態リターンフラグは「成功」に設定され(ステップS2128)、全自動給紙処理からリターンする。
【0204】
ステップS2124では、記録媒体の先端が用紙端センサーにより検知されなかった場合、記録媒体のタイプを確認して、リカバリー処理を実施するかどうかを判断する(ステップS2132)。リカバリー処理を実行できる記録媒体のタイプではない場合、給紙状態リターンフラグは「エラー」に設定され(ステップS2131)、処理は全自動給紙処理からリターンする。リカバリー処理を実行可能な記録媒体のタイプである場合、給紙フラグを確認して(ステップS2133)、記録媒体の給紙のやり直しがこれで2回目であるかを判断する。やり直しが2回目である場合、給紙状態リターンフラグは「エラー」に設定され(ステップS2131)、処理は全自動給紙処理からリターンする。
【0205】
これが給紙やり直しの1回目である場合、再給紙フラグが立てられ(ステップS2134)、自動給紙ローラー32が現在ホームポジションにあるかどうかをチェックする(ステップ2135)。これに応じて、ステップS2136または2137で自動給紙ローラー32の現在位置に応じてホームから開始フラグが立てられる。その後、カートリッジホルダ37a及び37bの動きが止まるまで待ち、自動給紙ローラー32をラインフィードローラー34に係合させるように、カートリッジホルダ37a及び37bをクラッチ部140まで移動するように命令する(ステップS2138)。処理は図21AのステップS2110に進み、上述の自動給紙処理動作を繰り返す。
【0206】
図21BのステップS2116で触れた早期成功ロジックにより、早期成功フラグがプリンタドライバ84に送ることができ、プリンタドライバ84は記録媒体給紙完了前にプリントデータの送信を開始することができる。図21Cは、早期成功ロジックの各工程を示す詳細フローチャートである。ステップS2139において、記録媒体の先端の検出が特定のモータステップ数内でなされたか、例えば、記録媒体が自動給紙ローラー32で滑ったなどの理由により記録媒体の給紙に必要以上の時間がかかっていないかを判断する。記録媒体の先端が特定モータステップ数内で検出されなかった場合、給紙が成功しない可能性があるので、処理はリターンする。
【0207】
記録媒体の先端が所定のモータステップ数内で検出された場合、記録媒体のタイプをチェックして、上記に説明したように、リカバリー処理に使用できるタイプのものであるかどうかを判断する(ステップS2140)。記録媒体のタイプがリカバリー処理に使用できないタイプのものである場合、給紙が成功しない可能性があるので、処理はリターンする。一方、記録媒体のタイプがリカバリー処理に使用できるタイプのものである場合、早期成功フラグを立て、プリンタドライバ84に 給紙状態リターンフラグを用いて「成功」を送信する処理のために、CPU91による制御を10ms間停止する(ステップS2141)。このようにすることで、プリンタ10のCPU91により行われる自動給紙動作は、自動給紙部14からの記録媒体の自動給紙を効率的に制御すると共に、早期成功指示に基づいて、給紙完了に先立ってプリンタドライバ84によるプリントデータの送信を開始できるようにすることで、安定した動作を可能にする。従って、この構成により、記録媒体の給紙の完了から、記録媒体への画像データの印刷開始までにかかる時間を短縮することができる。
【0208】
図21Dは図21AのステップS2110において実行される工程を示すフローチャートであり、プリンタ10のCPU91は、プリンタドライバ84から供給される自動給紙速度、現在の状態、及び自動給紙処理に関連するパラメータに基づいて、給紙速度を設定する。ステップS2142では、記録媒体の長さをチェックして、6インチ未満かどうかを判断する。6インチ未満の場合、記録媒体は封筒と同様に扱われ、2段階給紙処理が開始し、自動給紙ローラー32の第1段階の動作がスタートする(ステップS2146)。250ms待機した後(ステップS2147)、自動給紙ローラー32の第2段階の動作がスタートする(ステップS2148)。この処理後、リターンする。この2段階動作は、かさばった重い封筒など、小さい記録媒体の給紙を安定させることができる。
【0209】
記録媒体が6インチ未満でない場合には、現在設定されている給紙速度が低速であるかどうかを判断し、ホームポジションから開始フラグをチェックして自動給紙ローラー32が元々ホームポジションにあったかどうかを判断する。さらに、再給紙フラグをチェックして、以前に記録媒体の給紙に失敗しているかどうかを判断する(ステップS2143)。上記のいずれか1つにでも該当する場合、ラインフィードモータ34は自動給紙ローラー32に低速で駆動するように命令する(ステップS2144)。上記のいずれにも該当しない場合には、ラインフィードモータ34は自動給紙ローラー32に高速で駆動するように命令する(ステップS2145)。そして、この処理からリターンする。
【0210】
図21Eは図21BのステップS2129におけるリカバリー処理の各処理の詳細を示すフローチャートである。図21Eに示すリカバリー処理では、まず、自動給紙ローラー32による給紙の際に、記録媒体が滑りすぎたかどうかを判断する(ステップS2149)。もしそうであれば、リカバリー処理はカートリッジホルダ37a及び37bの動きが止まるのを待って(ステップS2150)、自動給紙ローラー32がラインフィードローラー34に係合するように、カートリッジホルダ37a及び37bにクラッチ部140のところまで移動するように命令する(ステップ2151)。もし、用紙が滑りすぎていない場合、ステップS2155に進むが、あとで、詳しくここでの処理を説明する。ステップS2152では、自動給紙ローラー32は低速度で動作を開始し、自動給紙ローラー32が給紙動作を完了するのを待つ。次に、自動給紙ローラー32がホームポジションで止まったかどうか判断する(ステップS2153)。ホームポジションで止まった場合、リカバリー処理はステップS2155に移る。ホームポジションで止まらなかった場合は、すべてのタスクを再スタートし、重要なエラーを記録する(ステップS2154)。
【0211】
リカバリー処理はステップS2155へ進んで、カートリッジホルダ37a及び37bにホームポジション46に戻るように命令し、クラッチ140を介した自動給紙ローラー32とラインフィードモータ34との係合を解除する。そしてピンチローラー(不図示)の後ろに記録媒体を送るように、逆方向にラインフィードローラー165を回転するようにラインフィードモータ34に命令する(ステップS2156)。そして、自動給紙ローラー32とラインフィードモータ34がクラッチ部140を介して係合するように、カートリッジホルダ37a及び37bにクラッチ部140のところへ移動するように命令する(ステップS2157)。これにより、記録媒体は、ホームポジションから回転する自動給紙ローラー32により挟まれることになる(ステップS2158)。
【0212】
この後、カートリッジホルダ37a及び37bはホームポジション46に移動するように命令され、これにより、自動給紙ローラー32とラインフィードモータ34との係合を解除する(ステップS2159)。こうして、ラインフィードモータ34を駆動することにより、記録媒体はピンチローラーの後ろ側に巻き込まれる(ステップS2160)。その後、カートリッジホルダ37a及び37bは、自動給紙ローラー32をラインフィードモータ34に係合させるために、クラッチ140のところに移動するように命令される(ステップS2161)。ステップS2162で、自動給紙ローラー32は低速で駆動を開始し、リカバリー処理は自動給紙ローラー32が給紙動作を終了するまで待つ。そして、カートリッジホルダ37a及び37bはホームポジション46に移動するように命令を受け、これにより、自動給紙ローラー32とラインフィードモータ34との係合は解除される(ステップS2163)。記録媒体は、その先端が1インチの70/720だけ、プリントヘッド100a及び100bの第1のノズル位置を過ぎた位置にくるように送られる(ステップS2164)。このとき、記録媒体は印刷位置にあり、リカバリー処理からリターンする。
【0213】
<4.3 給紙中のプリントヘッドのメインテナンス>
上記説明及び図5A乃至図5Cに示すように、キャリッジ容器37a及び37bの移動は、自動給紙ローラーとラインフィードローラー34とを係合させるようにクラッチ部140を調整するために必要であり、これにより、自動給紙ローラー32を駆動して、プリンタ10に記録媒体を給紙している。従来のプリンタでは、プリントヘッドのクリーニングなど、他の印刷前タスクを行う前に記録媒体の給紙が終了するまで待機していた。このような構成では、カートリッジホルダ37a及び37bは記録媒体を給紙する間、自動給紙ローラー32とラインフィードモータ34とを係合させたり、係合を解除させるためにカートリッジホルダ37a及び37bを必要とする問題が給紙中に発生した場合に備えて、クラッチ部140の側に置かれていた。
【0214】
これに対し、本発明の好適な実施の形態によれば、自動給紙ローラー32が適切な位置から自動給紙を開始したかどうかを判断し、さらに自動給紙動作が順調に進んでいるかどうかを判断する。従って、記録媒体の自動給紙が順調に進んでいる場合には、自動給紙の終了に先立って、プリントヘッドのクリーニングや保全などの印刷前タスクのためにカートリッジホルダ37a及び37bを使用することができる。
【0215】
この機能を達成するためにプリンタ10により実施される具体的な処理は、図21AのステップS2111乃至S2118で示す自動給紙動作により示されており、上述したとおりである。具体的には、自動給紙動作が順調に進んでいると判断された場合、図21AのステップS2113において、カートリッジホルダ37a及び37bはホームポジション46に戻される。処理は、カートリッジホルダ37a及び37bがホームポジション46で止まるのを待つため、ホームポジション46に戻る途中でプリントヘッド100a及び100bを拭く時間ができる。この後、プリントヘッド100a及び100bは、良好な印刷状態を保つために、予備吐出を行うように命令される(図21AのステップS2118)。
【0216】
図22は、プリントジョブにおいてプリンタ10における記録媒体の最初の1枚を給紙する自動給紙処理実行中の、自動給紙ローラー32、カートリッジホルダ37a及び37b、プリントヘッド100a及び100b、及びプリンタドライバ84の機能関係を示すフローチャートである。ステップS2201で処理を開始し、ラインフィードモータの速度を図21Dを参照して上述したようにして選択する。そして、プリントヘッド接続キャップ47a及び47bの状態をチェックして、それらが閉じているか否かを判断する(ステップS2202)。キャップ47a及び47bが閉じていれば、開くように命令する(ステップS2203)。その後、カートリッジホルダ37a及び37bはホームポジション46へ移動するように命令され(ステップS2204)、プリントヘッド100a及び100bは予備吐出するように命令される(ステップS2205)。そして処理はステップS2206に戻り、キャリッジモータ39は、自動給紙ローラー32とラインフィードモータ34とを係合させるためにカートリッジホルダ37a及び37bをクラッチ部140のところに移動するように命令を受ける。カートリッジホルダ37a及び37bは、ステップS2209で示すように、割り込みバックグラウンド処理の監視の下、移動を続ける。
【0217】
ステップS2207で、ラインフィードモータ34は、自動給紙ローラー32を介して記録媒体の給紙を開始する。ここで、給紙は、ステップS2210で示すように割り込みバックグラウンド処理の監視の下、続けられる。ステップS2208では、ステップS2209の割り込みバックグラウンド処理が、カートリッジホルダ37a及び37bがクラッチ部140のところに移動したことを示す割り込みを返すまで待機する。そして、ステップS2211に進み、キャリッジモータ39は、カートリッジホルダ37a及び37bをホームポジション46に移動するように指示され、ステップS2212ではプリントヘッド100a及び100bの拭き取りを監視する割り込みバックグラウンド処理を開始する。この後、自動給紙処理のための早期成功フラグがセットされているか否かを判断する(ステップS2220)。早期成功フラグが「偽」に設定されている場合、ステップS2213に進む。反対に、早期成功フラグが「真」に設定されている場合、ステップS2221乃至S2223に示すように、給紙状態リターンフラグをプリンタドライバ84に送るために、CPU91の処理を中断する。そして、ステップS2213の直前に処理が進む。
【0218】
カートリッジホルダ37a及び37bをホームポジション46に動かし、その間にプリントヘッド100a及び100bの拭き取り動作を行う割り込みバックグラウンド処理(ステップS2212)は、ステップS2213の前にカートリッジホルダ37a及び37bがホームポジション46に達したことを示す割り込みを返す。そして、プリントヘッド100a及び100bの予備吐出がステップS2213で行われる。そしてステップS2214では、記録媒体の給紙を監視する割り込みバックグラウンド処理(ステップS2210)が記録媒体の給紙の終了を示す割り込みを返すまで待機する。
【0219】
記録媒体の給紙が完了したことを示す通知を受け取ると(ステップS2214)、この自動給紙処理の早期成功フラグが過去に検知されたかを判断する(ステップS2215)。早期成功フラグが過去に検知されている場合、この処理からリターンする(ステップS2219)。また、早期成功フラグが過去に検知されていない場合、ステップS2217及びS2218に示すように、給紙状態リターンフラグをプリンタドライバ84に送るために、プリンタ10のCPU91の制御を中断する。そして、ステップS2219においてリターンする。このようにすることにより、給紙が順調に進んでいる場合に、カートリッジホルダ37a及び37bはプリントヘッド100a及び100bの拭き取り及び予備吐出などの印刷前タスクを、記録媒体の給紙と平行して実行することができる。従って、記録媒体給紙の完了から、印刷開始までに必要な時間を、自動給紙処理の信頼性及び遂行に有害な影響を与えることなく、短縮することができる。
【0220】
図23は、プリンタ10における自動給紙処理の実行を機能的に示すフローチャートであり、1枚の記録媒体の排紙に引き続いて記録媒体の次の1枚を給紙する場合について説明したものである。まず、前の記録媒体を排紙するために、ラインフィードモータ34の速度を選択する(ステップS2301)。そして、ラインフィードモータ34は、前の記録媒体の排紙を開始するように命令を受ける(ステップS2302)。この動作により、ステップS2307で示す前の記録媒体の排出を監視する割り込みバックグラウンド処理が始まる。次に、キャリッジモータ39はカートリッジホルダ37a及び37bをホームポジション46に移動するように命令を受け(ステップS2306)、この動作により、カートリッジホルダ37a及び37bの動きを監視する割り込みバックグラウンド処理が始まる。ここで、排紙が終了したことを示す割り込みが、前の記録媒体の排紙を監視する割り込みバックグラウンド処理から返されるまで待機し(ステップS2307)、割り込みを受け取ると、ステップS2304に進む。そして、排紙後に、次の記録媒体を給紙するか否かを判断し(ステップS2304)、しない場合には、ステップS2305でリターンする。
【0221】
排紙の後に、次の記録媒体の給紙を行うのであれば、現在の行送り速度が、自動給紙ローラー32を駆動するためにクラッチ部140と係合するのに必要な速度と同じであるかどうかを判断する(ステップS2308)。行送り速度と同じではない場合、割り込みバックグラウンド処理を開始して、行送り速度が自動給紙ローラー32を駆動するためにクラッチ部140と係合するのに必要な速度になるのを監視する(ステップS2309)。必要な速度になるまでステップS2308を繰り返し、必要な速度になったと判断されると、処理はステップS2310に進む。
【0222】
キャリッジモータ39は、ステップS2310において、自動給紙ローラー32とラインフィードモータ34を係合させるために、カートリッジホルダ37a及び37bをクラッチ部140のところまで移動させるように命令を受ける。これを受けて、ステップS2311に示すようにカートリッジホルダ37a及び37bの動きは、割り込みバックグラウンド処理による制御の下、続けられる。ステップS2311のバックグラウンド処理から割り込みが返されると、ステップS2314において、割り込みバックグラウンド処理の監視をしつつ、記録媒体の給紙を進める。ステップS2312では、ステップS2311の割り込みバックグラウンド処理がカートリッジホルダ37a及び37bがクラッチ部140のところに到着し、自動給紙ローラー32とラインフィードモータ34が係合したことを示す割り込みを返すまで待つ。そして、ステップS2313に進み、キャリッジモータ39はカートリッジホルダ37a及び37bをホームポジション46に移動するように命令を受け、これにより、カートリッジホルダ37a及び37bがホームポジション46へ移動し、その途中に、プリントヘッド100a及び100bの拭き取りが行われるのを監視する割り込みバックグラウンド処理(ステップS2316)が始まる。次に、早期成功フラグが自動給紙処理のために設定されているか否かを判断する(ステップS2315)。早期成功フラグが「偽」に設定されている場合にはステップS2318に進み、「真」に設定されている場合には、ステップS2317,S2320,S2321で示されるように、給紙状態をプリンタドライバ84に送るためにプリンタ10のCPU91による制御を中断する。
【0223】
ステップS2316の、割り込みバックグラウンド処理は、カートリッジホルダ37a及び37bがホームポジション46に到着したことを示す割り込みをステップS2318の前に返す。そしてプリントヘッド100a及び100bの予備吐出をステップS2318で行う。ステップS2319において、記録媒体の給紙を監視する割り込みバックグラウンド処理(ステップS2314)が記録媒体の給紙の完了を示す割り込みを返すまで待機する。記録媒体の給紙完了の通知を受けて(ステップS2319)、この自動給紙処理のための早期成功フラグが過去に検知されたかどうかを判断する(ステップS2322)。検知されている場合にはこの処理からリターンする(ステップS2326)。また、検知されていない場合には、ステップS2324及びS2325に示すように、給紙状態リターンフラグをプリンタドライバ84に送信するために、プリンタ10のCPU91の制御を中断する(ステップS2323)。そして、ステップS2326においてリターンする。
【0224】
このように、図22を参照にして上記説明した記録媒体の1枚目の給紙と同様に、信頼性及び遂行に有害な影響を与えることなく、記録媒体の給紙完了後にプリントヘッドの拭き取り及び予備吐出などの他の印刷前タスクを行うために必要な時間を短縮することができる。
【0225】
<5.0 キャリッジの制御>
このセクションでは、より速いキャリッジモータに対応するための本実施の形態のキャリッジモータ制御について説明する。
【0226】
<5.1 マージン及び方向の制御>
プリンタ10のキャリッジモータ39は、プリントヘッド100a及び100bがより高速に記録媒体を走査することで印刷速度を上げるために、通常のプリンタよりも高速なモータであることが好ましい。しかし、高速モータは動作開始時の速度が一定とならない傾向がある。速度が一定ではないために、画像が波打つなど、画質が落ちることがある。画像の波打ちは、例えば、チャートや表などの無彩色のグラフィック画像や、カラー画像等の連続画で特に目立つものである。しかし、適切にキャリッジモータを制御することで、速度のばらつきの影響を緩和することができる。
【0227】
簡単に説明すると、本実施の形態では、プリントデータの内容を判断し、印刷のためにプリントヘッドによる横方向走査をする際に、端部でクリティカルゾーンを用いる第1の横方向走査、または印刷でクリティカルゾーンを用いない第2の横方向走査のいずれかによりプリントデータの印刷を行うことにより速度のばらつきに対処する。第1または第2の横方向走査処理は、プリントデータに基づいて選択される。クリティカルゾーンとは、横方向走査でプリントヘッドを動かす場合に、安定しない領域のことである。
【0228】
好ましくは、クリティカルゾーンの大きさは速度のばらつきによる印刷の質の低下が明らかに見分けがつくようになる点と、見分けがつかなくなる点との距離に適合するように、プリントヘッドが取り付けられたプリントキャリッジの速度変化に伴う不一定さに基づいて決まる。
【0229】
また、現スキャンのためのプリントデータと前回のスキャンのためのプリントデータが、少なくともクリティカルゾーンにおいて連続したプリントデータであるかどうかを判断することが好ましい。現スキャンのためのプリントデータ及び前回のスキャンのためのプリントデータが連続するプリントデータではない場合、現スキャンでは、前回のスキャン方向と反対方向に第1の横方向走査処理を行って、印刷をする。現スキャンのためのプリントデータ及び前回のスキャンのためのプリントデータが連続するプリントデータである場合、現スキャンでは、前回のスキャン方向と同じ方向に第2の横方向走査処理を行って印刷をする。
【0230】
以下、更に詳しく説明する。図27Aは、孤立スキャンライン300、連続画像301、及びカラー画像302を普通紙の記録媒体303上に印刷する、標準モード(つまり、ドラフトモードや、ベストモードではない)印刷のキャリッジ制御を説明するための概略図である。孤立スキャンライン300は白領域305によって他の部分と分離されているもので、典型的な例としては、プリントヘッド100aまたは100bが印刷可能な幅よりも狭いテキストなどがある。本実施の形態によれば、孤立スキャンライン300は、スキャンマージンを追加することなく、両方向印刷304で印刷される。これらのスキャンラインは通常テキストであるために、速度のばらつきに起因する波打ちや、その他の画質の低下は目立ちにくい。従って、スキャンマージンの無い速い両方向印刷でも、充分に満足できる画質の画像を高速に印刷することができる。
【0231】
連続画像301は、印刷するために複数のスキャンラインを必要とする無彩色の画像であり、スキャンライン間に白領域がない。連続画像301の例としては、プリントヘッド100aまたは100bが印刷可能な幅よりも広い、大きなフォントのテキスト画像や、表及びチャートを含む白黒またはグレースケール画像等がある。
【0232】
連続画像301がマージン無しの両方向印刷で印刷された場合、スキャンライン毎に記録媒体の互いに異なる反対端で、速度にばらつきが起こる。その結果、各スキャンラインの開始における速度のばらつきによる画質のゆがみが、前回及びその次のスキャンラインの垂直方向に隣り合ってゆがんでいない端部近辺で、より目立つことになる。この問題に対応するために、本実施の形態のプリンタ10は、一方向印刷306を用いて連続画像を印刷する。更に、インクを記録媒体303に吐出する前に、モータの不安定動作の影響を無くすことができるように、それぞれのスキャンラインの前にスキャンマージン307を挿入する。印刷は一方向に行われるため、スキャンラインの左側に左マージン307のみを挿入すればよい。
【0233】
上記制御方法の長所は、クリティカルゾーンでの印刷を含む両方向印刷を、速度のばらつきに起因するゆがみが目立ちにくい、孤立(例えばテキスト)スキャンラインの印刷に用いることにより、印刷速度を上げている。クリティカルゾーンでの印刷を含まない一方向印刷は、連続画像のスキャンラインの印刷のために用いられるため、速度のばらつきによるゆがみが最も目立つ領域でのゆがみを緩和できる。
【0234】
カラー画像302については、図7のプリントヘッド62などのカラープリントヘッドにより記録されるそれぞれのスキャンラインの幅は23画素であり、これに対して、黒プリントヘッドでは127画素、カラープリントヘッドの黒ノズルでは63画素である。従って、孤立または無彩色の連続画像を印刷する場合に比べて、カラープリントヘッドである大きさのカラー画像を印刷するためには、プリントヘッド100a及び100bで走査する回数がより多く必要である。一方向印刷では、非常に高画質の出力が望まれているのでなければ、このような印刷動作の速度が許容される以上に遅くなることもある。従って、カラー画像302を印刷する場合にも、両方向印刷309が行われる。両方向印刷が行われるために、プリントヘッド100a及び100bによる順方向(左から右方向)への走査前に左スキャンマージン307を挿入し、逆方向(右から左方向)への走査前に、右スキャンマージン310を挿入する。
【0235】
上記で説明したように、図27Aに示すスキャンマージンと走査方向の組み合わせは普通紙の記録媒体303上に標準モード印刷をする場合に適用可能である。他の印刷方向は、印刷モード、記録媒体のタイプ、プリントヘッドの構成、エラー拡散モードの異なる組み合わせに応じて得ることができる。これら異なる組み合わせおよびその結果得られる印刷方向は、図27C乃至図27Gを参照してあとで詳しく説明する。これらの異なる組み合わせを用いて連続画像及びカラー画像が記録される場合、一方向印刷の場合はスキャンマージン307をそれぞれのスキャンラインの前に挿入し、両方向印刷の場合は、スキャンマージン307及び310をそれぞれのスキャンラインの前に挿入する(マージン307は順方向スキャンラインの前に、マージン310は逆方向のスキャンラインの前に挿入される)ことが好ましい。
【0236】
図27Bは、スキャンライン内に無彩色連続画像部分及びカラー画像部分の両方を含む場合のキャリッジ方向制御を説明する図である。図27Bに示すように、無彩色連続画像部分は一方向に印刷することが好ましく、カラー画像部分は、両方向で印刷されることが好ましい。連続画像部分を一方向で印刷することにより、キャリッジモータの速度がのばらつきに起因する画像のゆがみが目立たなくなる。
【0237】
図7のプリントヘッド62のようなプリントヘッドが用いられた場合、カラー画像部分ではプリントヘッドの各パスでカラーノズル23本が用いられ、無彩色部分では黒ノズル46本が用いられる。その結果、無彩色の領域のパス数はカラー領域のパス数よりも少なくて済むため、無彩色の領域を一方向に印刷することによるスピードダウンを吸収することができる。
【0238】
図27C乃至図27Gは、一連のプリントモードテーブルを示し、プリントモードテーブルは、プリントモード、記録媒体のタイプ、プリントヘッドの構成、及びエラー拡散モードの異なる組み合わせを用いて画像を印刷するための印刷方式(案)を含む。より詳しくは、図27Cは高速エラー拡散のプリントモードテーブルであり、プリントヘッド100a及び100bで画像を印刷する時にプリンタ10で用いる複数の印刷方式を含む。図27Cは、それぞれの印刷方式について、6つの要素を示す。それらは、(1)印刷する画像のラスタ解像度、(2)印刷する画像の印刷解像度、(3)それぞれのスキャンラインを走査するために、プリントヘッド100a及び100bが通過する回数及び方向、(4)自動給紙(ASF)速度、(5)行送り(LF)速度、(6)カートリッジホルダ(CR)の速度である。
【0239】
これら6つの要因は、画像の解像度を決定する、例えば、ドラフトモード、標準モード、高画質モードなどのプリントモードに応じて印刷方式毎に異なる。また、スタンダードモードまたは写真モード等の画質のモードによって異なり、さらに、普通、特殊1または特殊2等、記録媒体のタイプによっても異なる。図27Dに示す速度特定テーブルは、それぞれのモードの自動給紙(ASF)速度、行送り(LF)速度、及びカートリッジホルダ(CR)の速度について、一秒あたりのパルス数を定義している。図27Eに示す記録媒体タイプテーブルは、普通、特殊1及び特殊2とに区分される記録媒体のタイプを提供している。例えば、「普通」カテゴリーは普通紙、バブルジェット紙、パンフレット紙、カードを含む。「特殊1」カテゴリーは高解像度紙(HR−101)を含み、「特殊2」カテゴリーはその他の記録媒体のタイプを含む。
【0240】
図27Cに示す高速エラー拡散のプリントモードテーブルでは、プリントモード及び記録媒体の種類の様々な組み合わせに応じて位置合わせを行う、18の異なる印刷方式に分かれている。例えば、標準プリントモードおよびスタンダード画質モードで特殊1の高解像度紙の使用を求める、位置合わせを行うプリントジョブがリクエストされた場合、印刷方式は6つの要因について以下の通り定義する。すなわち、(1)ラスタ解像度は360×360dpi、(2)印刷解像度は720×720dpi、(3)各スキャンラインを走査するためにプリントヘッド100a及び100bによる2回の通過を必要とし、両方向走査を行い、(4)ASF速度は通常に設定され、(5)LF速度は通常に設定され、(6)カートリッジホルダCR速度は低速に設定される。図27Cに示される印刷方式いくつかは定義により使用することができない。そのような印刷方式には、例えば、写真画質のものをドラフトモードで印刷したり、特殊記録媒体をドラフトモードで用いるといったものがある。
【0241】
ある印刷方式は、図27Fに示すサブ印刷方式(”1pass_U/B*1”)の使用を求める。このサブ印刷方式では、1回の通過で各スキャンラインの印刷を行い、操作方向及び使用されるノズルのパターンはプリンタ10に搭載されたプリントヘッド100a及び100bのタイプ及び現スキャンラインで印刷される画像のタイプにより決定される。すでに説明したように、プリンタ10に搭載されたプリントヘッド100a及び100bのタイプはカラーインクプリントヘッド(「BC−21e」)、及び/または黒インクプリントヘッド(「BC−23」)から選択された、2つのプリントヘッドのタイプを含むことができる。スキャンラインで印刷される画像のタイプは、テキストを印刷するときに用いられる「孤立黒」か、グラフィック画像などの黒画像の連続する部分を印刷する時に使用される「連続黒」か、カラー印刷の時に用いられる「カラー」である。
【0242】
例えば、標準解像度モード、スタンダード画質モードで、普通紙を用いた印刷リクエストのための印刷方式は、1pass_U/B*1サブ印刷方式を示している。プリンタ10がカラーインクプリントヘッドを1つと、黒インクプリントヘッドを1つプリントヘッド100a及び100bとして有し、現スキャンライン上で印刷する画像が連続する黒のグラフィック画像である場合、そのスキャンラインをプリントヘッド100a及び100bでプリントするためには1回の通過が求められる。更に、カラーインクプリントヘッドのカラーノズルが全く使用されない場合、カラーインクプリントヘッドの黒インク用の63のノズルが一方向のみの印刷に使用され、黒インクプリントヘッドの127のノズルが順方向の印刷時にのみ使用される(一方向の走査は、順方向でも逆方向でも起こり得る)。従って、通過回数、印刷方向、及びノズルの選択は、質のよい画像を確実に印刷するために、プリンタ10に搭載されたプリントヘッド100a及び100bのタイプ、現スキャンライン上に印刷する画像のタイプ、及び現プリントジョブでリクエストされたプリントモード及び記録媒体のタイプに基づいて印刷方式の一部として選択される。
【0243】
本実施の形態の特徴は図27Fに特によく現れている。具体的には、孤立黒は、両方向で印刷され、連続黒は一方向で印刷され(プリントヘッドBC−21eとBC−23の組み合わせ)、そしてカラーは両方向で印刷される。
【0244】
図27Gに通常エラー拡散のプリントモードテーブルを示す。このテーブルもそれぞれの印刷方式について6つの要因を提供している。すなわち、(1)印刷する画像のラスタ解像度、(2)印刷する画像の印刷解像度、(3)各スキャンラインを走査するために、プリントヘッド100a及び100bのパス数及び方向、(4)自動給紙の速度(ASF)速度、(5)行送り(LF)速度、(6)カートリッジホルダ(CR)である。
【0245】
これら6つの要因は、画像の解像度を決定する、例えば、ドラフトモード、スタンダードモード、高画質モードなどのプリントモードに応じて印刷方式毎に異なる。また、スタンダードモードまたは写真モード等の画質のモードによって異なり、さらに、普通紙1、特殊1または特殊2等、記録媒体のタイプによっても異なる。従って、位置合わせを行わない印刷のための印刷方式は、プリントモード及び記録媒体のタイプの様々な組み合わせにより決定される。
【0246】
図28は、印刷処理のための本実施の形態におけるプリントヘッドの動きを説明する図である。図28は、キャリッジの位置と、3スキャンライン311,312,313のスキャンマージンを示している。以下の説明では、スキャンライン311を前のスキャンライン、スキャンライン312を現スキャンライン、そしてスキャンライン313を次のスキャンラインと呼ぶ。
【0247】
前のスキャンライン311では、プリントヘッド100aの印刷領域316として左端[A](A_L1)314及び右端[A](A_R1)315、プリントヘッド100bの印刷領域319として左端[B](B_L1)317及び右端[B](B_R1)318、まとめられた印刷領域として領域左320と領域右321、そして加速領域322及び減速領域323が示されている。現スキャンライン312では、プリントヘッド100aの印刷領域326として左端[A](A_L2)324及び右端[A](A_R2)325、プリントヘッド100bの印刷領域329として左端[B](B_L2)327及び右端[B](B_R2)328、まとめられた印刷領域として領域左330と領域右331、そして加速領域332及び減速領域333が示されている。更に、前のスキャンライン313は、プリントヘッド100aの印刷領域336として左端[A](A_L3)334及び右端[A](A_R3)335、プリントヘッド100bの印刷領域339として左端[B](B_L3)337及び右端[B](B_R3)338、まとめられた印刷領域として領域左340と領域右341、そして加速領域342が示されている。
【0248】
図28に示す位置の値は、左から右へと大きくなっているので、小さい値の位置ほど、大きい値の位置よりも左側にあることになる。
【0249】
加速領域及び減速領域は、キャリッジモータ39がスキャン速度まで加速またはスキャン速度から減速している間にプリントヘッド100a及び100が移動する距離を示す。これらの距離は、キャリッジモータ39の25ステップ分や、16mmといった定数で表現することが好ましい。
【0250】
図28で示される印刷動作は、スキャンマージンを用いた両方向印刷の例を示している。詳しくは、プリントヘッド100a及び100bが前のスキャンライン311を印刷し終えた時、プリントヘッドは領域右321に位置している。その後プリントヘッドは領域右321から現スキャン行312の領域右331の右側まで、スキャンマージン310と加速領域332を足した分だけ動き、現スキャンライン312の印刷開始に備える。現スキャンライン312の印刷を終えた時、プリントヘッドは領域左330に位置している。プリントヘッドは領域左330から次のスキャンライン313の領域左340の左側まで、スキャンマージン307と加速領域342を足した分だけ動き、次のスキャンライン313の印刷開始に備える。
【0251】
図28に示す印刷が一方向印刷である場合、プリントヘッド100a及び100bは前のスキャンライン311の印刷終了点である領域右321から現スキャンライン312の領域左330の左まで、スキャンマージン307と加速領域332を足した分だけ動く(図の左側に当たる)。
【0252】
次に、プリントヘッド100a及び100bを動かす場合のプリンタドライバ84及びプリンタ制御部110(つまり、プリンタのファームウエア)の動作を説明する。
【0253】
(5.1.1 プリンタドライバの初期動作)
図29は、本実施の形態においてプリンタドライバにより発行されるSKIPコマンドを説明するためのフローチャートである。この機能は、図20のステップS2008により呼び出され、垂直方向の印刷位置をスキップパラメータにより特定されるラスターラインの数分だけ記録媒体を送るために用いられる。引数0のSKIPコマンドは、プリンタ10にセクション8.0で後述するノズル数変更予備吐出処理を行う指示を出すために用いられる。ある孤立スキャンラインから別の孤立スキャンラインに、例えば図27Aの白領域305を越えて移るためには、スキップ引数はプリントヘッド100a及び100bの印刷幅よりも広い距離に対応する。
【0254】
更に詳しく説明すると、まずステップS2901でスキップ引数が0行の行送りを指示しているかどうかを判断する。もしスキップ引数が0であれば、処理はステップS2902に進み、ノズル数変更予備吐出リクエストがプリンタ制御部110に送られる。この動作については、セクション9.0で詳細に後述する。引数が0でなければ、未実行のノズル数変更予備吐出リクエストがステップS2903で再送信され、ステップS2904で記録媒体はスキップラスター行分だけ行送りされる。
【0255】
適切なSKIP処理を終えると、PRINTコマンドがプリンタ84により発行される(図20参照)。図30は、本実施の形態におけるPRINTコマンドを説明するためのフローチャートである。
【0256】
ステップS3001において、領域左330を、左端[A]324及び左端[B]327のいずれか小さい方と等しくすることにより、現スキャンライン312の領域左330を決定する。同様にステップS3002において、領域右331を右端[A]325及び右端[B]328のいずれか大きい方と等しくすることにより、現スキャンライン312の領域右331を決定する。
【0257】
ステップS3003では、領域左340を左端[A]334及び左端[B]337のいずれか小さい方と等しくすることにより、次のスキャンライン313の領域左340を決定する。同様にステップS3004において、領域右341を右端[A]335及び右端[B]338のいずれか大きい方と等しくすることにより、次のスキャンライン313の領域右341を決定する。
【0258】
ステップS3001乃至S3004で使用される左端及び右端の値はEDGEコマンドによって定義されるが、これについては図32を参照にして後で詳しく説明する。
【0259】
ステップS3005では、印刷方向、速度、スキャンマージン、自動トリガー遅延などの印刷情報が印刷動作を行うために格納される。印刷方向の設定については図31を参照して、スキャンマージンの設定については図33及び図34を参照して、また、自動トリガー遅延の設定については図35を参照して、詳しく後述する。
【0260】
ステップS3006では、プリンタドライバ84はプリンタ制御部110に対して、キャリッジタスクを初期化するように指示する。この動作については、図36乃至図38を参照して後で詳しく説明する。キャリッジタスクは記録媒体に対するをプリントヘッドの位置決め及び、走査を規定するもので、この間、プリントヘッドからインクが吐出される。キャリッジタスクの初期化後、ステップS3007においてプリンタ制御部110が必要な処理及びプリンタドライバ84との通信を行えるように2ms間待機する。そして、処理は図20へリターンする。
【0261】
図31は、本実施の形態においてプリンタドライバにより発行されるDIRECTIONコマンドを説明するためのフローチャートである。ステップS3101において、DIRECTIONコマンドが現スキャンライン312のために呼び出されたかどうかを判断し、その場合には、現走査のための方向の情報をDirectionとして設定する。現スキャンライン312のためではない場合、ステップS3103においてそのDIRECTIONコマンドが次のスキャンライン313のために呼び出されたかどうかを判断し、その場合、次のスキャンラインのための方向の情報をNextDirectionとして設定する。
【0262】
Direction及びNextDirectionは、順方向及び逆方向の走査を示す値を保持することができる。Direction及びNextDirectionのための値を判断するには、プリンタドライバ84はまず、一方向印刷と両方向印刷のどちらが行われているかを判断する。一方向印刷または両方向印刷は、セクション6.0で説明するように、プリントモード、記録媒体のタイプ、画像のタイプ、プリントヘッドの構成、プリントヘッドのアライメントに基づいて判断される。一例では、図27Aを参照して上述したように、スタンダード画質プリントモードで普通紙に印刷する場合、連続画像には一方向印刷が用いられ、テキスト及びカラー画像に対しては両方向印刷が用いられる。
【0263】
一方向印刷が行われている場合、Direction及びNextDirectionは順方向印刷に設定される。また、両方向印刷が行われている場合、Direction及びNextDirectionは、現スキャンライン312は前のスキャンライン311の方向の反対方向、次のスキャンライン313は現スキャンライン312の反対方向となるように設定される。
【0264】
図32は、本実施の形態においてプリンタドライバにより発行されるEDGEコマンドを説明するフローチャートである。EDGEコマンドは、現スキャンライン及び次のスキャンラインの両方について、コラム位置単位で印刷位置の左端及び右端を特定する。プリンタドライバ84は、入力したプリントデータに基づいてこれらの値を計算することが好ましい。
【0265】
ステップS3201において、EDGEコマンドがプリントヘッド100a(プリントヘッドA)のために呼び出されたか、それともプリントヘッド100b(プリントヘッドB)のために呼び出されたかを判断する。プリントヘッドAのために呼び出された場合にはステップS3202に進み、EDGEが現スキャンライン312のために呼び出されたか否かを判断し、その場合はステップS3203で現スキャンライン312の左端[A]324及び右端[A]325を設定する。そうでなければステップS3204においてEDGEが次のスキャンライン313のために呼び出されたかどうかを判断する。その場合、ステップS3205で次のスキャンライン313のための左端[A]334及び右端[A]335を設定する。
【0266】
また、EDGEがプリントヘッドBのために呼び出された場合、同様のステップS3206乃至ステップS3209により、現スキャンライン312のための左端[B]327及び右端[B]328、次のスキャンライン313のための左端[B]337及び右端[B]338を設定する。左端及び右端の値は、次のセクション5.1.2で詳述するように、プリンタ制御部110がプリントヘッド100a及び100bの動きを制御するために用いられる。
【0267】
図33は、本実施の形態においてプリンタドライバによるスキャンマージンの決定を説明するフローチャートである。ステップS3301において、プリントモードがチェックされる。次のステップS3302では、プリントモードが連続またはカラーである場合に、スキャンマージンが必要であるかどうかを判断する。そして、図31で決定した現スキャンライン312のDirectionが順方向である場合、ステップS3303からステップS3304へ進み、順方向のためのスキャンマージン307が設定される。また、Directionが逆方向を示す場合、ステップS3303からステップS3305に進み、逆方向走査のためのスキャンマージン310が設定される。
【0268】
ステップS3302で、孤立スキャンラインの印刷時などのようにスキャンマージンが必要ではないと判断されると、ステップS3302からステップS3306に進む。そして図31で決定した現スキャンライン312のDirectionが順方向である場合、ステップS3306からステップS3307に進み、順方向のスキャンマージンとして0(マージン無し)が設定される。また、Directionが逆方向を示す場合は、ステップS3306からステップS3308に進み、逆方向のスキャンマージンとして0(マージン無し)が設定される。
【0269】
図34は、本実施の形態においてプリンタドライバにより発行されるNEXT_MARGINコマンドを説明するためのフローチャートである。NEXT_MARGINコマンドは、次のスキャンマージンの値をScanMarginLeftまたはScanMarginRightの適切な方に格納する。ScanMarginleftは、スキャンラインに挿入される次のスキャンマージンが順方向走査のための左スキャンマージンである場合に用いられ、ScanMarginRightは、次のスキャンマージンが逆方向走査のための右スキャンマージンである場合に用いられる。ステップS3401では、次のスキャンライン313が順方向が逆方向かを判断し、判断に応じてステップS3402又はS3403でScanMarginLeftまたはScanMarginRightを格納する。
【0270】
図35は、本実施の形態においてプリンタドライバにより発行されるAT_DELAY(自動遅延)コマンドを説明するフローチャートである。自動遅延は、以下に図39a、図39b、図40乃至図42を参照して説明するように、逆方向の印刷時に起こり得るサテライティング(後述)を緩和するために用いられる。このコマンドは、走査方向を順方向または逆方向に特定し、10μs単位で最大2550μsを最大として自動トリガー遅延時間を特定することにより、自動トリガー遅延を設定する。ステップS3501では、次のスキャンマージンが順方向のためのものか逆方向のためのものかを判断し、自動遅延のための値をAutoTriggerDelayLeftまたはAutoTriggerDelayRightにそれぞれステップS3502又はS3503で格納する。
【0271】
(5.1.2 プリント制御動作)
図36は、本実施の形態においてプリンタ制御部により実行されるキャリッジタスク244を説明するフローチャートである。キャリッジタスク244とプリンタ10におけるその他のタスク間の通信は、図18を参照して上述した。プリンタ10では、キャリッジタスク244がプリンタ10で印刷が行われている間にキャリッジ41に沿ったプリントヘッド100a及び100bの走査を制御する。
【0272】
ステップS3601において、キャリッジタスク244はプリンタドライバ84が移動コマンドまたはプリントコマンドをプリンタ10に送ったか否かを判断する。移動コマンドもプリントコマンドも送られていない場合、図18のエンジンコントロールタスク241にリターンする。移動コマンドを受信していた場合、ステップS3602でキャリッジタスク244は移動コマンドの引数に従って移動動作を実行し、その後、図18のエンジンコントロールタスク241にリターンする。プリントコマンドを受信していた場合、印刷処理のためにステップS3604に移り、ステップS3605で処理が開始される。
【0273】
ステップS3605では、キャリッジタスク244はプリントヘッド100a及び100bの動きがスキャンラインの終わりで止まるまで待機する。その後ステップS3607に進み、スキャン予備吐出処理を行うが、この処理についてはセクション9.0で詳細に後述する。
【0274】
スキャン予備吐出処理を終えるとステップS3608に進み、図31で説明したようにDIRECTIONコマンドを介してプリンタドライバ84により設定されたDirectionを調べることにより、現スキャンライン312の走査方向を判断する。走査方向が順方向である場合はステップS3609に進み、走査方向が逆方向である場合はステップS3612に進む。
【0275】
走査方向が順方向である場合、ステップS3609において現スキャンライン312の領域左330からCrStartPosLを算出する。CrStartPosLは記録媒体の次の順方向の走査のためのプリントヘッドのスタート位置を示す。ステップS3610において、キャリッジタスク244はプリントヘッドの現在位置CrPositionがCrStartPosLからキャリッジモータ39が加速する距離であるRampUpを差し引いた値以下であるかどうかを判断する。そうではない場合、プリントヘッドはCrStartPosLからRampUpを差し引いた値の右に位置している。従って、キャリッジタスク244はステップS3611において、プリントヘッドをCrstartPosLからRampUpを差し引いた値に対応する位置まで左に動かす。このように、プリントヘッドをスキャンラインのスタート位置まで動かすので、処理はステップS3607に戻り、走査が開始される前に必要な予備吐出処理を実行する。ステップS3607乃至S3611はCrPositionがCrStartPosLからRampUpを差し引いた値以下になるまで繰り返され、そうなった場合、プリントヘッドは順方向スキャンラインのスタート位置にあることになる。そして処理はステップS3615に進む。
【0276】
印刷方向が逆方向である場合、ステップS3612において現スキャンライン312の領域右331からCrStartPosRを算出する。CrStartPosRは記録媒体の次の逆方向の走査のためのプリントヘッドのスタート位置を示す。ステップS3613において、キャリッジタスク244はプリントヘッドの現在位置CrPositionがCrStartPosRにキャリッジモータ39が加速する距離であるRampUpを加えた値以上であるかどうかを判断する。そうではない場合、プリントヘッドはCrStartPosLとRampUpを加算した値の左に位置している。従って、キャリッジタスク244はステップS3614において、プリントヘッドをCrstartPosRにRampUpを加えた値に対応する位置まで右に動かす。このように、プリントヘッドをスキャンラインのスタート位置まで動かすので、処理はステップS3607に戻り、走査が開始される前に必要な予備吐出処理を実行する。ステップS3607、S3608、S3612乃至S3614はCrPositionがCrStartPosRにRampUpを加えた値以上になるまで繰り返され、そうなった場合、プリントヘッドは逆方向スキャンラインのスタート位置にあることになる。そして処理はステップS3615に進む。
【0277】
ステップS3615において、印刷情報を取り出す。この印刷情報は、図30に示すように、プリンタドライバ84からのPRINTコマンドに応じてプリンタ制御部110により格納されている。自動トリガー遅延、インク滴のサイズ、ヒートパルス制御、及びバッファ制御などの印刷情報の一部は、ステップS3616においてプリンタ制御部110で実行される熱制御ハンドラ254などの別の対応するタスクに送られる。
【0278】
ステップS3617において、キャリッジ制御パラメータが準備される。この制御パラメータは、キャリッジモータ39を制御するキャリッジモータドライバ39aを制御するために用いられる。制御パラメータの例としては、制御方法(半分/全部/4分の1)、RampUpテーブル、RampDownテーブル、RampUpSteps、ConstantSteps、RampDownSteps、CrHeatStartPosition、CrHeatEndCount、CrScanEndPosition、CrStopPositionなどを含む。
【0279】
キャリッジモータはステップS3618で動作を開始し、プリンタ制御部110により制御される自動トリガー機構により、プリントヘッド100a及び100bはキャリッジモータ29により記録媒体を走査しながら、インクを吐出する。このトリガー機構については、図40乃至図42を参照して、後で詳細に説明する。
【0280】
キャリッジモータの動作が開始すると、ステップS3619で両方向印刷または一方向印刷のいずれが用いられているかを判断する。標準モードでの印刷の場合、印刷のタイプがプリントモード(例えば、孤立、連続、またはカラー)に基づいて判断される。図27C乃至27Gを参照して上述したように、印刷のタイプは記録媒体のタイプ、プリントヘッドの構成、エラー拡散モードなどにも依存する。両方向印刷が用いられている場合、処理は図37に示すキャリッジスキャン制御1を行うためにステップS3620に進む。一方向印刷の場合、図38に示すキャリッジスキャン制御2を行うためにステップS3621に進む。
【0281】
図37は、図36のキャリッジタスク244により呼び出される、両方向印刷のためのキャリッジスキャン制御1を説明するためのフローチャートである。
【0282】
キャリッジタスク244はステップS3701において、現走査のDirectionが順方向(左)で次の走査のためのNextDirectionが逆方向(右)であるかどうかを判断する。そうである場合、ステップS3702乃至S3707を実行する。そうでなければ、キャリッジタスク244はステップS3708において、現走査のDirectionが逆方向(右)で次の走査のためのNextDirectionが順方向(左)であるかどうかを判断する。そうである場合、ステップS3709乃至S3714を実行する。
【0283】
現走査が順方向の場合、次のスキャンライン313のためのCrStartPosRを、次のスキャンライン313の領域右341を基にしてステップS3702で算出する。ステップS3703において、CrStartPosRと、ScanMarginRightとRampUpとを加算することによりTempNewPosを算出する。ScanMarginRightはNEXT_MARGINコマンド(図34参照)に応じてプリンタ制御部110により算出された情報の一部であることが好ましい。マージンが次の逆方向走査の前に挿入される場合、ScanMarginRightはマージンのサイズを保持する。マージンを挿入しない場合、ScanMarginRightはマージン無し(0)を示す。
【0284】
ステップS3704で、キャリッジタスク244はTempNewPosが、プリントヘッド100a及び100bの右方向の最大移動範囲であるMaxPosよりも小さいかどうかを判断する。TempNewPosがMaxPosよりも小さくない場合、TempNewPosはMaxPosより右側の、移動範囲外であることになる。従って、ステップS3705においてTempNewPosはMaxPosと同じ値に設定される。ステップS3704及びS3705の後、TempNewPosは、スキャンマージン及びモータ加速距離を考慮した、次の(逆方向の)スキャンラインの開始位置と同じになる。
【0285】
次に、ステップS3706で、CrScanEndPosがTempNewPosよりも小さいかどうかを判断する。CrScanEndPosは、現(順方向の)スキャンライン印刷終了後の、プリントヘッド100a及び100bの位置である。従って、CrScanEndPosがTempNewPosよりも小さい場合、次の逆方向のスキャンラインが始まる位置よりも手前で現順方向のスキャンラインが終わったことになる。この場合、ステップS3707において、CrScanEndPosをTempNewPosに更新することにより、次のスキャンラインの開始位置まで現スキャンラインを延長する。
【0286】
また、現スキャンラインが逆方向の場合、次のスキャンライン313のための領域左340から、次のスキャンライン313のCrScanStartPosLをステップS3709において算出する。そしてステップS3710においてCrStartPosLからScanMarginLeftおよびRampUpを差し引くことにより、TempNewPosを算出する。ScanMarginLeftはNEXT_MARGINコマンド(図34参照)に応じてプリンタ制御部110により計算された情報の一部であることが好ましい。マージンを次の順方向走査の前に挿入する場合、ScanMarginLeftはマージンのサイズを保持し、マージンを挿入しない場合、ScanMarginLeftはマージン無し(0)を示す。
【0287】
ステップS3711で、キャリッジタスク244はTempNewPosが、プリントヘッド100a及び100bの左方向の最大移動範囲であるMinPosよりも大きいかどうかを判断する。TempNewPosがMinPosよりも大きくない場合、TempNewPosはMinPosより左側の、移動範囲外であることになる。従って、ステップS3712においてTempNewPosは MinPosと同じ値に設定される。ステップS3711及びS3712の後、TempNewPosは、スキャンマージン及びモータ加速距離を考慮した、次の(順方向の)スキャンラインの開始位置と同じになる。
【0288】
次に、ステップS3713で、CrScanEndPosがTempNewPosよりも大きいかどうかを判断する。CrScanEndPosは、現(逆方向の)スキャンラインの印刷終了後の、プリントヘッド100a及び100bの位置である。従って、CrScanEndPosがTempNewPosよりも大きい場合、次の順方向のスキャンラインが始まる位置よりも手前で現逆方向のスキャンラインが終わったことになる。この場合、ステップS3714において、CrScanEndPosをTempNewPosに更新することにより、次のスキャンラインの開始位置まで現スキャンラインを延長する。
【0289】
図38は、図36のキャリッジタスク244により呼び出される、一方向印刷のためのキャリッジスキャン制御2を説明するためのフローチャートである。
【0290】
ステップS3801においてキャリッジタスク244は、現走査のDirectionが順方向(左)で次の走査のためのNextDirectionが順方向(左)であるかどうかを判断する。その場合、ステップS3802乃至S3807を実行する。そうでなければ、キャリッジタスク244はステップS3808において、現走査のDirectionが逆方向(右)で次の走査のためのNextDirectionが逆方向(右)であるかどうかを判断する。その場合、ステップS3809乃至S3814を実行する。
【0291】
現走査が順方向の場合、次のスキャンライン313のためのCrStartPosLを、次のスキャンライン313の領域左340を基にしてステップS3802で算出する。ステップS3803において、CrStartPosLから、ScanMarginLeftとRampUpとを差し引くことによりTempNewPosを算出する。ScanMarginLeftはNEXT_MARGINコマンド(図34参照)に応じてプリンタ制御部110により算出されることが好ましい。マージンが次の走査の前に挿入される場合、ScanMarginLeftはマージンのサイズを保持する。マージンを挿入しない場合、ScanMarginLeftはマージン無し(0)を示す。
【0292】
ステップS3804で、キャリッジタスク244はTempNewPosが、プリントヘッド100a及び100bの左方向の最大移動範囲であるMinPosよりも大きいかどうかを判断する。TempNewPosがMinPosよりも大きくない場合、TempNewPosはMaxPosより左側の、移動範囲外であることになる。従って、ステップS3805においてTempNewPosはMinPosと同じ値に設定される。ステップS3804及びS3805の後、TempNewPosは、スキャンマージン及びモータ加速距離を考慮した、次の(順方向の)スキャンラインの開始位置と同じになる。
【0293】
次に、ステップS3806で、キャリッジ制御は、現スキャンラインが終了するまで待つ。そしてステップS3807において、キャリッジ制御はプリントヘッド100a及び100bを次の順方向のスキャンライン開始のために、TempNewPosに動かし、図36にリターンする。
【0294】
また逆方向への走査の場合、次のスキャンライン313のための領域右341から、次のスキャンライン313のCrScanStartPosRをステップS3809において算出する。そしてステップS3810においてCrStartPosRに、ScanMarginRightおよびRampUpを加えることにより、TempNewPosを算出する。ScanMarginRightはNEXT_MARGINコマンドに応じてプリンタ制御部110により計算されることが好ましい(図34参照)。マージンを次の順方向走査の前に挿入する場合、ScanMarginRightはマージンのサイズを保持し、マージンを挿入しない場合、ScanMarginRightはマージン無し(0)を示す。
【0295】
ステップS3811でキャリッジタスク244はTempNewPosが、プリントヘッド100a及び100bの右方向の最大移動範囲であるMaxPosよりも小さいかどうかを判断する。TempNewPosがMaxPosよりも小さくない場合、TempNewPosはMaxPosより右側の、移動範囲外であることになる。従って、ステップS3812においてTempNewPosは MaxPosと同じ値に設定される。ステップS3811及びS3812の後、TempNewPosは、スキャンマージン及びモータ加速距離を考慮した、次の(逆方向の)スキャンラインの開始位置と同じになる。
【0296】
次に、ステップS3813で、キャリッジ制御は、現スキャンラインが終了するまで待つ。そしてステップS3814において、キャリッジ制御はプリントヘッド100a及び100bを次の逆方向のスキャンライン開始のために、TempNewPosに動かし、図36にリターンする。
【0297】
<5.2 自動インク吐出及びサテライティング制御>
図39a及び図39bは、本実施の形態におけるサテライティング制御を示す図である。図39aはサテライティング、具体的には、プリントヘッドで記録媒体を高速で走査する場合に、インクをプリントヘッドから吐出することで起こる可能性のある画質低下を示す図である。一画素を印刷するためにインクジェットプリントヘッドから主要なインク滴が吐出されるとき、小さいサテライト滴も一緒に吐出されることがしばしばある。インクジェットプリントヘッドは、プリントヘッドが記録媒体を順方向にスキャンする場合に、サテライト滴が主要インク滴と重なるように、記録媒体に対してわずかに傾けるのが普通である。しかし、逆方向にスキャンする場合、この傾きによりサテライト滴が主要インク滴の端近くまたは完全に離れた場所に付着する傾向があり、結果として、逆方向走査の場合、小さいサテライト滴は記録されたそれぞれの画素の隣りに付着することになる。
【0298】
図39aは、順方向走査中にインクの吐出により印刷された画素351と、逆方向走査中にインクの吐出により印刷された画素352を示す。画素352の横にはサテライト滴が付着し、縦並び方向の画素の左側にギザギザ355を作っている。ギザギザの左辺355は、特に、連続画(無彩色のグラフィック画像)においては、明らかに画質を低下させることになる。
【0299】
図39bは、サテライティングによる画質低下を軽減するための、本実施の形態の印刷された画素を示す。
【0300】
サテライティングによる画質低下は、プリントデータに基づくプリントヘッドの順方向及び逆方向の往復走査による記録媒体上への順方向及び逆方向印刷について、対処することができる。本実施の形態によれば、プリントデータに基づいてプリントヘッドの正逆往復走査の一方向で印刷し、正逆往復走査のもう一方の方向では、プリントデータが前述の方向で印刷された垂直方向に一致する画素の位置から横方向に所定距離ずれるように、プリントデータを印刷する。この所定距離は、印刷された画素の大きさの1/4であることが好ましい。横方向にシフトすることにより、特に連続画像データを印刷する際に、サテライティングの影響をマスクすることができる。
【0301】
図39bにおいて、逆方向走査中に印刷された画素362は、順方向走査中に印刷された画素361から、1/4画素分の遅延として示されているAT_DELAY360分だけオフセットされている。その結果、印刷された画素列のばらつきは、左側365と右側366に分離される。オフセットすることによりサテライト滴をマスクする効果があり、ばらつきが目立ちにくいように描画される。
【0302】
上述の通り、サテライティングは連続画像データの場合に目立ちやすい。従って、本発明の実施の形態においては、上記のような画素のシフトは、連続画像を逆方向走査で印刷するときに限って行う。そして、画素シフトは孤立の(例えばテキスト)画像や、カラー画像に対しては行わないことが好ましい。
【0303】
図40乃至図42は、自動インク吐出で画素を逆方向に印刷する際に遅延を行う場合の、プリントヘッドによる記録媒体スキャン中の自動インク吐出を説明するための図である。プリンタドライバ84からのAT_DELAYコマンドは、逆方向のスキャンラインに対しては、画素の大きさの1/4に対応する自動トリガー遅延を設定し、順方向のスキャンラインに対しては、自動トリガー遅延0を設定する。
【0304】
図40は、本実施の形態において、プリンタ制御部により実施されるキャリッジモータの動作開始を説明するためのフローチャートである。図36に示すキャリッジタスク処理のステップS3618からCR MOTOR STARTコマンドを受け取る。これに応じて、キャリッジモータ割り込みのためのハードウエアのタイマをステップS4001でスタートさせる。このハードウエアタイマは図41及び図42を参照して後述するように、キャリッジモータ制御をするために使用される。キャリッジモータドライバ39aはステップS4002で動作を開始し、ステップS4003でルックアップテーブルを更新する。このルックアップテーブルは、時間を定義したり、キャリッジモータを駆動するための位相電流モードを設定するといったキャリッジモータ制御中に使用される。そして図36にリターンする。
【0305】
図41は、本実施の形態において、プリンタ制御部により実施されるキャリッジ割り込み処理を説明するためのフローチャートである。この処理は、図40のステップS4001で開始される。ステップS4101において割り込みが起きると、キャリッジ割り込み処理S4102に入る。
【0306】
図41の割り込み処理では、ステップS4103において、モータ39が加速中であるかどうかを判断する。モータ39が加速中である場合、ステップS4104でモータが目標速度に達するように駆動する。プリントヘッド100a及び100bの現在位置を示すCrPositionはステップS4105で更新され、キャリッジモータ制御のためのカウンター及びルックアップテーブルはステップS4106で更新される。
【0307】
モータ39が加速していない場合、ステップS4107でモータが定速領域(つまり、印刷領域)で動作しているかどうかを判断する。モータが定速領域で動作している場合、ステップS4108及びS4109でモータを駆動し、CrPositionを更新する。そしてステップS4110で、プリントヘッドで記録媒体をスキャンしながらプリントヘッドからインクを吐出するように、図42を参照して詳細に後述する自動トリガー処理を開始する。そして、キャリッジモータ制御のためのカウンター及びルックアップテーブルをステップS4111で更新する。
【0308】
ステップS4112において、モータ39が減速しているかどうかを判断し、減速している場合には、ステップS4113に進む。ステップS4113でモータ39は駆動されて、モータのCrPositionはステップS4114で更新され、キャリッジモータ制御のためのカウンター及びルックアップテーブルをステップS4115で更新する。
【0309】
ステップS4112でモータ39が減速していないと判断された場合、モータ39は停止している。従って、モータ制御はステップS4116で終了し、モータ割り込みのためのハードウエアタイマも止まる。
【0310】
図42は、本実施の形態において、サテライティングをマスクするために、プリンタ制御部により行われる自動トリガー遅延を含む、プリントヘッドのノズルの自動トリガーを説明するフローチャートである。自動トリガーはプリンタ制御部110により行うことが好ましく、また自動トリガー遅延は、図35を参照して上述したように、プリンタドライバ84からAT_DELAYコマンドによりプリンタ制御部110へ提供することが好ましい。本実施の形態によれば、プリンタドライバ84は順方向走査の場合には自動トリガー遅延を0に設定し、逆方向走査の場合にはプリントヘッド100a及び100bの動作タイミングを画素の大きさの1/4に対応する時間分遅延する。
【0311】
図42のステップS4201において、プリンタ制御部110は、プリントヘッドのノズルが加熱されているかどうかを判断する。加熱されている場合、プリンタ制御部110は、プリントヘッドが記録媒体をスキャンしながらインクを吐出するようにプリントヘッドのノズルを自動的に駆動する。そしてステップS4202において、CrHeatEndCount[A]が0であるかどうかを判断する。CrHeatEndCount[A]が0でない場合、ステップS4203においてその値を減らす。同様に、CrHeatEndCount[B]が1であるかどうかをステップS4204で判断し、CrHeatEndCount[B]が0でない場合には、ステップS4205でその値を減らす。
【0312】
ステップS4206において、CrHeatEndCount[A]及びCrHeatEndCount[B]が両方とも0であるかどうかを判断し、0である場合には、プリンタ制御部110の熱制御レジスタをリセットし、加熱を停止する。加熱を停止すると、インクはプリントヘッドから吐出されない。
【0313】
ステップS4201で、自動トリガー制御がキャリッジ割り込み制御により呼び出されたときに加熱されていない場合には、ステップS4209に進む。ステップS4209において、プリンタ制御部110は現走査方向が順方向(左)であるかどうかをプリンタドライバ84からのDIRECTIONコマンドに基づいて判断する。順方向である場合、ステップS4210及びS4211において現在のプリントヘッドの位置を示すCrPositionがプリントヘッドAまたはBのCrHeatStartPos以上であるかどうかを判断し、以上である場合にはステップS4212乃至S4214の処理を行う。
【0314】
ステップS4212では、ソフトウエアのループにより自動トリガー遅延を自動トリガー制御に導入する。遅延時間は、プリンタドライバ84によりAT_DELAYコマンドにより設定される。しかし、ステップS4212は現走査方向が順方向である場合にのみ実施されるので、本実施の形態においてはAT_DELAYにより設定される遅延は0(マージン無し)であることが好ましい。従って、処理はすぐにステップS4213及びS4214に進み、記録媒体を走査中のプリントヘッドによるインクの自動吐出を行えるように自動トリガー及び加熱が開始される。
【0315】
ステップS4209において、現走査方向が順方向ではない場合、処理はステップS4215に進み、現走査方向が逆方向(右)であるかどうかを判断する。逆方向の場合、ステップS4216及びS4217において現在のプリントヘッドの位置であるCrPositionがプリントヘッドAまたはBのCrHeatStartPos以下であるかどうかを判断し、以下である場合には、ステップS4218及びS4219の処理を行う。
【0316】
ステップS4218では、ソフトウエアのループにより自動トリガー遅延を自動トリガー制御に導入する。遅延時間は、プリンタドライバ84によりAT_DELAYコマンドにより設定される。逆方向走査で印刷される画素の位置をオフセットするために、プリンタドライバ84は、プリントヘッド100a及び100bが画素の大きさの1/4に対応する時間に遅延を設定することが好ましい。遅延後、すぐにステップS4219及びS4220へ進み、プリントヘッドが記録媒体をスキャンしながらインクを自動吐出するように、自動トリガー及び加熱動作が開始される。
【0317】
上記構成によれば、逆方向走査では画素の印刷を遅延するために、遅延した画素のサテライト滴をマスクすることができる。
【0318】
<6.0 ヘッド位置合わせに基づくプリンタ制御>
本セクションでは、マルチプリントヘッドプリンタを用いる本実施の形態における印刷システムについて説明をする。この印刷システムでは、プリントヘッドが効果的に位置合わせ(アライメント合わせ)されているか否かを判断し、また、プリントデータの印刷を制御するための複数の異なる印刷方式の内の1つを、前述の位置合わせ状態の判断に基づいて選択する。特に、本実施の形態はユーザからプリントジョブがリクエストされる毎にプリントヘッド100a及び100bの位置合わせをする必要があるかどうかをユーザに知らせるプリンタドライバ84に関する。ユーザが位置合わせを行わずにプリントリクエストを続けることを選択した場合、プリンタドライバ84はリクエストした画像をプリントヘッド100aと100bのどちらか一方だけを用いてプリンタ10に印刷させるようにすることで、プリントヘッド100a及び100bの位置合わせが適切でない場合に起こる有害な影響を削減する。
【0319】
または、プリンタドライバ84により位置合わせを行うことを促されているにもかかわらず、ユーザが位置合わせを行わないことを選択した場合に、プリンタドライバ84はプリンタ10に一方向にのみプリントヘッド100a及び100bを走査させてリクエストされた画像を印刷させる。このように、プリントヘッド100a及び100bで両方向ではなく一方向に走査を行うことで、プリントヘッド100a及び100bが位置合わせされていない場合でも、より質の高い画像を印刷することができるため、画質を向上させることができる。
【0320】
上記説明の通り、プリンタ10は、プリントヘッド100a及び100bを有するインクカートリッジ43a及び43bを保持するカートリッジホルダ37a及び37bとを有する。プリンタ10は、プリントヘッド100a及び100bに画像データを印刷させながら、記録媒体を走査させることにより、記録媒体上に画像を印刷する。プリンタドライバ84が画像を印刷するためにプリントヘッド100a及び100bに記録媒体を走査させるやり方は、印刷する画像のタイプ、望みの解像度、及び使用される記録媒体のタイプを含むいくつかの要因に依存する。例えば、プリンタドライバ84は、画質を向上させるために、プリントヘッド100a及び100bに連続して数回記録媒体の同じスキャンラインを走査させる。印刷方式に応じて印刷をするように、プリンタ10に命令をする。また、同じ印刷方式で、プリンタ10にある方向で現スキャンラインをまず印刷させ、さらにそれと反対の方向で印刷させることもできる。例えば、両方向印刷である。印刷方式は印刷中のプリントヘッドの速度を制御するためにキャリッジモータ39の速度を指定することもでき、また、ユーザが望む画像の印刷を達成するために、プリントヘッド100a及び100bのプリントヘッドノズルのある特定パターンの使用を指定することもできる。上記要因の組み合わせに基づいて、様々な印刷方式を用いることができる。プリンタドライバ84は、記録媒体のタイプ、プリントモード、及び与えられたプリントジョブリクエストで用いられる印刷に関連する条件に基づいて、望みの画質を達成するために特定の印刷方式を選択する。
【0321】
位置合わせ処理(不図示)は、プリンタドライバ84がプリントヘッド100a及び100bの位置合わせがされたかどうかが不明であると判断したときに、プリンタ10にプリントヘッド100a及び100bの位置合わせを行うように指示する。プリントヘッド100a及び100bがお互いに位置合わせされていなかったり、プリンタ10内で位置合わせされた適切な位置に無かったりする場合に、プリントヘッド100a及び100bの位置がずれることがある。プリントヘッド100a及び100bが適切に位置合わせされていない可能性があるとプリンタドライバ84が判断すると、ユーザがプリントジョブリクエストを出したときに、プリンタドライバ84はユーザに対して位置合わせ処理をするように促す。ユーザが位置合わせを行うことを選択すると、プリンタドライバ84は位置合わせ処理を実施する。実施後は、プリントヘッド100a及び100bは、プリンタドライバ84により充分に位置が合わせられたと見做される。ユーザが位置合わせをしないことを選択すると、プリンタドライバ84は画像を印刷するためにプリントヘッド100aと100bのいずれか一方を選択し、更に、選択したプリントヘッドで記録媒体を一方向にスキャンしながら画像を印刷するように、選択したプリントヘッドを制御する特定の印刷方式を選択する。本実施の形態によれば、プリントヘッド100a及び100bの位置合わせが適切になされていない場合でも、プリンタ10にプリントヘッド100a及び100bのどちらか一方のみを用いてリクエストされた画像を印刷するように指示する特定の印刷方式を使用することにより、プリントリクエストを実行させることができる。これにより、プリントヘッド100a及び100bの位置合わせが適切ではない場合であっても、印刷された画像の質を向上させることができる。
【0322】
本発明の実施の形態によれば、プリントヘッド100a及び100bの位置合わせが適切ではないと判断され、位置合わせが適切になされないままプリントヘッドを1つのみ用いても実行できない特定のプリントモードを利用することをユーザのプリントリクエストが要求している場合、プリンタドライバはプリントリクエストを拒否する。
【0323】
図43は、本実施の形態の、プリンタドライバ84内で実行されるソフトウエア位置合わせ処理を示すフローチャートである。ステップS4301で処理を開始し、プリンタドライバ84はアプリケーションソフトウエアモジュール8によりユーザからプリントジョブリクエストを受け取る。プリンタドライバ84はプリントヘッド100a及び100bが位置合わせされているかどうかをステップS4302で判断する。プリンタドライバ84は、例えば、(1)ユーザがプリンタのインクカートリッジ43aまたは43bの一方または両方を交換したことを示す知らせをプリンタ10から受けた場合、(2)前回、位置合わせ処理を実行してから、所定時間が経過し、または所定数のプリントジョブを実行したことを示す知らせを受けた場合、(3)プリントヘッド100a及び100bの位置合わせがなされていないことを示す知らせをプリンタ10から受けた場合等、プリンタの状態及びその他の条件に基づいてプリントヘッド100a及び100bの位置合わせがなされていない可能性を判断する。
【0324】
ステップS4302でプリントヘッド100a及び100bが充分に位置合わせされていると判断されると、プリンタ10は、プリンタドライバ84から提供されるコマンド及びデータに従って、リクエストされたプリントジョブを印刷するように、プリンタドライバ84により指示される(ステップS4303)。従って、プリントヘッド100a及び100bの位置合わせをこれ以上行う必要がない場合、現在のプリントジョブリクエストのプリントモード及びプリントに関する状態に基づいて高品質の画像印刷を確実に行うために、プリンタドライバ84は特定の印刷方式を選択する(ステップS4303)。位置合わせされた状態で印刷を行う場合にプリンタドライバ84が行う特定印刷方式の選択については、図44を参照して詳細に後述する。
【0325】
また、ステップS4302でプリントヘッド100a及び100bが充分に位置合わせされていないとプリンタドライバ84が判断すると、現在のプリントジョブを実行するために写真画質モードの使用をユーザがリクエストしているかどうかを判断する(ステップS4304)。現在のプリントジョブが写真画質モードが選択されている場合、プリントヘッド100a及び100bの位置を合わせるために位置合わせ処理を開始するかどうかを尋ねるダイアログボックスをディスプレイ4上に表示する(ステップS4305)。ユーザがキーボード5やポインティングデバイス6を用いて位置合わせを行わないことを指示した場合(ステップS4307)、位置合わせされたプリントヘッド100a及び100bを両方用いなければ写真画質モードで画像を印刷することはできないので、プリントジョブはキャンセルされる。(ステップS4308)。
【0326】
ユーザが位置合わせを行うことを指示した場合(ステップS4307)、ステップS4312に進み、プリンタドライバ84は位置合わせ処理を開始する。位置合わせ処理を終了すると、プリンタドライバ84はプリンタ10に、プリンタ84がプリンタ10に提供したコマンド及びデータに従って、リクエストされたプリントジョブを、位置合わせを行う印刷のための特定の印刷方式に基づいて印刷するように指示する(ステップS4303)。
【0327】
また、このプリントジョブで写真画質モードが選択されていない場合(ステップS4304)、プリンタドライバ84はディスプレイ4に表示したダイアログボックスを通じて、プリントヘッド100a及び100bの位置合わせのずれに関するメッセージを見たいかどうかをユーザに尋ねる(ステップS4306)。ユーザがメッセージを見たくない場合には、ステップS4316に進み、プリンタドライバ84はプリンタ10に、プリンタ84がプリンタ10に提供したコマンド及びデータに従ってリクエストされたプリントジョブを、位置合わせを行わない印刷のための特定の印刷方式に基づいて印刷するように指示する(ステップS4316)。位置合わせを行わない印刷に関するプリンタドライバ84が行う印刷方式の選択に関しては、図44を参照して詳細に後述する。
【0328】
ユーザが位置合わせのずれに関するメッセージを見たい場合には、ステップS4309に進み、プリンタドライバ84は、プリントヘッド100a及び100bの位置を合わせるために、位置合わせ処理を開始するかどうかを尋ねるダイアログボックスをディスプレイ4上に表示する(ステップS4309)。ユーザがダイアログボックスのメッセージを読んだ後、プリントリクエストをキャンセルすると決めた場合には(ステップS4310でNO)、プリントジョブはキャンセルされる(ステップS4311)。また、ユーザがダイアログボックスのメッセージを読んだ後、位置合わせを実行すると決めた場合(ステップS4310でYES)、処理はステップS4312に進み、プリンタドライバ84は位置合わせ処理を実行する。位置合わせ処理が終了すると、プリンタドライバ84はプリンタ10に、プリンタ84がプリンタ10に提供したコマンド及びデータに従って、リクエストされたプリントジョブを、位置合わせ印刷のための特定の印刷方式に基づいて印刷するように指示する(ステップS4303)。また、ユーザがダイアログボックスのメッセージを読んだ後、位置合わせを実行しないと決めた場合(ステップS4310でCANCEL)、ディスプレイ4上のダイアログボックスを介して、これから先、プリントジョブをリクエストする度に、プリントヘッド100a及び100bの位置合わせがずれていることを通知して欲しいかどうかをユーザに尋ねる(ステップS4313)。これから先、位置合わせのずれを示すメッセージを見ないとユーザが決めた場合には(ステップS4314でNO)、メッセージはOFFされて、ユーザがインクカートリッジ43a及び43bのいずれか一方または両方を交換するまで、メッセージを表示しない(ステップS4315)。そしてステップS4316に移り、以下に詳しく説明するようにリクエストされたプリントジョブを実行する。また、これからも位置合わせのずれを示すメッセージを見るとユーザが決めた場合には(ステップS4314でYES)、ステップS4316に進み、プリンタドライバ84はプリンタ10に、プリンタ84がプリンタ10に提供したコマンド及びデータに従って、リクエストされたプリントジョブを、位置合わせを行わない印刷のための特定の印刷方式に基づいて印刷するように指示する(ステップS4316)。
【0329】
ステップS4316で位置合わせをせずに印刷を開始するとステップS4317に進み、プリントヘッド100a及び100bの一方は黒を含むカラーインクを印刷可能であり、もう一方のプリントヘッドは黒インクのみ印刷可能な組み合わせであるかどうかをプリンタドライバ84は判断する(ステップS4317)。好ましくは、カラーインク及び黒インクの両方を印刷可能なプリントヘッドをプリンタ10が有する場合、そのプリントヘッドはプリントヘッド100aであり、キャリッジ容器37aに収容され、もう一方のプリントヘッドはプリントヘッド100bであり、そのプリントヘッドのタイプに関係なく、キャリッジ容器37bに収容される。プリンタ10がカラーインクプリントヘッドと黒インクプリントヘッドとを有する場合(ステップS4317でYES)、次にプリンタドライバ84は、プリントジョブは黒インクのみで画像を印刷することを要求しているかどうかを判断する(ステップS4318)。プリントジョブを黒インクのみで行う場合(ステップS4318)、プリンタドライバ84は黒インクプリントヘッド、すなわち本実施の形態ではプリントヘッド100bのみを用いてプリントジョブを実行するようにプリンタ10に指示する(ステップS4319)。反対に、プリントジョブがカラーインクを用いて印刷することを要求している場合には(ステップS4318)、プリンタドライバ84は、カラーインクプリントヘッド、すなわち本実施の形態ではプリントヘッド100aのみを用いてプリントジョブを実行するようにプリンタ10に指示する(ステップS4320)。
【0330】
ステップS4317において、黒インクプリントヘッド2つや、カラーインクプリントヘッド2つといった、他の可能なプリントヘッド100a及び100bのすべての組み合わせの場合、プリンタドライバ84は、カラーインクプリントヘッド、すなわち、本実施の形態ではプリントヘッド100aのみを用いてプリントジョブを実行するようにプリンタ10に指示する(ステップS4320)。従って、上述の構成によりユーザはプリントヘッド100a及び100bが充分に位置合わせされておらず、ユーザが位置合わせを希望しない場合でも、プリントジョブリクエストを進めることができる。さらに、そういった場合に、プリントヘッド100a及び100が充分に位置合わせされていなくても高画質の印刷を確実に提供することができるように、プリンタドライバ84は特定の印刷方式よりプリントヘッドの片方を使用するように選択することができる。
【0331】
図44は、図43に示すプリンタドライバソフトウエア位置合わせ処理に従った、例えば位置合わせ処理を行った場合など、位置合わせを伴う画像の印刷及び位置合わせを伴わない画像の印刷の印刷方式を含む、一連のプリントモードテーブルを示す。具体的には、位置合わせを伴うプリントモードテーブル385は、図43のステップS4303で示すように位置合わせされたプリントヘッド100a及び100bで画像を印刷するときにプリンタ10で使用される複数の印刷方式を有する。テーブル385は、それぞれの印刷方式について2つの属性を含む。それらは、(1)印刷解像度、(2)プリントヘッド100a及び100bが画像を印刷するときの、走査パス(通過)回数及び印刷方向である。
【0332】
これらの属性は、画像の解像度を示すドラフトモード、スタンダードモード、高画質モードなどの画像解像度を示すプリントモードに応じて、印刷方式毎にそれぞれ異なる。また、属性は、レギュラーモードまたは写真画質モード等、画質モードによっても異なり、更に普通紙、高解像度紙、光沢紙など、記録媒体の種類によっても異なる。位置合わせを伴うプリントモードテーブル385では、プリントモードの様々な組み合わせや記録媒体の種類に応じて、位置合わせを伴う印刷のために12の異なる印刷方式が用意されている。例えば、スタンダードプリントモード、レギュラー画質モードで、高解像度紙を用いて位置合わせを伴う印刷を行う場合、印刷方式はテーブル385において以下に示す属性により定義される。(1)印刷解像度は720×720dpi、(2)プリントヘッド100a及び100bにより各スキャンラインを2回ずつパス(通過)し、どちらの方向(両方向)でも印刷を行う。なお、例えばドラフトモードで写真画質の画像を印刷しようとしたり、ドラフトモードで光沢記録媒体を用いようとしている場合など、テーブル385上の印刷方式のいくつかは、定義により適用することができない。
【0333】
テーブル385に示すある印刷方式では、図44のテーブル386に示すサブ印刷方式、「1pass_U/B*1」を使用しなければならない。「1pass_U/B*1」サブ印刷方式は、1回のパスでそれぞれの行を印刷し、走査方向と使用されるノズルのパターンはプリンタ10に搭載されたプリントヘッド100a及び100bのタイプと現スキャンラインで印刷しようとしている画像のタイプとにより決定する。すでに説明したように、プリンタ10に搭載された取り付けられたプリントヘッド100a及び100bは、カラーインクプリントヘッド(「BC−21e」)と黒インクプリントヘッド(「BC−23」)をどのように選択し、組み合わせても良い。あるスキャンラインで印刷する画像のタイプの例としては、テキストの連続行を示す孤立黒、黒の連続部分またはグラフィックスなどのグレースケール画像である連続黒、カラーテキスト及び/または画像であるカラーがある。
【0334】
位置合わせを伴うプリントモードのテーブル385によれば、スタンダード解像度モード、レギュラー画質モード、普通紙使用を求めるプリントリクエストに対応する印刷方式は、1pass_U/B*1サブ印刷方式である。テーブル386によれば、現スキャンラインで上に印刷しようとしている画像が連続黒のグラフィック画像である場合、そのスキャンラインを印刷するためにプリントヘッド100a及び100bは1回パスすることを求められる。更に、カラーインクプリントヘッドのカラーノズルが全く使用されない場合、カラーインクプリントヘッドの黒インク用ノズル63本が一方向で印刷を行うために用いられ(一方向印刷)、黒インクプリントヘッドのノズル127本が順方向の印刷でのみ用いられる(一方向走査は、順方向でも逆方向でも起こり得る)。従って、安定した高画質の印刷を提供するために、走査回数、印刷方向、及びノズルの選択は、プリンタ10に搭載されたプリントヘッド100a及び100bのタイプ、現スキャンライン上に印刷する画像のタイプ、更に、現プリントジョブでリクエストされたプリントモード及び記録媒体のタイプに応じて、印刷方式の一部として行われる。
【0335】
位置合わせを伴わないプリントモードのテーブル387は、図43のステップS4316で説明したように、プリントヘッド100a及び100bの位置合わせをせずに画像を印刷する場合にプリンタ10により利用される複数の印刷方式を有する。テーブル387は通常、印刷方式毎に提供される2つの属性を含む。それらは、(1)印刷解像度、(2)プリントヘッド100a及び100bが画像を印刷するときの走査パス回数及び走査方向である。
【0336】
これらの属性は、画像の解像度を示すドラフトモード、スタンダードモード、高画質モードなどの画像解像度を示すプリントモードに応じて、印刷方式毎にそれぞれ異なる。また、属性は、レギュラーモードまたは写真画質モード等、画質モードによっても異なり、更に普通紙、高解像度紙、光沢紙など、記録媒体の種類によっても異なる。位置合わせを伴わないプリントモードテーブル387では、プリントモードの様々な組み合わせや記録媒体の種類に応じて、位置合わせを伴わない印刷のために12の異なる印刷方式が用意されている。例えば、スタンダードプリントモード、レギュラー画質モードで、高解像度紙を用いて位置合わせを伴わない印刷を行う場合、印刷方式はテーブル387において以下に示すように属性により定義される。(1)印刷解像度は720×720dpi、(2)プリントヘッド100a及び100bにより各スキャンラインを2回ずつ走査し、片方の方向(一方向)でのみ印刷を行う。なお、例えばドラフトモードで写真画質の画像を印刷しようとしたり、ドラフトモードで光沢記録媒体を用いようとしている場合など、テーブル385上の印刷方式のいくつかは、定義により適用することができない。
【0337】
テーブル387に示すある印刷方式では、図44のテーブル388に示すサブ印刷方式、「1pass_U/B*2」を使用しなければならない。「1pass_U/B*2」サブ印刷方式は、1回のパスでそれぞれの行を印刷し、走査方向と使用されるノズルのパターンはプリンタ10に搭載されたプリントヘッド100a及び100bのタイプと現スキャンラインで印刷しようとしている画像のタイプとにより決定する。すでに説明したように、プリンタ10に搭載されたプリントヘッド100a及び100bは、カラーインクプリントヘッド(「BC−21e」)と黒インクプリントヘッド(「BC−23」)をどのように選択し、組み合わせても良い。図43を参照して説明したように、位置合わせを伴わない印刷中は、プリントヘッド100a及び100bのいずれか一方のみが選択されて使用される。あるスキャンラインで印刷する画像のタイプの例としては、テキストの連続行を示す孤立黒、黒の連続部分またはグラフィックスなどのグレースケール画像である連続黒、カラーテキスト及び/または画像であるカラーがある。
【0338】
位置合わせを伴わないプリントモードのテーブル387によれば、スタンダード解像度モード、レギュラー画質モード、普通紙使用を求めるプリントリクエストに対応する印刷方式は、1pass_U/B*2サブ印刷方式である。テーブル388によれば、現スキャンライン上に印刷しようとしている画像が連続黒のグラフィック画像である場合、そのスキャンラインを印刷するためにプリントヘッド100a及び100bは1回通過することを求められる。更に、位置合わせを伴わない印刷において、カラーインクプリントヘッドが選択されて用いられる場合、カラーインクプリントヘッドのカラーノズルは全く使用されず、カラーインクプリントヘッドの黒インク用ノズル63本が一方向で印刷を行うために用いられる(一方向印刷)。しかし、位置合わせを伴わない印刷において、黒インクプリントヘッドが選択されて用いられる場合、黒インクプリントヘッドのノズル127本が順方向でのみ印刷に用いられる(一方向走査は、順方向でも逆方向でも起こり得る)。従って、安定した高画質の印刷を影響するために、走査回数、印刷方向、及びノズルの選択は、プリンタ10に取り付けられたプリントヘッド100a及び100bのタイプ、現スキャンラインに印刷する画像のタイプ、更に、現プリントジョブに対してリクエストされたプリントモード及び記録媒体のタイプに応じて、印刷方式の一部として行われる。
【0339】
<7.0 デュアルヘッド多色印刷>
図45はカラーデータを記録媒体に印刷するときに使用されるコンピュータにより実行可能な各処理を示すフローチャートである。図示のように、これらのステップは言語モニタ205に含まれ、ホストプロセッサー2のCPU70により実行することが好ましい。なお、これらのステップは、プリンタ10のCPU91により実行することも可能である。
【0340】
図45は両方向印刷を用いてプリントデータのバンドに含まれる黒プリントデータ以外のプリントデータを印刷する工程と、一方向印刷を用いてプリントデータのバンドに含まれる黒プリントデータを印刷する工程とを有する。
【0341】
詳しく説明すると、まず処理はステップS4501で始まり、ここでプリンタドライバ84からプリントデータのバンドを受信する。図18に示す構成によれば、このバンドは、実際にはプリンタプロバイダー204から受信される。受け取ったプリントデータは、黄色、マゼンタ、シアン、または黒のインク滴を記録媒体の特定の画素位置に吐出するかどうかを示す2値化データを含むことが好ましい。その特定の画素位置とは、インクカートリッジ43a及び43bを用いてカートリッジホルダ37a及び37bが1回走査する間に印刷される画像の位置のことである。上記の例では、インクカートリッジ43aは図7に示すプリントヘッド62を利用し、インクカートリッジ43bは図7のプリントヘッド64を利用する。更に、インクカートリッジ43aは黄色、マゼンタ、シアン、及び黒の高浸透性のインクを保持することが好ましく、インクカートリッジ43bは低浸透性の黒インクを保持することが好ましい。
【0342】
図46は、図45に示す処理に対応する印刷手順を示す図である。図示のように、破線390より上部にカラー領域があり、破線390より下部に黒領域がある。また、図46は、印刷中にプリントヘッド62で記録媒体を複数回パスした場合のプリントヘッド62のインクノズルの相対位置を示す。本実施の形態によれば、それぞれのパスで示されるノズルは、当該通過で印刷を行うノズルである。また、ノズルのグループ間のギャップは、グループが異なることを示すためのもので、実際値とは異なる。
【0343】
図45に示す手順において、図46のパス1に対応するプリントデータのバンドをステップS4501で受信する。ステップS4502では、受信したバンドがカラーデータを含むかどうかを判断する。ここでは、バンドの画素のいずれかが、黄色、マゼンタ、シアンのインク滴のいずれかを用いて印刷される、または過去に印刷された場合に、カラーデータを含むと判断される。ステップS4502で受信したプリントデータのバンドがカラーデータを含むと判断されると、ステップS4504に進み、現在のパスが逆方向のパスであるかどうかを判断する。
【0344】
本実施の形態においては、この第1のパスは順方向であるとし、処理はステップS4504からS4505に進む。ステップS4505において、まだ印刷されていない黒データが存在するかどうかを判断する。このようなまだ印刷されていない黒データについて、図45を参照して後で説明するが、ここではそのようなデータは無いものとして、ステップS4506に進む。ステップS4506では受信したバンドを印刷するためにプリンタ10に送る。
【0345】
図46のパス1は、ステップS4506で行う、受信したバンドの印刷に用いられるノズルを示す。好ましくは、プリントヘッド62で1回の走査を行う時に、それぞれのインクにつきノズル23本を使用して印刷する。なお、ステップS4506の後、インクカートリッジ43aは、第1のパスが開始した端と反対側の、プリンタ10の端に位置する。
【0346】
次にステップS4506からS4508に進み、以前に受信したバンドはプリントデータの最後のバンドであるかどうかを判断する。ここでは、まだ続きのバンドが存在するため、ステップS4501へ戻る。そして、第2のパスで用いられるプリントデータのバンドを受信する。ここでは、図46に示すようにカラーデータを含むため、ステップS4502からステップS4504に進む。パス1は順方向であるので、パス2は逆方向である。従って、処理はステップS4509に進み、受信したバンドの黒プリントデータを、好ましくはプリントバッファ109を用いて蓄えておく。そしてバンドの残りのデータをステップS4510でプリンタ10に送る。図46の、パス2は、黄色、マゼンタ、シアンのインク滴のみが印刷された状態を示している。
【0347】
なお、パス1が完了すると、記録媒体はノズル23本に対応する距離だけ送られ、これによりパス1でマゼンタ及び黄色のノズルを用いて印刷された画素は、パス2ではシアンとマゼンタのノズルをそれぞれ用いて印刷される。
【0348】
処理はステップS4508から4501へ戻り、プリントデータの次のバンドを受信する。そしてステップS4502からS4504に進む。パス3は順方向であるために、ステップS4505に進む。上述の通り、ステップS4509でパス2の黒プリントデータを蓄えてあったので、ステップS4505からS4512に進み、蓄えておいたデータをプリントバッファ109から検索して取り出す。次にステップS4514において、ステップS4501で受信したプリントデータのバンドと、取り出した黒データとを両方共、印刷するためにプリンタ10に印刷用に送る。図46に示すように、シアン、マゼンタ、黄色ノズルと共に、プリントヘッド62の下部の複数の黒ノズルを受信したバンドの黒データを印刷するために使用し、上部の複数の黒ノズルをパス2で印刷されたバンドの蓄えておいた黒データを印刷するために用いられる。このようにすることにより、黒データは順方向でのみ印刷されることになる。従って、逆方向の黒インクでの印刷による画質の低下を防ぐことができる。
【0349】
図46に示すように、パス4及びパス5では、パス2及びパス3で説明した動作とそれぞれ同様の動作を行う。しかし、図46に示すように、プリントヘッド62の黄色及びマゼンタノズルに関しては、これらのノズルに対応するデータが無いために、黄色ノズルはパス4で、また、マゼンタ及び黄色ノズルはパス5で用いられない。
【0350】
次に、パス6に対応するプリントデータのバンドをステップS4501で受信する。黄色、マゼンタ、シアンインクに対応するデータを含んではいないが、このバンドの画素は、パス3〜5で、黄色、マゼンタ、シアンインクを用いてすでに印刷されている。従って、処理はステップS4504に進む。パス6は逆方向であるので、ステップS4509に進み、受信したバンドの黒プリントデータをバッファ109に蓄える。ステップS4510においてパス6の黒データ以外のデータは印刷のためにプリンタ10に送られる。この場合、受信したプリントデータのバンドは、黒プリントデータしか含まないので、プリントヘッド62はパス6のためのステップS4510で、印刷をすることなく、単に記録媒体を横切ることになる。そしてステップS4508からステップS4501に戻り、次のバンドのプリントデータを受信する。
【0351】
ここでは、受信したバンドは、図46に示す黒領域に対応するので、ステップS4502からステップS4515に進む。ステップS4515ではこれまでに印刷されたバンドがカラーデータを含んでいたかどうかを判断する。パス6に対して分析されたプリントデータのバンドは、カラーデータを含むと判断されたため、処理はステップS4516に進み、前回のパスが逆方向であったかどうかを判断する。パス6は逆方向であるので、ステップS4517に進む。ステップS4517において、蓄えられた黒データをプリントバッファ109から検索して取り出す。ここで前回印刷されたバンドがカラーデータを含み、且つ、前回のパスが逆方向の場合にのみステップS4517に進むので、前回印刷されたバンドの黒データが蓄えられており、まだ印刷されていないと考えることができる。従って、次のステップS4519で取り出した黒データをプリンタ10に送る。
【0352】
なお、パス5の後、記録媒体はノズル23本分だけ送られ、パス6の後では記録媒体は更にノズル23本分だけ送られる。従って、取り出された黒データは、プリントヘッド62のノズル24〜46を用いてパス7で印刷される。そしてステップS4520に進み、取り出された黒データのバンドはプリントヘッド64及び、上述のように低浸透性の黒インクを保持するインクジェットカートリッジ43bを用いてパス8で印刷するためにプリンタ10に送られる。なお、黒インクで印刷を逆方向に行うことで画質が低下しないように、パス8は順方向に行われる。
【0353】
そしてステップS4520からS4508に進み、そして、次のバンドを印刷するならば、ステップS4501へ戻る。次のバンドがカラーデータを含まない場合、上述の通り、処理はステップS4515から直接ステップS4520へ進む。
【0354】
上記動作はステップS4508で最後のバンドが印刷されたと判断されるまで繰り返される。最後のバンド印刷後、ステップ4522に進み、前回のパスが逆方向であったかどうかを判断する。逆方向でない場合、処理は終了する。逆方向であった場合、まだ印刷されていない蓄えておいた黒データをプリンタ10に送り、ステップS4524で順方向で印刷をする。処理はこれで終了する。
【0355】
上記のように処理をすることにより、所定データを逆方向で印刷することが好ましくないと判断されると、そのデータを逆方向で印刷しないようにすることができる。なお、上記処理は黒プリントデータの印刷を順方向のみで行うことに限るものではなく、他のタイプのプリントデータを逆方向でのみ印刷することも可能である。
【0356】
<8.0 予備吐出とパルス幅変調>
このセクションでは、本実施の形態の予備吐出処理及びパルス幅変調制御について説明する。
【0357】
<8.1 予備吐出制御>
予備吐出は、インクジェットプリンタにおいて、乾いたり、凝固したインクをプリントヘッドノズルから除去するために行われる。本実施の形態における予備吐出のタイミングはセクション8.1.1で説明する。本実施の形態における予備吐出のタイミングを制御するためのシステムの一例は、セクション8.1.2で説明する。
【0358】
(8.1.1 予備吐出のタイミング)
図47は、予備吐出処理が所定時間間隔で行われる場合の、予備吐出制御を説明するための図である。図47は、画像402が印刷された記録媒体401を示す。図47において、画像402は小さいフォントのテキスト403と、大きいフォントのテキスト404とを含む。
【0359】
また、図47は、画像402を印刷中の、カートリッジホルダ405の異なる時点における位置を示す。カートリッジホルダ405は、セクション1.0で図5を参照して説明したプリンタ10のカートリッジホルダ37a及び37bのいずれか一方である。カートリッジホルダ405は、図6に示すインクジェットカートリッジ43aのようなインクジェットカートリッジを搭載することが好ましい。また、インクジェットカートリッジは、図7に示すプリントヘッド61またはプリントヘッド62のようなプリントヘッドを有することが好ましい。
【0360】
矢印409〜433は、画像402の印刷のためのマルチスキャン前、マルチスキャン中、マルチスキャン後における記録媒体401に対するカートリッジ405の動きを示し、従って、カートリッジ405により運ばれるプリントヘッドの動きを示すことになる。円で囲まれた数字は、画像402の一部が印刷されている最中の走査を示す矢印409〜433の開始位置の付近にある。これら円で囲まれた数字は、画像402を印刷するための走査の順番を示している。従って、図47に示すように、第1の走査は画像402の最上部で始まり、最後の走査は画像402の最下部となる。
【0361】
また、図47は、カートリッジホルダ405のASF(自動給紙)位置437、拭き取り領域438、予備吐出領域439を示している。カートリッジホルダ405は、上記セクション1.0及び4.0で詳しく説明したように、自動給紙処理を開始するためにASF位置437に移動する。
【0362】
本実施の形態によれば、拭き取り領域438及び予備吐出領域439は、図5に示すホームポジション46に位置する。拭き取り領域438は、ワイパー44a及び44bを含む。拭き取り領域438では、カートリッジホルダ405に保持されたプリントヘッドが拭き取り機構により拭き取られ、余分なインク、汚れ、紙片、その他の破片などをプリントヘッドから拭き取る。
【0363】
予備吐出領域439もホームポジション46に位置し、予備吐出受42a及び42bを有する。プリントヘッドはノズルから予備吐出受42a及び42bのいずれかにインクを吐出し、乾燥したり、凝固したインクをノズルから取り除く。
【0364】
ASF位置437、拭き取り領域438、予備吐出領域439のいずれかにおけるカートリッジホルダ405の位置は、図47では、カートリッジホルダ405を示すことにより、または位置または領域の下のカートリッジホルダ405の動きを示す矢印により示されている。
【0365】
記録媒体401の左側にイベントリスト441を示す。イベントリスト441の円で囲まれた記号は、画像402が印刷されるときに起こるイベントを示している。また、図47において、印刷開始443は円で囲まれた記号Stにより表す。自動給紙444は円で囲まれた記号ASFにより、また初期給紙時拭き取り/予備吐出445は円で囲まれた記号LPにより表す。自動予備吐出イベント447〜451も、それぞれ円で囲まれた記号AP”、AP1、AP2、AP3、AP4としてイベントリスト441に示されている。
【0366】
記録媒体401の右側に時間線453を示す。時間線は図47の上から下に向かって進み、画像402を印刷する際のカートリッジホルダ405の走査と、イベントリスト441に示されたイベントとの時間関係を示す。従って、時間線453において、画像402を印刷する際のカートリッジホルダ405によるそれぞれの走査の開始は、カートリッジホルダ405の走査動作を表す矢印409〜433の開始地点に示された円で囲まれた番号と同一の番号を円で囲んで表している。同様に、イベントリスト441に示されるイベントは、時間線453上でイベントリスト441で用いられるものと同じ記号を用いて表され、また、イベントリスト441及び時間線453において同一イベントに対応する同一記号の参照番号は共通にしている。例えば、イベントリスト441の円に囲まれたStと、時間線453の円に囲まれたStは、両方とも印刷の開始443を表している。
【0367】
図47により示される予備吐出制御において、自動予備吐出処理が2秒間隔をベースに実行される。詳しくは、イベントリスト441と時間線453では、印刷の開始443と、その後に行われる自動給紙444及び初期給紙時拭き取り/予備吐出445を示している。従って、矢印409は印刷開始443の地点である円に囲まれた記号Stの位置から、記録媒体401の自動給紙444のための円に囲まれた記号ASFまでのカートリッジホルダ405の動きを示す。また、矢印410は、カートリッジホルダ405が、初期拭き取りで拭き取り領域438を過ぎて、初期予備吐出のために予備吐出領域439へ動くことで、初期給紙時拭き取り/予備吐出445を終えるところを示している。
【0368】
給紙時拭き取り/予備吐出445の後、円で囲まれた記号AP”により表された第1の自動予備吐出447が行われる。具体的には、給紙時拭き取り/予備吐出445と印刷開始間で十分に長い遅延(例えば2秒)が起きた場合、インクノズルがつまらないようにするために自動予備吐出447が行われる。このような遅延は、例えば、データがホストプロセッサーに処理されている時や、プリンタに送られている時に起こる。さらに、遅延は、ユーザが記録媒体をプリンタに手差し給紙している時にも起こり得る。
【0369】
自動予備吐出447を行うために、カートリッジホルダ405は、予備吐出領域439の下の、円で囲まれた記号AP”の隣に示されたカートリッジホルダ405の位置が表すように、予備吐出領域439に位置される。そして、プリントヘッドノズルは、乾燥した、または凝固したインクを取り除くために、予備吐出を行う。
【0370】
カートリッジホルダ405による走査が3回行われ、2秒間(459)が経過する前に、第4の走査が開始される。この時間間隔は、初期給紙時拭き取り/予備吐出445(または、できるようであれば自動予備吐出447)から計測される。これらの4回の走査のためのカートリッジホルダ405の動きを矢印411〜414に示し、4回の走査の開始は円に囲まれた番号1〜4により示す。
【0371】
2秒間459が経過すると、カートリッジホルダ405は現走査を終え、自動予備吐出処理のために予備吐出領域439に移動する。このように4回目の走査の後、カートリッジホルダ405は矢印415が示すように、自動予備吐出448のために自動吐出領域439へ動く。自動予備吐出448の後、カートリッジホルダ405は記録媒体401の走査を再スタートする。
【0372】
上記処理は、画像402が記録媒体401に印刷されるまで続けて行われる。具体的には、自動予備吐出処理は、ある走査中に、前回予備吐出を行ってから2秒以上経つと行われる。時間が経過したときには、現走査を終了していることが好ましく、その後にカートリッジホルダ405は、予備吐出のために予備吐出領域439に動かされる。走査中に所定時間が経過し、カートリッジホルダ405が予備吐出領域439から離れる方向に動いている時には、現行の走査が終了した後、カートリッジホルダ405を予備吐出領域439へ動かす際に次の走査を終了する。
【0373】
こうして、図47において、カートリッジホルダ405が矢印416〜419に対応する第5〜8回目の走査を行い、矢印420が示すように自動予備吐出449のために予備吐出領域439へ動き、その後矢印421〜423に対応する第9〜11回目の走査を行い、第12回目の走査を行い、矢印424及び425に表されるように自動予備吐出450のために予備吐出領域439へ移動する(第12回目の走査は、第11回目の走査が予備吐出領域439から離れていくために行われる)。そして、矢印426〜429に対応する第13〜16回目の走査を行い、矢印430が示すように自動予備吐出451のために予備吐出領域439へ動き、矢印431及び432に対応する第17、18回目の走査を行って、画像402の印刷を完了する。
【0374】
画像402が印刷されると、矢印433が示すように記録媒体を排紙するために、カートリッジホルダ405は記録媒体401から離れる。この排紙処理は、上記セクション3.0において詳しく説明した。
【0375】
上記の予備吐出制御の結果、インクジェットヘッドのノズルからのインク吐出が適切となるように、頻繁に予備吐出を行うことになり、画質を確実に保つことになる。しかし、予備吐出の何回かは必要ないものである。特に、連続走査中に一定のフォントサイズのテキストを印刷する場合、プリントヘッドのノズルの1つのブロックが各走査で繰り返し使用される傾向がある。各走査において同じブロックのノズルが使用されている限り、テキストを印刷する動作では、そのブロックのノズルには乾燥したり凝固したインクが残っていないことになる。
【0376】
従って、例えば小さいフォントのテキスト403を印刷するための走査中は、図47の第5〜8回目の走査(矢印416〜419に対応)での画像形成品質を維持するための自動予備吐出448(円で囲まれた記号AP1に対応する)は、少なくともある程度不必要である。前回の走査が、その走査で使用されたブロックのノズルに乾燥または凝固したインクが詰まることをすでに防いでいるのである。同様に、大きいフォントのテキスト404を印刷するための走査間の自動予備吐出451(円に囲まれた記号AP4に対応する)も、少なくともある程度不必要である。こういった不必要な予備吐出処理は、特に高速画像形成が望まれる場合には、画像形成速度を許容以上に遅くすることになる。
【0377】
画像形成速度を向上させる技術の一つは、自動予備吐出処理間の時間間隔を広げることである。しかし、すべての予備吐出の時間間隔を広げることにより、画質を許容以上に低下させることもある。
【0378】
図48及び図49は、予備吐出の時間間隔を広げすぎたことにより起こる画質の低下を示す図である。図48は、画像462が印刷された記録媒体461を示す。図48において、画像462は小さいフォントのテキスト463と、大きいフォントのテキスト464を含む。
【0379】
また、図48は、画像462を印刷中のカートリッジホルダ405の異なる時点における位置を示す。カートリッジホルダ405の例としては、セクション1.0で図5を参照して説明したプリンタ10のカートリッジホルダ37a及び37bがある。カートリッジホルダ405は、図6に示すインクジェットカートリッジ43aのようなインクジェットカートリッジを搭載することが好ましい。また、インクジェットカートリッジは、図7に示すプリントヘッド61またはプリントヘッド62のようなプリントヘッドを有することが好ましい。
【0380】
矢印469〜491は、画像462の印刷のためのマルチスキャン前、マルチスキャン中、マルチスキャン後における記録媒体461に対するカートリッジ405の動きを示し、従って、カートリッジ405により運ばれるプリントヘッドの動きを示すことになる。円で囲まれた数字は、画像462の一部が印刷されている最中の走査を示す矢印409〜433の開始位置の付近にある。これら円で囲まれた数字は、画像462を印刷するための走査の順番を示している。従って、図48に示すように、第1の走査は画像462の最上部で始まり、最後の走査は画像462の最下部となる。
【0381】
また、図48は、カートリッジホルダ405のASF位置437、拭き取り領域438、予備吐出領域439を示している。カートリッジホルダ405は、上記セクション1.0及び4.0で詳しく説明したように、自動給紙処理を開始するためにASF位置437に移動する。
【0382】
拭き取り領域438及び予備吐出領域439は、図5に示すホームポジション46に位置することが好ましい。拭き取り領域438では、カートリッジホルダ405に保持されたプリントヘッドが拭き取り機構により拭き取られ、余分なインク、汚れ、紙片、その他の破片などをプリントヘッドから拭き取る。プリントヘッドはノズルから予備吐出領域439にインクを吐出し、乾燥したり、凝固したインクをノズルから取り除く。ASF位置437、拭き取り領域438、予備吐出領域439のいずれかにおけるカートリッジホルダ405の位置は、図48では、カートリッジホルダ405を示すことにより、または位置または領域の下のカートリッジホルダ405の動きを示す矢印により示されている。
【0383】
記録媒体461の左側にイベントリスト501を示す。イベントリスト501の円で囲まれた記号は、画像462が印刷されるときに起こるイベントを示している。図48において、印刷開始503は円で囲まれた記号Stにより表す。自動給紙504は円で囲まれた記号ASFにより、また初期給紙時拭き取り/予備吐出505は円で囲まれた記号LPにより表す。自動予備吐出イベント507、508、510も、それぞれ円で囲まれた記号AP”、AP1、AP2として、円で囲まれた記号DWにより表すデータ待ち509と共にイベントリスト501に示されている。データ待ちイベントは、印刷中にホストプロセッサー2がプリントデータをプリンタ10にスプールする時のポーズを示している。
【0384】
記録媒体461の右側に時間線513を示す。時間線は図48の上から下に向かって進み、画像462を印刷する際のカートリッジホルダ405の走査と、イベントリスト501に示されたイベントとの時間関係を示す。従って、時間線513において、画像462を印刷する際のカートリッジホルダ405によるそれぞれの走査の開始は、カートリッジホルダ405の走査動作を表す矢印469〜491の開始地点に示された円で囲まれた番号と同一の番号を円で囲んで表している。同様に、イベントリスト501に示されるイベントは、時間線513上でイベントリスト501で用いられるものと同じ記号を用いて表され、また、イベントリスト441及び時間線513において同一イベントに対応する同一記号の参照番号は共通にしている。例えば、イベントリスト501の円に囲まれたStと、時間線513の円に囲まれたStは、両方とも印刷の開始503を表している。
【0385】
図48により示される予備吐出制御において、自動予備吐出処理が6秒間隔をベースに実行される。詳しくは、イベントリスト501と時間線513では、印刷の開始503と、その後に行われる自動給紙504及び初期給紙時拭き取り/予備吐出505を示している。従って、矢印469は印刷開始503の地点である円に囲まれた記号Stの位置から、記録媒体461の自動給紙504のための円に囲まれた記号ASFまでのカートリッジホルダ405の動きを示す。また、矢印470は、カートリッジホルダ405が、初期拭き取りで拭き取り領域438を過ぎて、初期予備吐出のために予備吐出領域439へ動くことで初期給紙時拭き取り/予備吐出505を終えるところを示している。
【0386】
給紙時拭き取り/予備吐出505の後、円で囲まれた記号AP”により表された第1の自動予備吐出507が行われる。具体的には、印刷が実際に開始されるまでに6秒間の遅延時間(514)が経過した場合に、自動予備吐出507が行われる。このような遅延は、例えば、データがホストプロセッサーに処理されている時や、プリンタに送られている時に起こる。さらに、遅延は、ユーザが記録媒体をプリンタに手差し給紙している時にも起こり得る。
【0387】
また、このような遅延は、データが処理されている間やプリンタにロードされている間、特にデータがプリンタに接続されたローエンドホストプロセッサーにより処理されているときに起こり得る。また、記録媒体461の給紙や、画像462の印刷を実際に始める場合など、印刷動作がユーザの介入を待たなければならない場合にも遅延が起こる。6秒間の遅延時間(514)が経過すると、予備吐出領域439の下の円で囲まれた記号AP”の隣に示されたカートリッジホルダ405の位置が表すように、カートリッジホルダ405は予備吐出領域439に位置され、自動予備吐出507が行われるようにする。そして、プリントヘッドノズルは、乾燥した、または凝固したインクを取り除くために、予備吐出を行う。
【0388】
遅延が自動予備吐出507をトリガするのに十分でない場合であっても、遅延は画質に有害な影響を与えるのに十分である。特に、6秒よりわずかに短いの遅延では、図49(a)に示すような画質の低下を容易に引き起こすこともある。こういった画質の低下は、第1のスキャンラインで印刷したテキストの左側に画素のギザギザや画素のずれとなって現れる。特に、プリントヘッドノズル内の乾燥したインクまたは凝固したインクにより、画素がずれたり、変形したりする。
【0389】
ともかく、図48で印刷を開始すると、カートリッジホルダ405により11回の走査を行い、6秒間(515)が経過する前に、12回目の走査が開始される。この時間間隔は、自動予備吐出507(または、適応できるようであれば、初期給紙時拭き取り/予備吐出505)から計測される。これらの12回の走査のためのカートリッジホルダ405の動きを矢印471〜482に示し、12回の走査の開始は円に囲まれた番号1〜12により示す。
【0390】
予備吐出を行う時間間隔が長いために、第1〜12回目の走査中に、画質の低下が起こることがある。特に、小さいフォントのテキスト463を印刷しているときには、プリントヘッドノズルで使わないブロックがある。この間に、このブロックのノズル内のインクが乾いたり凝固し始める。そして、第10回目の走査で大きいフォントのテキスト464の行が始まると、これらのノズルは数画素分、正しく吐出できないことがある。こういった不適切な吐出による画質低下の例を、図49(b)に示す。
【0391】
図48において、6秒間(515)が経過すると、カートリッジホルダ405は現走査を終えた時に自動予備吐出処理のために予備吐出領域439に移動する。従って、12回目の走査の後、カートリッジホルダ405は矢印483が示すように、自動予備吐出508のために自動吐出領域439へ動く。自動予備吐出508の後、カートリッジホルダ405は記録媒体461の走査を再スタートする。
【0392】
上記処理は、画像462が記録媒体461に印刷されるまで続けて行われる。具体的には、自動予備吐出処理は、ある走査中に、前回予備吐出を行ってから6秒間が経過すると行われる。時間が経過したときには、現走査を終了していることが好ましく、その後にカートリッジホルダ405は、予備吐出のために予備吐出領域439に動かされる。走査中に所定時間が経過し、カートリッジホルダ405が予備吐出領域439から離れる方向に動いている時には、現行の走査が終了した後、カートリッジホルダ405を予備吐出領域439へ動かしながら次の走査を終了する。
【0393】
こうして、図48において、カートリッジホルダ405が矢印484〜487に対応する第13〜16回目の走査を行う。そして、データ待ちイベント509が起こる。このデータ待ちイベントはかなりゆっくりであり、第17回目の走査を開始する前に6秒間(516)が経過するので、自動予備吐出510を行う。その場合、予備吐出を行うことができるように、カートリッジホルダ405は、矢印488で示すように予備吐出領域439へ動く。そうでなければ、第17回目の走査を予備吐出を行わずに実施する。
【0394】
第17回目の走査を予備吐出をせずに実行した場合、図49(c)に示すような画質の低下が起こる場合がある。データ待ちイベント509の間はすべてのプリントヘッドノズルは不要な状態であるので、ノズル内のインクが乾いたり凝固し始めたりすることがあり、その場合、第17回目の走査で、最初の数画素に有害な影響を及ぼすことになる。起こり得る画質の低下の例を、印刷したテキストの最初の文字の左側に画素のギザギザや画素のずれとなって現れた場合として図49(c)に示す。
【0395】
図48で、さらにもう一回、カートリッジホルダ405は、矢印489及び490に対応する第17及び18回目の走査を行い、画像462の印刷を終える。
【0396】
画像462が印刷されると、矢印491が示すように記録媒体を排紙するために、カートリッジホルダ405は記録媒体461から離れる。この排紙処理は、上記セクション3.0において詳しく説明した。
【0397】
上記説明した印刷処理においては、予備吐出の間隔を長くすると、図49に示すような画質の低下となって現れる。明らかに、図49に示す画質の低下は、データ待ちイベントによる印刷の遅延が、インクが乾き始めたり固まり始めたりするのに十分なほど長く、かつ、自動予備吐出をトリガするには短い場合に起こる可能性がある。
【0398】
ローエンドホストプロセッサーのためのデータ待ちイベントは、自動予備吐出をトリガするのに十分長い時間である傾向がある。従って、低速のローエンドホストプロセッサーから画像を印刷するユーザほど、図49に示すような問題は起こり得るものの、実際に直面することは少ない。より高価な、高速のハイエンドホストプロセッサーから印刷をするユーザの方が、こういった問題に直面する可能性が高い。従って、ハイエンドホストプロセッサーからの使用にプリンタが適するようにするためには、上記詳細に説明した予備吐出の問題を解決する必要がある。
【0399】
上記は、異なるフォントサイズのテキストからなる画像を印刷する場合の画質低下を示したが、そのような画質低下は、カラーまたは無彩色グラフィック画像を印刷するときにも起こり得る。例えば、図7に示すプリントヘッド62のようなカラープリントヘッドを用いてグラフィック画像を印刷中に、自動予備吐出を行う時間間隔を長くした場合に、画質低下が起こり得る。このようにプリントヘッドを用いてカラーで画像の一部を印刷したとき、ある一色のノズル数に対応する距離だけ、走査ごとに記録媒体を送る。プリントヘッド62では、記録媒体はノズル24本に対応する距離だけ、走査ごとに送られる。セクション5.0ですでに説明したように、それぞれの走査について使用可能な黒ノズル64本のうちノズル48本だけが使用され、16のノズルのブロックは使用されない。そして、印刷が黒のみの印刷に変化すると、以前は使用されなかった黒ノズル16本を含む黒ノズル64本がすべて使用される。これら前に使用されていないノズルからは、乾燥または凝固したインクが原因で吐出が不適切になることがあり、図49(b)に示すように線に沿った画質の低下を招く。従って、画質低下の上記問題点も、カラー印刷装置において解決しておかなければならない。
【0400】
図50は、自動予備吐出処理のための固定時間間隔を用いた場合の上記問題点を解決する、本実施の形態の自動予備吐出制御を説明するための図である。
【0401】
インクを吐出するために少なくとも所定数のノズルを有するプリントヘッドを用いて印刷を行うインクジェット印刷装置において、印刷中、第1の所定時間後に印刷の質を保持するために、プリントヘッドのノズルからインクを吐出する予備吐出処理が行われる。プリントヘッドのノズルは、印刷するデータに基づいて駆動され、予備吐出処理は、駆動するノズル数が変わったときに行われる。なお、予備吐出処理は、第1の時間間隔より長い第2の時間間隔まで遅延できるようにすることが好ましい。2回目の時間間隔の後、予備吐出処理が行われる。
【0402】
さらに詳しく説明すると、図50は、画像522が印刷された記録媒体521を示す。図50において、画像522は小さいフォントのテキスト523と、大きいフォントのテキスト524とを含む。また、図50は、画像522を印刷中のカートリッジホルダ405の異なる時点における位置を示す。カートリッジホルダ405は、セクション1.0で図5を参照して説明したプリンタ10のカートリッジホルダ37a及び37bである。カートリッジホルダ405は、図6に示すインクジェットカートリッジ43aのようなインクジェットカートリッジを搭載することが好ましい。また、インクジェットカートリッジは、図7に示すプリントヘッド61またはプリントヘッド62のようなプリントヘッドを有することが好ましい。
【0403】
矢印529〜551は、画像522の印刷のためのマルチスキャン前、マルチスキャン中、マルチスキャン後における記録媒体521に対するカートリッジ405の動きを示し、従って、カートリッジ405により運ばれるプリントヘッドの動きを示すことになる。円で囲まれた数字は、画像522の一部が印刷されている最中の走査を示す矢印529〜552の開始位置の付近にある。これら円で囲まれた数字は、画像522を印刷するための走査の順番を示している。従って、図50に示すように、第1の走査は画像522の最上部で始まり、最後の走査は画像522の最下部となる。
【0404】
また、図50は、カートリッジホルダ405のASF位置437、拭き取り領域438、予備吐出領域439を示している。カートリッジホルダ405は、上記セクション1.0及び4.0で詳しく説明したように、自動給紙処理を開始するためにASF位置437に移動する。
【0405】
拭き取り領域438及び予備吐出領域439は、図5に示すホームポジション46に位置することが好ましい。拭き取り領域438では、カートリッジホルダ405に保持されたプリントヘッドが、拭き取り機構により拭き取られ、余分なインク、汚れ、紙片、その他の破片などをプリントヘッドから拭き取る。プリントヘッドはノズルから予備吐出領域439にインクを吐出し、乾燥したり、凝固したインクをノズルから取り除く。ASF位置437、拭き取り領域438、予備吐出領域439のいずれかにおけるカートリッジホルダ405の位置は、図50では、カートリッジホルダ405を示すことにより、または位置または領域の下のカートリッジホルダ405の動きを示す矢印により示されている。
【0406】
記録媒体521の左側にイベントリスト561を示す。イベントリスト561の円で囲まれた記号は、画像522が印刷されるときに起こるイベントを示している。また、図50において、印刷開始563は円で囲まれた記号Stにより表す。自動給紙564は円で囲まれた記号ASFにより、また初期給紙時拭き取り/予備吐出565は円で囲まれた記号LPにより表す。自動予備吐出イベント567、570、572も、それぞれ円で囲まれた記号AP”、AP1、AP2としてイベントリスト561に示されている。さらに、走査直前予備吐出(JBSP)イベント568及び573は図50において円で囲まれた記号JBSPにより表され、ノズル数変更予備吐出(NNCP)イベント569は円で囲まれた記号NNCPにより表され、また、データ待ち(DW)イベント571は円で囲まれた記号DWにより表されている。これらのイベントについて以下に詳しく説明する。
【0407】
本実施の形態において、ノズル数変更予備吐出は、印刷するデータが、前回の予備吐出動作から第1の期間駆動されなかったノズルの駆動を必要とする場合に実行される。走査直前予備吐出は、プリントヘッドのノズルが、第2の期間、一つも駆動されていない場合に実行される。自動予備吐出は、前回の予備吐出から第3の期間が経過した場合に実行される。第3の期間は、第1または第2の期間よりも長い。その結果、ノズル数変更またはデータ待ちイベント等により起こる走査前のポーズにより予備吐出処理がトリガーされなければ、より長い第3の期間が経過するまで予備吐出処理は遅延されることになる。
【0408】
図50において、記録媒体521の右側に時間線574を示す。時間線は図50の上から下に向かって進み、画像522を印刷する際のカートリッジホルダ405の走査と、イベントリスト561に示されたイベントとの時間関係を示す。従って、時間線574において、画像522を印刷する際のカートリッジホルダ405によるそれぞれの走査の開始は、カートリッジホルダ405の走査動作を表す矢印529〜552の開始地点に示された円で囲まれた番号と同一の番号を円で囲んで表している。同様に、イベントリスト561に示されるイベントは、時間線574上でイベントリスト561で用いられるものと同じ記号を用いて表され、また、イベントリスト441及び時間線574において同一イベントに対応する同一記号の参照番号は共通にしている。例えば、イベントリスト561の円に囲まれたStと、時間線574の円に囲まれたStは、両方とも印刷の開始563を表している。
【0409】
図50により示される予備吐出制御において、自動予備吐出処理が6秒間隔をベースに実行される。しかし、記録媒体521を走査するために用いられるノズル数変更時や、すべてのノズルの使用が一時停止されたときなど、所定のイベントにより、早めの予備吐出をトリガーすることができる。
【0410】
詳しくは、イベントリスト561と時間線574では、印刷の開始563と、その後に行われる自動給紙564及び初期給紙時拭き取り/予備吐出565を示している。従って、矢印529は印刷開始563の地点である円に囲まれた記号Stの位置から、記録媒体461の自動給紙564のための円に囲まれた記号ASFまでのカートリッジホルダ405の動きを示す。矢印530は、カートリッジホルダ405が、初期拭き取りで拭き取り領域438を過ぎて、初期予備吐出のために予備吐出領域439へ動くことで初期給紙時拭き取り/予備吐出565を終えるところを示している。
【0411】
給紙時拭き取り/予備吐出565の後、円で囲まれた記号AP”により表された第1の自動予備吐出567が行われる。具体的には、給紙時拭き取り/予備吐出565と印刷が実際に開始されるまでの間に所定時間が経過した場合に、自動予備吐出567が行われる。所定時間は、例えば、データがホストプロセッサーに処理されている時や、プリンタに送られている間に経過する。さらに、ユーザが記録媒体をプリンタに手差し給紙している時にも経過することもある。
【0412】
図50では、上記所定時間は6秒間(575)である。6秒が経過すると、ノズルは、インク吐出エラーが起きやすい「危険領域」に入る。従って、印刷を開始する前に予備吐出を行う必要がある。自動予備吐出567を行うために、カートリッジホルダ405は、予備吐出領域439の下の円に囲まれた記号AP”の隣に示されたカートリッジホルダ405の位置が表すように、予備吐出領域439に位置する。そして、プリントヘッドノズルは、乾燥した、または凝固したインクを取り除くために、予備吐出を行う。
【0413】
印刷前に更なる遅延があった場合、プリントヘッドのノズルは、インクが乾き始めたり、凝固し始めたりするのに充分長い時間使用されないこともある。その場合、本実施の形態においては、印刷(予備吐出も含む)が所定時間、図50では3秒間、行われないかどうかを判断する。印刷がこの所定時間行われていない場合、走査直前予備吐出568が行われ、ノズル内に乾燥した、または凝固したインクが確実の残らないようにする。この処理により、図49(a)を参照して説明した線に沿った画質の低下を防ぐことができる。
【0414】
印刷が開始されると、前回の予備吐出処理からの経過時間を計測する。図50に示す例では、前回の予備吐出処理は、走査直前予備吐出568であり、自動吐出を行う時間間隔は6秒である。しかし、この時間が過ぎる前に、矢印531〜539が示すように、カートリッジホルダ405による走査が9回行われる。これらの9回の走査で、小さいフォントのテキスト523がすべて印刷される。矢印540で示される10回目の走査で大きいフォントのテキスト524を印刷するためには、これまでに使用されていないノズルを駆動してインクを吐出しなければならない。本実施の形態では、図54を参照して後述するように、使用するノズル数の変更を検知する。
【0415】
図50では、前回の予備吐出処理から3秒間の第1の時間が経過した後に、ノズル数の変更が起きている。従って、ノズルは、駆動するノズル数の変更が上述の図49(b)に示すような画質の低下を引き起こす可能性のある「影響を受けやすい領域」で動作していることになる。従って、ノズル数変更予備吐出569が実施される。しかし、3秒間の第1の時間が経過する前の変化である場合、ノズルは、画質の低下が起きにくい「安全領域」で駆動している。その場合、前処理は行わない。
【0416】
好ましくは、走査を行う前に、その走査がノズル数の変更を伴うかどうかを判断する。カートリッジホルダ405は、印刷を行う前に、使用していなかったプリントヘッドノズルのクリーニングができるように、走査を行う前に予備吐出領域439まで移動する。そして、ノズル数変更予備吐出を行った後、印刷を続行する。この様子は図50では、カートリッジホルダ405が第9回目の走査を終えた後に予備吐出領域439まで動き、大きいフォントのテキスト524のための第10回目の走査を円で囲まれた数字10でカートリッジホルダ405が始める前に予備吐出を行う動作を示している。この処理は、カートリッジホルダ405が現走査を終え、予備吐出領域439へ動くために次の走査を行う可能性のある、図47及び図48を参照して説明した予備吐出制御とは対照的な処理である。
【0417】
図50において、走査直前予備吐出568から、矢印542が示す第12回目の走査が開始されるまでに6秒が経過する。しかし、経過時間中にノズル数変更予備吐出569が行われているために、自動予備吐出570は行われない。その代わりに、矢印543〜546が示す第13〜16回目の走査の後に行われる自動予備吐出572まで、予備吐出は延期される。自動予備吐出572は、第16回目の走査中にノズル数変更予備吐出569が実行されてからの6秒間(576)の経過によりトリガーされる。
【0418】
自動吐出処理を実行するために、カートリッジホルダ405は矢印547が示すように予備吐出領域439へ動く。第16回目の走査で、予備吐出領域439から離れる方向にカートリッジホルダ405が動いている場合(すなわち、矢印546が予備吐出領域439の反対方向を指している場合)には、カートリッジホルダ405を予備吐出領域439へ動かしながら、次のスキャンラインを印刷することが好ましい。この処理は、上記のノズル数変更予備吐出処理で次のスキャンラインを印刷しないこととしたのとは対照的である。
【0419】
また、図50はデータ待ち571が十分に長く、自動予備吐出572の後、所定時間(例えば3秒)ノズルがどれも駆動されない場合も示している。この場合、第17回目の走査が始まる前に走査直前予備吐出573が行われ、これにより図49(c)に示すタイプの画質の低下を避けることができる。
【0420】
走査直前予備吐出573の後、第16及び17回目の走査を行って、画像522の印刷を完了する。画像522が印刷されると、矢印551が示すように記録媒体を排紙するために、カートリッジホルダ405は記録媒体521から離れる。この排紙処理は、上記セクション3.0において詳しく説明した。
【0421】
図51は、本実施の形態における予備吐出制御のタイミングを示すフローチャートである。
【0422】
ステップS5101において、プリンタ10に記録媒体を給紙する。そして、タイマを0にセットして、ステップS5102に進む。
【0423】
ステップS5103では、行送り及び印刷処理を行う。ステップS5104でタイマが閾値1よりも小さいかどうかを判断する。閾値1は予備吐出処理が一般的に不必要である、安全な時間間隔を表す。タイマが閾値1より小さくない場合は、ステップS5105に進む。
【0424】
ステップS5105において、プリンタ10が「影響を受けやすい領域」で動作しているか、「危険領域」で動作しているかを判断する。具体的には、ステップS5105では、タイマが閾値2よりも小さいかどうかを判断する。タイマが閾値2以上の場合は、プリンタ10は「危険領域」で動作していると判断し、処理はステップS5106に進み、予備吐出処理などのサポート動作を実行する。
【0425】
反対に、タイマが閾値2よりも小さい場合は、プリンタ10は「影響を受けやすい領域」で動作している。その場合、ステップS5107に進み、サポートが必要であるかどうかを判断する。例えば、記録媒体上に印刷するために駆動されるノズルの数が変わった場合、サポートが必要である。サポートが必要である場合、処理はステップS5108に進み、サポート処理を行う。ステップS5106またはS5108のいずれかの実行後、タイマはステップS5109で0にリセットされる。
【0426】
ステップS5110において、プリンタ10がページの最後に達したかどうかを判断する。プリンタ10がページの最後に達した場合には、ステップS5111において、記録媒体を排紙する。それ以外の場合、処理はステップS5103に進み、印刷を続行する。
【0427】
(8.1.2 実施例)
図52〜図56は、図50及び図51を参照して説明した予備吐出制御のタイミングを実施するための例を説明するためのフローチャートである。この例では、所定機能は、例えば図8を参照して上述した、例えばプリンタファームウエア内のプリンタ制御部110により実行されることが好ましい。その他の機能も、ホストプロセッサー2上で実行されるプリンタドライバ84により実行されることが好ましい。
【0428】
図52は、好ましくはプリンタ制御部110により実行される、予備吐出タイマ更新機能を示すフローチャートである。この機能は、図19のステップS1912から毎秒呼び出され、やはりプリンタ制御部110により実行することが好ましい。これにより、予備吐出タイマはプリンタ制御部110により毎秒更新される。
【0429】
さらに詳しく説明すると、予備吐出タイマ更新機能が呼び出されると、ステップS5201において、自動予備吐出が使用許可されたかどうかをまず判断する。自動予備吐出は、例えばプリンタドライバ84からユーザによって使用許可または使用禁止を設定できるようにすることが好ましい。さらに、高速印刷モードでは、自動予備吐出は、印刷速度を上げるために使用禁止にすることができる。同様に、高画質印刷モードでは、自動予備吐出は印刷の質を上げるために使用許可することができる。キャノン社製BC−21(e)などの特定のプリントヘッドは、予備吐出処理の間隔が長くても影響を受けにくく、こういったプリントヘッドにおいては自動予備吐出を使用禁止にする事ができる。
【0430】
自動予備吐出が使用許可されると、ステップS5202に進む。自動予備吐出が使用禁止されると、ステップS5206まで処理をスキップする。
【0431】
ステップS5202において、プリントヘッドA(上記参照番号100a)が存在するかどうかを判断する。例えば、使用可能なプリントヘッドを有するカートリッジが、カートリッジホルダ37aに適切に搭載されているかどうかを判断する。プリントヘッドAがある場合には、ステップS5203でプリントヘッドA用の予備吐出タイマPFT_Aを進める。同様に、ステップS5204において、プリントヘッドB(上記参照番号100b)が存在するかどうかを判断し、存在する場合には、ステップS5205においてプリントヘッドB用の予備吐出タイマPFT_Bを進める。本実施の形態では、PFT_A及びPFT_Bは、上述の自動予備吐出処理567、570、572などの自動予備吐出処理を制御するために用いられる。
【0432】
ステップS5206において、予備吐出タイマ更新機能を前回呼び出してから印刷または予備吐出が行われたかどうかを判断する。印刷または予備吐出が行われた場合にはステップS5207に進み、印刷無しタイマNPTを0にセットする。そうでない場合はステップS5208に進み、印刷無しタイマNPTを進める。このようにして印刷無しタイマNPTは前回の印刷または予備吐出処理から経過した時間を保持する。
【0433】
本実施の形態では、印刷無しタイマNPTは、上述の走査直前予備吐出処理568及び573などの走査直前予備吐出の制御のために用いられる。また、印刷無しタイマNPTは自動予備吐出が使用許可されているかどうかに関わらず、更新される。
【0434】
ステップS5209において、PFCHECKコマンドが実行される。このコマンドは、プリンタ制御部110により実行される予備吐出チェック機能を呼び出す。この予備吐出チェック機能について、以下に図53を参照して説明する。ステップS5209の後、図19のフローチャートにリターンする。
【0435】
図53は、本実施の形態における、好ましくはプリンタ制御部110により実行される予備吐出チェック処理を説明するためのフローチャートである。ステップS5301において、カートリッジホルダ405が正しい方向、すなわち予備吐出領域439へ向かっているかどうかを判断する。カートリッジホルダ405が正しい方向に動いていない場合、処理は機能の最後にスキップして、図52にリターンし、さらに図19の処理にリターンする。図19のステップS1912が次の1秒後の割り込みにより呼び出されると、カートリッジホルダが正しい方向に動くまで、この処理が繰り返される。カートリッジホルダが正しい方向に動いていると判断されると、ステップS5302に進む。
【0436】
上記ステップS5301の処理は、カートリッジホルダ405が予備吐出領域439から離れる方向に走査をしている最中に自動予備吐出処理の時間間隔が経過した場合を確認するためのものであり、カートリッジホルダ405が予備吐出領域439に戻る次の走査でも印刷が行われる。
【0437】
ステップS5302で、PFT_AがプリントヘッドAのための予備吐出設定時間よりも大きいかどうかを判断する。同様に、ステップS5303において、PFT_BがプリントヘッドBのための予備吐出設定時間よりも大きいかどうかを判断する。図50を参照して説明した上記例では、設定時間は両方とも6秒間であったが、時間を必ず同じにする必要はなく、プリントヘッドAとプリントBに異なるプリントヘッドを使用している場合に対応するためには、むしろ異なる方がよい。
【0438】
予備吐出タイマPFT_Aまたは予備吐出タイマPFT_Bの少なくともいずれかがそれぞれの設定時間よりも大きい場合には、対応するプリントヘッドが図50を参照して上述した「危険領域」で動作しているため、予備吐出処理を行う必要がある。従って、処理はステップS5304に進み、予備吐出(印刷)機能が呼び出されて、自動予備吐出処理が実行される。予備吐出(印刷)機能は、図56を参照して詳細に後述する。
【0439】
図54は、本実施の形態におけるプリンタドライバ84によるノズル数変更予備吐出リクエストの生成を説明するフローチャートである。
【0440】
ステップS5401において、プリンタドライバ84は、プリントジョブのページの開始時点で、PREVIOUS FEED及びCURRENT FEEDを0に設定する。ステップS5402において、プリンタドライバ84はLOADコマンドをプリンタ10に送り、セクション3.6.1で上述したように、記録媒体をプリンタ10に給紙する。
【0441】
プリンタドライバ84は、印刷する次のスキャンラインのラスターラインの高さを判断する。ステップS5403において、プリンタドライバ84は、SKIPコマンドを使って、プリンタ10にXスキャンライン分だけ記録媒体を進めるように命令する。ステップS5404で、CURRENT FEEDがXに設定される。
【0442】
ステップS5405では、CURRENT FEEDがTHRESHOLD_1以下であって、PREVIOUS FEED(前の走査のCURRENT FEED)がTHRESHOLD_1よりも大きい場合に、ノズル数が変更したと判断する。本実施の形態では、THRESHOLD_1はラスターラインで印刷に用いられるプリントヘッドの幅よりも1小さい。例えば、図7に示すプリントヘッド61では、THRESHOLD_1はラスターライン127行であることが好ましい。
【0443】
具体的には、PREVIOUS FEEDがTHRESHOLD_1よりも大きい場合、プリンタ10はプリントヘッドの幅以上に、前回の走査で記録媒体を送っている。その結果、前の走査と現走査との間に白領域が存在するため、前の走査で印刷されたデータが、水平白領域によりスキャンラインが他のスキャンラインから分離された、いわゆる孤立データであることを示す。通常は、単独データを印刷するために、プリントヘッドのすべてのノズルが使用されることはない。特に、少なくとも、プリントヘッドの上部または下部のノズルが使用されないことが多い。
【0444】
CURRENT FEEDがTHRESHOLD_1以下である場合、現スキャンラインと前のスキャンラインを分離する白領域は存在しない。従って、現スキャンラインデータは、テーブルやチャートのデータなど、プリントヘッドのすべてのノズルが通常使用される、連続走査データである。従って、CURRENT FEEDがTHRESHOLD_1以下であり、PREVIOUS FEEDがTHRESHOLD_1よりも大きいかどうかを判断することにより、孤立データの印刷から連続データの印刷へ移行したときに起こるノズル数の変化を検知することができる。
【0445】
ステップS5406では、CURRENT FEEDがTHRESHOLD_2よりも大きく、PREVIOUS FEEDがTHRESHOLD_2以下である場合に、ノズル数が変更したかどうかを判断する。本実施の形態においては、THRESHOLD_2はある1色(例えば、シアン、マゼンタ、黄色)のインクを吐出するために用いられるカラーノズルの数と等しい、すなわち、ある1色のインクを吐出するためのカラープリントヘッドの一部のノズル数よりも1少ないことが好ましい。例えば、図7に示すプリントヘッド62においては、THRESHOLD_2は、好ましくは23である。
【0446】
さらに詳しく説明すると、CURRENT FEEDがTHRESHOLD_2よりも大きい場合、カラープリントヘッドを用いて記録することのできるカラーインクのラスターラインの数よりも現スキャンで印刷されるラスターラインの数の方が多いため、現走査のデータはカラーデータである可能性が高い。また、PREVIOUS FEEDがTHRESHOLD_2以下である場合、前の走査がカラーデータであった可能性が高い。従って、このテストにより、カラーデータの印刷から無彩色の印刷に移行したことが判断できる。
【0447】
カラー印刷を行っている間、ある1走査で使用された黒ノズルの数は、通常、ある1色のためのカラーノズルの数と等しい。例えば、セクション8.0で説明したように、プリントヘッド62の黒ノズル46本のみがカラー印刷の時に通常用いられ、黒ノズル18本は使用されない。しかし、無彩色印刷の場合、黒ノズルすべてが使用されるのが一般的である。従って、カラー印刷から無彩色印刷へ移行した後では、使用される黒ノズル数が変わるために、通常、ノズル数が変わる。
【0448】
ステップS5405またはS5406でノズル数が変わったと判断した場合には、ステップS5407でノズル数変更予備吐出リクエストがプリンタ10に送られる。プリンタドライバ84で用いられるように設定されたコマンドがノズル数変更予備吐出リクエストを含まない場合、存在するコマンドを範囲外引数と共に送ることにより、この指示を送ることができる。そして、プリンタのファームウエアは範囲外因数を有するコマンドをノズル数変更予備吐出リクエストとして認識するように更新することができる。例えば、本実施の形態によれば、引数0行のラスターSKIPコマンドを、ノズル数変更予備吐出リクエストとして用いることができる。
【0449】
そして、ステップS5408において、スキャンラインがPRINTコマンドを用いて印刷される。ステップS5409では、PREVIOUS FEEDがCURRENT FEEDと等しくなるように設定する。ページの終わりに到達していない場合には、ステップS5410からステップS5403に戻り、次のスキャンラインの処理を行う。そうでなければ、ページ終了のための処理を行う。
【0450】
図55は、好ましくはプリンタ制御部110により実施される、本実施の形態の走査予備吐出処理を説明するためのフローチャートである。この処理は、プリンタ10がスキャンラインを印刷するためのPRINTコマンドを受信する毎に実施される。
【0451】
ステップS5501において、ノズル数変更予備吐出リクエストを受信したかどうかを判断する。図54のステップS5407を参照して上述したとおり、本実施の形態においては、このリクエストは、引数0行のSKIPコマンドの形態を有する。このようなリクエストを受信すると、処理はステップS5502に進み、そうでなければ、ステップS5505までスキップする。
【0452】
ステップS5502において、予備吐出タイマ、すなわち、図52を参照して説明したPFT_AまたはPFT_Bが、閾値T1よりも大きいかどうかを判断する。予備吐出タイマがこの閾値よりも小さい場合、図50を参照して上述したように、プリントヘッドは「安全領域」で動作している。従って、予備吐出処理は必要なく、印刷を遅らせるだけなので、ステップS5505にスキップする。
【0453】
予備吐出タイマがこの閾値よりも大きい場合、プリントヘッドは「影響を受けやすい領域」(または「危険領域」)で動作しており、予備吐出を行わなければならない。従って、処理はステップS5503に進み、予備吐出(印刷)機能が呼び出されて、ノズル数変更予備吐出(NNCP)処理が行われる。この予備吐出(印刷)機能は、後で図56を参照して詳しく説明する。ステップS5504において、ノズル数変更予備吐出リクエストはリセットされる。
【0454】
ステップ5505で、印刷無しタイマNPTが印刷無し閾値T2を越えているかどうかを判断する。印刷無しタイマNPTがこの閾値を超えている場合、処理はステップS5506に進み、予備吐出(印刷)機能が呼び出され、走査直前予備吐出(JBSP)処理が実行される。
【0455】
図56は、本実施の形態における、予備吐出(印刷)機能を説明するためのフローチャートである。この機能は、プリンタ制御部110により実施されることが好ましい。
【0456】
ステップS5601で、予備吐出ルックアップテーブルポインタを検索して取得する。ステップS5602でカートリッジホルダ405が予備吐出領域439にあるかどうかを判断する。カートリッジホルダ405が予備吐出領域439に無い場合には、ステップS5603で予備吐出領域439に移動される。
【0457】
図53を参照して上述した通り、自動予備吐出処理のためにステップS5304から予備吐出(印刷)機能が呼び出された場合には、カートリッジホルダ405はプリンタ10の予備吐出領域439と同じ側にある。同様に、走査直前予備吐出処理のために図55のステップS5506から予備吐出(印刷)機能が呼び出された場合には、少なくとも時間間隔T2の間、印刷は実施されない。従って、カートリッジホルダ405はやはり、プリンタ10の予備吐出領域439と同じ側にある。好ましくは、ノズル数変更予備吐出の場合にのみ、カートリッジホルダ405はステップS5603において印刷を行わずに記録媒体上を動く。その結果、予備吐出による遅延をさらに短縮することができ、印刷速度全体を上げることができる。これらのどちらの場合でも、ステップS5603でカートリッジホルダ405を予備吐出領域439まで動かすための時間は、短時間で済む。
【0458】
ステップS5604で、プリントヘッドの構成をチェックする。プリントヘッドの構成に基づいて、予備吐出カウントパターン周波数及びパルス幅変調が、後述のセクション8.2で説明するように、ステップS5605で決定される。決定した周波数及び変調は、ステップS5606で制御ロジック94に送られ、これによりステップS5607の予備吐出を開始する。
【0459】
ステップS5608、S5609、S5610において、予備吐出タイマはすべてリセットされる。具体的には、PFT_A、PFT_B、NPTがすべて0にリセットされる。そして処理は予備吐出(印刷)処理からリターンする。
【0460】
<8.2 パルス幅変調制御>
図57はインクジェットノズルヒートパルス幅と出力濃度との関係を説明する図である。図57では、一定幅のヒートパルス604を用いてインクジェットプリントヘッドのノズルから吐出されるインクによる印刷をするときの、スキャンライン602上の印刷濃度601を示す。
【0461】
プリントヘッドがスキャンライン602上を走査するに従って、インクジェットノズルからの吐出が繰り返されるために、プリントヘッド温度603は上昇する。プリントヘッドが熱くなると、同じヒートパルス幅で駆動したとしても、ノズルからはより多くのインクが吐出されることになる。その結果、プリントデータとは関係なく、印刷方向605に進むに従って、印刷濃度は不適切に高くなる。
【0462】
図58は、ヒートパルス幅変調を説明するための図である。図58に示すように、スキャンライン上をプリントヘッドが動くにつれて、異なるヒートパルス幅が用いられる。ヒートパルスはプリントヘッドの温度609を最適温度610近辺に保つように変調され、これにより、印刷濃度を一定に保っている。
【0463】
図59は、ノズルヒートパルス駆動時間の制御を説明するためのフローチャートである。ステップS5901でプリンタ10はプリントヘッドパルス幅シーケンスを駆動するための制御率を設定するコマンドを受信する。コマンドは、ホストプロセッサー2から送られ(ステップS5902)、そのようなコマンドを受信しない場合には、プリンタ10はデフォルト値100%を維持する。ステップS5901で受信した駆動の制御率は、ROM92にあらかじめ格納されたテーブルからのルックアップ値に適用する因数であり、ステップS5912で詳しく説明する。
【0464】
ステップS5903で、プリンタ10はヘッド温度の計算に用いる制御率のコマンドを受け取る。コマンドは、ホストプロセッサー2から受信し(ステップS5904)、このコマンドを受け取らない場合には、プリンタ10はデフォルト値100%を維持する。ヘッド温度計算の制御率は、ヘッド温度を計算するために用いられる予め保持されたヒートアップ計数に対する増倍率として用いられる。この動作については、ステップS5915に関連して詳しく後述する。
【0465】
好ましくは、ステップS5901〜S5904は、セクション3.6で定義したパルス率変更コマンド([PCR])を利用して行われる。上述したように、[PCR]コマンドは、ヘッド温度を算出するために用いられるヒートアップ係数の割合や、ノズルからインク滴を吐出するときにプリントヘッド100a及び100bのそれぞれのノズルについてパルス幅駆動シーケンスのためのパルス幅の率を変更するといった、パルス制御テーブルの割合を変更するために用いられる。
【0466】
プリンタ10ではプリントヘッド駆動パラメータの直近の値をリアルタイムで維持するために、例えば、50msecの時間間隔で、ステップS5906から5915の処理が繰り返し行われる。具体的には、図19を参照して説明したように、ステップS5906からS5915では、ヘッド温度を計算し、ノズルからインク滴を吐出するために用いられるパルス幅シーケンスのパルス幅タイミングを割り出すために、例えば50msecの時間間隔で、他の50msec毎に実行される他のタスクと共に、繰り返し実行される。
【0467】
図59において、ステップS5906で現在の周辺温度(Tenv)をプリンタ10の温度センサー103aから、図61により後述するように、好ましくはリアルタイムに読みだす。現在の周辺温度はサーミスタから読み出された直近の値であるが、より好ましくは、サーミスタから読み出された実際値は、ばらつきを滑らかにしたり、温度計の読みとり誤差を割引き、アナログ−デジタルサンプリングノイズなどのノイズを除去するといった目的で、ローパスフィルタにかけられる。
【0468】
ステップS5906で読み出した周辺温度Tenvに基づいて、ステップS5907で目標温度Ttgtを算出する。目標温度は、現在の周辺温度に基づく、プリンタ10の好ましい駆動温度である。一般的には、プリンタ10は、図19により上述したように、目標の温度に達するように、500msec毎の割り込みレベルで、プリントヘッド100a及び100bの不図示のヒーターを介して制御される。目標温度は、現在の周辺温度に基づく、プリントヘッドの駆動に最も適した温度である。目標の温度と周辺温度の関係は互いに逆であり、つまり、周辺温度が低い場合には、目標温度は比較的に高くなり、逆に周辺温度が高い場合には、目標温度は比較的に低くなる。例えば、周辺温度がTenv=5℃など、非常に低い場合、好ましい目標温度は、例えばTtgt=35℃である。また、周辺温度がTenv=35℃など、非常に高い場合、好ましい目標温度は、例えばTtgt=15℃である。
【0469】
ステップS5909では、プリントヘッド100a及び100bから実際にインク滴を吐出することによる、プリントヘッド温度に対する影響を計算する。具体的には、ステップS5906で読み出した周辺温度は、プリントヘッド100a及び100bの外側に搭載されたサーミスタから読み出された周辺温度に基づくものである。反対に、プリントヘッドの駆動パラメータの適切な制御は、プリントヘッドノズル近くのインクの内部温度により直接的な影響を受ける。通常、そのような狭い場所にサーミスタを取り付けるのは現実的ではないと考えられている。それと同時に、活発なインク滴の吐出はインク温度を上昇させ、インク滴を吐出しなければ、インク温度は通例下がることが知られている。ステップS5909の目的は、インク滴の吐出によるプリントヘッド温度の影響を算出する事により、この計算を行うことである。
【0470】
ステップS5909で行うプリントヘッドの温度の計算は、例えば50msecなど、前の時間内で実際に吐出されたインク滴の数に、ある程度基づいて行われる。所定時間内におけるインク滴吐出のそれぞれには、熱係数重みがつけられている。所定時間内のインク滴吐出の回数に応じて、プリントヘッドの温度にインク滴の吐出が与える影響を算出することが可能である。
【0471】
また、このようなヒートアップ係数は、使用されるプリントヘッドのある特定のタイプや、そのヘッドで用いられるインクの特性や、ヘッドによるプリントアウトの解像度などによって異なることが知られている。ヘッド/インク/解像度のそれぞれの異なる組み合わせによって、印刷されたドット数に対応する、ヒートアップ係数値は変わる。従って、ROM92にはヒートアップ係数値が予め格納されている。この状態を図60に示す。
【0472】
図60に示すように、ROM92の一部は予め格納されたヒートアップ係数のためのテーブル621を含む。テーブルは複数のテーブル622a、622bなどを含み、それぞれのテーブルがプリントヘッド、インクの特性、解像度のそれぞれの異なる組み合わせに対応している。複数のテーブルのそれぞれは、1、2、3(参照番号は623、624、625)のラベルつけられた、表のようにアクセスされる係数を有し、例えば、50msecといったある特定の時間間隔で吐出されるインク滴の数に基づいてルックアップ処理によりアクセスされる。プリンタ10は、デフォルトまたはコマンドに基づいてテーブル621に保持されたテーブルから一つのヒートアップテーブルを選択し、さらに、50msec毎に吐出されるインク滴の数に基づいて、選択されたテーブルからヒートアップ係数を選択する。
【0473】
テーブル621からルックアップ処理により取得した係数は、インク滴の吐出がプリントヘッドの温度に与える影響を算出するために用いられる。適切な計算の例としては、以下のものがある。
【0474】
ここで、係数1は、吐出された黒インク滴の数に基づくヒートアップ係数、係数2は、吐出された色インク滴の数に基づくヒートアップ係数、係数3はヒーターの現在のデューティーサイクルに基づくヒートアップ係数、係数4は不活動状態に基づくプリントヘッドの温度低下を示す。もちろん、使用された実際の係数及び計算は、ヘッド/インク/解像度の組み合わせに依存する。例えば、上記の計算は4色のプリントヘッドには適しているが、全黒のプリントヘッドでは、吐出された色インク滴の数に依存しない別の計算を用いる。
【0475】
周辺温度Tenv、目標温度Ttgt、及びプリントヘッド温度の影響ΔTmainを用いて、ステップS5910では以下の式を用いて差Tdiffを計算する。
【0476】
Tdiff=Ttgt−Tenv−ΔTmain
ステップS5911では、温度差Tdiffに基づいて、パルス幅駆動シーケンスのためのパルス幅時間を格納するROM92のルックアップテーブルにアクセスする。適するテーブルを図60に図示し、以下に説明する。
【0477】
図60に示すように、ROM92は駆動時間を保持するためのルックアップテーブルを有する。駆動時間は、インク滴を吐出するためにノズルヒーターを駆動するために用いられるパルスシーケンスのためのパルス幅のことである。一般的なパルスシーケンスは図59の参照番号640で示しており、パルス幅Tpreのプレヒートパルス、パルス幅Tintの無活動の期間、及びパルス幅Tmainのメインヒーティングパルスとを有する。このようなパルスシーケンスは、プリントヘッド100a及び100bのそれぞれのノズル内のノズルヒーターに与えられ、印刷のためにインク滴が吐出される。テーブル630の目的は、Trep、Tint、Tmainを、ステップS5910で算出した温度差にある程度基づいて算出することである。
【0478】
同時に、パルス駆動シーケンスのパルス幅は、プリントヘッド、インク特性、解像度などによってそれぞれ異なることがわかる。従って、図60に示すように、テーブル630はテーブル632a、632bなど個々のテーブルを含んでいる。各テーブル632a,632b等は、プリントヘッド、インク特性、解像度の各組み合わせに応じて作成されている。630に示すように、テーブルそれぞれはプレヒートパルスTpreのパルス幅のためのエントリー634と、無活動期間Tintのパルス幅のためのエントリー635と、メインヒーティングパルスTmainのパルス幅のためのエントリー636とを含む。どのエントリーにも、ステップS5910で算出した温度差Tdiffに基づいてルックアップ処理によりアクセスすることができる。
【0479】
プリンタ10は、デフォルトまたはコマンドに基づいて、630に格納されているテーブルから駆動時間のテーブルを一つ選択する。その後、プリンタ10は選択したテーブルのエントリーにアクセスし、ステップS5910で算出した温度差及びヘッド/インク/解像度の組み合わせに基づいて、プレヒートパルス、無活動時間、メインヒーティングパルスの適切な時間を探し出す。
【0480】
図59に戻って説明すると、ステップS5912で、ステップS5901で受信した駆動のための制御率に基づいて、ルックアップ処理によりテーブル630から得た駆動時間を更新する。このステップの目的は、プリンタ10に実際の装着されたプリントヘッドと、テーブル630に格納されたプリントヘッドの組み合わせの違いを考慮に入れて、ルックアップテーブル630に予め格納された値を更新することができるようにすることである。詳しく説明すると、上述の通り、プリンタ10のROM92には駆動時間のための複数のテーブルが予め格納されており、それぞれのテーブルはプリントヘッド/インク/解像度の各組み合わせのために作られているが、ヘッド/インク/解像度のすべての組み合わせに対応できるわけではない。従って、ステップS5912での更新により、これまでには分からなかった、または格納されていなかったプリントヘッド/インク/解像度の組み合わせを使用することができる。
【0481】
ステップS5912の更新は、ステップS5911のルックアップ処理で得られた駆動時間に、ステップS5901で受信した制御率を掛けることにより行うことが好ましい。このため、デフォルトの制御率は100%である。パルス率変更コマンド[PCR]により命令可能な制御率は、1%と200%の間に制限されている。従って、パルス時間は、効果的に無視できるパルス時間から、テーブル630に保持された値の2倍まで更新することができる。
【0482】
そして処理はステップS5914に進み、プリンタ10は、ヘッド温度を算出するためにヒートアップ係数を探し出す。図60のテーブル621を参照して上述したように、ヒートアップ係数は、プリントヘッド、インク、及び解像度の各組み合わせに基づいて得られ、約50msecのパルス幅を有する1周期内に印刷されるドット数に基づいて、テーブル622aなどの1つから探し出される。
【0483】
ステップS5915では、ステップS5903で受信した制御率に基づいてヒートアップ係数を更新する。ここでもこのような更新の目的は、テーブル621のどれにも保持されていない、プリントヘッド、インク、解像度のある組み合わせが利用できるようにすることである。
【0484】
好ましくは、ステップS5915でのヒートアップ係数の更新は、ステップS5914でルックアップ処理を行うことにより得た係数を、ステップS5903で受信した制御率により掛けることにより行われる。このため、デフォルトの制御値は100%である。制御率変更コマンド[PCR]により命令可能な制御率は、1%と200%の間に制限されているため、ヒートアップ係数は、効果的に無視できる値から、テーブル621に保持された値の2倍まで、更新することができる。
【0485】
図5916において、プリンタ10は、プリンタ10にプリントデータを送るホストプロセッサー2からのコマンドと、プリンタ10に送られたデータを印刷するように指示するコマンドとに応じて、ステップS5912で更新した駆動時間に基づいて、ノズル駆動を制御する(ステップS5917)。そして、ステップS5906〜S5915を例えば50msec間隔で繰り返し、ホストプロセッサー2からの命令に対して、ステップS5916で更新された駆動時間を基にして、ノズル駆動を制御する。なお、駆動の制御率並びにヘッド温度算出のための制御率は、ホストプロセッサー2から随時送られ、上記ステップS5901及びS5903でプリンタ10により対処される。
【0486】
図61は駆動時間決定のためのリアルタイムな周辺温度の使用方法について説明するフローチャートである。本発明の実施の形態によれば、プリントヘッドのノズルの駆動時間を決定するために用いられる周辺温度Tenvはリアルタイムの周辺温度TenvRである。
【0487】
従って、ステップS6101において、リアルタイムの周辺温度TenvRは図9に示す温度センサー103aを用いて計測され、A/D変換器及びI/Oポート96を介してリトリーブされる。ステップS6102において、ハード電源投入タイマを進める。そしてステップS6103でリアルタイムの周辺温度TenvRをハード電源投入タイマを利用して更新する。これは、プリンタ10の連続動作が周辺温度に与える影響に対処するためである。
【0488】
ステップS6104において、TenvRが0℃よりも低いかどうかを判断し、その場合、TenvRをステップS6105で0℃に設定する。同様に、ステップS6106において、TenvRが70℃よりも高いかどうかを判断し、その場合には、TenvRを70℃に設定する。
【0489】
ステップS6108において、図59及び図60を参照して説明したように、TenvR及びTenvを用いてヘッド目標温度をリトリーブする。
【0490】
図62は、自動予備吐出処理が一定時間間隔をベースに行われた後の、ヒートパルス幅変調の制御について説明する図である。
【0491】
図62に示すように、安定した印刷濃度を保つために、それぞれのスキャンライン上においてパルス幅変調は変化する。予備吐出処理は、前回の予備吐出制御から3秒が経過したスキャンラインの後に行われる。
【0492】
それぞれの予備吐出処理の後、カートリッジホルダ405は、印刷が再開できるようになる前に、予備吐出領域439から印刷領域644へ動かなければならない。カートリッジホルダ405により運ばれるプリントヘッドの温度ははこの動作の間に低下する。その結果、図62に示すように、予備吐出処理の後、印刷を再開するときには最大パルス幅647が与えられる。パルス幅はプレヒートパルスと、無活動期間と、最大パルス幅647として示すような、メインパルスを含む。
【0493】
図62に示すヒートパルス変調の制御は、ある固定の短い時間間隔をベースに予備吐出が行われている場合に、印刷の質を保つためには十分であるかもしれないが、ヒートパルス変調は、上記セクション8.1.1で説明した、時間間隔を異ならせることにより予備吐出の実施タイミングを分けることのできる本実施の形態の予備吐出に、より適切に対応するように更新することができる。
【0494】
図63は、本実施の形態におけるプリントヘッドのヒートパルス幅変調を説明するための図であり、ヒートパルス幅は、前回の予備吐出から第1の時間間隔に、最大となる。
【0495】
図63において、予備吐出処理651は、前回の予備吐出処理653を行ってから6秒間隔(652)の後に行われる。6秒間隔(652)は、ノズル数変更が検出されない場合の、長い間隔の一例である。このような長い時間間隔については、図50及び図51を参照して上述した。
【0496】
長時間間隔の第1部分の間、カートリッジホルダ405により運ばれるプリントヘッドのノズルは、「安全領域」で動作している。この安全領域は、駆動ノズル数の変更があった場合であっても、予備吐出が行われないように設定された閾値により定義され、やはり図50及び図51を参照して説明した。動作の安全領域中においては、ノズルは乾燥したり、凝固したりしない傾向がある。従って、図59〜図62を参照して説明したパルス幅変調で、十分な画質を提供することができる。
【0497】
安全領域の後、カートリッジホルダ405により運ばれるプリントヘッドのノズルは、同じく図50及び図51を参照して上述した「影響を受けやすい領域」で動作していることになる。この影響を受けやすい領域での動作中は、プリントヘッドのノズル内で、インクが乾燥し始めたり凝固し始めたりすることがある。従って、本実施の形態によれば、この影響を受けやすい領域での動作中は、ノズルを駆動するために最大パルス幅654を使用する。同様に、予備吐出が、図50及び図51を参照して上述した「危険領域」での動作に至るまで遅延された場合、ノズルを駆動するために、最大パルス幅が引き続き使用される。
【0498】
予備吐出処理の後、カートリッジホルダ405が予備吐出領域439から印刷領域まで移動する間に起こるプリントヘッドの温度低下に対応するために、最大パルス幅656がノズルを駆動するために用いられる。そして、図59〜図62を参照して上述したパルス幅変調が再開され、ノズルがまた影響を受けやすい領域または危険領域で動作するようになるまで続けられる。
【0499】
図64は、本実施の形態におけるヒートパルス幅変調を説明するためのフローチャートであり、前回の予備吐出から第1の時間が経過すると、ヒートパルス幅が最大となる。このパルス幅変調制御は、図59〜図62を参照して上述したパルス幅変調の更新を示すものである。
【0500】
図64に示すパルス幅変調制御は、リアルタイムでパルス幅変調を更新するために、プリンタ制御部110により、例えば50msecなどの周期で繰り返し実施されることが好ましい。具体的には、図64に示すパルス幅変調制御は図19のステップS1906から、例えば50msec毎に実施される。
【0501】
ステップS6401において、記録媒体がプリンタ10に給紙されたかを判断する。記録媒体が給紙されていない場合、印刷を行わず、ステップS19にリターンする。給紙されていれば、ステップS6402に進み、予備吐出処理中であるかどうかを判断する。予備吐出処理中である場合には、図56を参照して上述したようにプリントヘッドの構成に基づいてパルス幅変調を制御し、図19にリターンする。そうでない場合には、ステップS6403及びS6404に進む。
【0502】
ステップS6403及びS6404において、パルス幅変調パラメータが図59〜図62を参照して上述したようにして決定される。本発明の実施の形態においては、パルス幅パラメータはパルス数の形態で返される。パルス数が大きいほど、ノズルから吐出されるインクの量をより多くするヒートパルスを示し、パルス数が小さいほど、ノズルから吐出されるインクの量をより少なくするヒートパルスを示す。
【0503】
ステップS6405において、予備吐出タイマ(PFT_AまたはPFT_B)が、プリントヘッドノズル動作における「影響を受けやすい領域」を定義する閾値(例えば3秒)よりも大きいかどうかを判断する。予備吐出タイマが閾値よりも大きい場合、ステップS6406に進んで、最大パルス幅がパルス幅変調に用いられる。この工程により、ノズル内のインクが乾燥または凝固しやすいような時には、最大パルス幅が用いられる。最大パルス幅を使用することにより、画質を低下させる原因となるノズルのつまりが起こる可能性を下げることができる。そしてステップS6411に進む。
【0504】
予備吐出タイマが閾値を越えていない場合は、ステップS6407において、ステップS6404で得たパルス数が以前に決められたパルス幅の数よりも小さいかどうかを判断する。決められたパルス数が以前のパルス幅の数よりも小さい場合、ステップS6408において現在のパルス数を前回のパルス数から1を引いた値に設定する。
【0505】
同様に、ステップS6409において、ステップS6404で得たパルス数が、前回決められたパルス幅数よりも大きいかどうかを判断する。決められたパルス数が前回のパルス幅数よりも大きい場合、ステップS6410において現在のパルス数を前回のパルス数に1を加えた値に設定する。
【0506】
ステップS6407〜S6410の動作により、パルス幅変調機能の呼び出し1回につき、現在のパルス幅数の変更率を1に制限することができる。この結果、パルス幅変調における変化は、従来のシステムに比べてなめらかになり、結果として得られる1スキャンラインの印刷濃度を均等にすることができる。
【0507】
ステップS6411では、現在のパルス幅数をヒートパルスの時間に変換し、ステップS6412で制御ロジック94に送る。そして図19にリターンする。
【0508】
<9.0 複数のインクを用いたカラー印刷>
上述の通り、プリンタドライバ84は入力したマルチレベルのRGBデータを、印刷に用いる2値のCMYKデータに変換するために、様々な処理を実行する。図65は、1画素分のRGBデータを黄色インク、マゼンタインク、シアンインク、高浸透性の黒インク、低浸透性の黒インクそれぞれに対応する2値データに変換するための、コンピューターにより実行可能な処理工程を示すフローチャートである。処理は、プリンタドライバ84に保持し、RAM86からCPU70により実行することが好ましい。
【0509】
図65の処理は、マルチレベル値に対応する低浸透性黒インクの第1の量を決定する第1の決定工程と、マルチレベル値に対応する高浸透性黒インクの第2の量を決定する第2の決定工程と、マルチレベル値に対応する第1の量の低浸透性黒インクと、マルチレベル値に対応する第2の量の高浸透性黒インクとを用いて画素を印刷する印刷工程とを有する。
【0510】
具体的に説明すると、ステップS6501で処理が開始されると、入力画素のRGBデータを受信する。入力されたRGBデータは、8ビットの赤、緑、青データからなる多値RGBデータであることが好ましい。RGBデータはステップS6502で対応するCMYKマルチビット値に変換される。次にステップS6504において、ステップS6502で得たシアンデータ値が出力補正される。また、ステップS6502で得たマゼンタデータ値がステップS6505で出力補正され、さらにステップS6506及びS6507ではステップS6502で生成された黄色データ値及び黒データ値に対して、出力補正が行われる。さらにステップS6508において、ステップS6502で生成された黒データ値に対する出力補正を行う。なお、ステップS6508における出力補正は、ステップS6507で出力補正された黒データに対して行われるが、ステップS6507における出力補正では、高浸透性黒インクに対応する出力補正後の値が生成され、ステップS7608における出力補正では、低浸透性黒インクに対応する値が生成される。
【0511】
図66は、ステップS6504〜S6508の処理で使用されるグラフの例を示す。図66のそれぞれのグラフの線は、特定タイプのインクのための出力補正を行うために用いられる、対応する入力値及び出力値を示す。例えば、染料黒インクに対応する出力補正を行うためには、ステップS6502で生成された黒の入力値を水平軸上に置いて、仮想垂直線を染料黒インクを表すグラフの線と交わるように描き、さらに仮想水平線を交点から番号付垂直まで描く。入力カラー値の出力補正された値は、仮想水平線が番号付垂直軸と交わる点に基づいて決められる。
【0512】
ステップS6504〜S6508で上述したように出力補正を行った後、出力補正されたそれぞれの値は、中間調化される。具体的には、出力補正されたシアンデータは、ステップS6510で中間調化され、出力補正されたマゼンタデータは、ステップS6511で中間調化され、出力補正された黄色データは、ステップS6512で中間調化され、出力補正された染料黒データは、ステップS6513で中間調化され、出力補正された顔料黒データは、ステップS6514で中間調化される。なお、ステップS6510〜S6514で行われる中間調化処理により、「0」か「1」の値に変換される。その結果、ステップS6501で入力したデータに対応する画素を印刷する時には、インク滴を全く使わないか、または上述したそれぞれのタイプのインク滴を全て用いるか、またはそれらを組み合わせるかにより印刷される。とりわけ、従来のシステムと対照的に、染料黒インクと顔料黒インクの両方をその画素を印刷するために用いてもよい。ステップS6516では、ステップS6510〜S6514のいずれかのステップで生成された中間調化されたデータは、上述のように、その後に行われる印刷のためにプリントバッファ99に保持される。
【0513】
さらに、図65の処理により得られた2値データを、黄色、マゼンタ、シアン、高浸透性黒インクの小さなインク滴と、低浸透性黒インクの大きなインク滴とを印刷するために用いることが好ましい。上記では、このような構成により、カラー領域でも良好な品質を保ちながら、高品質のテキスト画像及び黒領域を生成することができる。
【0514】
<10.0 状態に基づくプリンタ制御>
図67〜図82は、プリンタドライバがプリンタの状態をどのように得、プリンタ動作を制御するためにそういった状態をどのように使用するかを説明するための図である。特にこれらの図は、デフォルト値からプリンタ用の動作制御パラメータに更新するため、及び/またはデフォルトの方法とは異なるプリンタの現在の状態を考慮した方法でプリントデータを導き出すようにプリンタで印刷するためにプリントドライバによってプリントデータを導き出す方法を更新するために、どのようにプリンタドライバがプリンタの状態、及び/またはコンピューター機器の現在の環境に関係するプリンタの状態を利用するかを説明するものである。
【0515】
プリンタをその状態に基いて制御を行うことで、多くの利点が得られる。具体的には、起こり得るすべてのプリンタの状態に対応するために、プリンタの処理を行うタイミングはしばしば処理マージンを長くとった設計時間に固定されていることが多い。このように処理マージンを長くとることにより、非常に多くの様々な状態に対応する処理を行うことができるが、ある特定の状態では、この長いマージンは非効率なものである。例えば、様々な温度に亘って良好なプリンタ動作を実現するために、温度は、設計マージンを長くする要因となるプリンタ状態の一例である。設計マージンを大きくすることで、様々な温度において良好な印刷出力を実現することができる。しかし、そのような印刷出力のコストは、ある温度(例えば、非常に低いまたは非常に高い温度)では良好な印刷出力を確実にすることができる反面、別の温度(例えば、通常の室温)では効率を下げることとなる。従って本発明の実施の形態では、プリンタの状態を温度として得、その状態に基づいてどのようにプリンタを制御し、更に/またはそのような状態に基づいてどのようにプリントデータを導き出すかを更新する。
【0516】
<10.1 状態取得>
図67〜図69は、プリンタの処理パラメータを更新するためにプリンタドライバがどのように状態を取得し、その状態を使用するか、及び/またプリンタドライバがどのようにプリントデータを導き出すかを示す。こういった更新により、デフォルトの処理とは異なる別の処理になる。
【0517】
図67は、図9及び図18に示すものと同様の機能ブロック図であり、プリンタ10と通信するコンピューター機器1を示している。図67に示すように、コンピューター機器1は、オペレーティングシステム81、プリントリクエストに影響を与えるアプリケーションプログラム82a、プリンタドライバ84、プリントデータ保持部107を有する。コンピューター機器1は、セントロニクスやネットワークインタフェースなどを用い、双方向通信線76を介してプリンタ10と通信する。プリンタ10はプリンタ制御部(ソフトウエア)110を有し、プリンタドライバ84からのプリントデータをプリントバッファ109に格納し、プリントエンジン101にこのようなデータを印刷させる。
【0518】
図68は、プリンタドライバ84がどのようにプリンタ10から状態を取得し、取得した状態に基づいて、デフォルトのプリントデータ生成処理を更新し、及び/またはプリンタのためのデフォルトの処理パラメータを更新するかを示すフローチャートである。図68において、左側に示す処理は、コンピューター機器1でプリンタドライバ84により実行される処理であり、右側に示す処理は、プリンタ10においてプリンタ制御部110により実行される処理である。こういったすべての処理は、アプリケーションプログラム82aからの特定プリントジョブの実行リクエストに応じて行われる。
【0519】
ステップS6801において、プリンタドライバ84はコンピューター機器1の現在の環境を取得する。現在の環境は、例えば、時間、日付、位置情報、及びコンピューター及びそのオペレーティングシステム81から得られるその他の環境情報である。以下に示すように、そのような環境情報は、ドライバ84によって、プリンタの状態に基づいて行われる更新をさらに改善するために用いられる。例えば、ある処理は、1日のある時間帯で、実施される頻度が高めまたは低めだったり全く実施されなかったりする。
【0520】
ステップS6802ではプリンタドライバ84はプリンタ状態を取得する。プリンタドライバ84は、[STATUS]コマンドを双方向通信線76を介してプリンタ10に送ることにより、プリンタの状態を取得する。プリンタドライバ84によりリクエストされ、プリンタ10から提供されるプリンタ状態の例としてはプリンタの温度、プリンタのためのファームウエアのバージョン及びその能力及び現在の構成、プリンタの現在及び処理中の動作(例えば、クリーニング、位置合わせ、清掃、給紙)、プロセッサーの速さとパワー、及び、プリンタのEEPROMから得られる様々な情報がある。
【0521】
プリンタドライバ84における処理は、ステップS6805に進み、プリンタドライバ84は、上記のようにして取得したプリンタの状態に基づいて、及び/またはコンピュータ機器1の環境に基づいて、プリンタの処理パラメータを更新する。ステップS6805で変更される処理パラメータは、例えば、プリントヘッドの予備吐出処理の時間間隔の調整、スミヤ時間の調整、自動給紙(ASF)の調整、行送りの速度、プリントヘッドの清掃速度の調整などがある。プリンタドライバ84は、双方向信号線76を介してプリンタ10へ適切なコマンドを送信することにより、これらの処理パラメータをデフォルト値から更新する。この処理については、後で例を挙げてより詳しく説明する。プリンタ10はステップS6806で、デフォルト値の代わりに更新された処理パラメータを格納することにより、こういったコマンドに対応する。
【0522】
プリンタドライバ84での処理はステップS6807に進み、プリンタドライバ84はプリンタ10の状態に基づいて、及び/またはコンピューター1の環境に基づいて、ユーザインタフェースなどのプリンタドライバ84自身の処理を更新する。このようなデフォルト処理からの、処理更新の一例として、処理中のプリンタ処理が終了するまで、手差し給紙を遅延するメッセージの表示など、ユーザに特別のメッセージを表示する。
【0523】
そしてステップS6809に進み、プリンタドライバ84は、デフォルトのデータ処理から、プリントデータを導き出す方法を、プリンタ10の状態またはプリンタ10の状態及びコンピューター機器1の現在の環境に基づいて更新する。このようなプリントデータ処理の更新の例として、インクにじみ及び/またはインクスミヤ(こすれ)の影響を軽減するようにプリンタ補正テーブルを更新したり、データ圧縮アルゴリズムをより効率的なアルゴリズムに変更したり、プリンタ10が圧縮したデータよりも圧縮しないデータの方により迅速に対応できるときにデータ圧縮をオフにするなど、データ圧縮処理を更新したりする。このようにして生成したプリントデータは、[DATA]コマンドを用いて双方向通信線76を介してプリンタ10に送られ、プリンタ10はこのコマンドに応じてステップS6810でデータを印刷する。
【0524】
プリンタ10から得られる重要な状態変数の一つは、プリンタの現在温度である。ここで言うプリンタの温度は、プリンタの構成要素(例えば、プリントヘッドや、プリンタ回路基盤など)のいずれかの内部温度ではなく、プリンタの周辺温度である。プリンタの周辺温度は、広義ではプリンタが印刷をしている環境の温度を示し、インクの乾燥時間、インクの粘度、記録媒体の滑り易さ(つまり、プリンタ10が記録媒体を給紙トレイから給紙して、排紙トレイに排紙する能力)など、様々な物理的現象を広く制御する。
【0525】
図69は、プリンタ制御部110により実行される、温度を取得するための処理手順を示す。図69に示す手順は、図19のステップS1916を詳しく説明したものであり、図61で示す工程によれば、プリンタの状態温度をリアルタイムの周辺温度TenvRに基づいて取得する。
【0526】
図69に示す工程全体の効果は、プリンタがキャップをされた状態で少なくとも2時間使用されなかった場合に、プリンタ状態温度をリアルタイム周辺温度TenvRに設定することである。図69示す処理は、1分毎の割り込みレベル(図19参照)で実行され、その毎に動作分カウンターを進める(ステップS6901)。ステップS6902では、プリンタのキャップされた状態を調べる。プリンタが現在キャップされた状態でない場合には、ステップS6904に進み、キャッピングカウンタは0にリセットされ、次の1分毎の割り込みまで、処理は終了する。反対に、ステップS6902においてプリンタが現在キャップされた状態であると判断されると、ステップS6905に進み、キャッピングカウンタを進める。ステップS6906及びS6907でキャッピングカウンタが、キャップされた状態で120分間経過したことに対応する120に達したかどうかを判断する。キャッピングカウンタが120に達していない場合、次の1分毎の割り込みまで、処理を終了する。反対に、キャッピングカウンタが120に達している場合には、プリンタ状態温度TenvLをリアルタイムの温度であるTenvRの現在値に設定する。その後、次の1分毎の割り込みまで、処理は終了する。
【0527】
<10.2 にじみの低減>
図70〜図72は、にじみを低減するために、プリンタドライバ84がどのようにプリンタの状態に基づいてプリントデータの処理をデフォルト処理から更新するかを示す。図70〜図72に示す例では、更新は、プリンタ状態温度TenvLに基づいて行われ、その更新では、インクにじみが起きやすい高温下で、プリントヘッドから吐出されるインクの全体量を削減するように働く。
【0528】
図70はにじみ低減の処理を示し、プリンタドライバ84がプリンタの状態に基づいてカラーテーブルの選択をする、従って、ステップS7001では、プリンタドライバ84はプリンタ状態温度TenvLを取得する。ステップS7002において、プリンタ状態温度と固定の値(T1)、好ましくは32℃とを比較する。プリンタ状態温度TenvLが固定温度T1を越える場合には、処理はステップS7003に進み、インクにじみの可能性が高いことに基づいて、カラー補正テーブルを選択する。具体的には、ステップS7003では、高温下で、プリンタ10から吐出されるインクの量を制限するカラーテーブル2を選択する。また、高温下では高湿度になることが推定できるため、インクの乾燥にかかる全体時間が延びる。
【0529】
反対に、ステップS7002においてプリンタ状態温度TenvLが固定閾値T1以下である場合、ステップS7004に進み、カラーテーブル2ほどプリンタ10から吐出されるインクの量を制限することのないカラー補正テーブルを選択する。具体的には、プリンタ温度TenvLが比較的低く、インクにじみが起こる可能性が低いために、カラーテーブル1を選択し、デフォルト処理ができるようにする。
【0530】
図71は、カラーテーブル2に保持される値に対して、カラーテーブル1に保持される値を示す。図71は、シアン、マゼンタ、黄色、黒のインクそれぞれのための値のグラフである。グラフは、カラーテーブルから得られるマルチレベル出力値をマルチレベル入力値の関数として示すものである。テーブル1のための値を実線で示す。図71に示すように、シアン、マゼンタ、黄色、黒のインクのテーブル1の出力値は、入力値が上昇するにつれ、徐々に上昇する。
【0531】
テーブル2の値は点線で示し、0から240までの入力値に対する値は、テーブル1の値と同じである。しかし、入力値240を越えると、テーブル2の値は一定に保たれるため、高温下でのインクの吐出量を制限し、インクにじみが起きる可能性を減らすことができる。
【0532】
図70に示す例では、プリンタ状態温度TenvLに応じて、プリンタドライバ84は異なるカラーテーブルを選択している。しかし、異なるルックアップテーブルから選択をする代わりに、プリンタドライバ84はルックアップテーブルの値を更新することも可能である。図72はこのもう一方の例を示す。
【0533】
ステップS7200において、プリンタドライバ84はプリンタ状態温度TenvLを取得する。次にステップS7201において、標準プリンタカラー補正テーブルがメモリにロードされる。ステップS7202において、プリンタ状態温度を、例えば32℃の固定の所定閾値(T1)と比較する。プリンタ状態温度TenvLが固定閾値T1以下である場合には、ロードされたプリンタカラー補正テーブルの更新は行わない。反対に、プリンタ状態温度が固定閾値T1を超える場合には、ステップS7203に進み、プリンタドライバ84はカラー補正ルックアップテーブルの値を、インクにじみが起きる可能性が減るように更新する。適切な更新は、図71で点線が示す値を得るような値に変更することである。
【0534】
上記によれば、プリンタドライバがプリンタ状態に基づいてデフォルトのデータ処理からデータ処理を更新するので、インクにじみを低減することができる。
【0535】
<10.3 スミヤの低減>
「スミヤ」は、排紙トレイ上にある記録媒体に印刷されたインクが十分に乾いていないために、次の記録媒体がプリンタから排出されている(または印刷がなされた)ときに、その先端が排紙トレイ上の記録媒体の乾いていないインクをこすり、汚してしまう現象である。
【0536】
スミヤを制御するために、プリンタ制御部110は、図73A及び図73Bに示すスミヤ制御処理を実行する。図73Bの処理は単純で、単にノンゼロスミヤタイマを1秒毎の割り込みに応じて減らすだけである(図19のS1911参照)。図73Aは、次に排紙される記録媒体の先端により乾ききっていないインクのスミヤが起こる可能性を減らすために、現在印刷中のドット濃度に関連して、どのようにスミヤタイマを使用するかを示している。
【0537】
ステップS7301において、プリンタ10は給紙トレイから記録媒体を給紙し、ステップS7302でプリンタ制御部110はスミヤタイマを0にセットする。ステップS7304では、プリンタによる通常の印刷動作を行い、各走査の間に、プリンタ制御部110は走査でのドットの濃度が、ドライバが設定可能な閾値を越えているかどうかを判断する(ステップS7305)。いずれのスキャンラインにおいてもドット濃度が閾値を超えなければ、記録媒体上に吐出されたインクの量が少なく、スミヤが起こる可能性が大幅に低減されているため、特別な処理は必要ない。反対に、ステップS7305でいずれかのスキャンラインにおいて印刷したドット濃度がドライバが設定可能な閾値を超えていると判断した場合には、ステップS7306に進み、スミヤタイマをドライバが制御した値にセットする。これによりスミヤタイマは0では無くなるため、上述の通り図73Bの処理によって、減少する。
【0538】
図74及び図75に示す例によれば、ドライバが設定可能な印刷濃度閾値と、ドライバが制御可能なスミヤタイマ値はプリンタの状態に基づいて決定されるため、プリンタの状態に応じてスミヤパラメータを制御することができる。
【0539】
図73AのステップS7307において、ページの最後に到達したかどうかを判断し、到達したと判断されるまでステップS7304に戻って処理を繰り返す。ページの最後に到達したと判断されると、印刷されたページが最終ページである場合には(ステップS7309でYES)、現在印刷された記録媒体は単純に排出される(ステップS7310)。しかし、現在印刷された記録媒体が最終ページでない場合にはステップS7311に進み、スミヤタイマが0まで減少したかどうかを確認する。スミヤタイマが0になるまで、現在印刷された記録媒体は排紙されない。しかし、スミヤタイマが0になると同時にステップS7312に進み、現在印刷された記録媒体は排紙トレイに排紙され、新しい記録媒体が給紙トレイから給紙されて、処理はステップS7304に戻る。
【0540】
図74及び図75は、プリンタドライバ84が、プリンタ10の現在の状態に基づいてどのようにスミヤタイマを設定し、スミヤ制御のための濃度を設定するかを示すフローチャートである。図74において、ドライバ84は、プリンタの状態に応じてスミヤタイマの値を算出し、スミヤタイマの値をプリンタ10に送る。具体的には、ステップS7401において、ドライバ84はプリンタの状態をプリンタ状態温度TenvLの形態で取得する。ステップS7402において、温度の値が、通常の範囲T1〜T2にあるかどうかを判断する。典型的な範囲は15℃〜35℃である。プリンタ状態温度TenvLが範囲T1〜T2内にある場合、スミヤタイマは、インクのスミヤが起こる可能性が低いことに鑑みて、短いインク乾燥時間を想定して第1の値に設定される(ステップS7404)。反対に、プリンタ状態温度TenvLが範囲T1〜T2外にある場合、ドライバ84は、スミヤが起こる確率が高いことを鑑み、長いインク乾燥時間を想定して、第1のスミヤタイマ値よりも大きい、第2のスミヤタイマ値を選択する。ステップS7407において、ドライバ84は選択したスミヤタイマ値をプリンタ10に送る。
【0541】
図75は、ドライバ84がプリンタ状態に基づいてドット濃度閾値を更新し、更新した値をプリンタ10に送る動作を示す。ステップS7501において、ドライバ84はプリンタ状態をプリンタ状態温度TenvLの形態で取得する。ステップS7502では、ドライバ84はプリンタ状態が例えば15℃〜35℃などの範囲T1〜T2内にあるかどうかを判断する。プリンタ状態温度が範囲T1〜T2内にある場合、短いインク乾燥時間を想定し、高濃度閾値に対応して第1の濃度閾値を選択する。反対に、プリンタ状態温度が範囲T1〜T2外にある場合、ステップS7505またはS7506の適切な方に進み、長いインク乾燥時間を想定し、低濃度閾値に対応してスミヤ閾値は第1の閾値よりも小さい第2の閾値に設定される。ステップS7507では、ドライバ84は選択した閾値をプリンタ10に送る。
【0542】
<10.4 自動給紙(ASF)速度>
図76及び図77は、プリンタ10の状態、またはプリンタ10の状態及びコンピューター機器1の現在の状態に応じて、プリンタドライバ84がプリンタ10が給紙トレイから用紙を給紙する速度をどのように更新するかを説明するためのフローチャートである。
【0543】
図76及び図77に示す例では、給紙速度を更新するために用いるプリンタ状態は、プリンタ状態温度TenvLである。特に、温度が低い場合、低温では摩擦が低くなることに加えて、プリンタ10のゴムで覆われた給紙ローラーが堅くなるために、給紙トレイの用紙は滑りやすくなる傾向がある。従って、低温度下では、低速度でも確実な給紙速度が選択される。反対に、高温度下では、記録媒体を給紙するのが比較的容易であるため、速い給紙速度が選択される。
【0544】
図76において、ステップS7601ではプリンタドライバ84はプリンタ状態温度TenvLをプリンタ10から取得し、ステップS7602において温度が予め設定された、例えば18℃などの閾値T1よりも低いかどうかを判断する。プリンタ状態温度TenvLが閾値T1以下である場合には、自動給紙部による給紙速度を遅くする(ステップS7604)。反対に、温度が十分に高い場合、記録媒体は高速度でも給紙される確実性が高いので、プリンタドライバ84は自動給紙のために高速度を選択する。
【0545】
ステップS7606において、プリンタドライバ84は選択した給紙速度を、[LOAD]コマンドのパラメータを用いてプリンタ10に送信する。
【0546】
図77は、プリンタ10の状態及びコンピューター機器1の現在の環境を共に用いて、ドライバ84が給紙速度を選択する場合の例を示す。特に、図77に示す例では、コンピューター機器1の現在の状態に基づいて、夜間にはより低い(従ってより騒音の少ない)速度がプリンタドライバ84により常に選択される。反対に、昼間は、プリンタ状態温度が十分に高い場合には高速の給紙速度が選択され、そうでなければ、低速の給紙速度が選択される。
【0547】
ステップS7701において、プリンタドライバ84は現在のプリンタ状態温度TenvLを取得し、ステップS7702においてコンピューター機器1から現在の構成及び時間を取得する。ステップS7703において、プリンタドライバ84は、取得した時間が、例えば午前5:00〜午後10:00の間にあるかを判断することにより、夜間であるかどうかを判断する。取得した時間が通常の昼間の時間帯外である場合、ステップS7705に進み、低速の給紙速度が必ず選択される。
【0548】
反対に、ステップS7703でプリンタドライバ84が夜間ではないと判断すると、ステップS7706に進み、プリンタドライバ84はプリンタ状態温度TenvLが高速の給紙速度を選択するのに十分な位に高いかどうかを判断する。プリンタ状態温度が十分に高い場合、高速度が選択され(ステップS7708)、高くない場合、低速度が選択される(ステップS7707)。
【0549】
処理はステップS7710に進み、プリンタドライバ84は選択した給紙速度を[LOAD]コマンドのパラメータを用いて、プリンタ10に送る。
【0550】
<10.5 予備吐出のタイミング>
図78は、プリンタの状態に基づいてプリンタドライバ84がどのように予備吐出処理のタイミングを制御するためのプリンタ10の動作パラメータを更新するかを説明するためのフローチャートである。
【0551】
図78に示す例では、予備吐出のタイミングに影響を与えるプリンタ状態は、プリンタの状態温度TenvLである。具体的には、動作温度が低い場合、インクの粘度が高くなりやすいため、予備吐出をより頻繁に行う必要があるため、予備吐出処理の時間間隔として短い時間を選択する。反対に、動作温度が高い場合、インクの粘度は低いため、比較的に長い予備吐出処理間隔で、それほど頻繁に行う必要が無くなるため、予備吐出処理の時間間隔として長い時間を選択する。
【0552】
ステップS7801において、プリンタドライバ84はプリンタ状態温度TenvLを取得し、ステップS7802でプリンタ状態温度を固定閾値T1、例えば18℃と比較する。温度TenvLが閾値T2よりも低い場合、例えば3秒おきなど、デフォルトの比較的短い予備吐出間隔が選択される(ステップS7804)。反対に、温度TenvLが閾値T1よりも高い場合、例えば6秒おきなど、比較的長い予備吐出処理間隔が選択される(ステップS7805)。どちらの場合にしても、その後、処理はステップS7806に進み、プリンタドライバ84は選択した予備吐出処理間隔を[PREFIRE_CYC]コマンドを用いてプリンタ10に送る。
【0553】
<10.6 手差し給紙の遅延>
図79及び80は、プリンタ10の状態に基づいて、プリンタドライバ84がどのように自身の処理を更新するかを説明するためのフローチャートである。
【0554】
図79は、プリンタドライバ84によりディスプレイ4上に表示されるユーザインタフェース690の一部を示す図である。図79はユーザインタフェース690のための「設定」タブのダイアログを示し、また、図79に示すように、設定タブのダイアログは、記録媒体のタイプ、サイズ、方向をユーザが設定できるようにする領域691と、ユーザが手差し給紙を行い、自動給紙処理を行わないことを特定するためのチェックボックス692を含む。チェックボックス692を選択すると、プリンタドライバはプリンタ10に、給紙トレイ14からの自動給紙を行わずに、手差し給紙部17(図3参照)に挿入された媒体をプリンタ10内に取り込むように命令する。
【0555】
しかし、図5A及び図5Bを参照して説明したように、現在印刷中の用紙のための行送り動作、給紙トレイ14からの用紙の給紙動作、クリーニング機構が設けられたホームポジション46における清掃処理を含む様々な動作を行うために、ラインフィードモータ314が1つ用いられるだけである。従って、プリンタの準備が整う前、例えば、プリンタが清掃処理を終える前にユーザが手差し給紙を行おうとした場合、トラブルが起こる可能性がある。
【0556】
従って、本実施の形態における処理によれば、プリンタドライバ84が手差し給紙状態(チェックボックス692により)に設定され、プリンタの現在の状態が清掃処理中であることを示す場合、プリンタが清掃処理を終えるまで手差し給紙を延期するようにユーザにリクエストするメッセージを表示するようにプリンタドライバ84はプリンタ10の状態に基づいてその動作を更新する。
【0557】
図80のステップS8001において、プリンタドライバ84はチェックボックス692がユーザにより選択されたことを判断することにより、プリンタドライバを手差し給紙モードに設定する。チェックボックスが選択されていない場合、上記説明した処理により自動給紙が進む。
【0558】
反対に、手差し給紙モードが選択された場合、ステップS8002及びS8004において、プリンタドライバ84はプリンタ10から状態を取得し、清掃処理中であるかどうかを判断する。ステップS8005でプリンタドライバ84が清掃処理中ではないと判断すると、処理は直接ステップS8010に進み、プリンタドライバはディスプレイ4上に、手差し給紙部17に用紙を手動で挿入するようにユーザ向けのメッセージを表示する。反対に、清掃処理中である場合には、ステップS8006に進み、プリンタドライバ84はディスプレイ4上に手差し給紙部17に用紙を挿入することを延期するようにユーザ向けのメッセージを表示する。具体的には、上述の通り、清掃処理と、給紙処理のために1つのモータを兼用しているので、清掃処理中に手差し給紙部17に用紙を挿入すると、給紙処理が失敗する可能性がある。
【0559】
ステップS8006で表示したメッセージは、清掃処理が終了したことを示すプリンタ状態がプリンタ10からプリンタドライバ84に送られるまで表示され続ける(ステップS8007及びS8008)。プリンタ状態が清掃処理が終了したことを示すと、処理はステップS8010に進み、上述したように、プリンタドライバ84は手差し給紙部17に用紙を挿入しても大丈夫である旨をユーザに知らせるメッセージを表示する。
【0560】
ステップS8011において、プリンタドライバ84は手差し給紙部17にユーザが用紙を挿入するのを待ち、挿入されると、ステップS8012でプリンタドライバ84は[LOAD]コマンドを用いて、プリンタ10に手差し給紙部から用紙を給紙するように命令する。
【0561】
<10.7 清掃速度>
図81は、プリンタ10の状態、またはプリンタ10の状態及びコンピューター機器1の現在の構成に基づいて、プリンタドライバ84によるプリンタ10で行われる清掃速度の更新を示す。
【0562】
図81において、プリンタドライバ84により行われる動作は、点線695で囲んでいる。この点線内に示すように、プリンタドライバ84により行われる機能は、プリンタ10の状態を取得し、コンピューター機器1の現在の構成を取得し、清掃速度を低速度または高速度に更新し、清掃処理を命令する工程を含む。
【0563】
詳しくは、ステップS8101及びS8102において、プリンタドライバ84はプリンタ状態温度TenvL及びコンピューター機器1の構成情報を取得する。ステップS8103では、プリンタドライバ84は清掃速度を設定する。清掃速度は、プリンタ状態温度または、プリンタ状態温度及びコンピューター機器1の現在の構成に基づいて設定される。特に、図76及び図77における給紙速度の選択処理と同様に、清掃速度はプリンタの状態のみに基づいて選択しても(例えば、プリンタ状態温度が高い場合にはインクの粘度が低くなるため、迅速に清掃を行うように、高速清掃速度が選択される)、プリンタ状態温度に加えて、時間に基づいて選択してもよい(例えば、夜間動作時には、遅く、静かな清掃速度を選択し、昼間動作時には、プリンタ状態温度に基づいて清掃速度を選択する)。
【0564】
ステップS8104において、プリンタの清掃が必要であるときに、プリンタドライバ84はプリンタ10に[RECOVER]コマンドを送ることにより、清掃処理を実行させる。
【0565】
この清掃実行のコマンドの受信に応じて、プリンタ10はプリンタ制御部110により、プリンタドライバ84により設定された低速または高速で、図81に示すような清掃処理を実行するように制御される。
【0566】
このように構成することにより、清掃速度がプリンタ状態に基づいて、そのプリンタ状態に適するように選択されるため、迅速な清掃処理を実現する高速清掃速度であっても良好な清掃結果を得ることができる。
【0567】
<10.8 圧縮モード>
図82は、プリンタ10の状態に基づくプリンタドライバ84の動作の更新を説明する図である。プリンタドライバ84の動作の更新は、プリントデータの圧縮を、プリントデータをプリンタ10に送信する前に行うかどうかについての更新である。圧縮データを送るかどうかの判断はプリンタ10の状態に基づいて行われ、この場合、プリンタ10の状態は、DMA(direct memoryaccess)がプリンタのファームウエアで許可されているかどうかを示す。
【0568】
説明の都合上、プリントデータの圧縮は、プリントデータを圧縮することでプリントデータ量を最小にしてプリンタに送信できるように、プリンタドライバ84におけるデフォルト処理として行われるものとする。圧縮データを送信することにより送信時間を最短にすることができるが、プリンタドライバ側でデータを圧縮する時間及びプリンタ側でデータを伸長する時間がかかることになる。
【0569】
DMAモードがプリンタファームウエア上で許可されている場合、プリンタドライバ84はプリントデータを直接、プリント制御部110を通常介さずに、プリントデータバッファ109に送ることができる。DMAモードでは、圧縮していないプリントデータを直接プリントデータバッファ109に格納するのに必要な時間の方が、プリントデータを圧縮し、圧縮したプリントデータを送信し、プリントデータを伸長してプリントデータバッファ109に格納するためにかかる時間よりも短い。従って、プリンタ10のファームウエア上でDMAモードが許可されているとプリンタドライバ84が判断すると、プリンタドライバ84は、プリントデータを圧縮して圧縮したプリントデータを制御部110に送信するのではなく、プリントデータをプリントデータバッファ109に直接送るように、その動作を更新する。図82はこの動作を示す。
【0570】
ステップS8201において、プリンタドライバ84は、プリンタ10のファームウエアがDMA動作可能であり、そのような動作が許可されているかどうかを示すステータス情報の形式でプリンタ状態を取得する。プリンタドライバ84が、DMAモードが許可されていると判断すると(ステップS8202でYES)、プリンタドライバ84はプリントデータ圧縮をオフにし(ステップS8204)、圧縮されていないプリントデータをプリントデータバッファ109にDMAで直接送信する(ステップS8205)。反対に、プリンタドライバ84がDMAが許可されていないとプリンタ状態から判断すると、プリンタドライバ84はデフォルト処理モードを維持し、プリントデータを送信前に圧縮し(ステップS8206)、圧縮したプリントデータをプリンタ制御部110に送信する(ステップS8207)。
【0571】
以上の実施形態は、特にインクジェット記録方式の中でも、インク吐出を行わせるために利用されるエネルギーとして熱エネルギーを発生する手段(例えば電気熱変換体やレーザ光等)を備え、前記熱エネルギーによりインクの状態変化を生起させる方式を用いることにより記録の高密度化、高精細化が達成できる。
【0572】
その代表的な構成や原理については、例えば、米国特許第4723129号明細書、同第4740796号明細書に開示されている基本的な原理を用いて行うものが好ましい。この方式はいわゆるオンデマンド型、コンティニュアス型のいずれにも適用可能であるが、特に、オンデマンド型の場合には、液体(インク)が保持されているシートや液路に対応して配置されている電気熱変換体に、記録情報に対応していて核沸騰を越える急速な温度上昇を与える少なくとも1つの駆動信号を印加することによって、電気熱変換体に熱エネルギーを発生せしめ、記録ヘッドの熱作用面に膜沸騰を生じさせて、結果的にこの駆動信号に1対1で対応した液体(インク)内の気泡を形成できるので有効である。
【0573】
この気泡の成長、収縮により吐出用開口を介して液体(インク)を吐出させて、少なくとも1つの滴を形成する。この駆動信号をパルス形状とすると、即時適切に気泡の成長収縮が行われるので、特に応答性に優れた液体(インク)の吐出が達成でき、より好ましい。
【0574】
このパルス形状の駆動信号としては、米国特許第4463359号明細書、同第4345262号明細書に記載されているようなものが適している。なお、上記熱作用面の温度上昇率に関する発明の米国特許第4313124号明細書に記載されている条件を採用すると、さらに優れた記録を行うことができる。
【0575】
記録ヘッドの構成としては、上述の各明細書に開示されているような吐出口、液路、電気熱変換体の組み合わせ構成(直線状液流路または直角液流路)の他に熱作用面が屈曲する領域に配置されている構成を開示する米国特許第4558333号明細書、米国特許第4459600号明細書に記載された構成も本発明に含まれるものである。加えて、複数の電気熱変換体に対して、共通するスロットを電気熱変換体の吐出部とする構成を開示する特開昭59−123670号公報や熱エネルギーの圧力波を吸収する開口を吐出部に対応させる構成を開示する特開昭59−138461号公報に基づいた構成としても良い。
【0576】
加えて、上記の実施形態で説明した記録ヘッド自体に一体的にインクタンクが設けられたカートリッジタイプの記録ヘッドのみならず、装置本体に装着されることで、装置本体との電気的な接続や装置本体からのインクの供給が可能になる交換自在のチップタイプの記録ヘッドを用いてもよい。
【0577】
また、以上説明した記録装置の構成に、記録ヘッドに対する回復手段、予備的な手段等を付加することは記録動作を一層安定にできるので好ましいものである。これらを具体的に挙げれば、記録ヘッドに対してのキャッピング手段、クリーニング手段、加圧あるいは吸引手段、電気熱変換体あるいはこれとは別の加熱素子あるいはこれらの組み合わせによる予備加熱手段などがある。また、記録とは別の吐出を行う予備吐出モードを備えることも安定した記録を行うために有効である。
【0578】
さらに、記録装置の記録モードとしては黒色等の主流色のみの記録モードだけではなく、記録ヘッドを一体的に構成するか複数個の組み合わせによってでも良いが、異なる色の複色カラー、または混色によるフルカラーの少なくとも1つを備えた装置とすることもできる。
【0579】
以上説明した実施の形態においては、インクが液体であることを前提として説明しているが、室温やそれ以下で固化するインクであっても、室温で軟化もしくは液化するものを用いても良く、あるいはインクジェット方式ではインク自体を30°C以上70°C以下の範囲内で温度調整を行ってインクの粘性を安定吐出範囲にあるように温度制御するものが一般的であるから、使用記録信号付与時にインクが液状をなすものであればよい。
【0580】
加えて、積極的に熱エネルギーによる昇温をインクの固形状態から液体状態への状態変化のエネルギーとして使用せしめることで積極的に防止するため、またはインクの蒸発を防止するため、放置状態で固化し加熱によって液化するインクを用いても良い。いずれにしても熱エネルギーの記録信号に応じた付与によってインクが液化し、液状インクが吐出されるものや、記録媒体に到達する時点では既に固化し始めるもの等のような、熱エネルギーの付与によって初めて液化する性質のインクを使用する場合も本発明は適用可能である。
【0581】
このような場合インクは、特開昭54−56847号公報あるいは特開昭60−71260号公報に記載されるような、多孔質シート凹部または貫通孔に液状または固形物として保持された状態で、電気熱変換体に対して対向するような形態としてもよい。本発明においては、上述した各インクに対して最も有効なものは、上述した膜沸騰方式を実行するものである。
【0582】
【他の実施形態】
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。
【0583】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0584】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0585】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【0586】
【発明の効果】
以上説明したように本発明によれば、プリンタの状態に基づいて、プリンタの動作パラメータを変更するプリンタドライバ、並びにプリンタドライバがプリンタに送信するプリントデータの生成動作を変更することにより、デフォルト動作と異なる動作を実行し、印刷時のプリンタの特定状態に対してより最適な性能を発揮させることができる。
【図面の簡単な説明】
【図1】本発明の実施の形態におけるプリンタに接続して用いられるコンピューター機器の外観図である。
【図2】図1に示すプリンタの前面斜視図である。
【図3】図1に示すプリンタの後面斜視図である。
【図4】図1に示すプリンタの後面切取斜視図である。
【図5】図1に示すプリンタの前面切取斜視図である。
【図5A】図1に示すプリンタの上下方向の平面図である。
【図5B】図1に示すプリンタのラインフィードモータ及びキャリッジモータの両方により駆動される、クラッチ板及びギヤの正面図である。
【図5C】本発明の実施の形態におけるプリンタにおける自動給紙動作を示すフローチャートである。
【図5D】本発明の実施の形態におけるプリンタのためのキャッピング及び清掃動作を示すフローチャートである。
【図6】本発明において用いられる使い捨てインクカートリッジの例を示す図である。
【図7】本発明において用いられるプリントヘッドのヘッド構成を示す図である。
【図8】本発明の実施の形態におけるプリンタにインタフェースしたホストプロセッサーのハードウエア構成を示すブロック図である。
【図9】図8に示すホストプロセッサーとプリンタの機能ブロック図である。
【図10】図8に示す制御ロジックの内部構成を示すブロック図である。
【図11】本発明の実施の形態におけるプリンタのメモリー構成を示す図である。
【図12】本発明の実施の形態におけるプリンタの詳細な全体動作を説明するフローチャートである。
【図13】本発明にかかるプリント制御の流れを示すフローチャートである。
【図14】印刷動作中のコマンドの流れを示すテーブルを示す図である。
【図15】本発明の実施の形態におけるプリンタにおけるハード電源オン時の手順を示すフローチャートである。
【図16】本発明の実施の形態におけるプリンタにおけるソフト電源オン時の手順を示すフローチャートである。
【図17】本発明の実施の形態におけるプリンタにおけるソフト電源オフ時の手順を示すフローチャートである。
【図18】本発明の実施の形態にかかる、アプリケーションプログラム、ホストプロセッサーで実行中の他の処理及びプリンタで実行中の様々なタスク間の通信を示す図である。
【図19】タイマ処理を制御するための、周期ハンドラにおける制御部タイマの制御を示すフローチャートである。
【図20】プリンタドライバのソフトウエア処理の流れを示すフローチャートである。
【図21A】本発明の実施の形態における自動給紙手順を示すフローチャートである。
【図21B】図21Aの自動給紙手順の続きを示すフローチャートである。
【図21C】図21Aの自動給紙手順における早期成功ロジックを示すフローチャートである。
【図21D】図21Aの自動給紙処理における給紙速度選択処理を示すフローチャートである。
【図21E】図21Aの自動給紙処理におけるリカバリー処理を示すフローチャートである。
【図22】プリンタにおける1枚目の自動給紙手順を示すフローチャートである。
【図23】プリンタにおける排紙処理後の自動給紙手順を示すフローチャートである。
【図24】行送り、給紙、及び排紙の速度選択のためのプリンタドライバのロジックを示すフローチャートである。
【図25】本発明の実施の形態における排紙速度オーバーライドロジックを示すフローチャートである。
【図26】本発明の実施の形態における行送り速度オーバーライドロジックを示すフローチャートである。
【図27A】テキスト、無彩色連続画及びカラー画像を印刷するためのためのキャリッジ制御を示す図である。
【図27B】1スキャンライン内に無彩色連続画像部分及びカラー画像部分の両方を含む場合のキャリッジ方向制御を説明する図である。
【図27C】プリントモード、プリントヘッドのタイプ、用紙のタイプ、プリントデータのタイプに基づいて、印刷方向および他の印刷情報を決定するためのテーブルを示す図である。
【図27D】プリントモード、プリントヘッドのタイプ、用紙のタイプ、プリントデータのタイプに基づいて、印刷方向および他の印刷情報を決定するためのテーブルを示す図である。
【図27E】プリントモード、プリントヘッドのタイプ、用紙のタイプ、プリントデータのタイプに基づいて、印刷方向および他の印刷情報を決定するためのテーブルを示す図である。
【図27F】プリントモード、プリントヘッドのタイプ、用紙のタイプ、プリントデータのタイプに基づいて、印刷方向および他の印刷情報を決定するためのテーブルを示す図である。
【図27G】プリントモード、プリントヘッドのタイプ、用紙のタイプ、プリントデータのタイプに基づいて、印刷方向および他の印刷情報を決定するためのテーブルを示す図である。
【図28】本発明におけるプリントヘッドの動きを説明するための図である。
【図29】本発明においてプリンタドライバにより発行されるSKIPコマンドを説明するためのフローチャートである。
【図30】本発明においてプリンタドライバにより発行されるPRINTコマンドを説明するためのフローチャートである。
【図31】本発明においてプリンタドライバにより発行されるDIRECTIONコマンドを説明するためのフローチャートである。
【図32】本発明においてプリンタドライバにより発行されるEDGEコマンドを説明するフローチャートである。
【図33】本発明においてプリンタドライバによるスキャンマージンの決定を説明するフローチャートである。
【図34】本発明においてプリンタドライバにより発行されるNEXT_MARGINコマンドを説明するためのフローチャートである。
【図35】本発明においてプリンタドライバにより発行されるAT_DELAY(自動遅延)コマンドを説明するフローチャートである。
【図36】本発明においてプリンタ制御部により実行されるキャリッジタスクを説明するフローチャートである。
【図37】図36のキャリッジタスクにより呼び出される、第1のキャリッジスキャン制御を説明するためのフローチャートである。
【図38】図36のキャリッジタスクにより呼び出される、第2のキャリッジスキャン制御を説明するためのフローチャートである。
【図39A】本発明におけるサテライト制御を示す図である。
【図39B】本発明におけるサテライト制御を示す図である。
【図40】本発明において、プリンタ制御部により実行されるキャリッジモータ開始を説明するためのフローチャートである。
【図41】本発明において、プリンタ制御部により実施されるキャリッジ割り込み処理を説明するためのフローチャートである。
【図42】本発明において、サテライティングを緩和するためにプリンタ制御部により実施される自動トリガー割り込みを説明するためのフローチャートである。
【図43】本発明の実施の形態におけるプリンタドライバ内で実行されるソフトウエア位置合わせ処理を示すフローチャートである。
【図44】図43に示すプリンタドライバ内で実行されるソフトウエア位置合わせ処理に対応する位置合わせを伴う/伴わない印刷の一連のプリントモードテーブルを示す図である。
【図45】カラーデータを印刷するためのプロセッサーにより実行可能な各処理を示すフローチャートである。
【図46】2つの異なるインクジェットプリントヘッドを用いてカラーデータ及び黒データを印刷する様子を示す図である。
【図47】予備吐出処理が所定時間間隔で行われる場合の、予備吐出制御を説明するための図である。
【図48】不十分な予備吐出により起こり得る画質の低下を説明するための図である。
【図49】不十分な予備吐出により起こり得る画質の低下を説明するための図である。
【図50】本発明における予備吐出制御を説明するための図である。
【図51】本発明における予備吐出制御のタイミングを説明するためのフローチャートである。
【図52】本発明におけるプリンタ制御部による予備吐出用タイマの更新を説明するためのフローチャートである。
【図53】本発明においてプリンタ制御部により行われる予備吐出チェックを説明するためのフローチャートである。
【図54】本発明におけるプリンタ制御部によるノズル数変更予備吐出リクエストの生成を説明するためのフローチャートである。
【図55】本発明におけるプリンタ制御部による走査予備吐出処理を説明するためのフローチャートである。
【図56】本発明における予備吐出(印刷)機能を説明するためのフローチャートである。
【図57】インクジェットノズルヒートパルス幅と出力濃度との関係を説明する図である。
【図58】ヒートパルス幅変調を説明するための図である。
【図59】ノズルヒートパルス駆動時間の制御を説明するためのフローチャートである。
【図60】プリンタに保持されたヒートアップ係数のテーブルと、駆動時間のテーブルの分解図である。
【図61】駆動時間決定のためのリアルタイム周辺温度の使用方法について説明するフローチャートである。
【図62】複数スキャンラインを印刷中のヒートパルス幅変調を説明するための図である。
【図63】前回の予備吐出から第1の時間の経過後にヒートパルス幅が最大となることを示す、本発明におけるヒートパルス幅変調を説明するための図である。
【図64】前回の予備吐出から第1の時間の経過後にヒートパルス幅が最大となることを示す、本発明におけるヒートパルス幅変調を説明するためのフローチャートである。
【図65】1画素のRGBデータに基づいて、5つの異なるインクのための2値データを生成するための、コンピューターにより実行可能な処理工程を示すフローチャートである。
【図66】5つの異なるインクそれぞれの入力値に対して出力補正を行うための、入力値と出力値の関係を示すグラフを示す図である。
【図67】プリンタと通信するコンピューター機器を示す機能ブロック図である。
【図68】プリンタドライバがどのようにプリンタから状態を得、プリントデータ生成処理をどのように更新するかを示すフローチャートである。
【図69】プリンタ制御部により実施される動作を示すフローチャートである。
【図70】にじみ低減のための処理を示すフローチャートである。
【図71】カラーテーブル1とカラーテーブル2とに保持される値のグラフを示す図である。
【図72】にじみ低減のための別の処理を示すフローチャートである。
【図73A】スミヤ制御処理を実行するためのフローチャートである。
【図73B】スミヤ制御処理を実行するためのフローチャートである。
【図74】プリンタドライバによるスミヤタイマの値の決定のし方を示すフローチャートである。
【図75】プリンタドライバによるスミヤ制御のための濃度閾値の決定のし方を示すフローチャートである。
【図76】プリンタが給紙トレイから用紙を給紙する速度をプリンタドライバがどのように更新するかを説明するためのフローチャートである。
【図77】プリンタが給紙トレイから用紙を給紙する速度をプリンタドライバがどのように更新するかを説明するためのフローチャートである。
【図78】予備吐出処理のタイミングを制御するためのプリンタの動作パラメータをプリンタドライバがどのように更新するかを説明するためのフローチャートである。
【図79】プリンタドライバによりディスプレイ上に表示されるユーザインタフェースの一部を示す図である。
【図80】プリンタの状態に基づいて、プリンタドライバがどのように自身の処理を更新するかを説明するためのフローチャートである。
【図81】プリンタにおける清掃速度の更新を説明するフローチャートである。
【図82】プリンタドライバの動作の更新を示すフローチャートである。
Claims (13)
- プリンタと接続可能なコンピュータ機器で実行され、双方向インタフェースを介して前記プリンタを駆動するプリンタドライバであって、
前記コンピュータ機器でのプリントジョブの開始に応答して、前記双方向インタフェースを介して前記プリンタの周辺温度を含む現在の状態を前記プリンタに照会する照会部と、
前記照会部による照会に応じて、前記プリンタの周辺温度を含む現在の状態を前記プリンタから取得する取得部と、
前記取得部により取得された前記プリンタの周辺温度に応じて、前記プリンタドライバ内にデフォルト機能として設定されている第1のカラー補正テーブルを第2のカラー補正テーブルに変更する変更部と、
前記変更部により変更された前記第2のカラー補正テーブルに応じてプリントデータを生成するデータ生成部と、
前記双方向インタフェースを介して前記プリンタに対して、前記データ生成部により生成されたプリントデータを送信する送信部とを備え、
前記第2のカラー補正テーブルが使用される場合の前記プリンタにおけるインク吐出量は、前記第1のカラー補正テーブルが使用される場合の前記プリンタにおけるインク吐出量よりも少ないことを特徴とするプリンタドライバ。 - プリンタと接続可能なコンピュータ機器で実行され、双方向インタフェースを介して前記プリンタを駆動するプリンタドライバであって、
前記コンピュータ機器でのプリントジョブの開始に応答して、前記双方向インタフェースを介して前記プリンタの周辺温度を含む現在の状態を前記プリンタに照会する照会部と、
前記照会部による照会に応じて、前記プリンタの周辺温度を含む現在の状態を前記プリンタから取得する取得部と、
前記取得部により取得された前記プリンタの周辺温度に応じて、前記プリンタでのスミヤを低減させるために、前記プリンタで使用される動作パラメータを変更する変更部と、
前記変更部により変更された動作パラメータを、前記双方向インタフェースを介して前記プリンタに送信する送信部と、
を備えることを特徴とするプリンタドライバ。 - 前記スミヤを低減させるための動作パラメータが、スミヤ濃度の閾値を含むことを特徴とする請求項2に記載のプリンタドライバ。
- 前記スミヤを低減させるための動作パラメータが、排紙間のスミヤ遅延時間を含むことを特徴とする請求項2に記載のプリンタドライバ。
- プリンタと接続可能なコンピュータ機器で実行され、双方向インタフェースを介して前記プリンタを駆動するプリンタドライバであって、
前記コンピュータ機器でのプリントジョブの開始に応答して、前記双方向インタフェースを介して前記プリンタの周辺温度を含む現在の状態を前記プリンタに照会する照会部と、
前記照会部による照会に応じて、前記プリンタの周辺温度を含む現在の状態を前記プリンタから取得する取得部と、
前記取得部により取得された前記プリンタの周辺温度に応じて、前記プリンタの給紙速度に関連する動作パラメータを変更する変更部と、
前記変更部により変更された動作パラメータを、前記双方向インタフェースを介して前記プリンタに送信する送信部と、
を備えることを特徴とするプリンタドライバ。 - プリンタと接続可能なコンピュータ機器で実行され、双方向インタフェースを介して前記プリンタを駆動するプリンタドライバであって、
前記コンピュータ機器でのプリントジョブの開始に応答して、前記双方向インタフェースを介して前記プリンタの周辺温度を含む現在の状態を前記プリンタに照会する照会部と、
前記照会部による照会に応じて、前記プリンタの周辺温度を含む現在の状態を前記プリンタから取得する取得部と、
前記取得部により取得された前記プリンタの周辺温度に応じて、前記プリンタの予備吐出タイミングの間隔に関連する動作パラメータを変更する変更部と、
前記変更部により変更された動作パラメータを、前記双方向インタフェースを介して前記プリンタに送信する送信部と、
を備えることを特徴とするプリンタドライバ。 - プリンタと接続可能なコンピュータ機器で実行され、双方向インタフェースを介して前記プリンタを駆動するプリンタドライバであって、
前記コンピュータ機器でのプリントジョブの開始に応答して、前記双方向インタフェースを介して前記プリンタの周辺温度を含む現在の状態を前記プリンタに照会する照会部と、
前記照会部による照会に応じて、前記プリンタの周辺温度を含む現在の状態を前記プリンタから取得する取得部と、
前記取得部により取得された前記プリンタの周辺温度に応じて、前記プリンタの回復動作の速度に関連する動作パラメータを変更する変更部と、
前記変更部により変更された動作パラメータを、前記双方向インタフェースを介して前記プリンタに送信する送信部と、
を備えることを特徴とするプリンタドライバ。 - 前記コンピュータ機器から1日における時間を取得する取得部を更に備え、
前記変更部は、前記プリンタの周辺温度および前記1日における時間の両方に応じて前記回復動作の速度に関連する動作パラメータを変更することを特徴とする請求項7に記載のプリンタドライバ。 - プリンタと接続可能なコンピュータ機器で実行され、双方向インタフェースを介して前記プリンタを駆動するプリンタドライバであって、
前記コンピュータ機器でのプリントジョブの開始に応答して、前記双方向インタフェースを介して前記プリンタの回復動作の現在の状態を前記プリンタに照会する照会部と、
前記照会部による照会に応じて、前記プリンタの回復動作の現在の状態を前記プリンタから取得する取得部と、
前記取得部により取得された前記プリンタの回復動作の現在の状態に応じて、前記プリンタドライバの機能を変更する変更部と、
を備えることを特徴とするプリンタドライバ。 - 前記変更部による機能の変更が、前記プリンタへの手差し給紙を遅延させる警告メッセージを前記コンピュータ機器のディスプレイ上に表示することを含むことを特徴とする請求項9に記載のプリンタドライバ。
- プリンタと接続可能なコンピュータ機器で実行され、双方向インタフェースを介して前記プリンタを駆動するプリンタドライバによる制御方法であって、
請求項1から10のいずれかに記載のプリンタドライバの制御方法。 - プリンタと接続可能なコンピュータ機器で実行され、双方向インタフェースを介して前記プリンタを駆動するプリンタドライバを実現するコンピュータで実行可能なコンピュータプログラムコードであって、
請求項1から10のいずれかに記載のプリンタドライバを実現するプログラムコードを含むことを特徴とするコンピュータプログラムコード。 - プリンタと接続可能なコンピュータ機器で実行され、双方向インタフェースを介して前記プリンタを駆動するプリンタドライバを実現するプログラムコードを記憶するコンピュータ可読記憶媒体であって、
請求項1から10のいずれかに記載のプリンタドライバを実現するプログラムコードを記憶することを特徴とするコンピュータ可読記憶媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/291,010 US6594028B1 (en) | 1999-04-14 | 1999-04-14 | Status-based control over printer |
US09/291010 | 1999-04-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000343794A JP2000343794A (ja) | 2000-12-12 |
JP4164222B2 true JP4164222B2 (ja) | 2008-10-15 |
Family
ID=23118457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000113860A Expired - Fee Related JP4164222B2 (ja) | 1999-04-14 | 2000-04-14 | プリンタドライバによる状態に基づく制御 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6594028B1 (ja) |
JP (1) | JP4164222B2 (ja) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000298564A (ja) * | 1999-04-13 | 2000-10-24 | Ricoh Co Ltd | 文書印刷処理方法 |
AUPQ439299A0 (en) | 1999-12-01 | 1999-12-23 | Silverbrook Research Pty Ltd | Interface system |
JP4069569B2 (ja) * | 2000-03-17 | 2008-04-02 | コニカミノルタビジネステクノロジーズ株式会社 | 印刷装置及び印刷方法 |
US7054019B1 (en) * | 2000-09-05 | 2006-05-30 | Hewlett-Packard Development Company, L.P. | Method and system for tracking the current date and time with a printer and operating the printer accordingly |
JP2002178610A (ja) * | 2000-12-14 | 2002-06-26 | Funai Electric Co Ltd | 印字装置の制御装置 |
US6981254B2 (en) * | 2001-02-01 | 2005-12-27 | Hewlett-Packard Development Company, L.P. | Delay timer for printing from the driver |
US20040100649A1 (en) * | 2002-11-22 | 2004-05-27 | Johnson Bruce L. | Systems and methods of automatic recovery for disabled printers |
US20040184106A1 (en) * | 2003-03-21 | 2004-09-23 | Sharp Laboratories Of America, Inc. | Hybrid printer driver for color and black and white print-job splitting |
US20040251592A1 (en) * | 2003-06-16 | 2004-12-16 | Tom Ruhe | Sheet media input structure for a sheet media processing device |
US20050068558A1 (en) * | 2003-09-30 | 2005-03-31 | Jianxin Wang | Method and system to automatically update in real-time a printer driver configuration |
JP4407231B2 (ja) * | 2003-10-16 | 2010-02-03 | セイコーエプソン株式会社 | 印刷装置、印刷処理方法およびそのプログラム |
US7688458B2 (en) * | 2004-05-05 | 2010-03-30 | Electronics For Imaging, Inc. | Methods and apparatus for print workflow processing |
US20060036344A1 (en) * | 2004-08-11 | 2006-02-16 | Palo Alto Research Center Incorporated | System and method for generating service bulletins based on machine performance data |
US7374269B2 (en) * | 2004-09-30 | 2008-05-20 | Lexmark International, Inc. | Methods for determining unidirectional print direction for improved quality |
US20060250487A1 (en) * | 2005-05-09 | 2006-11-09 | Silverbrook Research Pty Ltd | Mobile device configured to commence printing when a print medium is inserted |
US7284921B2 (en) | 2005-05-09 | 2007-10-23 | Silverbrook Research Pty Ltd | Mobile device with first and second optical pathways |
US7457015B2 (en) * | 2005-05-18 | 2008-11-25 | Xerox Corporation | Color printing |
US7508558B2 (en) * | 2005-05-18 | 2009-03-24 | Xerox Corporation | Color printing |
US7516699B2 (en) * | 2005-08-19 | 2009-04-14 | Lexmark International, Inc. | Method for operating a printer which requests print density approval |
JP4530166B2 (ja) * | 2005-09-08 | 2010-08-25 | セイコーエプソン株式会社 | 光学センサの補正値取得方法、記録装置 |
US20070180277A1 (en) * | 2006-01-27 | 2007-08-02 | Subramanian Jayaram | Enhanced printer power management |
US8194298B2 (en) * | 2006-09-28 | 2012-06-05 | Sharp Laboratories Of America, Inc. | Methods and systems for composite printer transforms |
US20090051977A1 (en) * | 2007-08-20 | 2009-02-26 | Vistaprint Technologies Limited | Image processing to reduce image printing time |
JP5176762B2 (ja) | 2008-08-01 | 2013-04-03 | セイコーエプソン株式会社 | プリンタにおける印刷制御方法およびプリンタ |
US20100225958A1 (en) * | 2009-03-06 | 2010-09-09 | Selvaraj Senthil K | Approach For Printing To Web Services-Enabled Printing Devices |
US8310706B2 (en) * | 2009-07-31 | 2012-11-13 | Ricoh Company, Ltd. | Dynamic and real-time print schema documents |
US8405853B2 (en) * | 2009-07-31 | 2013-03-26 | Ricoh Company, Ltd. | Dynamic DEVMODE support |
JP5737864B2 (ja) * | 2010-06-03 | 2015-06-17 | キヤノン株式会社 | インクジェット記録装置及び記録方法 |
US20130336666A1 (en) | 2011-02-28 | 2013-12-19 | Gal Amit | Printing |
US20130016377A1 (en) * | 2011-07-15 | 2013-01-17 | Somasundaram Meiyappan | System and method for automatic recovery of cloud print jobs after printer error |
JP6432256B2 (ja) | 2014-09-30 | 2018-12-05 | ブラザー工業株式会社 | プリンタ |
US10558410B2 (en) * | 2017-09-21 | 2020-02-11 | Canon Kabushiki Kaisha | Image forming apparatus |
US10432816B1 (en) * | 2018-08-17 | 2019-10-01 | Hewlett-Packard Development Company, L.P. | Finishing line controllers to optimize the initialization of a printing device |
US12021688B2 (en) * | 2022-08-10 | 2024-06-25 | Zebra Technologies Corporation | Dynamic network configuration for printers |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5388167A (en) * | 1991-03-12 | 1995-02-07 | Hitachi, Ltd. | Document image processing system and document image processing method |
JP2661416B2 (ja) * | 1991-06-29 | 1997-10-08 | ブラザー工業株式会社 | 印字システム |
JP2862441B2 (ja) * | 1992-07-09 | 1999-03-03 | キヤノン株式会社 | 出力制御装置及び方法 |
US5351068A (en) | 1992-09-30 | 1994-09-27 | Hewlett-Packard Company | Ink-jet printer carriage and paper motion overlap method and apparatus |
US5442385A (en) | 1992-09-30 | 1995-08-15 | Hewlett-Packard Company | Bidirectional black and color pass print method for ink-jet printers |
US5455607A (en) | 1993-05-03 | 1995-10-03 | Hewlett-Packard Company | Black text quality in printers using multiple black and color pens |
US5699495A (en) * | 1994-07-27 | 1997-12-16 | Microsoft Corporation | Point-and-print in a distributed environment |
US5659342A (en) | 1994-09-30 | 1997-08-19 | Hewlett-Packard Company | On-page inkjet printhead spitting system |
US5568169A (en) | 1994-10-19 | 1996-10-22 | Xerox Corporation | Method and apparatus using two different black inks to reduce intercolor bleeding and provide high quality edge definition with thermal ink jet systems |
US5619233A (en) | 1994-10-27 | 1997-04-08 | Xerox Corporation | Bidirectional ink jet printing with head signature reduction |
US5527121A (en) | 1995-02-15 | 1996-06-18 | Hewlett-Packard Company | Printhead carriage control method and apparatus for achieving increased printer throughput |
KR100193815B1 (ko) | 1996-04-19 | 1999-06-15 | 윤종용 | 급지에러 보정방법 |
US6046816A (en) * | 1997-07-01 | 2000-04-04 | Adobe Systems Incorporated | Print data flow operation standardized test technique |
US6283650B1 (en) * | 1997-07-28 | 2001-09-04 | Canon Kabushiki Kaisha | Printing device having an output level compensation function |
US6219153B1 (en) * | 1997-11-17 | 2001-04-17 | Canon Kabushiki Kaisha | Printer having a memory for storing a printer profile parameter |
US6211970B1 (en) * | 1998-11-24 | 2001-04-03 | Lexmark International, Inc. | Binary printer with halftone printing temperature correction |
US6308184B1 (en) * | 1999-04-09 | 2001-10-23 | Hewlett-Packard Company | Delayed unloading of a dynamically loadable file |
-
1999
- 1999-04-14 US US09/291,010 patent/US6594028B1/en not_active Expired - Lifetime
-
2000
- 2000-04-14 JP JP2000113860A patent/JP4164222B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US6594028B1 (en) | 2003-07-15 |
JP2000343794A (ja) | 2000-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4164222B2 (ja) | プリンタドライバによる状態に基づく制御 | |
JP3907382B2 (ja) | ヘッドアライメントに基づくプリンタ制御 | |
JP3697141B2 (ja) | プリント方法、システム、コンピューターで実行可能な処理工程及び記憶媒体 | |
JP2001014129A (ja) | プリントデータの生成方法、プリントシステム、コンピューターで実行可能な処理工程及び記憶媒体 | |
JP3902877B2 (ja) | 記録ヘッド駆動パラメータの制御 | |
JP3792916B2 (ja) | プリンタ、およびプリンタの回復制御方法 | |
JP3495972B2 (ja) | プリント制御方法および装置 | |
JP3715806B2 (ja) | アクセス可能なプリントバッファを有したシリアルプリンタ | |
JPH11227180A (ja) | 異なる解像度でのマルチヘッドプリント | |
US6808247B2 (en) | Ink jet recording apparatus and ink jet recording method | |
EP0455389B1 (en) | A recording apparatus | |
JPH11227229A (ja) | 複数の異なる黒インクを用いたプリント | |
JP3382551B2 (ja) | 記録装置用排出トレイ | |
EP0608105A2 (en) | Colour ink-jet recording apparatus | |
JP2001150703A (ja) | 画像の記録システム及び記録方法 | |
EP1355262A2 (en) | Bidirectional serial printing | |
JPH11268262A (ja) | マルチパスバンド化記録 | |
EP0608880B1 (en) | Image forming apparatus | |
JP3744273B2 (ja) | 記録方法および記録装置、並びに、そのためのプログラムを記録した可読媒体 | |
JP3833009B2 (ja) | ファクシミリ装置、及び記録制御方法 | |
JP2002254612A (ja) | 画像記録装置および画像記録方法 | |
JP2007136885A (ja) | インクジェット記録装置、及びインクジェット記録方法 | |
JP3693032B2 (ja) | 印刷システム、プリンタホストおよびプリンタドライバ | |
JP2003305901A (ja) | 記録装置及び記録制御方法並びに記録システム | |
JPH07246718A (ja) | プリント装置およびプリント方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050214 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050330 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051031 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051202 |
|
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: 20080711 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080728 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110801 Year of fee payment: 3 |
|
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: 20120801 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120801 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130801 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |