JP2993276B2 - プリンタ - Google Patents
プリンタInfo
- Publication number
- JP2993276B2 JP2993276B2 JP4152389A JP15238992A JP2993276B2 JP 2993276 B2 JP2993276 B2 JP 2993276B2 JP 4152389 A JP4152389 A JP 4152389A JP 15238992 A JP15238992 A JP 15238992A JP 2993276 B2 JP2993276 B2 JP 2993276B2
- Authority
- JP
- Japan
- Prior art keywords
- buffer
- attribute
- line
- data
- printing
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K2215/00—Arrangements for producing a permanent visual presentation of the output data
- G06K2215/0002—Handling the output data
- G06K2215/0005—Accepting output data; Preparing data for the controlling system
- G06K2215/0014—Transforming the printer input data into internal codes
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Record Information Processing For Printing (AREA)
Description
【0001】
【産業上の利用分野】本発明は、中間バッファを複数行
同時に保持する機能を有するプリンタに関する。
同時に保持する機能を有するプリンタに関する。
【0002】
【従来の技術】従来、拡大文字等で1走査分の出力バッ
ファの高さを越えるイメージを印字する場合は、特開昭
63−72556のように複数本の出力バッファを一行
分と見なして展開する方法や、一行分のデータを一旦中
間バッファに保持し、そこから出力バッファの高さ単位
でイメージを切り出し、展開する方法が用いられてき
た。以下にそれら従来方法の概要を説明する。
ファの高さを越えるイメージを印字する場合は、特開昭
63−72556のように複数本の出力バッファを一行
分と見なして展開する方法や、一行分のデータを一旦中
間バッファに保持し、そこから出力バッファの高さ単位
でイメージを切り出し、展開する方法が用いられてき
た。以下にそれら従来方法の概要を説明する。
【0003】図2は、複数本の出力バッファを一行分と
みなすプリンタの概要を示すブロック図である。なお、
プリンタを制御する各種プログラムはプログラムROM
11内に格納され、CPUによって制御されるものとす
る。
みなすプリンタの概要を示すブロック図である。なお、
プリンタを制御する各種プログラムはプログラムROM
11内に格納され、CPUによって制御されるものとす
る。
【0004】プリンタはホストコンピュータから送られ
たデータをインターフェイス1を介して受信し、入力バ
ッファ2に格納する。データ解析部3は前記入力バッフ
ァ2よりデータを取り出し文字データ、印字起動コマン
ド、その他各種コマンドに分類する。各種コマンドの場
合は各々に相当する処理を行う。文字データの場合は該
データに相当するイメージデータをフォントROM12
より読みだし、一旦ワークRAM13上に展開する。そ
の後必要な装飾をワークRAM13上のイメージデータ
に対して行い、全装飾が終了した段階で入力チャネル5
を通して出力バッファ6ないし出力バッファ7に展開す
る。入力チャネル5は印字起動コマンドをトリガとして
出力バッファを切り換えるが、該入力チャネル5によっ
て選択された出力バッファが同時に出力チャネル8によ
って選択されている場合は、出力バッファデータをすべ
て印刷機構10に出力し、出力チャネルが切り替わるま
で出力バッファへの書き込みを停止する。出力チャネル
は現在選択されている出力バッファからイメージデータ
を出力インターフェイス9を通して印刷機構10に送
り、印刷を実行する。現在選択されている出力バッファ
内の全イメージの印刷終了をトリガとして、出力チャネ
ル8は印刷すべき出力バッファを切り換える。該出力チ
ャネルによって選択された出力バッファ内に印刷すべき
イメージが存在しない場合は次の印字起動まで印字動作
を停止する。
たデータをインターフェイス1を介して受信し、入力バ
ッファ2に格納する。データ解析部3は前記入力バッフ
ァ2よりデータを取り出し文字データ、印字起動コマン
ド、その他各種コマンドに分類する。各種コマンドの場
合は各々に相当する処理を行う。文字データの場合は該
データに相当するイメージデータをフォントROM12
より読みだし、一旦ワークRAM13上に展開する。そ
の後必要な装飾をワークRAM13上のイメージデータ
に対して行い、全装飾が終了した段階で入力チャネル5
を通して出力バッファ6ないし出力バッファ7に展開す
る。入力チャネル5は印字起動コマンドをトリガとして
出力バッファを切り換えるが、該入力チャネル5によっ
て選択された出力バッファが同時に出力チャネル8によ
って選択されている場合は、出力バッファデータをすべ
て印刷機構10に出力し、出力チャネルが切り替わるま
で出力バッファへの書き込みを停止する。出力チャネル
は現在選択されている出力バッファからイメージデータ
を出力インターフェイス9を通して印刷機構10に送
り、印刷を実行する。現在選択されている出力バッファ
内の全イメージの印刷終了をトリガとして、出力チャネ
ル8は印刷すべき出力バッファを切り換える。該出力チ
ャネルによって選択された出力バッファ内に印刷すべき
イメージが存在しない場合は次の印字起動まで印字動作
を停止する。
【0005】以上が普通文字の場合のシーケンスである
が、行中に拡大文字がある場合は前記文字展開部4は文
字の上半分と下半分を別々に二本の出力バッファ上に展
開し、印刷する。
が、行中に拡大文字がある場合は前記文字展開部4は文
字の上半分と下半分を別々に二本の出力バッファ上に展
開し、印刷する。
【0006】図3は中間バッファを用いるシリアルプリ
ンタの概要を示すブロック図である。図2と同様、プリ
ンタを制御する各種プログラムはプログラムROM22
内に格納され、CPUによって制御されるものとする。
ンタの概要を示すブロック図である。図2と同様、プリ
ンタを制御する各種プログラムはプログラムROM22
内に格納され、CPUによって制御されるものとする。
【0007】プリンタはホストコンピュータから送られ
たデータをインターフェイス14を介して受信し、入力
バッファ15に格納する。中間コード変換部16は入力
バッファに蓄えられたデータを中間コードに変換し、一
旦中間バッファ17に格納する。文字展開部18は、印
字起動コマンドをトリガとして、中間バッファ17から
中間コードを取り出す。文字展開部18は該中間コード
を解析し、対応するイメージデータをフォントROM2
3より読み出す。その際文字が縦倍文字である場合は、
現在のヘッドの位置で印字する部分のイメージのみを切
り出し、普通文字の場合は全イメージをワークRAM2
4上に展開する。その後必要な装飾をワークRAM24
上のイメージデータに対して行い、全装飾が終了した段
階で出力バッファ19上に展開する。データが一行分展
開し終わった時点で出力バッファ19上のイメージデー
タは出力インターフェイス20を通して印刷機構21に
送られ、印刷が実行される。普通文字の場合はこの時点
で前記中間バッファ17をクリアし、次行のデータ変換
動作に入る。これに対し行中に縦倍文字がある場合は、
同様にして下半分のイメージを展開・印字した後、中間
バッファ17をクリアする。
たデータをインターフェイス14を介して受信し、入力
バッファ15に格納する。中間コード変換部16は入力
バッファに蓄えられたデータを中間コードに変換し、一
旦中間バッファ17に格納する。文字展開部18は、印
字起動コマンドをトリガとして、中間バッファ17から
中間コードを取り出す。文字展開部18は該中間コード
を解析し、対応するイメージデータをフォントROM2
3より読み出す。その際文字が縦倍文字である場合は、
現在のヘッドの位置で印字する部分のイメージのみを切
り出し、普通文字の場合は全イメージをワークRAM2
4上に展開する。その後必要な装飾をワークRAM24
上のイメージデータに対して行い、全装飾が終了した段
階で出力バッファ19上に展開する。データが一行分展
開し終わった時点で出力バッファ19上のイメージデー
タは出力インターフェイス20を通して印刷機構21に
送られ、印刷が実行される。普通文字の場合はこの時点
で前記中間バッファ17をクリアし、次行のデータ変換
動作に入る。これに対し行中に縦倍文字がある場合は、
同様にして下半分のイメージを展開・印字した後、中間
バッファ17をクリアする。
【0008】上記方法が、縦倍文字が混在する場合に通
常用いられる方法であるが、図2で示した方法は、構成
が簡単でありスループットが高い反面、文字の最大の高
さ分の出力バッファを持たなければならないため、文字
の最大高によってはRAM容量が膨大なものになる。
常用いられる方法であるが、図2で示した方法は、構成
が簡単でありスループットが高い反面、文字の最大の高
さ分の出力バッファを持たなければならないため、文字
の最大高によってはRAM容量が膨大なものになる。
【0009】また図2、図3の両者に共通する欠点とし
て、一行毎に印字起動をかけなければならないため、文
字の高さ、改行量によっては頻繁に逆紙送り動作が生
じ、このことが即スループット、紙送り精度等の低下の
要因となってしまう。更に、インクジェット系プリンタ
等、紙が擦れることにより印字品質が低下するのを防ぐ
ため逆紙送りそのものを制限するプリンタも存在し、こ
の場合は印字自体が行えないため文字によっては欠けが
生ずる可能性もある。
て、一行毎に印字起動をかけなければならないため、文
字の高さ、改行量によっては頻繁に逆紙送り動作が生
じ、このことが即スループット、紙送り精度等の低下の
要因となってしまう。更に、インクジェット系プリンタ
等、紙が擦れることにより印字品質が低下するのを防ぐ
ため逆紙送りそのものを制限するプリンタも存在し、こ
の場合は印字自体が行えないため文字によっては欠けが
生ずる可能性もある。
【0010】
【発明が解決しようとする課題】本発明はこのような問
題点、特に逆紙送りの問題点を解決するためのもので、
その目的とするところは、中間バッファを複数行同時に
保持することにより、中間バッファの行数分の出力バッ
ファを持つのと同じ効果を得ることにある。
題点、特に逆紙送りの問題点を解決するためのもので、
その目的とするところは、中間バッファを複数行同時に
保持することにより、中間バッファの行数分の出力バッ
ファを持つのと同じ効果を得ることにある。
【0011】
【課題を解決するための手段】本発明のプリンタは、イ
ンターフェイスを介して受信したデータを保持する入力
バッファと、前記入力バッファから取り出したデータを
行単位で保持する中間バッファと、前記中間バッファか
ら取り出したデータを印刷イメージの形で保持する出力
バッファを持つ構成のプリンタにおいて、前記中間バッ
ファを複数行同時に保持し、かつ該中間バッファの各々
に対応するイメージの垂直位置情報を保持するアトリビ
ュートバッファと、前記アトリビュートバッファに保持
されている垂直位置情報に基づき前記複数行分の中間バ
ッファのすべてから必要な部分のイメージのみ前記出力
バッファ上に展開する展開手段を有することを最も主要
な特徴とする。
ンターフェイスを介して受信したデータを保持する入力
バッファと、前記入力バッファから取り出したデータを
行単位で保持する中間バッファと、前記中間バッファか
ら取り出したデータを印刷イメージの形で保持する出力
バッファを持つ構成のプリンタにおいて、前記中間バッ
ファを複数行同時に保持し、かつ該中間バッファの各々
に対応するイメージの垂直位置情報を保持するアトリビ
ュートバッファと、前記アトリビュートバッファに保持
されている垂直位置情報に基づき前記複数行分の中間バ
ッファのすべてから必要な部分のイメージのみ前記出力
バッファ上に展開する展開手段を有することを最も主要
な特徴とする。
【0012】
【作用】本発明は以上の構成を有するので、複数本の出
力バッファを持つのと同様の効果をより小さなRAM容
量で得ることができ、従って出力バッファの高さを越え
る文字が混在した場合でも逆紙送りが生ずるのを防ぐこ
とができる。
力バッファを持つのと同様の効果をより小さなRAM容
量で得ることができ、従って出力バッファの高さを越え
る文字が混在した場合でも逆紙送りが生ずるのを防ぐこ
とができる。
【0013】
【実施例】以下、実施例に従って本発明について説明す
る。
る。
【0014】図1は複数の中間バッファを用いるシリア
ルプリンタの概要を示すブロック図である。図2と同
様、プリンタを制御する各種プログラムはプログラムR
OM40内に格納され、CPUによって制御されるもの
とする。
ルプリンタの概要を示すブロック図である。図2と同
様、プリンタを制御する各種プログラムはプログラムR
OM40内に格納され、CPUによって制御されるもの
とする。
【0015】プリンタはホストコンピュータから送られ
たデータをインターフェイス25を介して受信し、入力
バッファ26に格納する。中間コード変換部27は入力
バッファ26に蓄えられたデータを中間コードに変換
し、入力チャネル28を通して選択中の中間バッファ2
9、31、33のいずれかに格納する。このとき同時に
行の垂直方向における基準位置、最上位位置、最下位位
置等の属性をアトリビュートバッファ30、32、34
のうちの対応するアトリビュートバッファに格納する。
前記中間バッファは印字起動コマンドをトリガとして切
り換えられ、次の中間バッファが選択される。切り換え
た結果選択された中間バッファが空でない場合はこれ以
上格納できないとみなし、展開起動をかける。文字展開
部36は、展開起動をトリガとし、出力チャネル35を
通して中間バッファ29、31、33の全中間バッファ
から中間コードを取り出す。文字展開部36は該中間コ
ードを解析し、現在のヘッドの位置で印字可能なイメー
ジデータのみをフォントROM41より読み出す。この
ときのイメージデータの切り出しはそれぞれの中間バッ
ファに対応するアトリビュートバッファ30、32、3
4に格納された最上位位置、最下位位置から判断する。
読み出したイメージは一旦ワークRAM42上に展開、
必要な装飾を行った後、出力バッファ37上に展開す
る。データがヘッドの1走査分展開し終わった時点で、
該出力バッファ37上のイメージデータは出力インター
フェイス38を通して印刷機構39に送られ、印刷が実
行される。バッファ内部に格納されている全ての中間コ
ードが完全に印字された中間バッファは展開後クリアさ
れ、データの入力が可能な状態となる。
たデータをインターフェイス25を介して受信し、入力
バッファ26に格納する。中間コード変換部27は入力
バッファ26に蓄えられたデータを中間コードに変換
し、入力チャネル28を通して選択中の中間バッファ2
9、31、33のいずれかに格納する。このとき同時に
行の垂直方向における基準位置、最上位位置、最下位位
置等の属性をアトリビュートバッファ30、32、34
のうちの対応するアトリビュートバッファに格納する。
前記中間バッファは印字起動コマンドをトリガとして切
り換えられ、次の中間バッファが選択される。切り換え
た結果選択された中間バッファが空でない場合はこれ以
上格納できないとみなし、展開起動をかける。文字展開
部36は、展開起動をトリガとし、出力チャネル35を
通して中間バッファ29、31、33の全中間バッファ
から中間コードを取り出す。文字展開部36は該中間コ
ードを解析し、現在のヘッドの位置で印字可能なイメー
ジデータのみをフォントROM41より読み出す。この
ときのイメージデータの切り出しはそれぞれの中間バッ
ファに対応するアトリビュートバッファ30、32、3
4に格納された最上位位置、最下位位置から判断する。
読み出したイメージは一旦ワークRAM42上に展開、
必要な装飾を行った後、出力バッファ37上に展開す
る。データがヘッドの1走査分展開し終わった時点で、
該出力バッファ37上のイメージデータは出力インター
フェイス38を通して印刷機構39に送られ、印刷が実
行される。バッファ内部に格納されている全ての中間コ
ードが完全に印字された中間バッファは展開後クリアさ
れ、データの入力が可能な状態となる。
【0016】図4は、請求項2の実施例における中間バ
ッファの構造を示す図である。図4(a)は中間コード
を格納する中間バッファ自身を示し、図4(b)は各中
間バッファのアドレス及び属性を格納するアトリビュー
トバッファを示す。図5は印字例を示す。初期状態とし
て、図5におけるpos1の位置に現在ヘッドがあるも
のとする。また実線で囲まれた長方形の高さはヘッドの
高さと等しいものとする。以下図4、5、及びフローチ
ャートを用いて中間バッファ、アトリビュートバッファ
という観点から詳細な説明を加える。
ッファの構造を示す図である。図4(a)は中間コード
を格納する中間バッファ自身を示し、図4(b)は各中
間バッファのアドレス及び属性を格納するアトリビュー
トバッファを示す。図5は印字例を示す。初期状態とし
て、図5におけるpos1の位置に現在ヘッドがあるも
のとする。また実線で囲まれた長方形の高さはヘッドの
高さと等しいものとする。以下図4、5、及びフローチ
ャートを用いて中間バッファ、アトリビュートバッファ
という観点から詳細な説明を加える。
【0017】初期状態では図6に示すフローチャートに
従って中間バッファ、及びアトリビュートバッファが初
期化される。まず中間バッファ領域に初期データを追加
できるだけの余裕があるかをチェックし(ステップ4
2)、余裕がなければ展開・印字動作を行うことで中間
バッファ領域内に空き領域を確保する。初期データを追
加する余裕がある場合は、デフォルト時のデータ長m
1、該中間バッファに対応するアトリビュートバッファ
の先頭アドレスを示すAD1’、及び現在行における文
字装飾等のデフォルトデータを格納する(ステップ4
3、44、45)。なお、m1はm1を格納したアドレ
スAD1からデフォルトデータの最後のアドレスまでの
総バイト数を示す。
従って中間バッファ、及びアトリビュートバッファが初
期化される。まず中間バッファ領域に初期データを追加
できるだけの余裕があるかをチェックし(ステップ4
2)、余裕がなければ展開・印字動作を行うことで中間
バッファ領域内に空き領域を確保する。初期データを追
加する余裕がある場合は、デフォルト時のデータ長m
1、該中間バッファに対応するアトリビュートバッファ
の先頭アドレスを示すAD1’、及び現在行における文
字装飾等のデフォルトデータを格納する(ステップ4
3、44、45)。なお、m1はm1を格納したアドレ
スAD1からデフォルトデータの最後のアドレスまでの
総バイト数を示す。
【0018】次に、行を管理するために対応するアトリ
ビュートバッファに行の属性を保持する。そのためにま
ず、アトリビュートバッファ領域に新規アトリビュート
を追加できるだけの余裕があるかをチェックし(ステッ
プ46)、余裕がなければ展開・印字動作を行うことで
アトリビュートバッファ領域内に空き領域を確保する。
新規アトリビュートを追加する余裕がある場合は、対応
する中間バッファの先頭アドレスを示すAD1(ステッ
プ47)、行の基準垂直位置(普通文字の最上位位置)
pos1(ステップ48)、最上位位置(初期状態では
pos1、ステップ49)、最下位位置(初期状態では
pos1+標準文字の高さ、ステップ50)、その他の
行属性(二重打ち、印字方向、印字色等、ステップ5
1)の、行に固有のデータを格納する。これらの属性は
各行について同様に存在するため、アトリビュートバッ
ファは各行について固定長となる。
ビュートバッファに行の属性を保持する。そのためにま
ず、アトリビュートバッファ領域に新規アトリビュート
を追加できるだけの余裕があるかをチェックし(ステッ
プ46)、余裕がなければ展開・印字動作を行うことで
アトリビュートバッファ領域内に空き領域を確保する。
新規アトリビュートを追加する余裕がある場合は、対応
する中間バッファの先頭アドレスを示すAD1(ステッ
プ47)、行の基準垂直位置(普通文字の最上位位置)
pos1(ステップ48)、最上位位置(初期状態では
pos1、ステップ49)、最下位位置(初期状態では
pos1+標準文字の高さ、ステップ50)、その他の
行属性(二重打ち、印字方向、印字色等、ステップ5
1)の、行に固有のデータを格納する。これらの属性は
各行について同様に存在するため、アトリビュートバッ
ファは各行について固定長となる。
【0019】図7は文字データを入力した場合の前記中
間バッファ、アトリビュートバッファの動作を示したフ
ローチャートである。ホストコンピュータからデータA
A…Aが入力されると、中間コード変換部により中間コ
ードに変換(ステップ52)した後、該中間コードデー
タが中間バッファに追加できるだけの余裕があるかをチ
ェック(ステップ53)し、余裕がなければ展開・印字
動作を行う。該中間コードを追加できるだけの余裕があ
ればデフォルトデータの直後に追加(ステップ54)
し、バッファの長さm1を追加したデータ数分更新する
(ステップ55)。この際、入力した文字の最上位位置
が現在行の最上位位置より上にくるならば(ステップ5
6)アトリビュートバッファ内の最上位位置の属性を更
新する(ステップ57)。また入力した文字の最下位位
置が現在行の最下位位置より下にくるならば(ステップ
58)アトリビュートバッファ内の最下位位置の属性を
更新する。同様にしてその他の属性を更新する必要があ
るかをチェック(ステップ59)し、更新する必要があ
るならば属性を更新する(ステップ60)。以降、現在
行の総文字幅が右マージンを越えるか、印字起動コマン
ドがくるまで上記フローを繰り返す。右マージンを越え
た場合はLFコマンド動作を行う。
間バッファ、アトリビュートバッファの動作を示したフ
ローチャートである。ホストコンピュータからデータA
A…Aが入力されると、中間コード変換部により中間コ
ードに変換(ステップ52)した後、該中間コードデー
タが中間バッファに追加できるだけの余裕があるかをチ
ェック(ステップ53)し、余裕がなければ展開・印字
動作を行う。該中間コードを追加できるだけの余裕があ
ればデフォルトデータの直後に追加(ステップ54)
し、バッファの長さm1を追加したデータ数分更新する
(ステップ55)。この際、入力した文字の最上位位置
が現在行の最上位位置より上にくるならば(ステップ5
6)アトリビュートバッファ内の最上位位置の属性を更
新する(ステップ57)。また入力した文字の最下位位
置が現在行の最下位位置より下にくるならば(ステップ
58)アトリビュートバッファ内の最下位位置の属性を
更新する。同様にしてその他の属性を更新する必要があ
るかをチェック(ステップ59)し、更新する必要があ
るならば属性を更新する(ステップ60)。以降、現在
行の総文字幅が右マージンを越えるか、印字起動コマン
ドがくるまで上記フローを繰り返す。右マージンを越え
た場合はLFコマンド動作を行う。
【0020】印字起動コマンドがきたところで1行目
(以降行Aで表す)は終了し、新規行の作成にはいる。
新規行の作成のため、行Aの初期化時と同様、図6に示
したフローチャートに従い新規アトリビュートバッファ
を追加し、同時にデフォルト時のデータ長m2、新アト
リビュードバッファの先頭アドレスを示すAD2’、デ
フォルトデータを行Aの中間バッファの直後に追加す
る。新アトリビュートバッファには、2行目の中間バッ
ファの先頭アドレス(m2を格納するアドレス)を示す
AD2、行の垂直位置pos2、最上位位置、最下位位
置等の行属性を格納する。なおpos2の値は、pos
2−pos1がコマンドによる紙送り量となるよう計算
される。以下ホストコンピュータから入力されたデータ
BB…Bに従って、右マージン越えが発生するか、印字
起動コマンドがくるまで1行目と同様に、図7で示した
フローチャートに従って中間コードを中間バッファに追
加する。印字コマンドがきたところで同様にして3行目
が作られ、同じシーケンスを繰り返す(以降2行目を行
B、3行目を行Cで表す)。
(以降行Aで表す)は終了し、新規行の作成にはいる。
新規行の作成のため、行Aの初期化時と同様、図6に示
したフローチャートに従い新規アトリビュートバッファ
を追加し、同時にデフォルト時のデータ長m2、新アト
リビュードバッファの先頭アドレスを示すAD2’、デ
フォルトデータを行Aの中間バッファの直後に追加す
る。新アトリビュートバッファには、2行目の中間バッ
ファの先頭アドレス(m2を格納するアドレス)を示す
AD2、行の垂直位置pos2、最上位位置、最下位位
置等の行属性を格納する。なおpos2の値は、pos
2−pos1がコマンドによる紙送り量となるよう計算
される。以下ホストコンピュータから入力されたデータ
BB…Bに従って、右マージン越えが発生するか、印字
起動コマンドがくるまで1行目と同様に、図7で示した
フローチャートに従って中間コードを中間バッファに追
加する。印字コマンドがきたところで同様にして3行目
が作られ、同じシーケンスを繰り返す(以降2行目を行
B、3行目を行Cで表す)。
【0021】以上の動作を、中間バッファないしはアト
リビュートバッファの領域がフル状態になるまで繰り返
す(実施例では3行でフル状態になったものとする)。
領域がフルとなりこれ以上の追加が出来なくなった時点
で展開起動をかけ、中間バッファの展開動作を開始す
る。
リビュートバッファの領域がフル状態になるまで繰り返
す(実施例では3行でフル状態になったものとする)。
領域がフルとなりこれ以上の追加が出来なくなった時点
で展開起動をかけ、中間バッファの展開動作を開始す
る。
【0022】図8は展開・印字における中間バッファ、
アトリビュートバッファの動作を示すフローチャートで
ある。ここではアトリビュートバッファを全行について
調べ(ステップ62〜70)、現在のヘッドの位置で印
字可能な行について展開・アトリビュート更新・印字を
行う。この後に再度アトリビュートバッファを全行につ
いて調べ次回の印字に必要な量だけ紙送りを行う(ステ
ップ72〜80)。
アトリビュートバッファの動作を示すフローチャートで
ある。ここではアトリビュートバッファを全行について
調べ(ステップ62〜70)、現在のヘッドの位置で印
字可能な行について展開・アトリビュート更新・印字を
行う。この後に再度アトリビュートバッファを全行につ
いて調べ次回の印字に必要な量だけ紙送りを行う(ステ
ップ72〜80)。
【0023】このフローチャートの詳細について説明す
る。まずアクセスした行が削除された行かをチェックし
(ステップ63)、削除された行ならばステップ69に
ジャンプする。ここでチェックされる削除行については
ステップ68で説明する。削除行でない場合は印字可能
行かのチェックを行う(ステップ64)。この印字可能
行かのチェックは現在のヘッドの最下位ドットの位置と
アクセス中のアトリビュートバッファ内の最上位位置を
比較することで行い、現在のヘッドの最下位ドットの位
置がアトリビュートバッファ内の最上位位置より下にあ
る場合は当該の行は印字可能位置にあると判断し出力バ
ッファへの展開処理を行う(ステップ65)。図5の例
では現在のヘッドの位置はpos1であり、行Aのみが
印字可能位置にある。従って行Aの中間バッファのみア
クセスし、イメージデータを出力バッファに展開する。
イメージ展開後、展開した行に対応するアトリビュート
バッファ内の最上位位置を現在のヘッドの最下位ドット
の位置に変更する(ステップ66)。最上位位置の変更
により、該最上位位置が最下位位置より下にきた場合、
当該の行のイメージはすべて印字を終了したと判断して
(ステップ67)、当該の行を削除する(ステップ6
8)。図5の例では、行Aは普通文字のみであり1回の
走査で全イメージが印字できるため、以降は不必要な行
となり行は削除される。この印字終了行の削除は、終了
行のアトリビュートバッファの削除と、対応する中間バ
ッファ内のm1のMSBを立てることで行う。なおスル
ープットを低下させないため、不要となった中間バッフ
ァの削除は中間バッファ領域がオーバーした時点でまと
めて行うものとする。
る。まずアクセスした行が削除された行かをチェックし
(ステップ63)、削除された行ならばステップ69に
ジャンプする。ここでチェックされる削除行については
ステップ68で説明する。削除行でない場合は印字可能
行かのチェックを行う(ステップ64)。この印字可能
行かのチェックは現在のヘッドの最下位ドットの位置と
アクセス中のアトリビュートバッファ内の最上位位置を
比較することで行い、現在のヘッドの最下位ドットの位
置がアトリビュートバッファ内の最上位位置より下にあ
る場合は当該の行は印字可能位置にあると判断し出力バ
ッファへの展開処理を行う(ステップ65)。図5の例
では現在のヘッドの位置はpos1であり、行Aのみが
印字可能位置にある。従って行Aの中間バッファのみア
クセスし、イメージデータを出力バッファに展開する。
イメージ展開後、展開した行に対応するアトリビュート
バッファ内の最上位位置を現在のヘッドの最下位ドット
の位置に変更する(ステップ66)。最上位位置の変更
により、該最上位位置が最下位位置より下にきた場合、
当該の行のイメージはすべて印字を終了したと判断して
(ステップ67)、当該の行を削除する(ステップ6
8)。図5の例では、行Aは普通文字のみであり1回の
走査で全イメージが印字できるため、以降は不必要な行
となり行は削除される。この印字終了行の削除は、終了
行のアトリビュートバッファの削除と、対応する中間バ
ッファ内のm1のMSBを立てることで行う。なおスル
ープットを低下させないため、不要となった中間バッフ
ァの削除は中間バッファ領域がオーバーした時点でまと
めて行うものとする。
【0024】全行についてステップ63〜70のシーケ
ンスを実行した後、印字動作を行う(ステップ71)。
この後全行を調べ、残った行の最上位位置と現在のヘッ
ドの位置pos1との距離が最小である行を探し(ステ
ップ73〜79)得られた最小距離だけ紙送りを実行す
る(ステップ80)。図5の例では行Bと行Cが最も近
い行である。行Bはpos2を基準位置とし、普通文字
のみで構成されているため、行の最上位位置はpos2
の位置である。一方、行Cは基準位置はpos2より普
通文字の高さ分離れているが、行中に拡大文字が混在し
ているため、行の最上位位置は行Bと同じpos2とな
る。従って残った行の最上位位置はpos2であり、p
os2の位置に移動すべく、pos2−pos1の量だ
け紙送りを実行する。実行後はpos2の位置が新しい
ヘッドの位置となる。以上で1パス目のシーケンスが終
了する。
ンスを実行した後、印字動作を行う(ステップ71)。
この後全行を調べ、残った行の最上位位置と現在のヘッ
ドの位置pos1との距離が最小である行を探し(ステ
ップ73〜79)得られた最小距離だけ紙送りを実行す
る(ステップ80)。図5の例では行Bと行Cが最も近
い行である。行Bはpos2を基準位置とし、普通文字
のみで構成されているため、行の最上位位置はpos2
の位置である。一方、行Cは基準位置はpos2より普
通文字の高さ分離れているが、行中に拡大文字が混在し
ているため、行の最上位位置は行Bと同じpos2とな
る。従って残った行の最上位位置はpos2であり、p
os2の位置に移動すべく、pos2−pos1の量だ
け紙送りを実行する。実行後はpos2の位置が新しい
ヘッドの位置となる。以上で1パス目のシーケンスが終
了する。
【0025】同様にして2パス目のシーケンスの実行を
行う。1パス目と同様、pos2の位置で印字する行を
探す。例では行Bおよび行Cが印字可能位置にある。従
って行Bおよび行Cの中間バッファをアクセスし、イメ
ージデータを出力バッファに展開、印字する。ここで、
行Cはpos2で印字する上半分の部分のみ出力バッフ
ァに展開する。行Bは普通文字のみで構成されており1
回の走査で全イメージが印字できる。従って印字終了後
行Bは不必要な行となるため、削除する必要がある。削
除は行Aの場合と同様、アトリビュートバッファの削除
と対応する中間バッファ内のm2のMSBを立てること
で行う。行Cについては印字した部分のみ削除するよう
にアトリビュートバッファ内の行の最上位位置の属性を
更新する。例では最上位位置はpos3に変更される。
以下、前回と同様にして、残った行(この時点では行C
のみが残っている)を調べ、残った行の最上位位置(こ
の時点ではpos3)と現在のヘッドの位置pos2と
の距離pos3−pos2を計算する。この値が次に紙
送りする量であり、紙送り後のヘッドの位置はpos3
となる。続いてこの位置で印字する行を探す。例では行
Cのみが印字可能位置にある。従って行Cの中間バッフ
ァをアクセスし、イメージデータを出力バッファに展
開、印字する。このとき展開されるのは、行Cの残され
た下半分の部分のみである。この印字によって行Cは全
イメージを印字し終わり、以降不要となるため、行A、
行Bと同様削除を行う。
行う。1パス目と同様、pos2の位置で印字する行を
探す。例では行Bおよび行Cが印字可能位置にある。従
って行Bおよび行Cの中間バッファをアクセスし、イメ
ージデータを出力バッファに展開、印字する。ここで、
行Cはpos2で印字する上半分の部分のみ出力バッフ
ァに展開する。行Bは普通文字のみで構成されており1
回の走査で全イメージが印字できる。従って印字終了後
行Bは不必要な行となるため、削除する必要がある。削
除は行Aの場合と同様、アトリビュートバッファの削除
と対応する中間バッファ内のm2のMSBを立てること
で行う。行Cについては印字した部分のみ削除するよう
にアトリビュートバッファ内の行の最上位位置の属性を
更新する。例では最上位位置はpos3に変更される。
以下、前回と同様にして、残った行(この時点では行C
のみが残っている)を調べ、残った行の最上位位置(こ
の時点ではpos3)と現在のヘッドの位置pos2と
の距離pos3−pos2を計算する。この値が次に紙
送りする量であり、紙送り後のヘッドの位置はpos3
となる。続いてこの位置で印字する行を探す。例では行
Cのみが印字可能位置にある。従って行Cの中間バッフ
ァをアクセスし、イメージデータを出力バッファに展
開、印字する。このとき展開されるのは、行Cの残され
た下半分の部分のみである。この印字によって行Cは全
イメージを印字し終わり、以降不要となるため、行A、
行Bと同様削除を行う。
【0026】以上、行A、行B、行Cの入力から印字ま
でのシーケンスを説明した。続けて、削除された中間バ
ッファの処理を説明する。行の削除はアトリビュートバ
ッファの削除と、対応する中間バッファのバイト長を示
す値のMSBを立てることで行ったが、実際に中間バッ
ファを削除するのは中間バッファ領域がオーバーした時
点である。この処理を図9で示すフローチャートに従っ
て説明する。ここで、[SAD]は転送元アドレス、
[DAD]は転送先アドレス、[LNG]は転送する長
さ、[IPT]は中間バッファの入力アドレス(次回の
データはこのアドレスから入力される)、BSADは中
間バッファ領域の先頭アドレス(1行目の中間バッファ
の先頭アドレス)を示すものとする。
でのシーケンスを説明した。続けて、削除された中間バ
ッファの処理を説明する。行の削除はアトリビュートバ
ッファの削除と、対応する中間バッファのバイト長を示
す値のMSBを立てることで行ったが、実際に中間バッ
ファを削除するのは中間バッファ領域がオーバーした時
点である。この処理を図9で示すフローチャートに従っ
て説明する。ここで、[SAD]は転送元アドレス、
[DAD]は転送先アドレス、[LNG]は転送する長
さ、[IPT]は中間バッファの入力アドレス(次回の
データはこのアドレスから入力される)、BSADは中
間バッファ領域の先頭アドレス(1行目の中間バッファ
の先頭アドレス)を示すものとする。
【0027】まず初期設定として[SAD]、[DA
D]にBSADをセット(ステップ81、82)、[L
NG]に[SAD]で示されるアドレス、即ち1行目の
中間バッファ先頭アドレスの中身(図4における中間バ
ッファのバッファ長m1の値)をセットする(ステップ
83)。次に、[LNG]即ち中間バッファのバッファ
長のMSBが1であるかをチェック(ステップ84)、
1でなければ削除された中間バッファではないと判断
し、シーケンスを終了する。1であれば[LNG]のM
SBを0にし(ステップ92)、[SAD]にバッファ
長[LNG]を加え、次行の中間バッファの先頭アドレ
スとする(ステップ93)。中間バッファがまだ存在す
るならば(ステップ90)再び[SAD]で示されるア
ドレスから[LNG]を取り出した(ステップ85)
後、このシーケンスを繰り返す。ステップ86において
[LNG]のMSBが0である行、即ち削除しない行で
あったならば、[SAD]=[DAD]かをチェックし
(ステップ87)、等しければデータを転送する必要が
ないので転送処理をスキップする。等しくなければ、ま
ず転送する中間バッファに対応するアトリビュートバッ
ファの中間バッファの先頭アドレスを示す属性を転送先
のアドレスに変更し(ステップ88)、削除した行を詰
めるため、[SAD]から[DAD]に[LNG]の長
さ分のデータを転送する。なおこの際[SAD][DA
D]とも[LNG]が加えられる(ステップ89)。こ
の後、[SAD]が[IPT]以上になったかをチェッ
クし(ステップ90)、[SAD]<[IPT]ならば
中間バッファがまだ存在するので、削除行の探索を続け
る。[SAD]≧[IPT]であれば中間バッファはこ
れ以上存在しないので、削除行の探索を終了し新しい入
力ポインタを最終の転送先アドレス[DAD]とする
(ステップ91)。
D]にBSADをセット(ステップ81、82)、[L
NG]に[SAD]で示されるアドレス、即ち1行目の
中間バッファ先頭アドレスの中身(図4における中間バ
ッファのバッファ長m1の値)をセットする(ステップ
83)。次に、[LNG]即ち中間バッファのバッファ
長のMSBが1であるかをチェック(ステップ84)、
1でなければ削除された中間バッファではないと判断
し、シーケンスを終了する。1であれば[LNG]のM
SBを0にし(ステップ92)、[SAD]にバッファ
長[LNG]を加え、次行の中間バッファの先頭アドレ
スとする(ステップ93)。中間バッファがまだ存在す
るならば(ステップ90)再び[SAD]で示されるア
ドレスから[LNG]を取り出した(ステップ85)
後、このシーケンスを繰り返す。ステップ86において
[LNG]のMSBが0である行、即ち削除しない行で
あったならば、[SAD]=[DAD]かをチェックし
(ステップ87)、等しければデータを転送する必要が
ないので転送処理をスキップする。等しくなければ、ま
ず転送する中間バッファに対応するアトリビュートバッ
ファの中間バッファの先頭アドレスを示す属性を転送先
のアドレスに変更し(ステップ88)、削除した行を詰
めるため、[SAD]から[DAD]に[LNG]の長
さ分のデータを転送する。なおこの際[SAD][DA
D]とも[LNG]が加えられる(ステップ89)。こ
の後、[SAD]が[IPT]以上になったかをチェッ
クし(ステップ90)、[SAD]<[IPT]ならば
中間バッファがまだ存在するので、削除行の探索を続け
る。[SAD]≧[IPT]であれば中間バッファはこ
れ以上存在しないので、削除行の探索を終了し新しい入
力ポインタを最終の転送先アドレス[DAD]とする
(ステップ91)。
【0028】以上のフローを図4を例に更に詳しく説明
する。図4において中間バッファは3行分入力済みであ
るとし(従って[IPT]=AD4)、そのうちの1行
目、2行目が削除行であると想定する。
する。図4において中間バッファは3行分入力済みであ
るとし(従って[IPT]=AD4)、そのうちの1行
目、2行目が削除行であると想定する。
【0029】このとき、まずステップ81、82で[S
AD]=[DAD]=BSADとする。BSADはm1
が格納されているアドレスである。ステップ83では
[LNG]としてm1をセットする。この状態から、ス
テップ84でm1のMSBが1であるかをチェックす
る。1行目は削除行であるのでm1のMSBは1であ
る。従ってステップ92に分岐し、この行をスキップす
べく[SAD]を2行目の中間バッファの先頭アドレス
に更新する(ステップ92、93)。まだ中間バッファ
が存在するので(ステップ90)、ステップ85に分岐
する。ステップ85で2行目の中間バッファのバッファ
長m2を取り出し、m2のMSBが1であるかをチェッ
クする(ステップ86)。2行目の中間バッファは削除
行であるので、ステップ92に分岐し、[SAD]を3
行目の中間バッファの先頭アドレスに更新する(ステッ
プ93)。中間バッファはまだ存在するので(ステップ
90)ステップ85に分岐する。ステップ85で3行目
の中間バッファのバッファ長m3を取り出し、m3のM
SBが1であるかをチェックする(ステップ86)。3
行目は削除行ではないので、ステップ87に分岐し、転
送可能かをチェックする。この時点では[SAD]は3
行目の先頭アドレスAD3、[DAD]は1行目の先頭
アドレスAD1になっているため、転送可能であるとし
てステップ88に分岐する。転送によって3行目の中間
バッファのアドレスAD3がAD1に変わるので、対応
するアトリビュートバッファのAD3の値をAD1に変
更する(ステップ88)。この後、3行目の中間バッフ
ァの全データをAD1のアドレスに転送し、[SAD]
[DAD]にm3を加える(ステップ89)。この時点
で[SAD]はAD4と等しくなるので、ステップ90
の判断では中間バッファはこれ以上存在しないとしてス
テップ91に分岐する。[DAD]はAD1+m3とな
っており、このアドレスを次の中間バッファの先頭アド
レスにすべく、入力ポインタ[IPT]に格納する。以
上で中間バッファ削除のシーケンスを終了する。図10
は請求項3の実施例における空き容量を変動させた場合
の中間バッファの処理動作を示すフローチャートであ
る。以下、このフローチャートに従って請求項3の実施
例を説明する。
AD]=[DAD]=BSADとする。BSADはm1
が格納されているアドレスである。ステップ83では
[LNG]としてm1をセットする。この状態から、ス
テップ84でm1のMSBが1であるかをチェックす
る。1行目は削除行であるのでm1のMSBは1であ
る。従ってステップ92に分岐し、この行をスキップす
べく[SAD]を2行目の中間バッファの先頭アドレス
に更新する(ステップ92、93)。まだ中間バッファ
が存在するので(ステップ90)、ステップ85に分岐
する。ステップ85で2行目の中間バッファのバッファ
長m2を取り出し、m2のMSBが1であるかをチェッ
クする(ステップ86)。2行目の中間バッファは削除
行であるので、ステップ92に分岐し、[SAD]を3
行目の中間バッファの先頭アドレスに更新する(ステッ
プ93)。中間バッファはまだ存在するので(ステップ
90)ステップ85に分岐する。ステップ85で3行目
の中間バッファのバッファ長m3を取り出し、m3のM
SBが1であるかをチェックする(ステップ86)。3
行目は削除行ではないので、ステップ87に分岐し、転
送可能かをチェックする。この時点では[SAD]は3
行目の先頭アドレスAD3、[DAD]は1行目の先頭
アドレスAD1になっているため、転送可能であるとし
てステップ88に分岐する。転送によって3行目の中間
バッファのアドレスAD3がAD1に変わるので、対応
するアトリビュートバッファのAD3の値をAD1に変
更する(ステップ88)。この後、3行目の中間バッフ
ァの全データをAD1のアドレスに転送し、[SAD]
[DAD]にm3を加える(ステップ89)。この時点
で[SAD]はAD4と等しくなるので、ステップ90
の判断では中間バッファはこれ以上存在しないとしてス
テップ91に分岐する。[DAD]はAD1+m3とな
っており、このアドレスを次の中間バッファの先頭アド
レスにすべく、入力ポインタ[IPT]に格納する。以
上で中間バッファ削除のシーケンスを終了する。図10
は請求項3の実施例における空き容量を変動させた場合
の中間バッファの処理動作を示すフローチャートであ
る。以下、このフローチャートに従って請求項3の実施
例を説明する。
【0030】まず変動後の最大容量、即ち中間バッファ
として今後使用可能な最大容量と変動前の最大容量、即
ち直前に中間バッファにデータを格納した時点での使用
可能な最大容量を比較する(ステップ94)。現在の最
大容量が直前の最大容量以上ならばそのまま追加処理を
行ってもなんら問題は生じないので、直前の最大容量を
現在の最大容量とした後(ステップ98)処理を終了す
る。
として今後使用可能な最大容量と変動前の最大容量、即
ち直前に中間バッファにデータを格納した時点での使用
可能な最大容量を比較する(ステップ94)。現在の最
大容量が直前の最大容量以上ならばそのまま追加処理を
行ってもなんら問題は生じないので、直前の最大容量を
現在の最大容量とした後(ステップ98)処理を終了す
る。
【0031】一方、現在の最大容量が直前の最大容量よ
り少ない場合は、入力ポインタが現在の最大容量を越え
ているかをチェックし(ステップ95)、越えていなけ
れば問題はなくステップ98にジャンプ、越えていれば
このままでは空き容量が確保できないので、空き容量を
確保するために図8で示したフローを実行し展開・印字
処理を行う(ステップ96)。これにより中間バッファ
領域内に空き領域が生じるが、入力ポインタ自体はこれ
だけでは変化しないので、前記空き領域を詰めるために
不要行の削除処理を行い入力ポインタを変更する(ステ
ップ97)。以上の96、97のステップをステップ9
4、95の条件を満たすまで繰り返す。ワークエリア上
の空き容量は印字モード、印刷密度等の様々な条件で変
動するが、この変動する領域を中間バッファとして用
い、かつ上記処理を空き容量を変化させる前に行うこと
で、空き容量に応じて中間バッファの容量を変化させる
ことが可能となる。
り少ない場合は、入力ポインタが現在の最大容量を越え
ているかをチェックし(ステップ95)、越えていなけ
れば問題はなくステップ98にジャンプ、越えていれば
このままでは空き容量が確保できないので、空き容量を
確保するために図8で示したフローを実行し展開・印字
処理を行う(ステップ96)。これにより中間バッファ
領域内に空き領域が生じるが、入力ポインタ自体はこれ
だけでは変化しないので、前記空き領域を詰めるために
不要行の削除処理を行い入力ポインタを変更する(ステ
ップ97)。以上の96、97のステップをステップ9
4、95の条件を満たすまで繰り返す。ワークエリア上
の空き容量は印字モード、印刷密度等の様々な条件で変
動するが、この変動する領域を中間バッファとして用
い、かつ上記処理を空き容量を変化させる前に行うこと
で、空き容量に応じて中間バッファの容量を変化させる
ことが可能となる。
【0032】また実施例では中間バッファに対して説明
を行ったが、アトリビュートバッファについても同様の
処理が可能である。
を行ったが、アトリビュートバッファについても同様の
処理が可能である。
【0033】
【発明の効果】以上説明したように、本発明においては
インターフェイスを介して受信したデータを保持する入
力バッファと、前記入力バッファから取り出したデータ
を行単位で保持する中間バッファと、前記中間バッファ
から取り出したデータを印刷イメージの形で保持する出
力バッファを持つ構成のプリンタにおいて、前記中間バ
ッファを複数行同時に保持し、かつ該中間バッファの各
々に対応するイメージの垂直位置情報を保持するアトリ
ビュートバッファと、前記アトリビュートバッファに保
持されている垂直位置情報に基づき前記複数行分の中間
バッファのすべてから必要な部分のイメージのみ前記出
力バッファ上に展開する展開手段を有するようにしたの
で、複数本の出力バッファを持つのと同様の効果をより
小さなRAM容量で得ることができ、従って出力バッフ
ァの高さを越える文字が混在した場合でも逆紙送りが生
ずるのを防ぐことができる。
インターフェイスを介して受信したデータを保持する入
力バッファと、前記入力バッファから取り出したデータ
を行単位で保持する中間バッファと、前記中間バッファ
から取り出したデータを印刷イメージの形で保持する出
力バッファを持つ構成のプリンタにおいて、前記中間バ
ッファを複数行同時に保持し、かつ該中間バッファの各
々に対応するイメージの垂直位置情報を保持するアトリ
ビュートバッファと、前記アトリビュートバッファに保
持されている垂直位置情報に基づき前記複数行分の中間
バッファのすべてから必要な部分のイメージのみ前記出
力バッファ上に展開する展開手段を有するようにしたの
で、複数本の出力バッファを持つのと同様の効果をより
小さなRAM容量で得ることができ、従って出力バッフ
ァの高さを越える文字が混在した場合でも逆紙送りが生
ずるのを防ぐことができる。
【図1】実施例の出力バッファを複数本持つプリンタの
概要を示すブロック図。
概要を示すブロック図。
【図2】従来の中間バッファを持つプリンタの概要を示
すブロック図。
すブロック図。
【図3】従来の中間バッファを複数本持つプリンタの概
要を示すブロック図。
要を示すブロック図。
【図4】実施例の中間バッファの構造を示す図。
【図5】実施例の印字結果を示す図。
【図6】実施例の中間バッファ、アトリビュートバッフ
ァの初期化動作を示すフローチャート。
ァの初期化動作を示すフローチャート。
【図7】実施例の中間バッファ、アトリビュートバッフ
ァのデータ処理動作を示すフローチャート。
ァのデータ処理動作を示すフローチャート。
【図8】実施例の中間バッファ、アトリビュートバッフ
ァの展開・印字時の動作を示すフローチャート。
ァの展開・印字時の動作を示すフローチャート。
【図9】実施例の中間バッファ削除のシーケンスを示す
フローチャート。
フローチャート。
【図10】実施例の空き容量を変動させた場合における
中間バッファ処理のシーケンスを示すフローチャート。
中間バッファ処理のシーケンスを示すフローチャート。
1 入力インターフェイス 9 出力インターフェイス 14 入力インターフェイス 20 出力インターフェイス 25 入力インターフェイス 30 アトリビュートバッファ#1 32 アトリビュートバッファ#2 34 アトリビュートバッファ#3 38 出力インターフェイス
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.6,DB名) B41J 5/30 B41J 2/485 G06F 3/12
Claims (4)
- 【請求項1】 受信データを格納する入力バッファと、 中間コードを格納するための複数の中間バッファと、 前記各中間バッファに1対1に対応するアトリビュート
バッファと、 格納した順に前記入力バッファから読み出した前記受信
データを解釈し、所定の条件を満たすところまでを1単
位として空いている前記中間バッファに中間コードに変
換して格納すると共に、その際に該中間バッファに格納
した全文字データの各大きさを基に紙送り方向における
最上位位置と最下位位置を求め、これらを対応するアト
リビュートバッファに属性情報として格納する中間コー
ド変換手段と、 前記全アトリビュートバッファの属性情報を基に、次に
印字すべき紙送り方向の1行の位置を決定した上で該行
に含まれるイメージの基となる中間コードを前記全中間
バッファから読み出し、該行に含まれる部分のみをイメ
ージに展開して出力バッファに書き込むと共に、前記各
アトリビュートバッファの情報を更新し、不必要となっ
た中間バッファを空とする文字展開手段と、 前記文字展開手段により出力バッファに書き込まれたイ
メージを基に、1紙送り方向に沿って順次印字を実行す
る印字手段と、 を有するシリアルプリンタ。 - 【請求項2】 所定の条件とは、前記中間コード変換手
段が総文字幅が所定のマージンを超えたのを検出した
か、印字起動命令を検出したかのいずれかである請求項
1記載のシリアルプリンタ。 - 【請求項3】 前記中間バッファを3つ有する請求項1記
載のシリアルプリンタ。 - 【請求項4】 格納した順に入力バッファから読み出し
た受信データを解釈し、所定の条件を満たすところまで
を1単位として空いている中間バッファに中間コードに
変換して格納するステップと、 前記中間バッファに格納した全文字データの各大きさを
基に紙送り方向における最上位位置と最下位位置を求
め、これらを対応するアトリビュートバッファに属性情
報として格納するステップと、 前記全アトリビュートバッファの属性情報を基に、次に
印字すべき紙送り方向の1行の位置を決定した上で該行
に含まれるイメージの基となる中間コードを前記全中間
バッファから読み出し、該行に含まれる部分のみをイメ
ージに展開して出力バッファに書き込むステップと、 前記各アトリビュートバッファの情報を更新し、不必要
となった中間バッファを空とするステップと、 前記出力バッファに書き込まれたイメージを基に、1紙
送り方向に沿って順次印字を実行するステップと、から
なるシリアルプリンタの印字方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4152389A JP2993276B2 (ja) | 1992-06-11 | 1992-06-11 | プリンタ |
US08/066,247 US5487137A (en) | 1992-06-11 | 1993-05-25 | Print data processing apparatus |
EP93109306A EP0574824B1 (en) | 1992-06-11 | 1993-06-09 | Print data processing apparatus |
SG1996005513A SG46516A1 (en) | 1992-06-11 | 1993-06-09 | Print data processing apparatus |
DE69322691T DE69322691T2 (de) | 1992-06-11 | 1993-06-09 | Druckdatenverarbeitungsvorrichtung |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4152389A JP2993276B2 (ja) | 1992-06-11 | 1992-06-11 | プリンタ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH05338277A JPH05338277A (ja) | 1993-12-21 |
JP2993276B2 true JP2993276B2 (ja) | 1999-12-20 |
Family
ID=15539450
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4152389A Expired - Fee Related JP2993276B2 (ja) | 1992-06-11 | 1992-06-11 | プリンタ |
Country Status (5)
Country | Link |
---|---|
US (1) | US5487137A (ja) |
EP (1) | EP0574824B1 (ja) |
JP (1) | JP2993276B2 (ja) |
DE (1) | DE69322691T2 (ja) |
SG (1) | SG46516A1 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3554034B2 (ja) * | 1994-09-02 | 2004-08-11 | キヤノン株式会社 | カラー印刷装置及びその方法 |
US5805781A (en) * | 1994-12-07 | 1998-09-08 | Hewlett-Packard Company | Printer method and apparatus for combining sub-images to eliminate image artifacts |
JPH0948154A (ja) * | 1995-08-08 | 1997-02-18 | Brother Ind Ltd | シリアル式印字装置 |
JP3159113B2 (ja) * | 1996-06-19 | 2001-04-23 | セイコーエプソン株式会社 | 画像形成方法及び画像形成装置 |
JP3858419B2 (ja) * | 1997-02-17 | 2006-12-13 | セイコーエプソン株式会社 | 印刷装置 |
JP3506130B2 (ja) * | 2001-06-19 | 2004-03-15 | 日本電気株式会社 | バッファリング装置及びバッファリング方法 |
US7164489B2 (en) * | 2001-10-19 | 2007-01-16 | Seiko Epson Corporation | Rectangular partitioning in printing rotated images |
CN101516039B (zh) * | 2005-12-13 | 2012-09-26 | 松下电器产业株式会社 | 数据处理装置 |
US8390868B1 (en) * | 2008-04-17 | 2013-03-05 | Marvell International Ltd. | Systems and methods for memory reduction for print head data buffering |
US11327733B2 (en) * | 2020-05-27 | 2022-05-10 | Blaize, Inc. | Method of using multidimensional blockification to optimize computer program and device thereof |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2048624B (en) * | 1979-05-02 | 1982-12-15 | Ibm | Graphics display apparatus |
US4418344A (en) * | 1981-12-10 | 1983-11-29 | Datamedia Corporation | Video display terminal |
DE3317842A1 (de) * | 1983-05-17 | 1984-12-06 | Mergenthaler Linotype Gmbh, 6236 Eschborn | Graphisches reproduktions- und seztverfahren von schriftzeichen |
JPS6311991A (ja) * | 1986-07-03 | 1988-01-19 | 株式会社東芝 | 表示制御装置 |
JPS6372556A (ja) * | 1986-09-17 | 1988-04-02 | Fujitsu Ltd | 拡大印字方式 |
JPS63205257A (ja) * | 1987-02-23 | 1988-08-24 | Oki Electric Ind Co Ltd | 印刷制御装置 |
JPS63265648A (ja) * | 1987-04-24 | 1988-11-02 | Mitsubishi Electric Corp | 印刷制御装置 |
JPH0755572B2 (ja) * | 1987-06-01 | 1995-06-14 | 株式会社日立製作所 | 印字装置 |
US5251293A (en) * | 1987-09-02 | 1993-10-05 | Ascii Corporation | Character display apparatus |
JP2692098B2 (ja) * | 1987-12-28 | 1997-12-17 | ミノルタ株式会社 | プリンタ制御装置 |
CA1335215C (en) * | 1988-07-01 | 1995-04-11 | Lavaughn F. Watts, Jr. | Flat panel display attribute generator |
JP3116354B2 (ja) * | 1989-09-29 | 2000-12-11 | ミノルタ株式会社 | プリンタデータ管理方式 |
US5041994A (en) * | 1990-02-23 | 1991-08-20 | Hewlett-Packard Company | Data storage system and method for a laser printer |
-
1992
- 1992-06-11 JP JP4152389A patent/JP2993276B2/ja not_active Expired - Fee Related
-
1993
- 1993-05-25 US US08/066,247 patent/US5487137A/en not_active Expired - Lifetime
- 1993-06-09 SG SG1996005513A patent/SG46516A1/en unknown
- 1993-06-09 DE DE69322691T patent/DE69322691T2/de not_active Expired - Fee Related
- 1993-06-09 EP EP93109306A patent/EP0574824B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0574824A1 (en) | 1993-12-22 |
SG46516A1 (en) | 1998-02-20 |
EP0574824B1 (en) | 1998-12-23 |
US5487137A (en) | 1996-01-23 |
DE69322691T2 (de) | 1999-09-09 |
DE69322691D1 (de) | 1999-02-04 |
JPH05338277A (ja) | 1993-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4745561A (en) | Character font pattern editing system for modification of font patterns | |
EP0119395B1 (en) | A system and method for text processing | |
JPH0640257B2 (ja) | 情報出力装置 | |
US5878198A (en) | Information processing apparatus and method and memory medium storing information processing program | |
JP2993276B2 (ja) | プリンタ | |
EP0772115B1 (en) | System, output device, method, and computer-usable medium using a split printer driver to control a computer printer device | |
JP3209102B2 (ja) | プリントシステム、プリンタドライバ及びプリンタ | |
US6310693B1 (en) | Printing control apparatus and method, and printing system for reducing processing overhead | |
JPH0916149A (ja) | 文字処理装置、文字処理方法、及び、メモリ | |
JPH0581395A (ja) | 複数のサイズを有する文書用の交換可能なイメージ・オブジエクトを扱うためのデータ処理システムおよび方法 | |
JPH06171160A (ja) | 印刷情報処理装置 | |
JP3082504B2 (ja) | フォントキャッシュシステム装置 | |
JP2595978B2 (ja) | フォント管理装置 | |
JPS59201870A (ja) | 印字装置 | |
JP3864520B2 (ja) | 印刷処理装置及び印刷処理方法 | |
JP2790186B2 (ja) | 文字出力方法及びその装置 | |
JP2000033730A (ja) | 印刷装置とその制御方法及び印刷システム | |
CN1155696A (zh) | 用主高速缓存器和打印机高速缓存器提高文本打印性能 | |
JPH0916355A (ja) | 情報処理装置及びフォントダウンロード管理プログラムを記憶する記憶媒体 | |
JP2851840B2 (ja) | 文書処理装置 | |
JPS59149553A (ja) | 文書作成装置 | |
JPS63172663A (ja) | 文書処理装置 | |
JPH06227061A (ja) | フォントキャッシュ制御方法 | |
JPH07152765A (ja) | 情報処理方法及び装置 | |
JPH04174022A (ja) | プリンタコントローラ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081022 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091022 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101022 Year of fee payment: 11 |
|
LAPS | Cancellation because of no payment of annual fees |