(57)【特許請求の範囲】
【請求項１】
同時に複数行分の印字を可能とする印字ヘッドを有するプリンタ装置であって、
ホストから送信される受信データを順次格納する受信データ記憶手段と、
前記印字ヘッドで実際に印字するための印字データを格納するものであり、前記複数行分の２倍以上の行数の記憶域を有する印字データ記憶手段と、
前記受信データ記憶手段の前記受信データを順次読み出し、前記受信データに基づき、前記印字ヘッドで実際に印字する前記印字データを生成し、前記印字データ記憶手段に格納する印字データ展開手段と、
前記印字データ記憶手段に少なくとも１行分の前記印字データが格納された時点で該１行分の印字を開始させると共に、前記１行分の印字中に前記印字データ記憶手段に次の１又は複数行分の前記印字データが格納された場合に、前記１行分の印字が終了した後、前記印字データ記憶手段に格納された印字データの行数に基づく印字を開始させる印字制御手段と、
を備えたことを特徴とするプリンタ装置。
【請求項２】
同時に複数行分の印字を可能とする印字ヘッドを有するプリンタ装置であって、
ホストから送信されるもので、少なくとも文字コードを含む受信データを順次格納する受信データ記憶手段と、
前記文字コードに対応する文字データ群を格納した文字データ群記憶手段と、
前記印字ヘッドで実際に印字するための印字データを格納するものであり、前記複数行分の２倍以上の行数の記憶域を有する印字データ記憶手段と、
前記受信データ記憶手段の前記受信データを順次読み出し、前記受信データに含まれる前記文字コードに対応するもので、前記文字データ群記憶手段に格納された前記文字データ群に基づき、前記印字ヘッドで実際に印字する前記印字データを生成し、前記印字データ記憶手段に格納する印字データ展開手段と、
前記印字データ記憶手段に少なくとも１行分の前記印字データが格納された時点で該１行分の印字を開始させると共に、前記１行分の印字中に前記印字データ記憶手段に次の１又は複数行分の前記印字データが格納された場合に、前記１行分の印字が終了した後、前記印字データ記憶手段に格納された印字データの行数に基づく印字を開始させる印字制御手段と、
を備えたことを特徴とするプリンタ装置。
【請求項３】
同時に複数行分の印字を可能とする印字ヘッドを有するプリンタ装置であって、
ホストから送信されるもので、少なくとも制御コマンドまたは印字改行コマンドを含む受信データを順次格納する受信データ記憶手段と、
前記印字ヘッドで実際に印字するための印字データを格納するものであり、前記複数行分の２倍以上の行数の記憶域を有する印字データ記憶手段と、
前記受信データ記憶手段の前記受信データを順次読み出し、前記受信データに基づき、前記印字ヘッドで実際に印字する前記印字データを生成し、前記印字データ記憶手段に格納する印字データ展開手段と、
前記印字データ記憶手段に少なくとも１行以上の前記印字データが格納された時点における前記受信データ記憶手段に格納された前記受信データが、少なくとも前記制御コマンドまたは前記印字改行コマンドに基づき何行分の前記印字データに相応するか算出し、その結果に応じて前記印字データ記憶手段に格納された前記印字データの印字行数を設定して印字を行なわせる印字制御手段と、
を備えたことを特徴とするプリンタ装置。
【請求項４】
同時に複数行分の印字を可能とする印字ヘッドを有するプリンタ装置であって、
ホストから送信されるもので、少なくとも制御コマンドまたは印字改行コマンドを含む受信データを順次格納する受信データ記憶手段と、
前記印字ヘッドで実際に印字するための印字データを格納するものであり、前記複数行分の２倍以上の行数の記憶域を有する印字データ記憶手段と、
前記受信データ記憶手段の前記受信データを順次読み出し、前記受信データに基づき、前記印字ヘッドで実際に印字する前記印字データを生成し、前記印字データ記憶手段に格納する印字データ展開手段と、
前記印字データ記憶手段に少なくとも１行以上の前記印字データが格納された時点における前記受信データ記憶手段に格納された前記受信データが、少なくとも前記制御コマンドまたは前記印字改行コマンドに基づき１行分の前記印字データに相応しないと判断したとき、前記印字データ記憶手段に格納された前記印字データの行数に基づく印字を行なわせる印字制御手段と、
を備えたことを特徴とするプリンタ装置。
【請求項５】
同時に複数行分の印字を可能とする印字ヘッドを有するプリンタ装置の制御方法であって、
ホストから送信される受信データを順次受信データ記憶手段に格納する工程と、
前記受信データ記憶手段の前記受信データを順次読み出し、前記受信データに基づき、前記印字ヘッドで実際に印字する前記印字データを生成し、前記複数行分の２倍以上の行数の記憶域を有する印字データ記憶手段に格納する工程と、
前記印字データ記憶手段に少なくとも１行分の前記印字データが格納された時点で該１行分の印字を開始させる工程と、
前記１行分の印字中に前記印字データ記憶手段に次の１又は複数行分の前記印字データが格納された場合に、前記１行分の印字が終了した後、前記印字データ記憶手段に格納された印字データの行数に基づく印字を開始させる工程と、
を備えたことを特徴とするプリンタ装置の制御方法。
【請求項６】
同時に複数行分の印字を可能とする印字ヘッド及び文字コードに対応する文字データ群を格納した文字データ群記憶手段とを有するプリンタ装置の制御方法であって、
ホストから送信されるもので、少なくとも前記文字コードを含む受信データを順次受信データ記憶手段に格納する工程と、
前記受信データ記憶手段の前記受信データを順次読み出し、前記受信データに含まれる前記文字コードに対応するもので、前記文字データ群記憶手段に格納された前記文字データ群に基づき、前記印字ヘッドで実際に印字する前記印字データを生成し、前記複数行分の２倍以上の行数の記憶域を有する印字データ記憶手段に格納する工程と、
前記印字データ記憶手段に少なくとも１行分の前記印字データが格納された時点で該１行分の印字を開始させる工程と、
前記１行分の印字中に前記印字データ記憶手段に次の１又は複数行分の前記印字データが格納された場合に、前記１行分の印字が終了した後、前記印字データ記憶手段に格納された印字データの行数に基づく印字を開始させる工程と、
を備えたことを特徴とするプリンタ装置の制御方法。
【請求項７】
同時に複数行分の印字を可能とする印字ヘッドを有するプリンタ装置の制御方法であって、
ホストから送信されるもので、少なくとも制御コマンドまたは印字改行コマンドを含む受信データを順次受信データ記憶手段に格納する工程と、
前記受信データ記憶手段の前記受信データを順次読み出し、前記受信データに基づき、前記印字ヘッドで実際に印字する前記印字データを生成し、前記複数行分の２倍以上の行数の記憶域を有する印字データ記憶手段に格納する工程と、
前記印字データ記憶手段に少なくとも１行以上の前記印字データが格納された時点における前記受信データ記憶手段に格納された前記受信データが、少なくとも前記制御コマンドまたは前記印字改行コマンドに基づき何行分の前記印字データに相応するか算出し、その結果に応じて前記印字データ記憶手段に格納された前記印字データの印字行数を設定して印字を行なわせる工程と、
を備えたことを特徴とするプリンタ装置の制御方法。
【請求項８】
同時に複数行分の印字を可能とする印字ヘッドを有するプリンタ装置の制御方法であって、
ホストから送信されるもので、少なくとも制御コマンドまたは印字改行コマンドを含む受信データを順次受信データ記憶手段に格納する工程と、
前記受信データ記憶手段の前記受信データを順次読み出し、前記受信データに基づき、前記印字ヘッドで実際に印字する前記印字データを生成し、前記複数行分の２倍以上の行数の記憶域を有する印字データ記憶手段に格納する工程と、
前記印字データ記憶手段に少なくとも１行以上の前記印字データが格納された時点における前記受信データ記憶手段に格納された前記受信データが、少なくとも前記制御コマンドまたは前記印字改行コマンドに基づき１行分の前記印字データに相応しないと判断したとき、前記印字データ記憶手段に格納された前記印字データの行数に基づく印字を行なわせる工程と、
を備えたことを特徴とするプリンタ装置の制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、同時に複数行分の印字を可能とする印字ヘッドを有するプリンタ装置及びその制御方法に関し、特にインクジェットやワイヤドットなどのシリアルドットマトリックス方式のプリンタ装置に用いて好適なものに関する。
【０００２】
【従来の技術】
シリアルドットマトリックス方式のプリンタ装置は、縦１列あるいは複数列に配列したインクノズルやワイヤ（以下、印字エレメントという）により選択的に用紙上に印字を行ない、印字ヘッドの移動によりマトリックス型の文字を生成する。
【０００３】
従来この種のプリンタ装置において、印字速度を向上させる目的で、通常の文字高さの２倍以上の印字エレメントを備え、複数行分の印字を同時に行なうように構成したものがある。このようなプリンタ装置においては、同時に印字できる行数分のデータを受信した時点で、印字を開始する。
【０００４】
【発明が解決しようとする課題】
しかしながら、プリンタ一体型のワードプロセッサなどのように、どのような印字データが送られてくるか明らかである場合には問題はないが、コンピュータ等に接続して使用される汎用型のプリンタ装置においては、ホストであるコンピュータからどのようなデータがどのような間隔で送られてくるかが予測できず、場合によって印字速度が低下する問題が生じる。すなわち、同時に印字可能な行数（例えば３行）に満たない印字データ（例えば１行分）が送られてきた際に、さらに印字データが送られてくるか否かが判断できず、その結果、３行分の印字データの受信時間以上の時間をタイムアウト時間として設定し、これを経過した時点で該１行の印字を行なう必要があった。このため、同時に印字可能な行数以下の印字データが送られてきた場合の印字速度が低下すると共に、いつ印字されるかユーザ側から把握しにくく、使い勝手が悪いという問題があった。
【０００５】
本発明の目的は、同時に複数行分の印字を可能とする印字ヘッドを有するプリンタ装置において、該印字可能行数以下の印字データに対する印字速度を向上させると共に、ユーザの使い勝手の向上を図ることにある。
【０００６】
【課題を解決するための手段】
本発明は、同時に複数行分の印字を可能とする印字ヘッドを有するプリンタ装置に関する。本発明のプリンタ装置は、ホストから送信される受信データを順次格納する受信データ記憶手段と、前記印字ヘッドで実際に印字するための印字データを格納するものであり、前記複数行分の２倍以上の行数の記憶域を有する印字データ記憶手段と、前記受信データ記憶手段の前記受信データを順次読み出し、前記受信データに基づき、前記印字ヘッドで実際に印字する前記印字データを生成し、前記印字データ記憶手段に格納する印字データ展開手段と、前記印字データ記憶手段に少なくとも１行分の前記印字データが格納された時点で該１行分の印字を開始させると共に、前記１行分の印字中に前記印字データ記憶手段に次の１又は複数行分の前記印字データが格納された場合に、前記１行分の印字が終了した後、前記印字データ記憶手段に格納された印字データの行数に基づく印字を開始させる印字制御手段とを備える。これによって前記印字データ記憶手段に少なくとも１行分の印字データが格納された時点で、ホストから送信される受信データに基づく印字データの量に拘わらず速やかに印字が開始され、その結果、送信された受信データに基づく印字データ量が同時に印字可能な行数に満たない場合に、その印字速度が改善されることとなる。
【０００７】
また、本発明のプリンタ装置は、ホストから送信されるもので、少なくとも文字コードを含む受信データを順次格納する受信データ記憶手段と、前記文字コードに対応する文字データ群を格納した文字データ群記憶手段と、前記印字ヘッドで実際に印字するための印字データを格納するものであり、前記複数行分の２倍以上の行数の記憶域を有する印字データ記憶手段と、前記受信データ記憶手段の前記受信データを順次読み出し、前記受信データに含まれる前記文字モードに対応するもので、前記文字データ群記憶手段に格納された前記文字データ群に基づき、前記印字ヘッドで実際に印字する前記印字データを生成し、前記印字データ記憶手段に格納する印字データ展開手段と、前記印字データ記憶手段に少なくとも１行分の前記印字データが格納された時点で該１行分の印字を開始させると共に、前記１行分の印字中に前記印字データ記憶手段に次の１又は複数行分の前記印字データが格納された場合に、前記１行分の印字が終了した後、前記印字データ記憶手段に格納された印字データの行数に基づく印字を開始させる印字制御手段とを備えて構成することができる。
【０００８】
さらに本発明のプリンタ装置は、ホストから送信されるもので、少なくとも制御コマンドまたは印字改行コマンドを含む受信データを順次格納する受信データ記憶手段と、前記印字ヘッドで実際に印字するための印字データを格納するものであり、前記複数行分の２倍以上の行数の記憶域を有する印字データ記憶手段と、前記受信データ記憶手段の前記受信データを順次読み出し、前記受信データに基づき、前記印字ヘッドで実際に印字する前記印字データを生成し、前記印字データ記憶手段に格納する印字データ展開手段と、前記印字データ記憶手段に少なくとも１行以上の前記印字データが格納された時点における前記受信データ記憶手段に格納された前記受信データが、少なくとも前記制御コマンドまたは前記印字改行コマンドに基づき何行分の前記印字データに相応するか算出し、その結果に応じて前記印字データ記憶手段に格納された前記印字データの印字行数を設定して印字を行なわせる印字制御手段とを備えて構成することもできる。
さらに上述の構成において、前記印字制御手段は、前記印字データ記憶手段に少なくとも１行以上の前記印字データが格納された時点における前記受信データ記憶手段に格納された前記受信データが、少なくとも前記制御コマンドまたは前記印字改行コマンドに基づき１行分の前記印字データに相応しないと判断したとき、前記印字データ記憶手段に格納された前記印字データの行数に基づく印字を行なわせる構成とすることもできる。
この場合、受信データ記憶手段に格納された受信データに基づく印字データが１行分のデータ量に満たない場合に、既に印字データ記憶手段に格納されている印字データを速やかに印字させることができ、その結果、印字速度が改善される。
【０００９】
本発明は、また、同時に複数行分の印字を可能とする印字ヘッドを有するプリンタ装置の制御方法に関し、ホストから送信される受信データを順次受信データ記憶手段に格納する工程と、前記受信データ記憶手段の前記受信データを順次読み出し、前記受信データに基づき、前記印字ヘッドで実際に印字する前記印字データを生成し、前記複数行分の２倍以上の行数の記憶域を有する印字データ記憶手段に格納する工程と、前記印字データ記憶手段に少なくとも１行分の前記印字データが格納された時点で該１行分の印字を開始させる工程と、前記１行分の印字中に前記印字データ記憶手段に次の１又は複数行分の前記印字データが格納された場合に、前記１行分の印字が終了した後、前記印字データ記憶手段に格納された印字データの行数に基づく印字を開始させる工程とを備える。
【００１０】
さらに、本発明に係るプリンタ装置の制御方法は、同時に複数行分の印字を可能とする印字ヘッド及び文字コードに対応する文字データ群を格納した文字データ群記憶手段とを有するプリンタ装置の制御方法であって、ホストから送信されるもので、少なくとも前記文字コードを含む受信データを順次受信データ記憶手段に格納する工程と、前記受信データ記憶手段の前記受信データを順次読み出し、前記受信データに含まれる前記文字コードに対応するもので、前記文字データ群記憶手段に格納された前記文字データ群に基づき、前記印字ヘッドで実際に印字する前記印字データを生成し、前記複数行分の２倍以上の行数の記憶域を有する印字データ記憶手段に格納する工程と、前記印字データ記憶手段に少なくとも１行分の前記印字データが格納された時点で該１行分の印字を開始させる工程と、前記１行分の印字中に前記印字データ記憶手段に次の１又は複数行分の前記印字データが格納された場合に、前記１行分の印字が終了した後、前記印字データ記憶手段に格納された印字データの行数に基づく印字を開始させる工程とを備えて構成することもできる。
【００１１】
また、本発明に係るプリンタ装置の制御方法は、ホストから送信されるもので、少なくとも制御コマンドまたは印字改行コマンドを含む受信データを順次受信データ記憶手段に格納する工程と、前記受信データ記憶手段の前記受信データを順次読み出し、前記受信データに基づき、前記印字ヘッドで実際に印字する前記印字データを生成し、前記複数行分の２倍以上の行数の記憶域を有する印字データ記憶手段に格納する工程と、前記印字データ記憶手段に少なくとも１行以上の前記印字データが格納された時点における前記受信データ記憶手段に格納された前記受信データが、少なくとも前記制御コマンドまたは前記印字改行コマンドに基づき何行分の前記印字データに相応するか算出し、その結果に応じて前記印字データ記憶手段に格納された前記印字データの印字行数を設定して印字を行なわせる工程とを備えて構成することもできる。
また、上述のプリンタ装置の制御方法の印字を行なわせる工程において、
前記印字データ記憶手段に少なくとも１行以上の前記印字データが格納された時点における前記受信データ記憶手段に格納された前記受信データが、少なくとも前記制御コマンドまたは前記印字改行コマンドに基づき１行分の前記印字データに相応しないと判断したとき、前記印字データ記憶手段に格納された前記印字データの行数に基づく印字を行なわせるようにすることもできる。
【００１２】
【発明の実施の形態】
以下、本発明の一実施形態を図面に沿って説明する。図１は本発明に係るプリンタ装置の一実施形態の構成ブロック図である。以下では、本発明をホストコンピュータ（以下、ホストＰＣ）に接続されたインクジェット方式のシリアルドットマトリックスプリンタに適用した例について説明する。
【００１３】
図１においてプリンタ装置１は、印字機構部２、受信バッファ３ａ及び印字バッファ３ｂとして機能するＲＡＭ３、プログラムＲＯＭ４、フォントＲＯＭ５、プリンタ装置全体の制御を司るＣＰＵ６、及びホストＰＣ８とのインターフェース（以下、Ｉ／Ｆ）７を備える。ＣＰＵ６には、ワーキング用の記憶領域となる前記ＲＡＭ３と、制御プログラム等を格納した前記プログラムＲＯＭ４とが接続されており、プリンタ装置１の制御が行なわれる。印字機構部２は、用紙を搬送し、該用紙上に印字を行なうための機構部分であり、印字ヘッド、ヘッドキャリッジ、用紙送り機構等を含む。一つの実施例において、インクジェットプリンタの印字ヘッドには、縦１列に２４ドットのノズル列が形成されており、これによって同時に３行分の印字が可能である。すなわち、各文字は、縦８ドットで構成され、各ノズルから選択的にインクを吐出しつつ、キャリッジにより印字ヘッドを移動させることによって、列方向に文字を形成していく。
【００１４】
受信バッファ３ａは、Ｉ／Ｆ７を介して受信されたホストＰＣ８からのデータを、一時的に保存可能なＦＩＦＯ（先入れ先出し）方式のメモリエリアである。ホストＰＣ８からデータが送られてくると、それらは順次受信バッファ３ａに格納されていき、先に受信されたデータから順次読み出されＣＰＵ６の処理の対象となる。
【００１５】
ここで、ホストＰＣ８から送信されるデータに基づいて印字されるデータには、文字データ及びビットイメージデータがある。該印字されるデータが文字データである場合には、送信されるデータは、文字コード及び文字サイズ等を指定するための文字装飾用のコマンド列である。図２（Ａ）は、ホストから送信される文字データ列の一例を表している。図において、１区画が１バイトに対応しており、１バイトで１つの文字コード（Ａ、Ｂ、Ｃなど）が表現されている。ここで、”ＧＳ！ｎ”は、該コマンド以降の文字コードで指定された文字サイズを縦［ｎ下位４ビット＋１］倍（１〜８倍）、横［ｎ上位４ビット＋１］倍（１〜８倍）に指定するコマンドである。したがって、図中”ＧＳ ！ １０ｈ”によって、文字”Ｘ、Ｙ、Ｚ”は横２倍で印字されることが指定されている。”ＬＦ”は、印字改行を意味するコマンドである。
【００１６】
印字されるデータがビットイメージデータの場合には、ホストＰＣ８から送信されるデータは、実際に印字されるビットイメージデータ及びプリンタ装置の印字制御を該ビットイメージデータに対応させるための制御コマンド列である。図２（Ｂ）は、ホストから送信されるビットイメージデータ列の一例を示している。ここでも１区画が１バイトを表しており、ｄ１、ｄ２、ｄ３．．．が１バイト単位で表されたビットイメージデータである。ここで”ＥＳＣ ＊ ｍ ｎＬ ｎＨ”は、データがｍ、ｎＬ、ｎＨで特定されるイメージデータであることを指定するコマンドである。”ｍ”はビットイメージのモード、すなわち印刷されるイメージデータの横方向のドット密度を指定するものである。ｍ＝０の時は横方向１ドットおき、ｍ＝１の時は横方向に間をあけずに連続して展開する。図３にｍ＝１の場合のイメージデータｄ１、ｄ２、ｄ３．．．の印字の配列を示した。縦方向に２４個のノズルを有し、縦８ドットの文字を３列同時に印字できる印字ヘッドにおいて、ｍ＝１が指定された場合には、１行分の８ノズルによって、順次イメージデータｄ１、ｄ２、ｄ３．．．が印字されていく。
【００１７】
イメージデータのデータ数は、ｎＬ及びｎＨで指定される。実施例でデータ数は、４桁の１６進データ（ｎＬ：下２桁、ｎＨ：上２桁）で表現されている。すなわち、ｎＨ＝（ｎ4ｎ3）ｈ、ｎＬ＝（ｎ2ｎ1）ｈとすれば、データ数は、ｎ4×１６3＋ｎ3×１６2＋ｎ2×１６1＋ｎ1×１６0となる。例えば、ｎＬ＝０Ａ、ｎＨ＝００の場合、データ数は１０個（ｄ１〜ｄ１０）となる。
【００１８】
図１において印字バッファ３ｂは、前記印字機構部２で実際に印字される印字データを格納するためのメモリエリアである。ＣＰＵ６は、前記受信バッファ３ａ内のデータを順次読み出し、該データ内の文字コードや制御コマンドに従って、実際に印字される文字あるいはイメージデータを生成し、前記印字バッファ３ｂに格納する。フォントＲＯＭ５は、印字する文字フォントのデータを格納した読み出し専用メモリである。受信バッファ３ａから読み出されたデータが文字コードである場合に、ＣＰＵ６は、前記文字データの生成に際し、フォントＲＯＭ５から該文字コードに対応する文字フォントを読み出し、これを印字バッファ３ｂに格納する。
【００１９】
前記印字バッファ３ｂは、図４に概念的に示すように、複数の記憶域（バッファＢｕｆ１〜６）に論理的に分けられており、各バッファＢｕｆ１〜６は１行分の印字データを格納できるサイズを有している。なお、印字バッファ３ｂ内のバッファ数は、同時印刷が可能な行数の２倍以上が必要である。これは、３行分の印字を行なっている最中に、次の印字データを展開することを可能にするためである。３行印字の印字ヘッドにおいては、６つのバッファＢｕｆ１〜６が備えられる。
【００２０】
次に、前記構成のプリンタ装置１におけるデータ展開処理及び印字処理について説明する。なおこれらの処理は、ＣＰＵ６及びこの上で実行されるプログラムによって実現される。図５はデータ展開処理を示すフローチャートであり、図６は印字処理を示すフローチャートである。データ展開処理は、受信バッファ３ａのデータを読み出し、印字データを生成して印字バッファ３ｂに順次格納していくための処理である。なお、データ展開処理は、ＣＰＵ６への割り込み要求によって開始される処理である。これら図において、”ＰｒＬｉｎｅ”は、印字バッファ３ｂに格納された印字データが何行分に相当するかを示す変数であり、該変数を介して、２つの処理は同時並行的に動作される。また、”Ｂｕｆ”は、印字データの格納対象となるバッファＢｕｆのシリアル番号を指定する変数である。なお、前記ＰｒＬｉｎｅの初期値は”０”、Ｂｕｆの初期値は”１”に設定されている。
【００２１】
ホストＰＣ８からプリンタ装置にデータが送信されると、割込み要求が発生し、図５に示すデータ展開処理が開始される。受信バッファ３ａに蓄積された一連の受信データが読み出され、該データ中の制御コマンドに応じて文字データあるいはイメージデータからなる印字データ列が生成され、印字バッファ３ｂの最初のバッファ領域（図４のバッファＢｕｆ１）に格納されていく（Ｓ５０１）。そして１行分の印字データが生成されるまで、最初のバッファＢｕｆ１への書き込みが行われる（Ｓ５０２）。なお、１行分の印字データが生成されたことの判断は、格納された印字データによって最初のバッファＢｕｆ１が満たされるか、または印字改行コマンドが読み出されたことによってなされる。１行分の印字データが生成されると、印字行数を示すＰｒＬｉｎｅがインクリメントされ、”１”になると共に、印字データの格納対象となるバッファ番号を指定する”Ｂｕｆ”変数がインクリメントされ”２”になる（Ｓ５０３）。これによって、ホストから１行分以上の印字データが送られてきた場合には、印字バッファ３ｂのバッファＢｕｆ２に継続的に印字データが展開されていくこととなる。
【００２２】
Ｓ５０３でＰｒＬｉｎｅが”１”になると、すなわち印字バッファ３ｂ内に１行分の印字データが蓄積されると、図６に示す処理において、ＰｒＬｉｎｅはデクリメントされ”０”になり（Ｓ６０１、Ｓ６０２）、速やかに該１行分のデータの印字が開始される（Ｓ６０３）。該印字が終了すると、用紙は１行分紙送りされる（Ｓ６０４）。
【００２３】
前記Ｓ６０２〜Ｓ６０４が実行されている間も、図５に示したデータ展開処理は同時並行的に継続されている。従って、印字処理を行なっている最中にデータ展開処理を行なうため、バッファは同時印字可能行数の２倍以上が必要となる。前記１行印字を行なっている間に、バッファＢｕｆ２、さらにはバッファＢｕｆ３内にデータが蓄積されていくと、該バッファ番号、すなわち蓄積行数に応じて、ＰｒＬｉｎｅがインクリメントされる（Ｓ５０３）。このとき、Ｂｕｆ変数が６に満たない場合は、Ｂｕｆをインクリメントし（Ｓ５０４、Ｓ５０５）、データ展開処理が行なわれる。バッファＢｕｆ６にまでデータが展開されると、Ｂｕｆを１に初期化し（Ｓ５０４、Ｓ５０６）、再びＢｕｆ１から展開データが蓄積される。
【００２４】
図６のＳ６０５のステップにおいて、ＰｒＬｉｎｅが１以上になると、その値に応じた行数の同時印字が実行される。例えば、ＰｒＬｉｎｅが”１”、すなわち前記印字中に１行分の印字データが蓄積された場合には、ＰｒＬｉｎｅを”０”に初期化した後（Ｓ６０６）、バッファＢｕｆ２に蓄積された印字データが印字される（Ｓ６０７）。その後、１行分の用紙送りを実行する（Ｓ６０８）。また、ＰｒＬｉｎｅが”２”、すなわち前記印字中に２行分の印字データが蓄積された場合には、ＰｒＬｉｎｅを”０”に初期化した後（Ｓ６０９）、バッファＢｕｆ２及びＢｕｆ３に蓄積された印字データが同時に印字される（Ｓ６１０）。その後、２行分の用紙送りを実行する（Ｓ６１１）。同様に、ＰｒＬｉｎｅが”３以上”の場合には、ＰｒＬｉｎｅから３を引き、バッファＢｕｆ２、Ｂｕｆ３及びＢｕｆ４に蓄積された印字データが同時に印字されることとなる（Ｓ６１２〜Ｓ６１４）。そして、これらの印字中に、さらに印字バッファ３ｂ内に１行分以上の印字データが蓄積されると、前記処理が繰り返されることとなる（Ｓ６０５）。
【００２５】
一方、Ｓ６０３のステップにおける印字中に、印字バッファ３ｂ内に１行分の印字データが蓄積されなかった場合には印字処理は終了され、ＰｒＬｉｎｅが再度”１”になるまで待機する（Ｓ６０１）。
【００２６】
図７及び図８は、従来のプリンタ装置における印字プロセス（同図（Ａ））と、前記実施形態における印字プロセス（同図（Ｂ））とを比較して示すタイミングチャートである。図７は、ホストＰＣ８から３行分の印字データが送られてきた場合、図８は１行分の印字データが送られてきた場合をそれぞれ示している。図７（Ａ）において、従来のプリンタ装置では、受信バッファに３行分のデータの受信が開始されると（図中Ａ点）、これに僅かに遅れて印字データが生成され、順次印字バッファに蓄積されていく（Ｂ点）。３行分の印字データのすべてが生成され印字バッファに格納された時点（Ｃ点）で、該３行分の同時印刷が開始され、所定時間後に終了する（Ｄ点）。
【００２７】
一方、図７（Ｂ）において、本実施形態のプリンタ装置では、印字バッファに１行分の印字データが蓄積された時点（Ｃ点）で、該１行分の印字が開始される。そして該１行の印字が終了した後（Ｄ点）、残りの２行の印字を連続して２行分同時に行なう（Ｅ点）。このように、待機状態から３行分のデータを印字する場合には、従来のプリンタ装置よりも本実施形態によるプリンタ装置のほうが、若干印字に時間が掛かることとなる。尤もこの遅れ時間は、待機状態からの最初の印字時にのみ発生し、連続印字している場合は以降発生しないので、実用的には問題とならない。
【００２８】
次に、１行印字を行なう場合の従来及び本実施形態におけるプリンタ装置の印字速度を比較する。図８（Ａ）において、従来のプリンタ装置では、受信バッファに１行分のデータの受信が開始されると（図中Ａ点）、これに僅かに遅れて印字データが生成され、順次印字バッファに蓄積されていく（Ｂ点）。ここで、印字バッファへのデータの蓄積が終了しても印字は直ぐに行なわれず、予め設定されたタイムアウト時間が経過するのを待つ。タイムアウト時間経過後（Ｃ点）、印字を開始し、所定時間後に終了する（Ｄ点）。
【００２９】
一方、図８（Ｂ）において、本実施形態のプリンタ装置では、図７（Ｂ）の場合と同様に、印字バッファに１行分の印字データが蓄積された時点（Ｃ点）で、直ちに該１行分の印字が開始される。この結果、従来のプリンタ装置に比べ、１行の印字処理に掛かる時間が著しく短くなった。例えば本発明のプリンタ装置をＰＯＳ（Point Of Sales）に利用し、レシート印字する場合には、１品分入力するたびに１行印字することが一般的であり、これが連続した場合の時間短縮の効果は非常に大きなものとなる。
【００３０】
次に、本発明の他の実施形態におけるプリンタ装置の制御方法について説明する。図９は本実施形態におけるデータ展開処理を示すフローチャート、図１０は印字処理のフローチャートである。本実施形態は、１行分の印字データが印字バッファ３ｂに蓄積された時点で、受信バッファ３ａ内のデータを検査し、１行分以上のデータがあるか否かを算出する手順を含んでいる点に特徴を有している。以下、フローチャートに沿ってこれを説明する。なお、フローチャートにおいて”Ｐｒ”は、印字バッファ３ｂに蓄積された印字データの行数を一時的に保管するローカル変数であり、初期値は”０”である。なお、この実施形態においては、変数ＰｒＬｉｎｅに１〜３が与えられた時点で、その数に相応する行数の印字が同時に行なわれるように印字処理が構成されている（図１０参照）。
【００３１】
データ展開処理の最初のステップで、受信バッファ３ａに蓄積された一連の受信データが読み出され、該データ中の制御コマンドに応じて文字データあるいはイメージデータからなる印字データ列が生成され、印字バッファ３ｂの最初のバッファ領域（図４のバッファＢｕｆ１）に格納されていく（Ｓ９０１）。そして１行分の印字データが生成されるまで、最初のバッファＢｕｆ１への書き込みが行われる（Ｓ９０２）。１行分の印字データが生成されると、Ｐｒがインクリメントされ、”１”になる（Ｓ９０３）。次のステップ（Ｓ９０４）で、Ｐｒは”１”であるから、結果は”偽”となり、受信バッファ３ａ内のデータを検査する（Ｓ９０５）。データ内の制御コマンドなどから印字データ量を算出し、受信バッファ３ａ内に１行分以上の印字データが存在するかを判断する（Ｓ９０６）。なお、受信バッファ３ａ内のデータ中に印字改行コマンドがある場合には、これにより１行分の印字データが揃っているものとする。前記時点で、受信バッファ３ａ内に１行分以上の印字データが存在しない場合には、ＰｒＬｉｎｅにＰｒ、すなわち”１”が代入される（Ｓ９０７）。代入後Ｐｒは”０”に初期化される。そして、ＰｒＬｉｎｅが”１”になると（Ｓ１００１）、図１０の印刷処理において、直ちに該１行の印字が開始されることとなる（Ｓ１００２〜１００４）。
【００３２】
図９のＳ９０６のステップで、受信バッファ３ａ内に１行分以上の印字データが存在する場合には、直ちに印字を行なわず、Ｂｕｆをインクリメントする（Ｓ９０８）。そして、データ展開処理の最初に戻って、該受信バッファ３ａ内のデータの展開を行なう（Ｓ９０１）。Ｐｒが”３”になるか（Ｓ９０４）、受信バッファ３ａ内に１行分以上のデータがなくなった場合に（Ｓ９０６）、ＰｒＬｉｎｅにＰｒの値（２又は３）を代入する（Ｓ９０７）。そして、ＰｒＬｉｎｅに設定された数に応じて、図１０の印字処理において印字行数が選択され、印字が行われることとなる（Ｓ１００５〜Ｓ１００７又はＳ１００８〜Ｓ１０１０）。
【００３３】
図１１は、本実施形態における印字プロセスを示すタイミングチャートであり、同図（Ａ）はホストＰＣ８から３行分の印字データが送られてきた場合、同図（Ｂ）は１行分の印字データが送られてきた場合をそれぞれ示している。同図（Ａ）において、受信バッファに３行分のデータの受信が開始されると（図中Ａ点）、これに僅かに遅れて印字データが生成され、順次印字バッファ３ｂに蓄積されていく（Ｂ点）。印字バッファ３ｂに１行分の印字データが蓄積された時点（Ｃ点）で、受信バッファ３ａの検査が行なわれる。この時点で受信バッファ３ａにはさらに１行分の印字データが受信されているので、印字を保留にする。さらに、印字バッファ３ｂに２行目の印字データが蓄積された時点（Ｄ点）で、受信バッファ３ａにはさらに１行分の印字データがあるので、同様に印字を保留にする。印字バッファ３ｂに３行目の印字データが蓄積された時点（Ｅ点）においては、受信バッファ３ａには、新たな印字データがないので、３行分の印字が行われることとなる。
【００３４】
次に、１行分の印字データが送られてきた場合の処理を説明する。同図（Ｂ）において、受信バッファに１行分のデータの受信が開始されると（図中Ａ点）、これに僅かに遅れて印字データが生成され、順次印字バッファ３ｂに蓄積されていく（Ｂ点）。印字バッファ３ｂに１行分の印字データが蓄積された時点（Ｃ点）で、受信バッファ３ａの検査が行なわれる。この時点で受信バッファ３ａには別の印字データが受信されていないので、印字バッファ３ｂ内の印字データが速やかに印字されることとなる。
【００３５】
本実施形態は、先の実施形態に比し、受信バッファの検査を行なうための処理が必要となるが、印字機構を１回動作させる時間に比して、受信バッファの検査を行なう時間は一般的に１００分の１以下であるため、これによる弊害は少なく、３行分の印字データが送られてきた場合の処理が早くなるという利点がある。
【００３６】
以上、本発明の実施形態を図面に沿って説明したが、本発明は前記実施形態において示された事項に限定されず、特許請求の範囲及び発明の詳細な説明の記載、並びに周知の技術に基づいて、当業者がその変更・応用を行うことができる範囲が含まれる。実施形態においては、インクジェット方式のシリアルドットマトリックスプリンタに本発明を適用した例を示したが、ワイヤドット方式やサーマル方式等全てのシリアル印字方式のプリンタ装置においても同様に本発明を適用することができる。また、同時に印字できる行数を３行としたプリンタ装置を例示したが、本発明は同時に複数行印字ができるあらゆるプリンタ装置に適用可能であり、該行数に限定されない。
【００３７】
【発明の効果】
以上の如く本発明によれば、同時に複数行分の印字を可能とする印字ヘッドを有するプリンタ装置において、該印字可能行数以下の印字データに対する印字速度を向上させることができる。該印字速度の向上によって、印字が行われるタイミングがユーザから把握し易くなり、使い勝手が向上するという効果がある。
【図面の簡単な説明】
【図１】本発明に係るプリンタ装置の一実施形態の構成ブロック図である。
【図２】（Ａ）は、ホストから送信される文字データ列の一例を、（Ｂ）は、ホストから送信されるビットイメージデータ列の一例をそれぞれ示している。
【図３】ドットイメージデータの印字の配列を示す図である。
【図４】印字バッファの複数に分割された記憶域を概念的に示す図である。
【図５】データ展開処理を示すフローチャートである。
【図６】印字処理を示すフローチャートである。
【図７】ホストＰＣから３行分の印字データが送られてきた場合の、従来のプリンタ装置における印字プロセスと、本発明の実施形態における印字プロセスとを比較して示すタイミングチャートである。
【図８】ホストＰＣから１行分の印字データが送られてきた場合の図７対応図である。
【図９】他の実施形態におけるデータ展開処理を示すフローチャートである。
【図１０】他の実施形態における印字処理のフローチャートである。
【図１１】他の実施形態における印字プロセスを示すタイミングチャートである。
【符号の説明】
１  プリンタ装置
２  印字機構部
３  ＲＡＭ
３ａ  受信バッファ
３ｂ  印字バッファ
４  プログラムＲＯＭ
５  フォントＲＯＭ
６  ＣＰＵ
７  Ｉ／Ｆ
【図１】
0004432124.tif 000002
【図２】
0004432124.tif 000003
【図３】
0004432124.tif 000004
【図４】
0004432124.tif 000005
【図５】
0004432124.tif 000006
【図６】
0004432124.tif 000007
【図７】
0004432124.tif 000008
【図８】
0004432124.tif 000009
【図９】
0004432124.tif 000010
【図１０】
0004432124.tif 000011
【図１１】
0004432124.tif 000012