JPH10240468A - 印刷システム、印刷装置と制御方法、印刷制御装置及び方法 - Google Patents

印刷システム、印刷装置と制御方法、印刷制御装置及び方法

Info

Publication number
JPH10240468A
JPH10240468A JP9142694A JP14269497A JPH10240468A JP H10240468 A JPH10240468 A JP H10240468A JP 9142694 A JP9142694 A JP 9142694A JP 14269497 A JP14269497 A JP 14269497A JP H10240468 A JPH10240468 A JP H10240468A
Authority
JP
Japan
Prior art keywords
image
character
data
band
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.)
Granted
Application number
JP9142694A
Other languages
English (en)
Other versions
JP3814373B2 (ja
Inventor
Yoji Furuya
陽二 古谷
Masayoshi Suzuki
政義 鈴木
Yoshibumi Okamoto
義文 岡本
Toshihiko Ikeno
俊彦 池野
Jun Doi
純 土肥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP14269497A priority Critical patent/JP3814373B2/ja
Publication of JPH10240468A publication Critical patent/JPH10240468A/ja
Application granted granted Critical
Publication of JP3814373B2 publication Critical patent/JP3814373B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Record Information Processing For Printing (AREA)

Abstract

(57)【要約】 【課題】ホストからイメージのみを送信して印刷させる
印刷装置は、ホストに負担がかかり、データが大きくて
処理に時間がかかる。 【解決手段】文書を印刷させる場合、ホストのドライバ
は、文書中の文字のうち、その文書に初めて現れる文字
のコードとイメージとをあらかじめプリンタに送り付
け、登録しておく。その後、文字は文字コードで、文字
以外はイメージ展開してホストからプリンタに送信す
る。プリンタでは、イメージはページメモリに展開し、
文字については、先に登録されているコードとイメージ
とを参照してイメージに展開してページメモリに重ねて
いく。このイメージを印刷する。また、プリンタでは、
ページではなく、バンドに区切ってバンド単位でイメー
ジ展開をすることもできる、こうすると、メモリの量を
節約でき、また、同じ内容のバンドや、空白のバンドは
コードとして処理できる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、例えばホストコン
ピュータから送られてくる印刷データを印刷出力する印
刷システム及び印刷装置及び印刷制御方法に関するもの
である。
【0002】
【従来の技術】従来、イメージ出力に特化したページプ
リンタがあり、それはホストベースプリンタと呼ばれて
いる。
【0003】この種のプリンタでは、ホストコンピュー
タ上で展開した1ページ分のイメージデータを、ページ
先頭から次々に圧縮してプリンタのコントローラ部に送
る。コントローラ部は送られてくる圧縮データを次々に
伸長し、伸長したデータをビデオ信号に変換して、エン
ジン部の排紙のタイミングに同期させて、エンジン部に
出力する。これによって、1ページ分の用紙の印刷を行
なう。
【0004】この種のプリンタでは、圧縮されたイメー
ジデータのビデオ信号への変換と、エンジン部へのビデ
オ信号出力は、ハードウェア回路が行なう仕組みとなっ
ており、極端に言えば、コントローラ部には、CPUも
不要であり、非常に安価なページプリンタが可能という
長所がある。
【0005】
【発明が解決しようとする課題】しかしながら、上記従
来のホストベースプリンタを用いるホストコンピュータ
では、文字印字、図形描画、イメージの貼り付け等、全
ての印刷データを、いったんホストコンピュータ上でイ
メージに展開してから、展開されたイメージを圧縮して
プリンタに転送する。そのため、ホストからプリンタに
転送すべきデータ量が大きくなってしまう。また、普通
の文書でも、ホスト上でいったんすべてデータを画像へ
展開しなければならない。そのため、特に、複数ページ
の文書では、ホストでの処理時間がかかり、印刷処理時
間が大きくなってしまうという問題があった。
【0006】本発明の目的は、ホストベースプリンタに
近い、簡単な構成のイメージ専用プリンタでありなが
ら、文字の部分は文字コードで受信して文字画像に展開
することで、ホストにおける文字の展開処理時間とホス
トからの転送データ量とを非常に小さくした印刷装置及
び印刷システム及び印刷制御方法を提供することであ
る。
【0007】また、本発明のもうひとつの目的は、巨大
なイメージデータを含んだ文書も出力できる印刷装置及
び印刷システム及び印刷制御方法を提供することであ
る。
【0008】
【課題を解決するための手段】上記目的を達成するた
め、本発明はつぎのような構成からなる。
【0009】ホスト装置で作成された文書データを印刷
装置により印刷出力する印刷システムであって、前記ホ
スト装置は、文書データに出現する文字の文字コードと
該コードに対応する文字イメージとを前記印刷装置に送
信する第1の送信手段と、文書データに出現する各文字
を文字コードとして、文字以外の部分をイメージデータ
として前記印刷装置に送信する第2の送信手段とを備
え、前記印刷装置は、前記第1の送信手段により送信さ
れる文字コードと文字イメージとを登録する登録手段
と、前記第2の送信手段により送信される文字コード
を、前記登録手段により登録されたコードと文字イメー
ジとに基づいてイメージデータに展開し、前記第2の送
信手段により送信されるイメージと合成するイメージ再
生手段と、前記イメージ再生手段により得られるイメー
ジデータを印刷出力する手段とを備える。
【0010】あるいは、受信した印刷データに基づいて
印刷出力する印刷装置であって、受信した文字コードと
該コードに対応する文字イメージとを登録する登録手段
と、受信した文字コードを、前記登録手段により登録さ
れたコードと文字イメージとに基づいてイメージデータ
に展開し、別途受信したイメージと合成するイメージ再
生手段と、前記イメージ再生手段により得られるイメー
ジデータを印刷出力する手段とを備える。
【0011】あるいは、作成した文書データを印刷装置
により印刷出力させる印刷制御装置であって、文書デー
タに出現する文字の文字コードと該コードに対応する文
字イメージとを前記印刷装置に送信する第1の送信手段
と、文書データに出現する各文字を文字コードとして、
文字以外の部分をイメージデータとして前記印刷装置に
送信する第2の送信手段とを備える。
【0012】あるいは、受信した印刷データに基づいて
印刷出力する印刷制御方法であって、受信した文字コー
ドと該コードに対応する文字イメージとを登録する登録
工程と、受信した文字コードを、前記登録工程により登
録されたコードと文字イメージとに基づいてイメージデ
ータに展開し、別途受信したイメージと合成するイメー
ジ再生工程と、前記イメージ再生工程により得られるイ
メージデータを印刷出力する工程とを備える。
【0013】あるいは、作成した文書データを印刷出力
させる印刷装置の制御方法であって、文書データに出現
する文字の文字コードと文字イメージとを前記印刷装置
に送信する第1の送信工程と、文書データに出現する各
文字を文字コードとして、文字以外の部分をイメージデ
ータとして前記印刷装置に送信する第2の送信工程とを
備える。
【0014】あるいは、受信した印刷データに基づいて
印刷出力させるプログラムを格納するコンピュータ可読
の記憶媒体であって、前記プログラムは、受信した文字
コードと該コードに対応する文字イメージとを登録する
登録手段と、受信した文字コードを、前記登録手段によ
り登録されたコードと文字イメージとに基づいてイメー
ジデータに展開し、別途受信したイメージと合成するイ
メージ再生手段と、前記イメージ再生手段により得られ
るイメージデータを印刷出力させる手段とを備える。
【0015】あるいは、作成した文書データを印刷装置
により印刷出力させる印刷制御プログラムを格納するコ
ンピュータ可読の記憶媒体であって、前記プログラム
は、文書データに出現する文字の文字コードと該コード
に対応する文字イメージとを前記印刷装置に送信する第
1の送信手段と、文書データに出現する各文字を文字コ
ードとして、文字以外の部分をイメージデータとして前
記印刷装置に送信する第2の送信手段とを備える。
【0016】
【発明の実施の形態】
[第1の実施の形態]次に、図を用いて第1の実施の形
態を説明する。 <印刷システムの構成>図1はシステム全体を説明する
ためのブロック構成図である。ホスト1は、登録する文
字イメージデータ、印字を指示する文字コード、圧縮さ
れたイメージデータを作成してプリンタへ送るパーソナ
ルコンピュータである。ホスト1は、これらの処理を、
二次メモリから主メモリにロードしたプリンタドライバ
等のプログラムをCPUにより実行することで行う。ま
た、ホスト1では、ユーザが所望のアプリケーションプ
ログラムを実行することができる。ユーザはこれを入力
部からの入力及び表示部よりの表示に従って制御する。
ホスト1はプリンタ2とインターフェース部を介して接
続されている。なお、二次メモリとしては、固定ディス
クなどの固定された媒体のほかに、フレキシブルディス
クやCD−ROMなど、着脱自在な記憶媒体を用いても
よいし、それら双方を用いることもできる。着脱自在な
媒体を二次メモリとして用いれば、それを介してプログ
ラムやデータを装置に供給できる。
【0017】プリンタ2は、コントローラ部3とエンジ
ン部4とを含む。コントローラ部3は、ホストコンピュ
ータ1から送られてくる文字データ、イメージデータを
受信し、受信したデータからビデオ信号を生成し、エン
ジン部4に送る。エンジン部4は、コントローラ部3か
ら受け取ったビデオ信号を用紙に転写して印刷し、排紙
する。
【0018】コントローラ部3は、コントローラ部3全
体を制御する中央処理装置(以下、CPUと呼ぶ)5、
CPU5による処理動作を記述したプログラムの入って
いるリード・オンリ・メモリ(以下、ROMと呼ぶ)
8、ランダム・アクセス・メモリ(以下、RAMと呼
ぶ)9、ホスト1から文字データ、イメージデータを受
信し、受信したデータをRAM9内にある受信バッファ
10にセットする受信部6、受信した圧縮された文字デ
ータを伸長してフレームバッファ11へ展開する文字伸
長回路17、受信した圧縮されたイメージデータを伸長
してフレームバッファ11に展開するイメージ伸長回路
16、フレームバッファ11内の展開イメージをビデオ
信号に変換してエンジン部4に出力するビデオ転送回路
7等で構成されている。データ18は受信済みで受信バ
ッファ10にページ毎にセットされてた状態の文字デー
タ、データ19は受信済みで受信バッファ10にページ
毎にセットされてた状態のイメージデータを示してい
る。
【0019】その他、RAM9内には、プログラムのワ
ーク領域12、さらにその中には、受信バッファ9に受
信したページごとの文字データ18、イメージデータ1
9を管理するためのページ管理表13、圧縮された1文
字ごとのドットイメージを貯蔵しておく、登録文字デー
タ領域15、登録された文字データを管理するための、
登録文字管理表14等が含まれている。また、プログラ
ムを格納するROM8をRAMとすることもできる。こ
の場合にはRAMは内容が揮発しないように電池等でバ
ックアップされているか、あるいは電源投入の都度必要
なプログラムがロードされることになる。また、ROM
8をRAM化することで、ホスト1の2次メモリに着脱
自在な記憶媒体により供給されるプログラムを、インタ
ーフェース部を介して受信し、RAMに格納することも
できる。すなわち、プリンタ2で実行されるプログラム
もまた着脱自在な記憶媒体で供給することができる。
【0020】なお、受信した文字データ18の中味は、
登録文字、文字コードで構成されている。ホスト1上で
印刷しようとしている文書で、最初に出現した文字は、
圧縮して1文字ごとのドットイメージとして、登録文字
としてプリンタ2に送られる。また、その最初の文字位
置を含めて、以降の同一文字の印字は、文字コードによ
って指示される。
【0021】受信バッファ10に一旦受信された登録文
字は、登録文字データ領域15に移し替えられて貯えら
れる。文字コードによって印字を指示された場合は、登
録文字データ領域15から、文字コードに対応する登録
文字データが抜き出され、文字伸長回路17で伸長さ
れ、フレームバッファ11上に展開される形となる。ま
た、圧縮イメージデータ19は、イメージ伸長回路16
によりデータ伸長され、フレームバッファ11上に展開
される。
【0022】ところで、コントローラ部3のCPU5
は、RAM9の内部の受信バッファ10やページ管理表
13、登録文字管理表14などを用いたメモリ管理を行
なうだけなので、処理能力のそれほど高くない安価な製
品で良い。
【0023】一方、エンジン部4にもCPU21とメモ
リ22とがある。メモリ22には制御プログラムの入っ
たROM23や、プログラムのワーク領域としてのRA
M24が含まれる。ビデオ受信部25は、コントローラ
部3からのビデオ信号を受信し、現像定着部27で用紙
に画像を転写する。給紙部26は、未使用の白い用紙を
用紙カセット等から取り込む役目をし、現像定着部27
は、上述のように用紙に画像を転写して定着し、排紙部
28は印刷済みの用紙を排出する。
【0024】なお、太い矢印は、文字データやイメージ
データやビデオ信号の流れ、あるいは、エンジン部4で
は、用紙の流れを示している。また、細い矢印は、各部
分間の制御のやりとりを示している。コントローラ部3
のCPU5と、エンジン部4のCPU21も、互いに情
報のやり取りを行なう。ビデオの転写や、用紙の搬送等
の、印刷処理の制御にかかわる情報である。
【0025】図2は、コントローラ部3における、イメ
ージと文字の合成の原理の説明図である。図1でも、一
部説明したが、ホスト1上のドライバは、印刷しようと
する文書について、まず、文字部分と文字以外の部分と
に分離する。文字以外の部分はホスト1上で全てイメー
ジとして展開しておく。そして、ページ毎に、文字デー
タ部分とイメージデータ部分とを別々にプリンタ2へ転
送する。その際、文字データ部分は、まず文字コードと
対応した、圧縮された文字のドットパターンデータをプ
リンタヘ送って登録しておき、次に印字データとして登
録されている文字コード列を送る。
【0026】コントローラ部3では、受信した圧縮イメ
ージデータ19を、イメージ伸長回路16を使って伸長
してフレームバッファ11上に展開する。コントローラ
3は、文字データ18(すなわち文字コード列)を受信
すると、受信したそれぞれの文字コードについて、登録
されている圧縮ドットパターンデータを文字伸長回路1
7によって伸長し、フレームバッファ11上に展開す
る。フレームバッファ11上に1ページ分のイメージと
文字の展開が完了すれば、ビデオ転送回路7によって、
印刷のビデオ信号がエンジン部4へ送られる。
【0027】なお、ここでは、フレームバッファ11上
へは、イメージ部分と文字部分との論理和が書き込まれ
る。文書の上では、多くの場合論理和で問題はない。
【0028】また、ある文字の文字ドットデータの登録
については、ひとつの文書の印刷で一度行なわれるだ
け、文書上で、ページにまたがって同じ文字が何度も出
現されても、文字登録は一度だけで、印字は文字コード
によって繰り返し指示される。しかし、文書の印字が終
わった時点で、登録された文字は、RAM9上から消去
される。複数の文書にまたがって、登録文字が有効なわ
けではない。文書の印刷ごとに、文字登録は繰り返す。
【0029】図3は、ホスト1からプリンタ2へ送られ
る文字データやイメージデータ等、印刷データのコマン
ド構造の説明図である。印刷データは、順番に、ジョブ
開始コマンド31、ページ毎にページ開始コマンド3
2、印字位置を示すポインタの位置移動コマンド33、
種別コマンド34、コマンド列35を含む。種別コマン
ド34は、その直後に続くコマンド列35の種類を区別
するためのコマンドである。コマンド列35には、文字
登録を行なうもの、文字の印字を指示するもの、イメー
ジの印字を指示するもの、等、数種類の形式がある。詳
細は図4で説明する。印刷する文書のページ数分、ペー
ジ開始コマンド32以降の命令群が繰り返されて、最後
にジョブ終了コマンド36で、ひとつの文書の印字コマ
ンドが終了する。
【0030】なお、図3では、種別コマンド34の前に
必ず位置移動コマンド33がセットされているが、常時
必要とは限らない。例えば、種別34、コマンド列35
が文字の登録だけを行なう場合は、位置移動コマンド3
3は不要である。
【0031】図4は、種別コマンド34の値ごとのコマ
ンド列35の構造の説明図である。
【0032】種別コマンド34が種別1の場合は、「文
字登録のみ」の作業を示す。コマンド列は、書体番号4
1、次に文字コード42、データの大きさ43、圧縮さ
れた文字のドットイメージデータ44を含む。
【0033】登録される文字データは、書体ごとに区分
けされ、文字コードと1対1に対応付けられてRAM9
上の登録文字データ領域15に登録される。具体的に
は、これらの区分けや関連は、登録文字管理表14上で
管理される。
【0034】種別コマンド34が種別2の場合は、「文
字登録+印字」の作業を示し、文字の登録と同時に印字
をも行なわせるコマンドである。コマンド列35の形式
は、種別1の場合と同一である。この場合の文字コード
42は、登録する文字のコード割り当てを意味すると同
時に、すでに登録済みの文字、印字を指示する文字コー
ドをも意味する。
【0035】種別コマンド34が種別3の場合は、「文
字イメージ印字のみ」の作業を示している。つまり、文
字のドットイメージデータを、登録せずに印字するだけ
である。コマンド列35は、データの大きさ43、圧縮
された文字のドットイメージデータ44を含む。
【0036】種別コマンド34が種別4の場合は、「文
字コード印字」の作業を示す。コマンド列35は、書体
番号41と、文字コード42とを含む。コントローラ部
3は、この書体番号41と文字コード42をもとに、登
録文字管理表14を調べて、登録文字データ領域15か
ら目的の登録文字データを探し出し、文字伸長回路17
でデータを伸長してフレームバッファ11に展開する。
【0037】種別コマンド34が種別5の場合は、「イ
メージブロックの貼り付け」の作業を示し、コマンド列
35は、イメージブロックの縦のサイズ45、イメージ
ブロックの横のサイズ46、データの大きさ47、圧縮
されたイメージブロックデータ48を含む。コントロー
ラ部3は、圧縮されたイメージブロックデータをイメー
ジ伸長回路16を用いてデータ伸長し、フレームバッフ
ァ11上に展開する。種別34としては、上記5つがあ
る。
【0038】図5は、コントローラ部3のROM8に内
蔵されているプログラムを説明するための図である。
【0039】受信管理プログラム51は、受信バッファ
10に貯蔵される各ページごとの文字データやイメージ
データを、ページ管理表13を用いて管理する。受信部
6への受信データの受信バッファ10上の書き込み位置
の指示も行なう。
【0040】解析プログラム52は、受信バッファ10
上に貯えられた文字データ、つまり文字登録や文字印字
のコマンド群、あるいはイメージデータ、つまりイメー
ジブロック貼り付けのコマンド群を解析して、文字登録
プログラム53に対して文字の登録処理を指示したり、
印字プログラム54に対して文字のフレームバッファ1
1への展開処理を指示したり、イメージのフレームバッ
ファ11の貼り付けを行なったりする。
【0041】また、あるページのフレームバッファ11
への文字やイメージの展開処理が全て終了した場合は、
排紙プログラム55に対して、フレームバッファ11の
イメージのエンジン部4へのビデオ転送と、エンジン部
4への排紙の実行を指示する。そして排紙が完了したペ
ージについては、受信バッファ10上からそのページの
データを削除する作業も行なう。削除は、ページ管理表
13から排紙済みページの登録を抹消するだけである。
受信バッファ10上でデータクリアを行なうわけではな
い。
【0042】各プログラムの動作の詳細は、後述のフロ
ーチャートで詳しく説明する。
【0043】なお、受信管理プログラム51と解析プロ
グラム52は、プリンタの電源オンと同時に立ち上り、
ホスト1からデータ送信を待ち構える。以後プリンタの
電源オフまで、ふたつのプログラムは、マルチタスクで
動作を続ける。
【0044】図6は、受信バッファ10内の、受信した
データの書き込み処理が進行する際の、各ポインタの位
置関係を説明するための図である。受信バッファ10
は、いわゆる「リングバッファ」の構造になっている。
【0045】受信部6は、予め受信管理プログラム51
から限界ポインタ61を指示されていて、受信バッファ
10内で限界ポインタ61の位置まで受信したデータの
直接書き込みが許されている。1バイトごとに加算され
る書き込み位置自体は受信部6が管理している。
【0046】図6(a)で説明すると、プリンタ2の起
動直後は、限界ポインタ61は受信バッファ10の最大
値の位置、つまり、受信バッファ10の領域の最後尾の
アドレスと一致している。しかし、図6(a)では説明
のために、限界ポインタ61が、受信バッファ10の最
大値の少し手前に、設定されている。そして、この状態
では、受信部6による受信データの書き込みが、限界ポ
インタ61の少し手前まで進んできたことを示してい
る。
【0047】また、受信済みのデータについては、解析
プログラム52によって、順次解析が進み、フレームバ
ッファ11への文字やイメージの展開作業が完了したペ
ージから、エンジン部4による印刷済み用紙の排紙が実
行される。エンジン部4への排紙の指示が完了していな
い最初のページが、解析ポインタ62によりポイントさ
れる。また、排紙が完了していない最初のページが、排
紙ポインタ63によりポイントされる。すなわち、解析
ポインタ62と最後に受信したデータの間は、受信した
ままで未解析のデータが格納され、排紙ポインタ63と
解析ポインタ62との間には、解析は済んでいるが、未
出力のデータが格納されている。更に、排紙ポインタ6
2のアドレス以前の部分については、もうすでに排紙済
みで不要なので、「消去」された状態になっていて、新
しい受信データが書き込み可能である。「消去」と言っ
ても実際にクリアされているわけではなく、新しい受信
データは上書きされる。
【0048】なお、解析ポインタ62、排紙ポインタ6
3はページ単位に設定される。解析プログラム52は、
受信バッファ10上のページ境界位置等を、受信管理プ
ログラム51が作成、管理しているページ管理表13上
で調べて分かる。
【0049】図6(b)は、受信バッファ10の最大値
の位置まで受信データの書き込みが進んでしまい、受信
管理プログラム51が、限界ポインタ61を受信バッフ
ァ10の先頭位置付近に移動させるよう受信部6に指示
し、実際に、受信部6による受信データの書き込みが、
先頭部分で少し進んだ状態を示している。いわゆる「リ
ングバッファ」の動作である。
【0050】限界ポインタ61の変更は、次の手順で行
なわれる。まず、受信部6による受信データの書き込み
が、限界ポインタ61まで進むと、受信部6は「限界に
達してこれ以上書き込めない」ことを受信管理プログラ
ム51に知らせる。つまり、限界ポインタ61の変更を
催促する。催促された受信管理プログラム51は、排紙
ポインタ63を調べ、新しく空いた領域がないかチェッ
クする。そして、限界ポインタ61の新しい位置を排紙
ポインタ63の位置として、受信部6へ指示する。これ
で、受信部6は、古い限界ポインタ61位置から、新し
い限界ポインタ61位置まで、受信データの書き込みが
可能になる。
【0051】なお、受信6は、「書き込み位置が限界ポ
インタ61に達したとき」以外にも、受信データ中に
「ジョブ開始コマンド31を検知したとき」や、「ペー
ジの開始コマンド32を検知したとき」、「ジョブ終了
コマンド36を検出したとき」等も、受信管理プログラ
ム51に連絡を行なう。これによって、受信管理プログ
ラム51は、受信の実作業、つまり、信号線の制御や受
信したデータのメモリへの書き込みは受信部6に任せな
がら、受信したページの管理が可能になっている。
【0052】ところで、受信部6は、ホスト1から受信
したデータを高速で受信バッファ10に書き出す仕組
み、いわゆるDMA(ダイナミック・メモリ・アクセ
ス)受信回路を持っている。この回路には、FIFO
(ファーストイン・ファーストアウト)バッファが内蔵
されており、ホスト1から送られてくるイメージデータ
は、いったん、このFIFOバッファに貯えられてか
ら、受信バッファ管理プログラム41から指示された受
信バッファ9上の書き込み位置へ、高速で書き込まれ
る。これは、技術的には、広く知られたものなので、こ
こでは詳細な説明は省略する。また、ワーク領域12に
は、ページ管理表13、登録文字管理表14、登録文字
データ領域15等が存在するが、ここでは、各部分の内
部の詳細な構造については説明しない。しかし、余計な
メモリ容量を消費しないように、効率的な構造をとって
いる。 <印刷制御手順>次に、本発明の第1の実施の形態の印
刷システムの動作を、フローチャートを用いて説明す
る。
【0053】(プリンタドライバ)図7は、ホスト1上
のプリンタドライバの動作を説明するフローチャートで
ある。プリンタドライバは、ユーザが用いるアプリケー
ションソフトで作成された、イメージやテキストの混在
した文書データから、図3、図4で説明した文字やイメ
ージのプリンタコマンドを作成してプリンタ2へ転送す
る。ユーザがアプリケーションソフトから文書の印刷を
指示すると、ホスト1内でプリンタドライバが起動され
る。
【0054】図示されてはいないが、ドライバは起動時
にはホスト1のメモリ上に1ページ分のフレームバッフ
ァを確保し、同時にフレームバッファをクリアする。ま
た、ドライバの文書印刷処理の終了時には、フレームバ
ッファとして使われていたメモリ領域は開放される。
【0055】処理としては、まず、ステップS1でジョ
ブ開始コマンド31をプリンタ2へ転送し、次にステッ
プS2でアプリケーションから何らかの指示があったか
チェックし、指示がないならループを形成して指示があ
るまで待つ。指示があったならステップS3で文書の終
了の指示がチェックし、YESならステップS4で文書
終了する前に文書の最後のページにイメージデータが含
まれているかチェックする。イメージが含まれていたな
ら、ステップS5でイメージブロックの貼り付け位置を
示す位置移動コマンド33を転送し、ステップS6で種
別5の種別コマンド34と、イメージブロックを示す、
縦サイズ45,横サイズ46,データの大きさ47,圧
縮イメージブロック48の各コマンドを転送する。
【0056】ステップS6で転送されるイメージブロッ
クは、最後のページ全体を単一のイメージブロックとし
たデータである。1ページのイメージは、ホスト1上の
メモリに設けられた1ページ分の大きさのフレームバッ
ファに展開される。ステップS6でイメージコマンドを
転送した後は、ホスト上のフレームバッファもクリアさ
れる。
【0057】ステップS4でNOの場合、あるいは、ス
テップS6の後は、ステップS7でジョブ終了コマンド
36をプリンタ2へ転送して、ドライバの処理ルーチン
を終了する。
【0058】ステップS3でNOならば、ステップS8
でアプリケーションからページの開始を指示されたかチ
ェックする。YESならステップS9で同じ文書内の前
のページが存在し、前のページにイメージが含まれてい
たかチェックする。つまり、前のページのフレームバッ
ファに何らかのイメージの展開があったかどうかチェッ
クする。ここで、YESなら、ステップS10でイメー
ジブロックの貼り付け位置を示す位置移動コマンド33
を転送し、ステップS11で種別5の種別コマンド34
と、イメージブロックコマンド45,46,47,48
をプリンタへ転送し、ホスト1上のフレームバッファを
クリアする。
【0059】ステップS9でNOの場合、あるいはステ
ップS11の後は、ステップS12でページ開始コマン
ド32をプリンタ2へ転送してからステップS2の直前
に戻り、アプリケーションからの次の指示を待つ。
【0060】ステップS8でNOの場合は、アプリケー
ションから文字の印字を指示されていて、その文字はこ
の文書内で初めて出現したものかステップS13でチェ
ックする。YESならばステップS14へ移り、位置移
動コマンド33をプリンタ2へ転送し、ステップS15
で登録文字数の限界を超えたかどうかチェックする。限
界を超えていないのならば、ステップS16で種別2の
種別コマンド34、つまり、文字の登録+印字コマンド
41,42,43,44をプリンタ2へ転送する。ステ
ップS15で登録文字数の限界を超えていると判断した
ならば、ステップS17で種別3の種別コマンド34、
つまり、文字イメージの印字のみのコマンド43,44
をプリンタ2へ転送する。ステップS16、あるいは、
ステップS17の後は、ステップS2の直前に戻り、ア
プリケーションからの次の指示を待つ。
【0061】ところで、ステップS17では文字のドッ
トイメージをプリンタ2へ転送するが、ドットイメージ
の貼り付けだけを行ない、文字のドットイメージの登録
は行わないコマンドを使用している。しかし、別の方法
としては、登録文字数の限界を超えた場合は、ホスト1
上のフレームバッファ上に、文字のドットイメージを直
接展開してしまう方法も考えられる。この場合は、ステ
ップS6かステップS11で、1ページが単一のイメー
ジブロックとしてプリンタ2へコマンドが転送される。
【0062】ステップS13でNOならば、アプリケー
ションからの印字の指示が、その文字について二度目以
降の指示かステップS18でチェックする。YESなら
ばステップS19で印字位置を指示する位置移動コマン
ド33をプリンタ2へ転送し、ステップS20で種別4
の種別コマンド34、つまり、文字コード印字コマンド
41,42をプリンタ2へ転送し、その後はステップS
2の直前に戻り、アプリケーションからの次の指示を待
つ。
【0063】ステップS18でNOならば、ステップS
21でアプリケーションから文字印字以外の、罫線描
画、図形描画、イメージの貼り付け、あるいは、その他
の描画の指示があったと考えられるので、それら全てを
ホスト1上のフレームバッファにイメージとして展開
し、その後はステップS2の直前に戻りアプリケーショ
ンからの次の指示を待つ。
【0064】ホスト1では以上の手順によって印刷デー
タをコマンドの列としてプリンタに送り付ける。
【0065】(受信管理プログラム)図9,10は、プ
リンタ2における受信管理プログラム51の動作を説明
するためのフローチャートである。このプログラムはプ
リンタ2の電源立ち上げと同時に動作を開始する。
【0066】まず、ステップS31で受信バッファ1
0、フレームバッファ11、ワーク領域12内にあるペ
ージ管理表13、登録文字管理表14等をクリアする。
ステップS32で、受信部6に受信データ書き込みの限
界値、つまり図6で説明した限界ポインタ61の値を、
受信バッファの最大値にセットする。ここで受信部6
は、受信バッファの大きさまでフルに書き込める。その
あと、ステップS33でユーザがプリンタを電源オフし
たかチェックし、YESならこのプログラムの処理を終
了する。
【0067】ステップS33でNOなら、ステップS3
4で受信部6から受信開始の知らせがあったかチェック
する。受信開始の知らせとは、受信部6がホスト1から
受け取った転送データの中から、ジョブ開始コマンド3
1を検知したかどうかの知らせである。ステップS34
でNOなら、ステップS33の直前に戻り、ループを形
成してホスト1からのプリントコマンドの転送を待つ。
【0068】ステップS34でYESなら、ステップS
35で受信部6へ受信データの受信バッファ10への書
き込みを指示する。
【0069】なお受信部6は、ジョブ開始コマンド31
を検知したら、まずホスト1からの受信を一時停止し、
受信管理プログラム51に対してジョブ開始コマンド3
1を検知したことを知らせ、それから受信管理プログラ
ム51から受信データの受信バッファ10への書き込み
が指示されるまで待つ。これがステップS35に相当す
る。また、受信部6は、ジョブ開始コマンド31を検知
するまでの受信データは全て捨てる。つまりホスト1か
らデータは受信するが、受信バッファ10には書き込ま
ない。
【0070】ステップS35の後は、ステップS36で
1秒待つ。この1秒の間に、受信部6が受信データの受
信バッファ10への書込みを進める。そのあとステップ
S37で、受信部6からページ開始コマンド32、ある
いは、ジョブ終了コマンド36を検知したかどうかの知
らせをチェックし、YESならステップS38でページ
管理表13に受信したページの登録を行なう。このと
き、単一のページだけでなく、複数のページを同時にペ
ージ管理表13に登録することも有り得る。つまり、ス
テップS37の時点で、いくつかのページ開始コマンド
やジョブ終了コマンドが重なっていることも有り得る。
【0071】そして、ステップS39で受信部6からの
知らせの中身に、ジョブ終了コマンド36が含まれてい
たかチェックし、YESならステップS48で受信部6
に書き込み終了を指示してから、ステップS33の直前
に戻り、ループを形成して次のジョブの受信を待つ。ス
テップS39でNOなら、ステップS36の直前に戻
り、ループを形成して、受信データの受信バッファ10
への書込みを続ける。
【0072】なお、受信部6はジョブ終了コマンドを検
知したら、一旦データ受信を停止する。つまり、複数の
ジョブの連続がホスト1から送られてきても、一気に受
信バッファ10に勝手に書き込むのではなく、受信管理
プログラム51の指示のもとで、ジョブ単位に受信バッ
ファ10への書込みを行なう。
【0073】ステップS37でNOなら、ステップS4
0で受信部6から受信データの書き込みが指定された限
界値に達したとの知らせがあったかチェックする。NO
ならステップS36の直前に戻ってループを形成し、受
信部6による受信データの書き込みを続ける。ステップ
S40でYESなら新しい限界値を受信部6に指示可能
かステップS41でチェックし、YESならステップS
42で新しい限界値を受信部6に知らせて、その後はス
テップS36の直前に戻り、ループを形成して受信部6
による受信データの受信バッファ10への書き込みを続
ける。
【0074】ステップS41でNOなら、受信データが
大きすぎるかステップS43でチェックする。“大きす
ぎる”とは、受信バッファ10を全て使ってもある1ペ
ージ分のデータが受信しきれないことを示している。大
きすぎると判断できた場合は、ステップS44でプリン
タ2のパネル上にエラー表示を行ない、ステップS45
で、受信バッファ10、フレームバッファ11、ワーク
領域12内にあるページ管理表13、登録文字管理表1
4等をクリアし、ステップS46で受信部6に対し、受
信データ書き込みの限界値を受信バッファの最大値とセ
ットする。その後、ステップS48で受信部6に書き込
み終了を指示してから、ステップS33の直前に戻り、
ループを形成して次の文書のジョブ開始の知らせを待
つ。これによって、大きすぎてエラーとなってしまった
ページを含んだ文書ジョブは、巨大なページ以降、全て
受け捨てられる。
【0075】なお、ステップS44で、“プリンタ2の
パネル上にエラー表示”と記載したが、パネルは図1の
ブロック構成図では記載、説明していない。しかし、通
常のプリンタ等では、“印刷可”の状態なのか“エラ
ー”の状態なのか“用紙なし”の状態なのか区別するた
めに、プリンタ2の前面か上面に液晶パネルか状態表示
ランプが設置されているのが普通である。詳細な説明は
省略する。
【0076】(受信部6)図11,12は、受信部6の
動作を説明するためのフローチャートである。図9,1
0では、受信管理プログラム51の動作を説明する際
に、ついでに受信部6の動作も言葉で説明したが、ここ
でフローチャートとして説明する。受信部6はハードウ
ェアの回路であって、通常のプログラムとは異なるが、
動作の順序をフローチャートで説明する。
【0077】受信部6は、プリンタ2の電源オンと同時
に動作を開始するが、まず、ステップS51で受信を一
旦停止する。これは、プリンタ2側をビジー状態とし
て、ホスト1からのデータ転送を拒否することである。
そのあと、ステップS52で、受信管理プログラム51
から受信バッファ10上の書き込み位置の限界値の指示
があるまで待ち、指示があったなら、ステップS53で
ホスト1からのデータの受信は可能だが、受信したデー
タは受け捨てる状態とする。
【0078】そして、ステップS54で、ユーザがプリ
ンタ2の電源をオフしたかチェックし、YESなら受信
部6の動作を終了する。NOならステップS55で受信
したデータからジョブ開始コマンド31を検知したかチ
ェックし、NOならステップS54の直前に戻り、ホス
ト1からのジョブ開始コマンド31を待ち受ける。
【0079】ステップS55でYESなら、ステップS
56で一旦受信を停止し、ステップS57でジョブ開始
コマンド31を検知したことを受信管理プログラム51
へ知らせる。受信を一旦停止するとは、プリンタ2がビ
ジー状態で、ホスト1からのデータの受信を拒否してい
る状態である。
【0080】次に、ステップS58で受信管理プログラ
ム51から受信バッファ10への書き込み開始の指示が
あるまで待ち、指示があったならステップS59でホス
ト1からの受信を行ない、受信したデータは受信バッフ
ァ10上に書き込む動作を開始し、続行する。そして、
ステップS60でページ開始コマンド32を検知したか
チェックし、YESならステップS61で受信管理プロ
グラム51にページ開始コマンド32を検知したことを
知らせる。この時点で、受信管理プログラム51は、受
信文書のページ位置をページ管理表13に記録する。ス
テップS61の後は、ステップS59の直前に戻り、受
信と書き込みを実行する。
【0081】ステップS60でNOなら、ステップS6
2でジョブ終了コマンド36を検知したかチェックし、
YESならステップS63で受信を一旦停止し、ステッ
プS64でジョブ終了コマンド36を検知したことを受
信管理プログラム51に知らせる。この時点で、受信プ
ログラム51は、ジョブの終了をページ管理表13上に
記録する。
【0082】次にステップS65で、受信管理プログラ
ム51から受信は可だが受信したデータは受け捨てる、
との指示があるまで待ち、指示があったならステップS
53の直前に戻り、次の文書のジョブ開始コマンド31
を待つ。
【0083】ステップS62でNOなら、ステップS6
6で受信バッファ10上への書き込み位置が限界に達し
てしまったかチェックし、YESならステップS67で
受信を一旦停止し、ステップS68で受信管理プログラ
ム51へ受信バッファ10への書き込みが限界に停止し
たことを知らせる。
【0084】次に、ステップS69で受信管理プログラ
ム51から受信バッファ10上の新しい書き込み位置の
限界値の指示があったかチェックし、NOならステップ
S70で受信管理プログラム51から書き込み終了の指
示があったかチェックする。ステップS70でNOなら
ステップS69の直前に戻り、ループを形成する。つま
り、受信管理プログラム51からの新しい限界値の指示
か、書き込み終了の指示があるまで待つ。なお、ステッ
プS70で、受信管理プログラム51から書き込み終了
の指示があると判定されるのは、1ページ分のデータが
大きすぎて、受信バッファ10全部の領域を使っても、
1ページ分のデータが納まりきらなくてエラーとなった
ときである。
【0085】ところで、ステップS69でNOの場合は
ステップS59の直前に戻り、受信と書き込みを続行す
る。また、ステップS70でYESの場合はステップS
53の直前に戻り、以後のデータはジョブ開始コマンド
31が来るまでは受信しても全て受け捨てる。つまり、
大きすぎてエラーとなった文書のジョブは、受け捨てら
れる。
【0086】ところで、ステップS66でNOの場合も
ステップS59に戻り、データの受信と受信バッファへ
の書き込みが続行される。
【0087】(解析プログラム)図13,14は、解析
プログラム52の動作を説明するためのフローチャート
である。解析プログラム52は、プリンタ2の電源オン
とともに立ち上がり、以後、受信部6によって書き込ま
れた受信バッファ10の中のプリントコマンドの解析を
行なう。
【0088】まず、ステップS81で、ユーザがプリン
タ2を電源オフしたかチェックし、YESならこのプロ
グラムの処理を終了する。NOならステップS82で受
信バッファ10内に受信済みのページのデータがあるか
チェックし、ないならばステップS81の直前に戻り、
ループを形成してホスト1からのデータの受信を待つ。
なお、ステップS82では、ページ管理表13を調べる
ことによって、受信済みのページが存在するかどうかを
チェックする。ページ管理表13は、図9,10で説明
したような動作で、受信管理プログラム51が管理を行
なっている。
【0089】ステップS82でYESならば、以後その
ページのプリントコマンドを次々と解析して処理してゆ
くわけだが、まずステップS83で最初のコマンドが位
置移動コマンド33かチェックする。YESならステッ
プS84でカーソルの移動を行なう。ここで言うカーソ
ルとは、フレームバッファ11上の文字、あるいは、イ
メージを展開する注目位置を示すための概念上のポイン
タである。具体的には、ワーク領域12上にX座標、Y
座標を示す変数として、確保されている。ステップS8
4の後はステップS96へ飛ぶ。
【0090】ステップS83でNOならば、ステップS
85でそのコマンドが種別コマンド34で種別1か、す
なわち文字登録コマンドかチェックし、YESならばス
テップS86で文字登録プログラム53による文字の登
録処理を行なってからステップS96へ飛ぶ。文字の登
録処理の詳細については、後述の図15で説明する。
【0091】ステップS85でNOならば、ステップS
87でそのコマンドが種別コマンド34で種別2か、す
なわち文字登録・印字コマンドかチェックし、YESな
らばステップS88で文字の登録処理を行ない、ステッ
プS89で印字処理を行なってからステップS96へ飛
ぶ。ステップS88の文字登録処理と、前述のステップ
S86の文字の登録処理は同一である。また、ステップ
S89の印字処理は、印字プログラム54によって行な
われるが、詳細は後述の図16で説明する。
【0092】ステップS87でNOならば、ステップS
90でそのコマンドが種別コマンド34で種別3か、す
なわち文字イメージ印字コマンドかチェックし、YES
ならばステップS91で文字イメージの印字処理のみを
行ない、そのあとステップS96へ飛ぶ。
【0093】ステップS90でNOならば、ステップS
92でそのコマンドが種別コマンド34で種別4か、す
なわち文字コードコマンドかチェックし、YESならば
ステップS93で印字処理を行ない、そのあとステップ
S96へ飛ぶ。ステップS93の印字処理は、前述のス
テップS89の印字処理と同一である。
【0094】ステップS92でNOならば、ステップS
94でそのコマンドが種別コマンド34で種別5か、す
なわちイメージブロックコマンドかチェックし、YES
ならばステップS95でイメージ伸長回路を使用して、
圧縮イメージデータの伸長作業をし、伸長したイメージ
ブロックのフレームバッファ11への貼り付け作業を行
ない、そのあとステップS96へ飛ぶ。
【0095】ステップS84、ステップS86、ステッ
プS89、ステップS91、ステップS93、ステップ
S95のあとか、あるいはステップS94でNOならば
ステップS96へ移る。ステップS96では、そのペー
ジの受信データで、解析していないコマンドがまだ残っ
ているかチェックし、残っているならばステップS83
の直前に戻ってその未解析コマンドの解析処理を行な
う。
【0096】ステップS96で、そのページについて未
解析のコマンドは残っていないと判断されたなら、ステ
ップS97で排紙プログラム55による排紙処理を行な
う。排紙処理については、後述の図17で詳細を説明す
る。
【0097】そのあと、ステップS98でページ管理表
13上で、排紙済みのページをクリアし、ステップS9
9でフレームバッファ11をクリアし、ステップS10
0でそのジョブの全てのページの排紙処理が完了したか
チェックし、ここでNOならばステップS81の直前に
戻り、その文書の後続のページのデータ受信を待つ。
【0098】ステップS100でYESなら、ステップ
S101で登録文字管理表14をクリアしてから、ステ
ップS81の直前に戻り、次の文書のジョブのデータ受
信を待つ。
【0099】なお、ステップS98では、ページ管理表
13上のページの登録をクリアしているが、受信管理プ
ログラム51は、この領域がクリアされていることをチ
ェックして、受信部6に対して新しい受信データ書き込
みの限界値の指示を行なう。
【0100】(文字登録プログラム)図15は文字登録
プログラム53の動作の詳細を説明するためのフローチ
ャートである。
【0101】このプログラムは解析プログラム52から
コールされる。まず、ステップS111で圧縮された文
字のドットイメージデータを、そのまま登録文字データ
領域15へ移し替える。そして、ステップS112で登
録文字管理表14内に登録アドレスや書体番号、文字コ
ード等を記録し、処理を終了する。
【0102】(印字プログラム)図16は印字プログラ
ム54の動作の詳細を説明するためのフローチャートで
ある。このプログラムも、解析プログラム52からコー
ルされる。
【0103】まず、ステップS121で、書体41と一
致する書体番号で、かつ文字コード42と一致する文字
コードの登録文字のアドレスを、登録文字データ領域1
5から得る。そして、ステップS122で、そのアドレ
スの圧縮ドットイメージを文字伸長回路17で伸長し、
ステップS123で伸長済みの文字のドットイメージを
フレームバッファ11上のカーソル位置に貼り付ける。
そして、このプログラムの処理を終了する。
【0104】(排紙プログラム)図17は排紙プログラ
ム55の動作の詳細を説明するためのフローチャートで
ある。このプログラムも、解析プログラム52からコー
ルされる。
【0105】まず、ステップS131で、フレームバッ
ファ11上の1ページ分のイメージを、ビデオ転送回路
7でビデオ信号に変換してエンジン部4へ送る。そして
ステップS132でエンジン部により印刷された用紙の
排紙が確実に完了したかチェックを続け、完了したなら
このプログラムの処理を終了する。排紙がまだ完了して
いない場合は、ステップS133でプリンタ2に「紙ジ
ャム」エラーか、「用紙なし」エラーが発生したかチェ
ックし、どちらも発生していなければステップS132
の直前に戻ってループを形成し、排紙の完了の監視を続
ける。
【0106】「紙ジャム」エラーか「用紙なし」エラー
が発生したならば、ステップS134で「紙詰まりが発
生しました。つまった紙を取り除いてください」か「用
紙がありません。用紙を追加してください」とプリンタ
のパネルに表示し、そのあとステップS135でユーザ
がつまった紙を取り除くか、あるいはなくなった用紙を
追加するまで待ち、それが行なわれたならば、ステップ
S131直前に戻り、再度、同じページのビデオ信号の
出力と排紙待ちを行なう。 <第1の実施の形態に特有の効果>以上のような構成に
よって、本実施の形態の印刷システムは、以下のような
特有の効果がある。 (1)本実施形態では、コントローラ部3のCPUは、
メモリ管理と登録文字データの移し替えだけを行なうの
で高性能なプロセサは不要であり、製造コストを低く抑
えられる。データの受信とメモリへの書き込みや、圧縮
データの伸長作業、ビデオ信号の出力作業等は全てハー
ドウェアの回路で行なわれる。このため、イメージ転送
だけを前提としたホストベースプリンタ等と比べても、
大きなコストアップにはならない。 (2)ホストでの文字イメージの展開処理がほとんど不
要なので、ホストのプリンタドライバの処理時間が少な
くて済む。文字を含めて、全てイメージデータで送らな
ければならないホストベースプリンタ等では、文字展開
処理にホストの処理時間を割かれてしまうが、ホストの
印刷のために要する時間を軽減できる。 (3)文字は、ほとんど文字コードで送れるので、プリ
ンタへのデータ転送量が少なくて済む。文字を含めて、
全てイメージで送らなければならないホストベースプリ
ンタ等では、プリンタへのデータ転送量が膨大になる。
このため、印刷に要する時間を短くできる。 (4)1ページ分のフレームバッファをコントローラ部
に持ち、1ページ分の文字やイメージの展開がフレーム
バッファ上で完全に完了した時点で用紙への印刷を開始
するので、バンド処理を前提としたプリンタでは特有の
障害であるオーバーランエラーは発生しない。 (5)ホストベースプリンタではわずかな受信バッファ
しかなく、プリンタの用紙の給送にあわせて、ホストか
らバンドに分割したイメージを連続的にプリンタに送る
必要がある。この場合、ホストはプリンタへのデータ転
送を最優先にするために、ホスト上の他のアプリケーシ
ョンの動きがロックする、というような現象がある。し
かし、本実施の形態では、1ページ分のフレームバッフ
ァをコントローラ部に持っていって、1ページ分の文字
やイメージの展開がフレームバッファ上で完全に完了し
た時点で、用紙への印刷を開始するので、ホスト上での
ロックの現象等は発生しない。 [第2の実施の形態]次に、図を用いて第2の実施の形
態の印刷システムを説明する。 <システムの構成>第1の実施の形態では、文字デー
タ、イメージデータをRAM9上のフレームバッファ1
1に展開してから、エンジン部4へビデオ転送している
が、第2の実施の形態では、文字データ、イメージデー
タをRAM9上のふたつのバンドメモリ上へ交互に展開
してエンジン部4へビデオ転送する点が、大きな違いで
ある。
【0107】図18は、システム全体を説明するための
ブロック構成図である。大部分は図1で説明した各要素
と一致するが、異なる部分だけ説明する。
【0108】RAM9上には、フレームバッファ11の
代わりに、ふたつのバンドメモリとしてバンドA71、
バンドB72が設けられ、またビデオ転送回路7の代わ
りに、イメージ伸長・ビデオ転送回路73が設けられて
いる。イメージ伸長・ビデオ転送回路73は、バンドA
71、バンドB72のメモリイメージを交互に、ビデオ
信号に変換してエンジン部4へ転送する。それに加え
て、ドライバから送られてくるあるバンドのデータが何
も含まれていない空白のバンドのときは、その部分のビ
デオ信号は転送しない機能を持つ。さらに、ドライバか
ら送られてくるあるバンドの圧縮イメージデータに、単
一のイメージブロックしか含まれていないときは、その
圧縮されたイメージブロックをバンドに展開せず、イメ
ージデータに伸長するとともにビデオ信号に変換してエ
ンジン部4へ転送する機能を待つ。つまり、3つの機能
を合わせ持っている。
【0109】なお、受信バッファ10に格納されている
データは、第1の実施の形態では、ページごとに文字デ
ータ、イメージデータが並んでいるだけだが、本実施の
形態では、ページの中がさらに16のバンドに区別され
て、バンドの区分の中に、文字データ、イメージデータ
がそれぞれ並んでいる。もちろん、ホスト1上のプリン
タドライバがこのような並びとしてプリンタ2へデータ
を出力している。
【0110】図19はプリンタ2内での、コントローラ
部3におけるイメージと文字のビデオ信号出力の原理の
説明図である。イメージと文字とは4つの径路によりエ
ンジン部4に転送される。第1は、イメージだけのバン
ドの通る径路で、バンドメモリを経由しない径路であ
る。イメージ伸長・ビデオ転送回路73は、単一のイメ
ージだけのバンドを伸長すると、そのままプリンタエン
ジンに転送する。第2及び第3は、文字を含むバンドの
通る径路で、いったんバンドA71またはバンドB72
に展開し、これらから交互にエンジン部に転送される。
第4は、空白のバンドに対する径路で、ビデオ信号は転
送されない。このように、イメージ伸張・ビデオ転送回
路73の機能により4つの径路が提供されている。
【0111】図18でも一部説明したが、ホスト1上の
ドライバは印刷しようとする文書について、まず文字部
分と、その文字以外の部分に分離する。文字以外の部分
はホスト1上のフレームバッファ上に全てイメージとし
て展開しておく。そして、1ページを16分割したバン
ドごとに、文字データ部分とイメージデータ部分を別々
にプリンタ2へ転送する。その際、文字部分について
は、まず出現する文字の圧縮したドットパターンをプリ
ンタへ送って登録しておき、印字データとして文字コー
ド列を送る。文字の登録については、第1の実施の形態
と同様に、ひとつの文書ごとに、一文字については一度
登録すれば良い。また、ひとつの文書ジョブの印刷が終
了すれば、登録した文字は消去される。
【0112】バンドの高さについては、16分割された
バンドはそれぞれ同一である。つまり均等に分割されて
いる。
【0113】ふたつのバンドにまたがった文字について
は、それぞれのバンドに印字コードが所属する形でドラ
イバからプリンタ2へ転送される。
【0114】大きな文字については、イメージとして展
開されてからドライバからプリンタ2へ転送される。文
字伸長回路17が扱える文字の大きさには限界があり、
その限界よりも大きな文字は、上記のようにイメージと
して処理される。
【0115】ホスト1上のフレームバッファに展開され
たイメージは、全体を16のバンドに分割され、さらに
バンド内で実際にイメージのある矩形部分だけを取り出
して圧縮されて、単一のイメージブロックとしてドライ
バからプリンタ2へ転送される。図19では、イメージ
データの点線で囲んだ部分だけが実際にイメージブロッ
クとして転送されることを示している。
【0116】プリンタ2のコントローラ部3では、ある
バンドがイメージブロックと文字データを両方とも含ん
でいる場合は、受信した圧縮イメージデータ19をイメ
ージ伸長回路16を使って伸長し、バンドA71か、バ
ンドB72上に展開する。また、受信した文字データ1
8を、それに含まれる文字コードごとに、登録されてい
る圧縮ドットイメージデータを文字伸長回路17によっ
て伸長し、バンドA71か、バンドB72上に展開す
る。文字とイメージは論理和をとられ、バンド上に書き
込まれる。
【0117】なお、奇数の番号のバンドのときは、バン
ドA71へ展開し、偶数の番号のバンドのときはバンド
B72へ展開する。
【0118】バンドA71への文字及びイメージの展開
が終わったら、イメージ伸長・ビデオ転送回路73へエ
ンジン部4へのビデオ転送を指示し、この回路によるビ
デオ信号の出力中にバンドB72への文字とイメージの
展開を行なう。バンドB72への展開が終り、先に指示
していたバンドA71のビデオ出力が終わったなら、バ
ンドB72のビデオ信号出力をイメージ伸長・ビデオ転
送回路73に指示する。そして、バンドA71への文字
とイメージの展開を開始する。
【0119】以上のような、ふたつのバンドメモリへの
文字とイメージの展開と、ビデオ信号の出力を行なうこ
とで、1ページ分の印刷を行なう。
【0120】文字だけしか含まれていないバンドのとき
も同一の動作である。
【0121】なお、文字もイメージも含まれていない空
白のバンドのときは、イメージ伸長・ビデオ転送回路7
3は、バンド高さ分、ビデオ信号をエンジン部4へ送ら
ない。
【0122】また、あるバンドにイメージのブロックだ
けしか含まれていないときは、イメージ伸長・ビデオ転
送回路73に対して、イメージブロックのデータ伸長と
ビデオ信号のエンジン部4への出力を指示する。つま
り、バンドメモリへのイメージ展開を経由せずに、直接
エンジン部4へのビデオ転送を行なうわけである。
【0123】図19には、上記4つの経路でビデオ信号
が出力されることが図示されている。これらの経路が混
合した形で1ページの印刷が行なわれる。
【0124】図20は、ホスト1からプリンタ2へ送ら
れる文字データ、イメージデータのコマンド構造の説明
図である。第1の実施の形態の図3との違いは、ページ
開始コマンド32のあとに、バンド開始コマンド81が
あることである。
【0125】バンド開始コマンド81は、1ページ当た
り16個繰り返される。文字データやイメージデータが
ないバンドについても、バンド開始コマンド81は発行
される。
【0126】なお、種別コマンド34ごとのコマンド列
35の構造は、第1の実施の形態の図4と同一なので説
明は省略する。
【0127】図21は、コントローラ部3のROM8に
内蔵されているプログラムを説明するための図である。
第1の実施の形態にあった排紙プログラム55はこの図
にはないが、解析プログラム52が、バンドごとの解析
と、バンドごとのビデオ出力、排紙作業を行っている。
受信管理プログラム51及び文字登録プログラム53
は、第1の実施の形態と全く同じであるが、解析プログ
ラム52及び印字プログラム54については後述のフロ
ーチャートで動作の詳細を説明する。
【0128】第1の実施の形態では、受信バッファ10
内の受信したデータの書き込み処理が進行する際の各ポ
インタの位置関係を図6で説明した。第2の実施の形態
でも受信バッファへの書き込み処理の動作は全く同一な
ので説明は省略する。
【0129】また、ワーク領域12には、ページ管理表
13、登録文字管理表14、登録文字データ領域15等
が存在するが、この部分についても第1の実施の形態と
同一なので説明は省略する。 <システムの制御手順>次に、本発明の第2の実施の形
態の動作をフローチャートを用いて説明する。
【0130】図22〜24は、ホスト1上のプリンタド
ライバの動作を説明するフローチャートである。プリン
タドライバは、ユーザが用いるアプリケーションソフト
で作成した文書データから図20で説明した文字やイメ
ージのプリンタコマンドを作成、プリンタ2へ転送す
る。ユーザがアプリケーションソフトから文書の印刷を
指示すると、ホスト1内でプリンタドライバが起動され
る。
【0131】図示されてはいないが、ドライバは起動時
にはホスト1のメモリ上に1ページ分の大きさのイメー
ジ展開領域としてのフレームバッファを確保し、同時に
フレームバッファをクリアする。また、ドライバの文書
印刷処理の終了時には、フレームバッファとして使われ
ていたメモリ領域は開放される。
【0132】処理としては、まずステップS141でジ
ョブ開始コマンド31をプリンタ2へ転送し、次にステ
ップS142で変数mに印刷しようとしている文書のペ
ージ数に1を加算した値をセットし、ステップS143
で、処理中のページ番号を示す変数mpに1をセットす
る。そして、ステップS144で変数mpが変数mより
小さいかチェックし、NOなら文書の全てのページ数の
処理が終わったので、ステップS172でジョブ終了コ
マンドを転送して、ドライバの処理を終了する。
【0133】ステップS144でYESなら、ステップ
S145でページ開始コマンド32をプリンタ2へ転送
し、ステップS146でmpページ目のアプリケーショ
ンからの文字印字指示を蓄積し、ステップS147で蓄
積した文字印字指示を印字位置でソーティングし、ステ
ップS148でmpページ目のアプリケーションからの
文字印字指示以外の描画指示をホスト1上のフレームバ
ッファに展開する。ここで文字印字指示以外の描画指示
とは、罫線や図形描画、イメージの貼り付け等である。
【0134】また、ステップS147における文字印字
指示の印字位置によるソーティングとは、文字印字指示
を、用紙の長手方向についての印字位置でソーティング
を行い、次に、用紙の短手方向についての印字位置でソ
ーティングを行なう。これにより、文字印字の指示は、
指示される印字位置が、縦長の用紙で左上から右下へ順
に並ぶように並べ替えられた。
【0135】次にステップS149で変数nに17をセ
ットする。17と言う値は、用紙サイズを長手方向に均
等に16バンドに分割する意味での「16」の値に1を
加算した値である。そしてステップS150で処理中の
バンド番号を示す変数npに1をセットする。ステップ
S151で変数npが変数nより小さいかチェックし、
NOなら1ページの16個のバンド処理が終了したこと
を意味するので、変数mpに1を加算して、ステップS
144の直前に戻り、次のページのバンド出力処理に移
る。
【0136】ステップS151でYESなら、ステップ
S153でバンド開始コマンド81をプリンタ2へ転送
し、ステップS154で蓄積したアプリからの印字指示
からnpバンド目に含まれる文字印字指示をピックアッ
プし、ステップS155で変数sにピックアップした文
字数に1を加算した値をセットして、ステップS156
で、処理中の文字が1つのバンドにおいて何番目である
か示す変数spヘ1をセットする。
【0137】なお、ステップS154でピックアップす
る文字印字指示は、npバンド目に文字の一部でもかか
っているものは全てピックアップする。よって、文字の
印字位置によっては、ふたつのバンドにまたがる場合が
ある。
【0138】次にステップS157で変数spが変数s
より小さいかチェックし、NOならnpバンド目に含ま
れる文字データの転送処理は全て済んだことになるの
で、ステップS158以降でnpバンド目のイメージデ
ータの転送処理に移る。つまり、ステップS158で
は、ホスト上のフレームバッファから、npバンド目の
位置と大きさのイメージを切り出し、ステップS159
で空白のバンドかチェックし、YESなら何もせずステ
ップS163に移る。
【0139】ステップS159でNOなら、ステップS
160でイメージが実際に含まれる矩形領域を、単一の
ブロックとして切り出し、まずステップS161でブロ
ックの貼り付け位置を示す位置移動コマンド33をプリ
ンタ2へ転送し、ステップS162で種別5に対応する
コマンド、つまりイメージブロックコマンド45,4
6,47,48をプリンタ2へ転送する。当然ながら、
イメージブロックデータはデータ圧縮されて転送され
る。
【0140】そして、ステップS163で変数npに1
を加算し、ステップS151の直前に戻り、次のバンド
の転送処理に移る。
【0141】ステップS157でYESの場合は、ステ
ップS164でsp番目の文字はこの文書で初めて現れ
る文字の印字の指示かチェックし、初めてならばステッ
プS165で印字位置を示す位置移動コマンド33をプ
リンタ2へ転送し、ステップS166でプリンタ2側が
登録可能な文字数の限界に達したかチェックし、限界に
達したならステップS167で種別3に対応するコマン
ド、つまり、文字イメージ印字のみのコマンド43,4
4をプリンタ2へ転送して、ステップS171へ移る。
【0142】ステップS166で限界に達していないと
分かれば、ステップS168で種別2に対応するコマン
ド、つまり文字登録+印字コマンド41,42,43,
44をプリンタ2へ転送してからステップS171ヘ移
る。当然ながら、プリンタ2へ転送される一文字のドッ
トイメージは、データ圧縮されて転送される。
【0143】ステップS164でNOならば、この文字
の印字の指示が文書の中で二度目以降の指示であること
を示しているので、ステップS169で印字位置を示す
位置移動命令33をプリンタ2へ転送し、次にステップ
S170で種別コマンド34が4、つまり文字コード印
字コマンド41,42をプリンタ2へ転送する。
【0144】そして、ステップS171で変数spに1
を加算してステップS157の直前に戻り、次の文字デ
ータのプリンタ2への転送処理を行なう。
【0145】図25,26、図27,28は、解析プロ
グラム52の動作を説明するためのフローチャートであ
る。解析プログラム52もプリンタ2の電源オンととも
に立ち上がり、以後、受信部6によって書き込まれた受
信バッファ10の中のプリントコマンドの解析、及び排
紙処理を行なう。
【0146】まず、ステップS181でユーザがプリン
タ2を電源オフしたかチェックし、YESならこのプロ
グラムの処理を終了する。NOならステップS182で
受信バッファ10内に受信済みのページのデータがある
かチェックし、ないならばステップS181の直前に戻
りループを形成してホスト1からのデータの受信を待
つ。
【0147】なお、ステップS182では、ページ管理
表13を調べることによって、受信済みのページが存在
するかどうかをチェックする。ページ管理表13は、第
1の実施の形態の図8のフローチャートで説明したよう
な動作で受信管理プログラム51が管理を行なってい
る。
【0148】ステップS182でYESならば、以後そ
のページのプリントコマンドを次々と解析して処理して
ゆくわけだが、まず、ステップS183で変数nに「1
7」をセットする。「17」は1ページのバンド分割数
「16」に1を加算した値である。次にステップS18
4で、変数npに1をセットし、ステップS185で変
数npが変数nより小さいかチェックし、NOならバン
ドの処理が全て完了したことを示し、ステップS223
へ飛び、排紙の完了を待つ。
【0149】ステップS185でYESならステップS
186でバンドnp番目のデータは、文字データもイメ
ージデータもなく、空白バンドなのかチェックし、YE
SならステップS186で変数tに0をセットする。そ
してステップS193へ飛ぶ。
【0150】ステップS186でNOならステップS1
88でバンドnp番目のデータに文字データが含まれて
いるかチェックし、YESならステップS189で変数
npが奇数なら変数tに1をセットし、変数npが偶数
なら変数tに2をセットし、ステップS193へ飛ぶ。
【0151】ステップS188でNOならステップS1
90でバンドnp番目のデータに複数のイメージブロッ
クデータが含まれているかチェックし、YESなら変数
npが奇数なら変数tに1をセットし、変数nが偶数な
ら変数tに2をセットし、ステップS193へ飛ぶ。な
お、図22で説明したドライバの動作では、ひとつのバ
ンドに複数のイメージブロックが存在することは有り得
ない。
【0152】ステップS190でNOならバンドnp番
目のデータとしては、単一のイメージブロックしか存在
しないことを示しているが、ステップS192で変数t
に3をセットして、ステップS193へ飛ぶ。
【0153】ステップS193では、変数tが1、ある
いは2かチェックし、YESならステップS194以降
でバンドnp番目に含まれる文字データやイメージブロ
ックデータを先頭から解析して行き、バンドA71、バ
ンドB72への展開処理を行なう。まず、ステップS1
94では、変数tが1ならバンドA71をクリアし、変
数tが2ならバンドB72をクリアする。そして、ステ
ップS195で解析しようとしているコマンドが、位置
移動コマンド33かチェックする。YESならステップ
S196でカーソルの移動を行なう。ここで言うカーソ
ルとは、バンドメモり上で文字、あるいは、イメージを
展開する位置を示すための概念上のポインタである。具
体的には、ワーク領域12上にX座標、Y座標を示す変
数として確保されている。カーソル位置は、バンドの左
上端を原点としている。ドライバから送られてくる位置
移動コマンド33も、各バンドの左上端を原点と考える
相対位置を前提として転送されてくる。ページの左上端
を原点としているわけではない。ステップS196のあ
とは、ステップS208へ飛ぶ。
【0154】ステップS195でNOならば、ステップ
S197でそのコマンドが種別コマンド34で種別が1
かチェックし、YESならばステップS198で文字登
録プログラム53による文字の登録処理を行なってか
ら、ステップS208へ飛ぶ。文字の登録処理は、第1
の実施の形態の図15のフローチャートで説明した動作
と同じであるので、詳細な説明は省略する。
【0155】ステップS197でNOならば、ステップ
S199でそのコマンドが種別コマンド34で種別が2
かチェックし、YESならばステップS200で文字の
登録処理を行ない、ステップS201で印字処理を行な
ってからステップS208へ飛ぶ。ステップS200の
文字の登録処理と、前述のステップS198の文字の登
録処理は同一である。また、ステップS201の印字処
理は、印字プログラム54によって行なわれるが、詳細
は後述の図29で説明する。
【0156】ステップS199でNOならば、ステップ
S202でそのコマンドが種別コマンド34で種別が3
かチェックし、YESならばステップS203で文字イ
メージの印字処理のみを行ない、そのあとステップS2
08へ飛ぶ。
【0157】ステップS202でNOならば、ステップ
S204でそのコマンドが種別コマンド34で種別が4
かチェックし、YESならばステップS205で印字処
理を行ない、そのあとステップS208へ飛ぶ。ステッ
プS205の印字処理は、前述のステップS201の印
字処理と同一である。
【0158】ステップS204でNOならば、ステップ
S206でそのコマンドが種別コマンド34で種別か5
かチェックし、YESならばステップS207でイメー
ジ伸長回路16を使用して、圧縮イメージデータの伸長
作業をし、伸長したイメージブロックのバンドメモリ7
1,72への貼り付け作業を行なう。その際、変数tが
1なら、バンドA71への貼り付けを行ない、変数tが
2ならバンドB72への貼り付けを行なう。そして、ス
テップS208へ飛ぶ。
【0159】ステップS196、ステップS198、ス
テップS201、ステップS203、ステップS20
5、ステップS207のあとか、あるいはステップS2
06でNOならばステップS208へ移る。ステップS
208では、バンドnp番目の受信データで、解析して
いないコマンドがまだ残っているかチェックし、残って
いるならば、ステップS195の直前に戻って、その未
解析コマンドの解析処理を行なう。
【0160】ステップS193でNOの場合、あるいは
ステップS208でNOの場合は、図27のステップS
209へ飛ぶ。ステップS209以降、ステップS22
2まではバンド単位のエンジン部4へのビデオ信号出力
処理を示している。
【0161】まず、ステップS209では、変数npが
1かチェックする。つまり、あるページの最初のバンド
かチェックする。最初のバンドであれば、ステップS2
10でエンジン部4に給紙開始を指示して、ステップS
211で用紙があるかチェックし、用紙なしならばステ
ップS212でユーザが用紙を追加セットするまで待
ち、それからステップS215へ飛ぶ。ステップS21
1でNOならば、つまり用紙があるならステップS21
5へ飛ぶ。
【0162】ステップS209で最初のバンドではない
と判断されたならば、ステップS213で前のバンドの
ビデオ転送処理が終了するまで待つ。但し、待っている
間に、紙ジャム、つまり紙詰りが発生しているかをステ
ップS214で常に監視している。仮に紙ジャムが発生
しているのならば、ステップS214からステップS2
28へ飛び、紙ジャムからの復帰処理を行なう。
【0163】ステップS213でYESなら、つまり前
のバンドのビデオ転送が終了したなら、ステップS21
5で変数tが0かチェックし、YESならステップS2
16でイメージ伸長・ビデオ転送回路73に空白バンド
の出力処理を指示してステップS222へ飛ぶ。
【0164】ステップS215でNOなら、ステップS
217で変数tが1かチェックし、YESならステップ
S218でイメージ伸長・ビデオ転送回路73にバンド
A71のビデオ信号出力指示を行ない、ステップS22
2へ飛ぶ。
【0165】ステップS217でNOならば、ステップ
S129で変数tが2かチェックし、YESならステッ
プS220でイメージ伸長・ビデオ転送回路73にバン
ドB72のビデオ信号出力指示を行ない、ステップS2
22へ飛ぶ。
【0166】ステップS219でNOならば、ステップ
S221でイメージ伸長・ビデオ転送回路73にnp番
目のバンドデータに含まれる単一イメージブロックを、
圧縮イメージのデータ伸長をしながらビデオ信号を出力
することを指示して、ステップS222へ飛ぶ。
【0167】ステップS222では変数npに1を加算
してから、ステップS185の直前に戻り、次のバンド
データのバンドメモリへの展開、及びビデオ信号出力処
理へ移る。
【0168】ステップS185でNOの場合は、バンド
出力処理がすべて終了して、あとはステップS223以
降で印刷された用紙の排紙の完了を待つだけとなるが、
まず図28のステップS223で排紙が完了したかチェ
ックし、NOならばステップS227で紙ジャム、つま
り紙詰まりが発生したかチェックし、NOならばステッ
プS223の直前に戻りループを形成して排紙の完了ま
で待つ。
【0169】ステップS223で、排紙が完了したと判
断したならば、ステップS224でページ管理表13上
の、排紙済みページの記述をクリアし、ステップS22
5でジョブ終了、つまり、一つの文書の全ページを排紙
し終わったかチェックし、YESならステップS226
で登録文字管理表14をクリアし、ステップS181の
直前に戻って、次の文書のジョブのデータ受信を待つ。
【0170】ステップS225でNOならば、この時も
ステップS181の直前に戻って、その文書の後続のペ
ージのデータ受信を待つ。
【0171】ステップS227でYESならば、ステッ
プS228で紙ジャム発生をパネル表示し、ステップS
229でユーザが詰まった紙を取り除くまで待ち、取除
いたことがわかればステップS181の直前まで戻り、
もう一度前回処理を行なった受信済みページデータのバ
ンドへの展開、ビデオ出力、排紙処理を試みる。
【0172】なお、ステップS224では、ページ管理
表13上のページの登録をクリアしているが、受信管理
プログラム51は、この領域がクリアされていることを
チェックして、受信部6に対して新しい受信データ書き
込みの限界値の指示を行なう。
【0173】図29は、印字プログラム54の動作の詳
細を説明するためのフローチャートである。このプログ
ラムも、解析プログラム52からコールされる。
【0174】まず、ステップS231で、登録文字管理
表14をサーチして、書体番号、文字コードの一致する
登録文字の登録文字データ領域15上の登録アドレスを
得る。そして、ステップS232で文字伸長回路17で
圧縮された文字のどっちイメージデータを伸長し、ステ
ップS233で貼り付ける文字がバンド境界上にかかっ
てしまうかチェックし、境界上にかかってしまうと判断
できれば、ステップS234で文字イメージの境界値処
理を行ない、カーソル位置の微調整も行なってからステ
ップS235へ移る。ステップS233でNOの場合
も、ステップS235へ移る。
【0175】ステップS234での境界値処理とは、1
文字の文字イメージのうち、バンドの領域内にかかる部
分だけ切り出してくることである。その小さなイメージ
部分だけをバンド領域内にはるので、カーソル位置も微
調整してバンド領域内に移動しなければならない場合が
ある。
【0176】例えば、ある文字がバンドの上端の境界で
文字ボックスの上半分ぐらいはみ出しているとする。カ
ーソル位置は、文字ボックスの左上端なので、この時点
ではバンド領域外にある。次に境界値処理を行なって、
バンド領域内に収まる文字ボックスの下半分のイメージ
だけを切り出してくる。とすれば、下半分だけの文字の
文字ボックスの左上端位置が、新しいカーソル位置とな
る。この位置は、バンド領域の上端の境界上に位置す
る。これが、「カーソル位置の微調整」の作業である。
【0177】また、文字ボックスが、バンド領域の四隅
にかかってしまう場合も、同様にバンド領域内にかかる
部分の文字イメージの切り出しと、カーソル位置の微調
整が行なわれる。
【0178】ステップS235では、伸長済みの文字の
ドットイメージをバンドA71か、バンドB72上のカ
ーソル位置に貼り付ける。図25で説明した変数tが1
ならバンドA71に貼り付け、変数t2がバンドB72
に貼り付ける。そして、このプログラムの処理を終了す
る。
【0179】次に、図30〜図33で、イメージ伸長・
ビデオ転送回路73の動作を説明する。イメージ伸長・
ビデオ転送回路73はハードウェア回路であってプログ
ラムではないが、その動作を図31,図32,図33の
フローチャートを用いて説明する。なお、前述したよう
に、解析プログラム52がイメージ伸長・ビデオ転送回
路73に指示をして、エンジン部4に対してビデオ信号
の出力を実行させる。イメージ伸長・ビデオ転送回路7
3の処理の中には、空白バンドの処理、バンドA71、
バンドB72からのビデオ信号出力処理、圧縮されたイ
メージブロックデータから直接の圧縮イメージデータの
伸長と、伸長したデータからのビデオ信号出力処理の3
つが含まれる。
【0180】また、図示はしていないが、イメージ伸長
・ビデオ転送回路73の中には、イメージブロックデー
タから1ライン分、圧縮イメージデータを伸長したあと
で、伸長したデータをとっておくためのラインバッファ
が内蔵されている。このラインバッファのデータをもと
に、ビデオ信号を作成してエンジン部4に出力する。
【0181】まず、図30では図31,図32,図33
のフローチャートで用いる各変数の説明をする。
【0182】変数hは、バンドの高さを示す。これは、
ビデオ信号を出力する際のライン数に相当する。変数l
は、バンドの幅を示す。この大きさはバイトを単位とし
ている。つまり、8の倍数のドット数が、ビデオ信号の
白黒のビットに変換されて出力される。
【0183】変数haは、イメージブロックに到達する
までの上マージンである。ビデオ信号は、何も送る必要
のない部分のライン数である。変数hbは、イメージブ
ロックの高さ、つまりブロックのライン数である。
【0184】変数laは、イメージブロックの左マージ
ンである。この部分は、ビデオ信号は何も送る必要がな
い。変数lbは、イメージブロックの幅である。この値
についても大きさはバイトを単位としている。つまり8
の倍数のドット数が、ビデオ信号の白黒のビットに変換
されて出力される。
【0185】前述したホスト1上のドライバの動作とし
ては、バンドやイメージブロックデータの幅方向は、
“バイト単位の大きさ”に揃えることについては何も記
述されていなかったが、ハードウェア回路を用いた高速
なイメージ出力を可能にするには上記のような区切りの
良くなる工夫が必要になる。ドライバも、このような工
夫を前提としてプリントコマンドをプリンタ2へ転送す
る。
【0186】次に、図31,図32,図33でイメージ
伸長・ビデオ転送回路73の動作を説明する。
【0187】この回路は、プリンタ2の電源オンと同時
に動作を開始するが、まずステップS241でユーザが
プリンタ2を電源オフしたかチェックし、YESならこ
のかいろは動作を終了する。NOならステップS242
で解析プログラム52からのビデオ信号出力の指示があ
ったかチェックし、NOならステップS241の直前に
戻り、ループを形成して解析プログラム52からの指示
を待つ。
【0188】ステップS242でYESならステップS
243で変数hにバンドの高さ、つまり、バンドの総ラ
イン数をセットする。この値は解析プログラム52から
ビデオ信号の出力の指示があったときに、同時に与えら
れる。そして、ステップS244で解析プログラム52
からの指示が、空白バンドの出力指示かチェックし、Y
ESならステップS245で変数tに0をセットしてス
テップS250へ飛ぶ。
【0189】ステップS244でNOならば、ステップ
S246で変数lにバンド幅の値をセットする。この値
も解析プログラム52からビデオ信号の出力の指示があ
ったときに同時に与えられる。次に、ステップS247
で解析プログラム52からの指示が、バンドメモリA7
1、あるいはバンドメモリB72からのビデオ信号出力
指示かチェックし、YESならステップS248で変数
tに1をセットして、ステップS250へ飛ぶ。
【0190】ステップS247での判定がNOとは、バ
ンド内に単一のイメージブロックがあって、その圧縮さ
れたイメージブロックデータを、イメージ伸長・ビデオ
転送回路73に対して、データ伸長を行なってビデオ信
号を出力することを指示していることを意味する。そこ
で、ステップS249で変数tに2をセットし、変数h
aにはブロックの上マージン、変数hbにはブロック高
さ、つまりブロックの総ライン数、変数laにはブロッ
クの左マージン、変数lbにはブロックの幅をセットす
る。これらの値も、解析ブロック52からビデオ信号の
出力の指示があったときに、同時に与えられている。そ
して、ステップS250へ移る。
【0191】ステップS250では、変数hpに0をセ
ットする。変数hpは、ビデオ信号を出力すべきバンド
上のラインの位置を示すカウンタである。そしてステッ
プS251で変数tが0、あるいは1かチェックし、0
か1ならステップS252でエンジン部4からビデオ信
号の出力要求があったかチェックし、NOならループを
形成して、この要求があるまで待つ。ビデオ信号出力要
求があったなら、ステップS253で変数tが1かチェ
ックし、NOならステップS255へ飛ぶ。YESな
ら、ステップS254でバンドメモリA71かB72上
のhp番目のラインをビデオ信号に変換して、エンジン
部4へ出力してステップS255へ移る。ステップS2
54でバンドA71から出力するのか、バンドB72か
ら出力するのかの指示は、解析プログラム52からビデ
オ信号の出力の指示があったときに同時に与えられてい
る。
【0192】ステップS255では、変数hpに1を加
算して、ステップS256で変数hpが変数hよりも小
さいかチェックしてYESなら、つまりバンド内のライ
ンでまだビデオ信号が送り終っていない部分が残ってい
るなら、ステップS252の直前に戻って次のラインの
ビデオ信号出力作業を続ける。
【0193】ステップS256でNOなら、つまりバン
ド内の全てのラインはビデオ信号を送り終わったなら
ば、ステップS257で解析プログラム52に対して指
示のあったバンドのビデオ信号の出力が完了したことを
知らせる。この中には、空白バンドの出力処理が完了し
たことも含まれる。そして、ステップS241の直前に
戻って、解析プログラム52からの次のビデオ出力指示
を待つ。
【0194】ステップS251でNOなら、バンド内の
イメージブロックデータからのビデオ信号出力指示であ
るわけだが、図33におけるステップS258でまずブ
ロックデータ中の第1のラインの圧縮イメージデータの
伸長を実行し、伸長したデータをイメージ伸長・ビデオ
転送回路73内に存在するラインバッファにセットす
る。これは、圧縮データの伸長作業を前もってしておく
ことで、ビデオ信号出力時に伸長作業を行なったので
は、ビデオ出力のタイミングに間に合わなくなることを
防ぐためである。
【0195】そのあと、ステップS259でループを形
成して、エンジン部4からのビデオ信号要求があるまで
待ち、あったならばステップS260で変数hpが変数
haより小さいかチェックし、YESなら何もせずステ
ップS267へ飛ぶ。これは、ブロックの上マージンの
部分では、ビデオ信号を送らず何もしないことを意味し
ている。
【0196】ステップS260でNOならば、ステップ
S261で、変数hpが変数haと変数hbとを加算し
た値より小さいかチェックし、ここでNOならばビデオ
信号を送らず何もせずステップS267へ飛ぶ。これ
は、バンド内でブロックの下の部分が空いているのであ
れば、つまり、下マージンがあるなら、その部分にはビ
デオ信号を送らないことを示している。
【0197】ステップS261でYESならば、ステッ
プS262でラインの上で変数laの大きさ分、ビデオ
信号を送らず、ステップS263で変数lbの大きさ
分、イメージ伸長・ビデオ転送回路73の中にあるライ
ンバッファ上のデータをビデオ信号に変換して、ビデオ
信号をエンジン部4へ出力する。そして、ステップS2
64で変数hbpに、変数hpの値から変数haの値を
減算し、さらに1を加算した値をセットする。
【0198】次に、ステップS265で変数hbpが変
数hbより小さいかチェックし、NOなら、つまりブロ
ック内の全てのラインのビデオ信号出力が終わったなら
何もせずステップS267へ飛ぶ。
【0199】ステップS265でYESなら、つまりブ
ロック内でまだビデオ信号出力していないラインが残っ
ているのなら、ステップS266でブロックデータ中の
変数hbp番目のラインの圧縮イメージデータの伸長処
理を実行し、伸長したデータをイメージ伸長・ビデオ転
送回路73の中にあるラインバッファにセットして、ス
テップS267へ飛ぶ。
【0200】これも圧縮データの伸長作業を前もってし
ておくことで、ビデオ信号出力時に伸長作業を行なった
のでは、ビデオ出力のタイミングに間に合わなくなるこ
とを防ぐことである。
【0201】ステップS267では、変数hpに1を加
算してから、ステップS268で変数hpが変数hより
小さいかチェックし、YESならステップS259の直
前に戻って、バンド内の次のラインのビデオ信号出力処
理を続ける。
【0202】ステップS268でNOなら、図32のス
テップS257へ飛んで、ビデオ信号の出力が完了した
ことを解析プログラム52へ知らせてから、ステップS
241の直前に戻って解析プログラム52からの次のビ
デオ信号出力指示を待つ。
【0203】なお、ステップS257で、イメージ伸長
・ビデオ転送回路73が、解析プログラム52に対して
ビデオ信号の出力完了を知らせてから、解析プログラム
52が、次のバンドのビデオ信号出力指示をイメージ伸
長・ビデオ転送回路73に指示するまでの間は、非常に
短時間でなければならない。この間に時間的な空きが入
ると、その間、ビデオ信号が出力されないので、印刷さ
れた用紙を見ると、そのラインの部分だけ白い筋が入っ
たような現象となる。つまり、バンドとバンドの間に隙
間ができる。解析プログラム52の排紙時のバンドとバ
ンドの間の処理は、極めて迅速に行なわなければならな
い。 <第2の実施の形態特有の効果>以上の構成により、つ
ぎのような効果が得られる。 (1)本実施の形態では、フレームバッファの代わりに
バンドメモリを設けてバンド処理による印刷出力を行な
うので、メモリが少なくて済み、装置の製造コストを低
減できる。 (2)本実施の形態では、受信バッファへ1ページ分の
データを受信してから印刷を開始する。ホストベースプ
リンタのようにプリンタへのデータ転送を最優先しない
ために、ホスト上で他のアプリケーションがロックす
る、というような現象は起こらない。 (3)本実施の形態では、ホスト上のドライバは、バン
ドの大きさそのもののイメージデータをプリンタに送る
のではなくて、バンドの領域の中の、実際にイメージの
あるブロック(矩形部分)をプリンタへ送るので、転送
データ量は小さくなる。 (4)本実施の形態では、空白のバンドがある場合は、
コントローラ部では、バンドメモリ上に空白部を展開し
てそのビデオ信号をエンジン部に送るのではなく、イメ
ージ伸長・ビデオ転送回路に対してビデオ信号を送らな
いよう指示するだけなので、CPUの負荷が小さくな
る。 (5)本実施の形態では、文字がなくイメージだけが含
まれるバンドがある場合は、コントローラ部では、バン
ドメモリ上にイメージを展開してそのビデオ信号をエン
ジン部に出力するのではなく、圧縮されたイメージデー
タの伸長とビデオ信号への変換、エンジン部への出力を
指示するだけなので、CPUの負荷が小さくなる。 [第3の実施の形態]次に、図を用いて、第3の実施の
形態を説明する。 <システムの構成>第2の実施の形態では、1ページは
16バンドに均等に分割することを前提としていたが、
第3の実施の形態では、バンドの数、高さを可変とし、
ドライバ上ではイメージデータについて、バンド単位に
繰り返しのイメージパターンがある場合は、バンドの繰
り返しのコマンドをプリンタに送ることで、イメージデ
ータの転送量を小さくしていることが大きな違いであ
る。
【0204】しかし、各種構成要素、プログラムの動作
等については、ほとんどは第2の実施の形態と同一であ
るので、以下では、主に違いのある部分を説明する。
【0205】ブロック構成については、第2の実施の形
態の図18と同一なので省略する。第3の実施の形態で
は、バンド高さは任意としたが、図18のRAM9上に
ある、バンドA71、バンドB72のバンド高さ以下、
という制限はある。
【0206】図34は、原理の説明図である。
【0207】ホスト1のドライバ上で、印刷しようとし
ている文書を、文字データとイメージデータに分けて、
プリンタ2に転送することは、第1の実施の形態、第2
の実施例と同様である。
【0208】本実施の形態では、ドライバがホスト1上
に設けたフレームバッファ上に展開した1ページイメー
ジの中で、プリンタ1にイメージデータを送る前に、バ
ンド単位のパターン認識を行ない、繰り返しのバンドが
あるかチェックする。ここでは、バンド高さは任意に変
えられるとしている。パターン認識の技術については、
各種の方法が公知になっているので、ここでの詳細な説
明は省略する。
【0209】図34の左の図では、波形の図形を含むイ
メージAのバンド、空白バンド、輪の連続の図形を含む
イメージBのバンドセットが、3度繰り返されている。
そこで、2度目以降に出現するイメージAのバンド、イ
メージBのバンドについては、最初に出現したイメージ
Aのバンドデータ、あるいは、イメージBのバンドデー
タと同一であることを、プリントコマンドとして、プリ
ンタ2に転送するようにした。文字データ部分の処理に
ついては、第2の実施の形態と同一である。
【0210】図34のような例は、実際の文書では、あ
まりないと思えるが、図35のようなイメージのバンド
の繰り返しの例は、実際の文書でも頻繁に有り得ると思
われる。
【0211】この例では、表であって、文字の部分を取
り去った罫線のイメージの部分だけで考えると、左の図
のように、バンドの1番からバンドの6番まで分割でき
て、バンドの1番、2番、6番については、そのまま、
イメージデータとしてプリントコマンドをプリンタ2へ
転送するが、バンドの3番、4番、5番はバンド2番の
繰り返しイメージだとして、「バンド2番の繰り返し」
のプリントコマンドをプリンタ2へ転送する。
【0212】図36は、ホスト1からプリンタ2へ送ら
れる文字データ、イメージデータのコマンド構造の説明
図である。第2の実施の形態の図20との違いは、バン
ド開始コマンド81のあとに、バンド高さコマンド8
2、繰り返しバンド番号83、があることだけである。
その他の要素は同一である。
【0213】バンド開始コマンド81は、1ページあた
り任意の個数繰り返される。バンド高さ82もバンド毎
に任意だが、バンドA71、バンドB72のバンド高さ
以下である。また繰り返しバンド番号83は、そのペー
ジで出現したバンドの順番で、ページの先頭のバンド番
号を1としてあらわす。そのバンドが、繰り返しのイメ
ージを含んでいない場合、つまり新規のイメージを含ん
だバンドの場合は、−1がセットされる。
【0214】コントローラ部3のROM8に内蔵されい
るプログラムの名称については、第2の実施の形態の図
21で示された内容と同一である。動作についても、解
析プログラム52以外は、第2の実施の形態と同一であ
る。受信部6の動作は、第1の実施の形態と同一、イメ
ージ伸長・ビデオ転送回路73の動作も、第2の実施の
形態と同一のなので、説明は省略する。解析プログラム
52の動作についても、第2の実施の形態とほとんど同
じだが、後述の図40〜図43のフローチャートで、動
作の詳細を説明する。
【0215】ホスト1上のドライバの動作についても、
第2の実施の形態とほとんど同じだが、後述の図37,
図38,図39のフローチャートで、動作の詳細を説明
する。 <システムの制御>次に、本発明の第3の実施の形態の
動作を、フローチャートを用いて説明する。第2の実施
の形態と違いのある、ドライバの動作と、解析プログラ
ム52の動作を説明する。
【0216】図37,図38,図39は、ホスト1上の
プリンタドライバの動作を説明するフローチャートであ
る。プリンタドライバは、ユーザが用いるアプリケーシ
ョンソフトで作製した文書データから、図36で説明し
た文字やイメージのプリンタコマンドを作成してプリン
タ2へ転送する。ユーザがアプリケーションソフトから
文書の印刷を指示すると、ホスト1内でプリンタドライ
バが起動される。
【0217】図示されてはいないが、ドライバは、起動
時にはホスト1のメモリ上に1ページ分の大きさのフレ
ームバッファを確保し、同時にフレームバッファをクリ
アする。また、ドライバの文書印刷処理の終了時には、
フレームバッファとして使われていたメモリ領域は、開
放される。
【0218】まず、ステップS271で、ジョブ開始コ
マンド31をプリンタ2へ転送し、次にステップS27
2で、変数mに、印刷しようとしている文書のページ数
に1を加算した値をセットし、ステップS273で、変
数mpに1をセットする。そして、ステップS274
で、変数mpが変数mより小さいかチェックし、NOな
ら文書の全てのページ数の処理が終わったことになるの
で、ステップS311でジョブ終了コマンドを転そし
て、ドライバの処理を終了する。
【0219】ステップS274でYESなら、ステップ
S275で、ページ開始コマンド32をプリンタ2へ転
送し、ステップS276で、mpページ目のアプリケー
ションからの文書印字指示を蓄積し、ステップS277
で、蓄積した文字印字指示について印字位置によるソー
ティングを実行し、ステップS278で、mpページ目
のアプリケーションからの文字印字指示以外の描画指示
をホスト1上のフレームバッファに展開する。ここで文
字印字指示以外の描画指示とは、罫線や図形描画、イメ
ージの貼り付け等である。
【0220】また、ステップS277における印字位置
による印字指示のソーティングとは、まず、用紙の長手
方向に対する位置でソーティングし、次に、用紙の短手
方向に対する位置でソーティングを行なうことである。
A4サイズの用紙を縦置きしたときに、印字位置によっ
て上から下へ、さらに左から右へと並べ替えた。
【0221】次にステップS279で、バンド単位でイ
メージパターンの繰り返しがないか、フレームバッファ
をパターン認識による分析を行ない、ステップS280
でパターンの繰り返しがあったかチェックし、NOなら
ステップS281で、1ページを均等に16分割したと
してバンド管理表にバンド番号、各バンドの高さ、パタ
ーンを繰り返す場合のバンド番号の欄に−1をセットす
る。そして、図38のステップS285に飛ぶ。
【0222】ステップS280でYESなら、ステップ
S282でバンドの高さが最大高さ、つまり、バンドA
71かバンドB72の高さを超えるバンドを最大高さ以
内になるよう分割して、ステップS284に移る。ステ
ップS282でNOの場合もステップS284に移る
が、ステップS284では、バンド高さを均等ではなく
バンド毎に任意としてバンド管理量にバンド番号、各バ
ンドの高さ、パターンを繰り返す場合のバンド番号の欄
をセットして、ステップS285へ移る。
【0223】ところで、バンド管理表はドライバがバン
ドに関するプリントコマンドを作成する際に便利なよう
にホスト1上に設けたもので、項目として、バンド番
号、バンド高さ、イメージパターンを繰り返す場合のバ
ンド番号欄の3つが設けられている。
【0224】次に、図38に移るが、ステップS285
では変数nにバンド総数に1を加算した値をセットす
る。そしてステップS286で変数npに1をセット
し、ステップS287で変数npが変数nより小さいか
チェックし、NOなら1ページの全てのバンド処理が終
了したことを意味するので、ステップS288で変数m
pに1を加算してステップS274の直前に戻り、次の
ページのバンド出力処理に移る。
【0225】ステップS287でYESなら、ステップ
S289でバンド開始コマンド81をプリンタ2へ転送
し、ステップS290でバンド高さコマンド82を転送
し、ステップS291で繰り返しバンド番号コマンド8
3を転送する。このバンドがイメージの繰り返しでなけ
れば−1をセット、転送する。
【0226】そして、ステップS292で蓄積したアプ
リからの印字指示からnpバンド目に含まれる文字印字
指示をピックアップし、ステップS293で変数sにピ
ックアップした文字数に1を加算した値をセットして、
ステップS294で変数sp1をセットする。
【0227】なお、ステップS292でピックアップす
る文字印字指示は、npバンド目に文字の一部でもかか
っているものはすべてピックアップする。よって、文字
の印字位置によっては、ふたつのバンドにまたがる場合
がある。
【0228】次にステップS295で、変数spが変数
sより小さいかチェックし、NOならnpバンド目に含
まれる文字データの転送処理は全て済んだことになるの
で、ステップS296以降でnpバンド目のイメージデ
ータの転送処理に移る。つまり、ステップS296でこ
のバンドが繰り返しのバンドかチェックし、YESなら
これ以上何もせず、ステップS302に移る。
【0229】ステップS296でNOならば、ステップ
S297ではホスト上のフレームバッファからnpバン
ド目の位置と大きさのイメージを切り出し、ステップS
298で空白のバンドかチェックし、YESなら何もせ
ずステップS302に移る。
【0230】ステップS298でNOなら、ステップS
299でイメージが実際に含まれる矩形領域を単一のブ
ロックとして切り出し、まずステップS300でブロッ
クの貼り付け位置を示す位置移動コマンド33をプリン
タ2へ転送し、ステップS301で種別5のコマンド
列、つまりイメージブロックコマンド45,46,4
7,48をプリンタ2へ転送する。当然ながら、イメー
ジブロックデータはデータ圧縮されて転送される。
【0231】そして、ステップS302で変数npに1
を加算し、ステップS287の直前に戻り、次のバンド
の転送処理に移る。
【0232】ステップS295でYESの場合は、ステ
ップS303でsp番目の文字は、この文書で初めて現
れる文字の印字の指示かチェックし、初めてならばステ
ップS304で印字位置を示す印字移動コマンド33を
プリンタ2へ転送し、ステップS305でプリンタ2側
が登録可能な文字数の限界に達したかチェックし、限界
に達したならステップS307で種別3のコマンド列、
つまり文字イメージ印字のみのコマンド43,44をプ
リンタ2へ転送して、ステップS310へ移る。
【0233】ステップS305で限界に達していないと
わかれば、ステップS306で種別2のコマンド列、つ
まり、文字登録+印字コマンド41,42,43,44
をプリンタ2へ転送してからステップS310へ移る。
当然ながら、プリンタ2へ転送される一文字のドットイ
メージは、データ圧縮されて転送される。
【0234】ステップS303でNOならば、この文字
の印字の指示が、文書の中で二度目以降の指示であるこ
とを示しているので、ステップS308で印字位置を示
す位置移動命令33をプリンタ2へ転送し、次にステッ
プS309で種別4のコマンド列、つまり文字コード印
字コマンド41,42をプリンタ2へ転送する。
【0235】そして、ステップS310で変数spに1
を加算して、ステップS295の直線に戻り、次の文字
データのプリンタ2への転送処理を行なう。
【0236】図40〜図43は、解析プログラム52の
動作を説明するためのフローチャートである。解析プロ
グラム52も、プリンタ2の電源オンとともに立ち上が
り、以後、受信部6によって書込まれた受信バッファ1
0の中のプリントコマンドの解析及び排紙処理を行な
う。
【0237】まずステップS321で、ユーザがプリン
タ2を電源オフしたかチェックし、YESならこのプロ
グラムの処理を終了する。NOならステップS322で
受信バッファ10内に受信済みのページのデータがある
かチェックし、ないならばステップS321の直前に戻
りループを形成してホスト1からのデータの受信を待
つ。
【0238】なお、ステップS322では、ページ管理
表13を調べることによって、受信済みのページが存在
するかどうかをチェックする。ページ管理表13は、第
1の実施の形態の図9,図10のフローチャートで説明
したような動作で、受信管理プログラム51が管理を行
なっている。
【0239】ステップS322でYESならば、以後そ
のページのプリントコマンドを次々と解析して処理する
が、まず、ステップS323で変数nに「総バンド数+
1」をセットし、ステップS324で変数npに1をセ
ットし、ステップS325で変数bnにバンド高さをセ
ットする。そして、ステップS326で変数npが変数
nより小さいかチェックし、NOならバンドの処理が全
て完了したことを示すのでステップS368へ飛び、排
紙の完了を待つ。
【0240】ステップS326でYESなら、ステップ
S327でバンドnp番目のデータは文字データもイメ
ージデータもなく、空白バンドなのかチェックし、YE
SならステップS328で変数tに0をセットする。そ
して、ステップS344へ飛ぶ。
【0241】ステップS327でNOならステップS3
29でバンドnp番目のデータに文字が含まれているか
チェックし、YESならステップS330で変数npが
奇数なら変数tに1をセットし、変数npが偶数なら変
数tに2をセットし、ステップS334へ飛ぶ。
【0242】ステップS329でNOなら、ステップS
331でバンドnp番目のデータに、複数のイメージブ
ロックデータが含まれているかチェックし、YESなら
ステップS322で変数npが奇数なら変数tに1をセ
ットし、変数npが偶数なら変数tに2をセットし、ス
テップS334へ飛ぶ。なお、図37,図38,図39
で説明したドライバの動作では、ひとつのバンドに複数
のイメージブロックが存在することは有り得ない。
【0243】ステップS331でNOなら、バンドnp
番目のデータとしては、単一のイメージブロックしか存
在しないことを示しているが、ステップS333で変数
tに3をセットして、ステップS334へ飛ぶ。
【0244】ステップS334では、変数tが1あるい
は2かチェックし、YESならステップS334以降で
バンドnp番目に含まれる文字データやイメージブロッ
クデータを先頭から解析していき、バンドA71、バン
ドB72への展開処理を行なう。まず、ステップS33
5では、変数tが1ならバンドA71をクリアし、変数
tが2ならバンドB72をクリアする。
【0245】そして、ステップS336でこのバンドの
繰り返しバンド番号コマンド83が−1以外かチェック
し、NOなら何もせずステップS338へ移るが、YE
SならステップS337で処理を行なってからステップ
S338へ飛ぶ。ステップS337では、イメージ伸長
回路16を使用して、繰り返しバンド番号で指示された
バンド内の単一イメージブロックをバンドメモリへ貼り
付ける。この時、変数tが1ならバンドA71へ貼り付
け、変数tが2ならバンドB72へ貼り付ける。
【0246】次に、ステップS338では、解析しよう
としているコマンドが位置移動コマンド33かチェック
する。YESならステップS339でカーソルの移動を
行なう。ここで言うカーソルとは、バンドメモリ上で文
字、あるいは、イメージを展開する位置を示すための概
念上のポインタである。具体的には、ワーク領域12上
にX座標、Y座標を示す変数として確保されている。カ
ーソル位置はバンドの左上端を原点としている。ドライ
バから送られてくる位置移動コマンド33も、各バンド
の左上端を原点と考える相対位置を前提として転送され
てくる。ページの左上端を原点としているわけではな
い。ステップS339の後は、ステップS351へ飛
ぶ。
【0247】ステップS338でNOならば、ステップ
S340でそのコマンドが種別コマンド34で種別が1
かチェックし、YESならばステップS341で文字登
録プログラム53による文字の登録処理を行なってから
ステップS351へ飛ぶ。文字の登録処理は、第1の実
施の形態の図15のフローチャートで説明した動作と同
じであるので、詳細な説明は省略する。
【0248】ステップS340でNOならばステップS
342でそのコマンドが種別コマンド34で、種別が2
かチェックし、YESならばステップS343で文字の
登録処理を行ない、ステップS344で印字処理を行な
ってからステップS351へ飛ぶ。ステップS343の
文字の登録処理と、前述のステップS341の文字の登
録処理は同一である。また、ステップS344の印字処
理は、印字プログラム54によって行なわれる。
【0249】ステップS342でNOならば、ステップ
S345でそのコマンドが種別コマンド34で種別が3
かチェックし、YESならばステップS346で文字イ
メージの印字処理のみを行ない、そのあとステップS3
51へ飛ぶ。
【0250】ステップS345でNOならば、ステップ
S347でそのコマンドが種別コマンド34で種別が4
かチェックし、YESならばステップS348で印字処
理を行ない、そのあとステップS351へ飛ぶ。ステッ
プS348の印字処理は、前述のステップS344の印
字処理と同一である。
【0251】ステップS347でNOならば、ステップ
S349でそのコマンドが種別コマンド34で種別が5
かチェックし、YESならばステップS350でイメー
ジ伸長回路16を使用して、圧縮イメージデータの伸長
作業をし、伸長したイメージブロックのバンドメモリ7
1,72への貼り付け作業を行なう。その際、変数tが
1なら、バンドA71への貼り付けを行ない、変数tが
2ならバンドB72への貼り付けを行なう。そして、ス
テップS351へ飛ぶ。
【0252】ステップS339、ステップS341、ス
テップS344、ステップS346、ステップS34
8、ステップS350のあとか、あるいはステップS3
49でNOならば、ステップS351へ移る。ステップ
S351では、バンドnp番目の受信データで、解析し
ていないコマンドがまだ残っているかチェックし、残っ
ているならばステップS338の直前に戻ってその未解
析コマンドの解析処理を行なう。
【0253】ステップS334でNOの場合、あるいは
ステップS351でNOの場合は、図42のステップS
352へ飛ぶ。
【0254】ステップS352以降、ステップS367
まではバンド単位のエンジン部4へのビデオ信号出力処
理を示している。
【0255】まず、ステップS352では、変数npが
1かチェックする。つまり、あるページの最初のバンド
かチェックするわけである。最初のバンドであれば、ス
テップS353でエンジン部4に給紙開始を指示して、
ステップS354で用紙があるかチェックし、用紙無し
ならばステップS355でユーザが用紙を追加セットす
るまで待ち、それからステップS358へ飛ぶ。ステッ
プS354でNOならば、つまり、用紙があるなら、そ
のままステップS358へ飛ぶ。
【0256】ステップS352で最初のバンドではない
と判断されたならば、ステップS356で前のバンドの
ビデオ転送処理が終了するまで待つ。但し、待っている
間に、紙ジャム、つまり紙詰まりが発生しているかをス
テップS357で常に監視している。仮に紙ジャムが発
生しているのならば、ステップS357からステップS
373へ飛び、紙ジャムからの復帰処理を行なう。
【0257】ステップS356でYESなら、つまり前
のバンドのビデオ転送が終了したなら、ステップS35
8で変数tが0かチェックし、YESならステップS3
59で変数nbの値をバンド高さとして、イメージ伸長
・ビデオ転送回路73に空白バンドの出力処理を指示し
て、ステップS367へ飛ぶ。
【0258】ステップS358でNOなら、ステップS
360で変数tが1かチェックし、YESならステップ
S361で変数hbの値をバンド高さとして、イメージ
伸長・ビデオ転送回路73にバンドA71のビデオ信号
出力指示を行ない、ステップS367へ飛ぶ。
【0259】ステップS360でNOならば、ステップ
S362で変数tが2かチェックし、YESならステッ
プS363で変数hbの値をバンド高さとしてイメージ
伸長・ビデオ転送回路73にバンドB72のビデオ信号
出力指示を行ない、ステップS367へ飛ぶ。
【0260】ステップS362でNOならば、ステップ
S364で繰り返しバンド番号が−1以外かチェック
し、YESならステップS365で変数hbの値をバン
ド高さとして、イメージ伸長・ビデオ転送回路73に繰
り返しバンド番号で指示されたバンドの中の単一イメー
ジブロックの圧縮イメージのデータ伸長をしながらのビ
デオ出力を指示する。そして、ステップS367へ移
る。
【0261】ステップS346でNOならば、ステップ
S366で変数hbの値をバンド高さとして、np番目
のバンドデータに含まれる単一イメージブロックを伸長
をしながらビデオ信号を出力することをイメージ伸長・
ビデオ転送回路73に指示してステップS367へ飛
ぶ。
【0262】ステップS367では変数npに1を加算
してから、ステップS326の直前に戻り、次のバンド
データのバンドメモリへの展開、及び、ビデオ信号出力
処理へ移る。
【0263】ステップS326でNOの場合は、バンド
出力処理がすべて終了して、後はステップS368以降
で印刷された用紙の排紙の完了を待つだけとなるが、ま
ずステップS368では排紙が完了したかチェックし、
NOならばステップS372で紙ジャム、つまり、紙詰
まりが発生したかチェックし、NOならばステップS3
68の直前に戻りループを形成して、排紙の完了まで待
つ。
【0264】ステップS368で排紙が完了したと判断
したならば、ステップS369でページ管理表13上の
排紙済みページの記録をクリアし、ステップS370で
ジョブ終了、つまりひとつの文書の全ページを排紙し終
わったかチェックし、YESならステップS371で登
録文字管理表14をクリアし、ステップS321の直前
に戻って次の文書のジョブのデータ受信を待つ。
【0265】ステップS370でNOならば、この時も
ステップS321の直前に戻って、その文書の後続のペ
ージのデータ受信を待つ。
【0266】ステップS372でYESならば、ステッ
プS373で紙ジャム発生をパネル表示し、ステップS
374でユーザが詰まった紙を取り除くまで待ち、取除
いたことがわかればステップS321の直前まで戻り、
もう一度、前回処理を行った受信済みページデータのバ
ンドへの展開、ビデオ出力、排紙処理を試みる。
【0267】なお、ステップS369では、ページ管理
表13上のページの登録をクリアしているが、受信管理
プログラム51は、この領域がクリアされていることを
チェックして、受信部6に対して新しい受信データ書込
みの限界値の指示を行なう。 <第3の実施の形態特有の効果> (1)本実施の形態では、ドライバがフレームバッファ
上のイメージパターンを分析して、バンド単位に同じパ
ターンが繰り返されるときは、繰り返しのバンド部分の
データとして繰り返しのコマンドを送るだけなので、イ
メージデータの転送量が小さくて済む。また、転送時間
が少なくて済む。また、プリンタ側の受信バッファのメ
モリ消費量も節約できる。 (2)図35で説明したように、特に、繰り返しパター
ンの使われることの多い表文書等の印刷時に有効であ
る。 [第4の実施の形態]次に、図を用いて、第4の実施の
形態を説明する。 <システムの構成>第4の実施の形態では、プリンタの
受信バッファに納まりきらない巨大なイメージを印刷す
る場合に、第1〜第3の実施の形態として説明した印刷
制御方法のいずれかの代わりに、受信バッファを幾つか
の部分に分割し、ひとつの部分から出力している間に他
の部分に受信して格納することを繰返して巨大なイメー
ジを印刷する。
【0268】具体的には、本実施形態のシステムは第3
の実施の形態を基にしている。文書は全てイメージデー
タで扱い、プリンタのRAMのほとんどを受信バッファ
として使用し、受信バッファ上の巨大イメージページの
データをイメージ伸長・ビデオ転送回路で直接イメージ
伸長作業とエンジン部へのビデオ転送作業を行なうこと
で、巨大イメージページの文書も印刷可能としている。
第4の実施の形態の各種構成要素、プログラムの動作等
については、ほとんどは第3の実施の形態と同一である
ので、以下では主に違いのある部分を説明する。
【0269】なお、以下の説明では、第3の実施の形態
での印刷方式を「合成方式」と呼ぶ。これは、ホスト上
では文字とイメージを分離して扱い、プリンタ上で文字
とイメージの論理和をとって合成して出力するからであ
る。また、巨大イメージを出力する方式を「簡易同期
式」と呼ぶ。これは、あまりに1ページのイメージデー
タが巨大な場合は、ホストからの細かなバンド単位のデ
ータ転送と、プリンタでの用紙の搬送を、成り行きの形
で同期させて繰り返すことで印刷を実行するからであ
る。
【0270】図59,60は、簡易同期式の原理を説明
するための図である。本実施形態のプリンタは受信バッ
ファとして2MBのメモリを備えているものとしてい
る。図59(a)は、圧縮してもその受信バッファ容量
を越える巨大イメージを示している。このような巨大イ
メージは、ホストのプリンタドライバで図59(b)の
ように、最初の1MBで区切り、残りを100KBずつ
区切って各ブロックごとにプリンタに送り付ける。
【0271】図60は、図59(b)のようにして送ら
れたイメージを、プリンタにおいて受信し、再構成して
印刷する様子を示す図である。ホストから受信したイメ
ージは、RAM9内にブロックごとに圧縮されて格納さ
れる。プリンタでは、それらブロックを、一つのブロッ
クごとに伸長して印刷出力する。2番目以降のブロック
は最初のブロックに比べて小さいため、伸張処理を迅速
に行えるので、伸張処理時間によってオーバーランを生
じることはない。第4の実施の形態は、上記「合成方
式」と「簡易同期式」を合体させたものである。
【0272】図44は、コントローラ部3が、「簡易同
期式」で動作する場合の、ブロック構成図である。「合
成方式」で動作する場合のブロック構成図は、第2の実
施の形態の図18に相当する。図18と図44の違い
は、RAM9上の内部構成である。
【0273】こういったRAMの構成の相違は、主とし
て受信部6及びイメージ伸張・ビデオ転送回路73によ
る印刷データの処理手順により規定されるものであり、
固定的な枠組が設けられるといったものではない。従っ
て、図18及び図44のRAMの構成を、データ処理の
手順によって使い分けることは簡単なことである。
【0274】さて、両方式の相違を受信バッファに注目
して見てみる。「合成方式」では、受信バッファ10、
バンドA71、バンドB72、ページ管理表13、登録
文字管理表14、登録文字データ領域15等で構成され
る。RAM9の容量が2MBとすると、受信バッファ1
0として、確保できるのは1MB程度である。「簡易同
期式」では、RAM9上には受信バッファ10、ページ
管理表13があるだけである。RAM9上の容量が2M
Bとすると、受信バッファ10として、1.7MB程度
確保できる。
【0275】圧縮方式にもよるが、A4の用紙サイズ
で、1ページ全面に600dpiの写真イメージが貼り
付けられているとすると、約1.8MBのデータ容量と
なる。受信バッファ10が1.7MBあれば、かなり大
きなイメージが含まれた文書の場合も、受信バッファ1
0内に1ページ分のデータが収まるので、ほとんどの場
合、印刷が可能となる。また、1.7MBを多少オーバ
ーするページの場合でも、「簡易同期式」では、成り行
きの形で同期して出力するので、ほとんど印刷不可能な
事態は起こらない。
【0276】しかし、受信バッファ10の大きさとして
1MBしかない「合成方式」では、文書にもよるが、受
信バッファ10内に1ページ分のデータが収まらずに、
印刷不可能な事態がかなり発生すると思われる。
【0277】なお、図18で記載されているイメージ伸
長回路16、文字伸長回路17は、図44では省かれて
いるが、「簡易同期式」では使用しないことを意味して
いる。つまり、あってもなくても良い。まとめれば、ハ
ード的な構成要素としては、第4の実施の形態は第2の
実施の形態の図18の構成要素と同一で良い。
【0278】また、それ以外の図18と図44の違いと
いえば、ホスト1からプリンタ2へ転送されるデータ
が、図18の「合成方式」では、文字データとイメージ
データなのに対して、図44の「簡易同期式」ではイメ
ージデータだけである。
【0279】図45は、ホスト1からプリンタ2へ送ら
れる文字データ、イメージデータのコマンド構造の説明
図である。このデータは、ある文書の印刷ジョブデータ
として、最初のページは「合成方式」のページとして送
られ、2ページ目も「合成方式」のページとして送られ
たが、イメージが大量にあって、この1ページデータだ
けでも1MBの大きさの受信バッファ10があふれそう
に思われたので、ページクリアされ、その後改めて「簡
易同期式」のページとして出力され、ジョブが終了した
場面を示している。
【0280】コマンドの大部分は、第3の実施の形態の
図36と同一であるが、ページ毎にページ種別Aコマン
ド91か、ページ種別Bコマンド92が付け加えられた
点と、ページデータの最後にページクリアコマンド93
が添付される場合がある点が異なる。ページクリアコマ
ンド93が添付されたページは、印刷されず無視され
る。また、ページ種別Aコマンド91が添付されたペー
ジは、「合成方式」のページであることを示し、ページ
種別Bコマンド92が添付されたページは、「簡易同期
式」のページであることを示している。つまり、ページ
毎に図18で示したRAM9環境と、図44で示したR
AM9環境に切り替えることを指示している。
【0281】また、「簡易同期式」のページの場合は、
ひとつのバンドに、単一イメージブロックがひとつつく
だけである。この時、種別コマンド34は5、つまりイ
メージブロックコマンドしか有り得ない。
【0282】さらに、「簡易同期式」のページの場合
は、1ページの圧縮後のデータ量が1MBに収まってし
まう場合は、バンドもひとつ、イメージブロックもひと
つだけで済む。1MBを超える部分については、圧縮デ
ータが100KBを超える毎にバンドをひとつ、イメー
ジブロックをひとつ設け、それを繰り返す。
【0283】これらは、全てホスト1上のドライバで行
なうプリントコマンド作成処理であるが、1.7MBの
大きさの受信バッファ10を超えるかもしれない、巨大
イメージページを、成り行きの同期式で印刷出力可能に
するための処理である。
【0284】コントローラ部3のROM8に内蔵されて
いるプログラムの名称については、第2の実施の形態の
図21で示された内容と同一である。動作についても、
受信管理プログラム51、解析プログラム52以外は、
第2の実施の形態と同一である。イメージ伸長・ビデオ
転送回路73の動作は、第2の実施の形態と同一なの
で、説明は省略する。ホスト1上のドライバの動作、受
信部6の動作、受信管理プログラム51の動作、解析プ
ログラム52の動作は、後述のフローチャートで動作の
詳細を説明する。
【0285】図46は、ページ管理表13の構造を説明
するための図である。
【0286】項目としては、受信した順番を示すページ
番号、受信したページデータの開始アドレス、受信した
ページデータの終了アドレス、大きすぎるページかどう
かの印の4項目である。
【0287】解析プログラム52による処理は番号1か
ら行われる。解析処理、排紙処理が完了すると排紙済み
ページはクリアされ、番号2のページが番号1へ繰り上
がる。そして、そのページの解析処理が開始される。
【0288】図46(a)は、「合成方式」の時の状
態、あるいは、「簡易同期式」の時でも1ページごとの
データ量が受信バッファ10の大きさを越えないときの
状態を示している。また、図46(b)は、1ページの
データ量が受信バッファ10の大きさを越えた時の状態
を示している。受信バッファには、現在受信中の巨大ペ
ージだけが存在し、受信管理プログラム51は解析プロ
グラム52に対して成り行きによる同期式の印刷出力を
指示して、現在その印刷処理が進行中の状態である。
【0289】なお、受信管理プログラム51による成り
行きによる同期式の印刷出力の指示は、巨大なページデ
ータの前の全てのページが排紙出力された後で行われ
る。それにより、図46(b)のような巨大ページデー
タしかない状態になる。
【0290】また、RAM9の環境が「合成方式」と
「簡易同期式」との間で切り替わる時は、一旦全てのペ
ージが排紙出力された後で切り変わりが実行される。切
り替えは、受信バッファ10の大きさの変更も含まれて
いるので、ページデータを残したまま、受信バッファ1
0の大きさを小さくすると、消失するページデータも有
り得るからである。 <システムの制御>次に、本第4の実施の形態の動作
を、フローチャートを用いて説明する。
【0291】第3の実施の形態と違いのあるドライバ、
受信部6、受信管理プログラム51、解析プログラム5
2の各動作を説明する。
【0292】(プリンタドライバ)図47〜図51はホ
スト1上のプリンタドライバの動作を説明するフローチ
ャートである。プリンタドライバは、ユーザが用いるア
プリケーションソフトで作成した文書から、図45で説
明した文字やイメージのプリンタコマンドを作成、プリ
ンタ2へ転送する。ユーザがアプリケーションソフトか
ら文書の印刷を指示すると、ホスト1内でプリンタドラ
イバが起動される。
【0293】図示されてはいないが、ドライバは起動時
にはホスト1のメモリ上に1ページ分の大きさのフレー
ムバッファを確保し、同時にフレームバッファをクリア
する。また、ドライバの文書印刷処理の終了時には、フ
レームバッファとして使われていたメモリ領域は開放さ
れる。
【0294】まず、ステップS381でジョブ開始コマ
ンド31をプリンタ2へ転送し、次にステップS382
で、印刷しようとしている文書のページ数に1を加算し
た値を変数mにセットし、ステップS383で処理中の
ページ番号を示す変数mpに1をセットする。そして、
ステップS384で変数mpが変数mより小さいかチェ
ックし、NOなら文書の全てのページ数の処理が終わっ
たことになるので、ステップS385でジョブ終了コマ
ンドを転送して、ドライバの処理を終了する。
【0295】ステップS384でYESならステップS
386でページ開始コマンド32をプリンタ2へ転送
し、ステップS387でmpページ目のアプリケーショ
ンからの文字印字指示を蓄積し、ステップS388で蓄
積した文字印字指示について印字位置によるソーティン
グを実行し、ステップS389でmpページ目のアプリ
ケーションからの文字印字指示以外の描画指示をホスト
1上のフレームバッファに展開する。ここで文字印字指
示以外の描画指示とは、罫線や図形描画、イメージの貼
り付け等である。この時同時に、イメージの貼り付け面
積の合計を計算しておく。
【0296】また、ステップS388における印字位置
によるソーティングとは、先ず、用紙の長手方向による
ソーティング、次に、用紙の短手方向によるソーティン
グを行なうことである。A4サイズの用紙を縦置きした
時に印字位置によって上から下へ、さらに左から右へと
並べ替えた。
【0297】次に、ステップS390でイメージの貼り
付けの総面積がページの半分を超えたかチェックし、Y
ESなら、つまりイメージを主としたページと判断でき
たなら図50のステップS426へ移り、「簡易同期
式」の処理を開始する。ステップS390でNOなら、
つまり文字を主としたページと判断できたならステップ
S391へ移り、ページ種別がAのコマンド91をプリ
ンタ2へ転送する。
【0298】そして、ステップS392でバンド単位で
イメージパターンの繰り返しがないか、フレームバッフ
ァをパターン認識による分析を行い、ステップS393
でパターンの繰り返しが合ったかチェックし、NOなら
ステップS394で1ページを均等に16分割したとし
てバンド管理表にバンド番号、各バンドの高さ、パター
ンを繰り返す場合のバンド番号の欄に−1をセットす
る。そして、ステップS398に飛ぶ。
【0299】ステップS393でYESなら、図48の
ステップS395でバンドの高さが最大高さ、つまり、
バンドA71かバンドB72の高さを超えるバンドがあ
るかチェックし、あるならステップS396で最大高さ
を超えるバンドを最大高さ以内になるよう分割してステ
ップS397に移る。ステップS395でNOの場合も
ステップS397に移るが、ステップS397ではバン
ド高さを均等ではなくバンド毎に任意としてバンド管理
表にバンド番号、各バンドの高さ、パターンを繰り返す
場合のバンド番号の欄をセットしてステップS398へ
移る。
【0300】ところで、バンド管理表は、ドライバがバ
ンドに関するプリントコマンドを作成する際に便利なよ
うにホスト1上に設けたもので、項目として、バンド番
号、バンド高さ、イメージパターンを繰り返す場合のバ
ンド番号欄の3つが設けられている。
【0301】次に、ステップS398では、変数nにバ
ンド総数に1を加算した値をセットする。そして、ステ
ップS399でバンド番号を示す変数npに1をセット
し、ステップS400で変数npが変数nより小さいか
チェックし、NOなら1ページの全てのバンド処理が終
了したことを意味するので、ステップS401で変数m
pに1を加算してステップS384の直前に戻り、次の
ページのバンド出力処理に移る。
【0302】ステップS400でYESなら、ステップ
S402でバンド開始コマンド81をプリンタ2へ転送
し、ステップS403でバンド高さコマンド82を転送
し、ステップS404で繰り返しバンド番号コマンド8
3を転送する。このバンドがイメージの繰り返しでなけ
れば−1をセット、転送する。
【0303】そして、ステップS405で蓄積したアプ
リからの印字指示からnpバンド目に含まれる文字印字
指示をピックアップし、ステップS406で変数sにピ
ックアップした文字数に1を加算した値をセットして、
ステップS407で変数spヘ1をセットする。
【0304】なお、ステップS405でピックアップす
る文字印字指示は、npバンド目に文字の一部でもかか
っているものはすべてピックアップする。よって、文字
の印字位置によっては、ふたつのバンドにまたがる場合
がある。
【0305】次に、図49のステップS408で変数s
pが変数sより小さいかチェックし、NOならnpバン
ド目に含まれる文字データの転送処理は全て済んだこと
になるので、図50のステップS409以降でnpバン
ド目のイメージデータの転送処理に移る。そして、ステ
ップS409でこのバンドが繰り返しのバンドかチェッ
クし、YESならこれ以上何もせずステップS417に
移る。
【0306】ステップS409でNOならば、ステップ
S410ではホスト上のフレームバッファから、npバ
ンド目の位置と大きさのイメージを切り出し、ステップ
S411で空白のバンドかチェックし、YESなら何も
せずステップS417に移る。
【0307】ステップS411でNOなら、ステップS
412でイメージが実際に含まれる矩形領域を単一のブ
ロックとして切り出し、ステップS413でこのブロッ
クを転送したと仮定すると、1ページのデータ量が受信
バッファの大きさをオーバーしそうかチェックし、NO
ならば先ずステップS415でブロックの貼り付け位置
を示す位置移動コマンド33をプリンタ2へ転送し、ス
テップS416で種別5のコマンド列、つまりイメージ
ブロックコマンド45,46,47,48をプリンタ2
へ転送する。当然ながら、イメージブロックデータはデ
ータ圧縮されて転送される。
【0308】そして、ステップS417で変数npに1
を加算し、図48のステップS400の直前に戻り、次
のバンドの転送処理に移る。
【0309】ステップS413でYESなら、ステップ
S414でページクリアコマンド93を転送して、この
ページの排紙を取り消してからステップS426へ飛ん
で、このページの「簡易同期式」での出力に再挑戦す
る。
【0310】図49のステップS408でYESの場合
は、ステップS418でsp番目の文字はこの文書で初
めて現れる文字の印字の指示かチェックし、初めてなら
ばステップS419で印字位置を示す位置移動コマンド
33をプリンタ2へ転送し、ステップS420でプリン
タ2側が登録可能な文字数の限界に達したかチェック
し、限界に達したならステップS422で種別3のコマ
ンド列、つまり文字イメージ印字のみのコマンド43,
44をプリンタ2へ転送して、ステップS425へ移
る。
【0311】ステップS420で限界に達していないと
わかれば、ステップS421で種別2のコマンド列、つ
まり文字登録+印字コマンド41,42,43,44を
プリンタ2へ転送してからステップS425へ移る。当
然ながら、プリンタ2へ転送される一文字のドットイメ
ージは、データ圧縮されて転送される。
【0312】ステップS418でNOならば、この文字
の印字の指示が文書の中で二度目以降の指示であること
を示しているので、ステップS423で印字位置を示す
位置移動命令33をプリンタ2へ転送し、次に、ステッ
プS424で種別4のコマンド列、つまり文字コード印
字コマンド41,42をプリンタ2へ転送する。
【0313】そして、ステップS425で変数spに1
を加算してステップS408の直前に戻り、次の文字デ
ータのプリンタ2への転送処理を行なう。
【0314】(プリンタドライバ:簡易同期式)次に、
図50のステップS426以降の「簡易同期式」による
ページ出力について説明する。
【0315】先ず、ステップS426ではページ種別が
Bのコマンド92をプリンタ2へ転送し、ステップS4
27で蓄積した文字印字指示にしたがってフレームバッ
ファ上に全文字をOR書きし、ステップS428でフレ
ームバッファの先頭からイメージデータの圧縮作業を開
始する。
【0316】そして、ステップS429で圧縮したデー
タが1MBを越えたかチェックし、NOならステップS
430で1ページ全ての圧縮作業が完了したかチェック
し、ここでもNOならステップS431でデータ圧縮作
業を続行し、ステップS429の直前に戻り、ループを
形成する。つまり、圧縮作業が1ページ分終わるか、圧
縮データが1MBを超えるまで待つ。
【0317】ステップS429あるいはステップS43
0でYESなら、図51のステップS432へ移り、ま
ずバンド開始コマンド81をプリンタ2へ転送し、ステ
ップS433でバンド高さコマンド82をプリンタ2へ
転送し、ステップS434で繰り返しバンド番号コマン
ド83をプリンタ2へ転送する。なお、ここではバンド
の繰り返しがないものとして、番号に−1をセットして
転送する。
【0318】次に、ステップS435では位置移動コマ
ンド33を転送し、ステップS436では種別5のコマ
ンド列、つまりイメージブロックコマンド45,46,
47,48をプリンタ2へ転送する。
【0319】そして、ステップS437でフレームバッ
ファ上にまだ転送していない残りのイメージがあるかチ
ェックし、残りがないならステップS438で変数mp
に1を加算して、ステップS384の直前に戻り、次の
ページのバンド処理を開始する。
【0320】ステップS437でYES、つまり残りが
あるなら、ステップS439ヘ移り、フレームバッファ
上の残りのイメージのイメージデータ圧縮作業を開始
し、ステップS440で圧縮したデータが100KBを
越えたかチェックし、NOならステップS441で1ペ
ージ全ての圧縮作業が完了したかチェックし、ここでも
NOならステップS442でデータ圧縮作業を続行し、
ステップS440の直前に戻り、ループを形成する。つ
まり、圧縮作業が1ページ分終わるか、圧縮データが1
00KBを超えるまで待つ。
【0321】ステップS440、あるいはステップS4
41でYESなら、ステップS432の直前に戻り、バ
ンドデータのプリンタ2への転送処理を行なう。
【0322】(受信部6)図52,図53は、受信部6
の動作を説明するためのフローチャートである。もちろ
ん、受信部6はハードウェアの回路であって、通常のプ
ログラムとは異なるが、動作の順序をフローチャートで
説明する。
【0323】第1の実施の形態の図11,図12で説明
した受信部は、ジョブ開始31からジョブ終了36まで
を一単位として連続的に受信した。途中にページ開始コ
マンド32があっても、受信プログラム51へ知らせは
するが、途中で受信を中断することなくジョブ終了まで
一気に受信した。
【0324】しかし、ページ毎に「合成方式」で出力す
るか、あるいは「簡易同期式」で出力するか異なること
も考えられるので、ページ開始コマンド32が届いた時
点で受信管理プログラム51からの指示を待つ。
【0325】受信プログラム51は、出力方式が変わる
のであれば、受信済みのページが全て排出されるのを待
って、RAM9上のメモリマップを「合成方式」用メモ
リマップか、「簡易同期式」用メモリマップかに変更し
て、そのあとで新しい受信データの書き込み位置と、限
界値の指示を受信部6へ行なってページデータの受信を
開始させる。つまり、出力方式が変わる場合は、一旦受
信バッファが空になる。
【0326】なお、出力方式が変わらない場合は、受信
済みページの排紙を待つ必要はない。つまり、受信バッ
ファ10が一旦空になるまで待つ必要はない。ページデ
ータは連続的に受信できる。しかし、この場合も、受信
部6は受信管理プログラム51の受信データの書き込み
位置と限界値の指示を待ってから次のページの受信を開
始する。
【0327】受信部6は、プリンタ2の電源オンと同時
に動作を開始するが、先ずステップS451で受信部6
の動作状態を「ホスト1からのデータの受信は可能だ
が、受信したデータは全て受け捨てる」状態とする。
【0328】そして、ステップS452で、ユーザがプ
リンタ2の電源をオフしたかチェックし、YESなら受
信部6の動作を終了する。NOならステップS453で
受信したデータからページ開始コマンド32を検知した
かチェックし、NOならステップS452の直前に戻
り、ホスト1からのページ開始コマンド32を待ち受け
る。
【0329】ステップS453でYESならステップS
454で一旦受信を停止し、ステップS455でページ
開始コマンド32を検知したことと、ページ種別A91
か、ページ種別B92の区別を、受信管理プログラム5
1へ知らせる。受信を一旦停止するとは、プリンタ2が
ビジー状態でホスト1からのデータの受信を拒否してい
る状態である。
【0330】次に、ステップS456で受信管理プログ
ラム51から受信バッファ10への書き込み開始位置
と、限界値の指示があるまで待ち、指示があったなら、
ステップS457でホスト1からの受信を行ない、受信
したデータは受信バッファ10上に書込む動作を開始
し、続行する。
【0331】そして、ステップS458でジョブ終了コ
マンドを検知したかチェックし、YESならステップS
459で受信を一旦停止し、ステップS460で受信管
理プログラム51へジョブ終了を検知したこと、及び、
受信バッファ10への書き込み終了位置を知らせた後、
ステップS451の直前に戻り、次のページデータの受
信を待つ。
【0332】ステップS458でNOなら、図53のス
テップS461で受信データの書き込みが限界値に達し
たかチェックし、YESならステップS462で受信を
一旦停止し、ステップS463で受信管理プログラム5
1に限界値に達したことを知らせる。
【0333】そして、ステップS464で受信管理プロ
グラム51から新しい書き込み位置、新しい限界値の指
示があったかチェックし、NOならばステップS465
で受信管理プログラム51から書き込み終了の指示があ
ったかチェックし、ここでもNOならステップS464
の直前に戻ってループを形成し、どちらかの指示がある
まで待つ。
【0334】ステップS465でYESなら、このペー
ジデータの受信はもう必要ないことを示しているので、
ステップS451の直前に戻って次のページデータの受
信を待つ。
【0335】ステップS464でYESなら、ステップ
S457の直前に戻って、以後新しく指示された書き込
み位置、限界値のもとで、受信を再開する。
【0336】ステップS461でNOならば、ステップ
S466でページクリアコマンドを検知したかチェック
し、YESならステップS467で受信管理プログラム
51へページクリアコマンド93の検知を知らせる。そ
して、ステップS451の直前に戻って、次のページデ
ータの受信を待つ。
【0337】ステップS466でNOならば、ステップ
S468でページ開始コマンド32を検知したかチェッ
クし、NOならステップS457へ戻り、ページデータ
の受信を続行する。ステップS468でYESならステ
ップS469で受信を一旦停止し、ステップS470で
ページ開始コマンド32を検知したことと、ページ種別
A91か、ページ種別B92の区別を受信処理プログラ
ム51へ知らせてから、ステップS465の直前に戻
り、受信管理プログラム51からの書き込み位置、限界
値の指示を待つ。そして、指示がきたなら受信バッファ
10への受信データの書き込みが開始される。
【0338】(受信管理プログラム)図54,図55,
図56は、受信管理プログラム51の動作を説明するた
めのフローチャートである。前述の受信部6の説明にも
関連するが、受信管理プログラム51は、ページ単位の
管理を行なっており、受信部6からページ開始コマンド
32検知の知らせがあるたびに、受信バッファ10への
書き込み位置と、限界値を受信部6へ指示して、受信デ
ータの書き込みを開始させる。
【0339】また、ページ毎に「合成方式」の出力か、
「簡易同期式」の出力かチェックして、必要があればR
AM9のメモリマップを「合成方式」用メモリマップ
か、「簡易同期式」のメモリマップか、ページ毎に切り
替える。
【0340】受信管理プログラム51は、プリンタ2の
電源オンと同時に起動するが、先ずステップS481で
変数memに0をセットし、ステップS482でユーザ
がプリンタ2を電源オフしたかチェックし、YESなら
このプログラムの処理を終了する。NOならステップS
483で受信部6からページ開始コマンドを検知したと
の知らせが来たかチェックし、NOならステップS48
2の直前に戻りループを形成して、受信部6からのペー
ジ開始の知らせが来るまで待つ。
【0341】ステップS483でYESなら、ステップ
S484でそのページの種別コマンドがページ種別A9
1かチェックし、YESならステップS485で変数m
em_newに1をセットし、NOならステップS48
6で変数mem_newに2をセットした後、ステップ
S487に移って変数memが変数mem_newと一
致しているかチェックする。
【0342】ステップS487でYESなら、それは前
のページも「合成方式」で出力し、今度のページも「合
成方式」で出力するか、あるいは、前のページも「簡易
同期式」で出力し、今度のページも「簡易同期式」で出
力するか、いずれにしてもRAM9上のメモリマップに
変更のない状態であって、図55のステップS495へ
飛んで本来の受信処理を開始する。
【0343】ステップS487でNOなら、それは前の
ページと今度のページで出力方式が異なり、ステップS
488以降で先ずRAM9のメモリマップを「合成方
式」用か「簡易同期式」用か、いずれかに変更してから
図55のステップS495へ飛び、本来の受信処理を開
始する。
【0344】その場合、先ずステップS488で受信が
完了したページのデータの残りが受信バッファ10上に
まだ残っているかチェックし、残っているならその残り
ページが解析プログラム52によって全て排紙されるま
でループを形成して待つ。
【0345】受信済みのページデータが受信バッファ1
0からなくなったことを確認したら、ステップS489
で変数mem_enwが1かチェックし、YESならス
テップS490で「合成方式」用としてRAM9上に受
信バッファ10、バンドメモリ71,72、ページ管理
表13、登録文字管理表14、登録文字データ領域15
を設け、それぞれをクリアする。ここで言うクリアとは
必ずしも0クリアをさしてはいない。初期化すると言う
意味である。そして、ステップS491で変数memに
1をセットしてステップS494に飛ぶ。
【0346】ステップS489でNOの場合は、ステッ
プS492で「簡易同期式」用として、RAM9上に受
信バッファ10、ページ管理表13だけを設け、それぞ
れクリアする。そして、ステップS493で変数mem
に2をセットして、ステップS494へ飛ぶ。
【0347】ステップS494では、新しい書き込み位
置は、受信バッファ10の先頭位置、新しい限界値は受
信バッファ10の最後部として、受信部6に対して指示
を行なう。そして、図55のステップS495に飛ぶ。
【0348】次に、図55のステップS495では、ペ
ージ管理表13に、これから受信を開始するページデー
タの受信バッファ10上の開始アドレスをセットし、ス
テップS496で受信部6に書き込み位置と書き込みの
限界値を知らせ、次にステップS497で0.2秒待
つ。この待っている間は、受信部6により受信バッファ
10への受信データの書き込みが進んでいるはずであ
る。
【0349】そして、ステップS498で受信部6から
受信管理プログラム51に対して、何らかの知らせが届
いていないかチェックし、届いていないのであればステ
ップS497の直前に戻り、ループを形成して受信部6
からの知らせを待つ。
【0350】ステップS498で受信部6からの知らせ
が届いたと判断できたのであれば、ステップS499以
降でその知らせの種類に応じて各種の処理を行なう。
【0351】先ず、ステップS449では、受信部6か
らの知らせがページ開始コマンド32を検知したものか
チェックし、YESならステップS500で受信中の前
のページがあったかチェックし、なければそのままステ
ップS484の直前に戻り、新しいページの受信作業に
入る。ステップS500でYESなら、ステップS50
1で受信中であった前のページの終了アドレスをページ
管理表13にセットしてから、ステップS484の直前
に戻り、新しいページの受信作業に入る。
【0352】ステップS499でNOなら、ステップS
502で受信部6からの知らせがページクリアコマンド
を検知したものであるかチェックし、YESならステッ
プS503で受信中だったページをページ管理表13か
らクリアする。そして、ステップS482の直前に戻
り、次のページ開始の知らせを待つ。
【0353】ステップS504でNOならば、受信部6
からの知らせが受信バッファ10への受信データの書き
込みが限界に達したことを意味するので、先ず、ステッ
プS506でページ管理表をチェックして受信バッファ
10に受信データの書き込み可能な空きがあるか調べ
る。
【0354】空きがあるなら、新しい限界値が設定可能
なので、ステップS496へ飛んで、受信部6に対して
新しい書き込み位置と新しい限界値を知らせて、受信作
業を続行する。ステップS506で空きがないとわかっ
たら、ステップS507で受信バッファ10には現在受
信中のページデータしか存在しなくて、受信バッファ1
0全てに書込んでもまだそのページのデータが続く状況
にあるのかチェックし、つまり、1ページのデータが大
きすぎるのかチェックし、大きすぎるわけではないので
あれば、ステップS508で1秒待つ。
【0355】この待っている間は、解析プログラム52
による受信完了済みのページデータの排紙作業と、排紙
済みのページデータの受信バッファ10上からのクリア
を待つ。ステップS508の後は、ステップS506の
直前に戻ってループを形成して、とにかく、解析プログ
ラム52の解析処理、排紙処理の進行を待つ。
【0356】ステップS507で、1ページデータが大
きすぎると判断できたなら、図56のステップS509
で変数memが1かチェックする。変数memが1な
ら、現在のRAM9上のメモリマップは、「合成方式」
であることを示しており、「合成方式」では、大きすぎ
る1ページデータ、つまり巨大ページの出力は不可能な
ので、ステップS515以降で受信中止処理に移る。
【0357】ステップS509でNOの場合は、ステッ
プS510以降で解析プログラム52と共同で、巨大ペ
ージの「簡易同期式」での排紙出力処理に移る。
【0358】先ず、ステップS510でページ管理表1
3に大きなページであることを示す印をつけ、ステップ
S511で解析プログラム52に巨大ページを受信中で
あることを知らせ、また、受信バッファ10上への最後
の書き込み位置を知らせる。
【0359】そして、ステップS512でループを形成
して、解析プログラム52からの知らせを待つ。解析プ
ログラム52からの知らせの中身は、受信済みイメージ
ブロックをエンジンにビデオ転送したので、その空いた
場所に、次のイメージブロックの受信を催促する知らせ
か、あるいは、紙ジャムエラーが発生した知らせか、あ
るいは、エンジンへのビデオ転送にイメージブロックの
受信が追いつかない状態になった「オーバーランエラ
ー」が発生した知らせかの3つのうちひとつである。
【0360】解析プログラム52からの知らせがあった
ならステップS513へ飛んで、知らせの中身がエラー
かどうかチェックし、NOなら、つまりエラーでなくて
次のイメージブロックの受信の催促なら、ステップS5
14でページ管理表13のページ開始アドレスを修正し
た後で、ステップS496の直前に戻り、巨大ページの
イメージブロックの受信を続行する。
【0361】ステップS509でYESの場合、あるい
はステップS513でYESの場合は、ページデータ受
信の中止処理に入るが、先ずステップS515で受信部
6に書き込み終了の指示をし、ステップS516で受信
中だったページをページ管理表13上からクリアし、ス
テップS517でRAM9上の各バッファ、ワーク領域
等をクリアする。「合成方式」であるなら、バンドメモ
リや、登録文字管理表14、登録文字データ領域15の
クリアを含む。
【0362】ステップS517の後は、ステップS48
2の直前に戻り、次のページ開始の知らせを待つ。
【0363】(解析プログラム)図57,図58は、解
析プログラム52の動作を説明するためのプログラムで
ある。第3の実施の形態の図40〜図43で説明した解
析プログラム52の動作の先頭部分に、ステップS52
1以降の処理を追加した形になっている。
【0364】図57,図58では、追加した部分だけを
説明する。その他の部分は、図40〜図43と同様であ
るので、説明は省略する。
【0365】解析プログラム52は、プリンタ2の電源
オンと同時に動作を開始するが、先ず、ステップS32
1でユーザによってプリンタ2が電源オフされたかチェ
ックし、YESならこのプログラムの動作を終了する。
【0366】ステップS321でNOなら、ステップS
322で受信済みのページデータが受信バッファ10上
にあるかチェックし、あるなら図40のステップS32
3以降の処理に進む。
【0367】ステップS322でNOなら、ステップS
521で受信管理プログラム51から受信バッファ10
に蓄えるには大きすぎるページがあるとの知らせがあっ
たかチェックし、NOならステップS321の直前に戻
りループを形成してページデータの受信完了を待つ。
【0368】ステップS521でYESなら、ステップ
S522以降で受信バッファ10に収まりきらない巨大
なページデータの「簡易同期式」での出力作業に移る。
【0369】ステップS522では、エンジン部4に対
して、給紙開始の指示を送り、ステップS523でエン
ジン部4が用紙なしを検知したかチェックし、用紙が無
いならステップS524でループを形成して、ユーザが
用紙をセットするまで待つ。用紙がセットされたか、あ
るいは、ステップS523でNOなら、ステップS52
5でこのページの先頭バンドに所属する単一イメージブ
ロックの圧縮イメージデータの伸長作業と、エンジン部
4へのビデオ転送作業をイメージ伸長・ビデオ転送回路
73に対して指示する。
【0370】そして、ステップS526でビデオ転送作
業が終了したかチェックし、YESなら、ステップS5
27で受信管理プログラム51に対してビデオ転送作業
が終了したので、受信バッファ10上に空きができたこ
とを知らせる。つまり、後述するバンド群のデータの受
信を催促する。
【0371】次に、ステップS528で1ページ全ての
ビデオ送信作業が完了したかチェックし、YESならス
テップS529でページ管理表13上の排紙済みページ
をクリアし、ステップS321の直前に戻り、次のペー
ジの解析処理に移る。
【0372】ステップS528でNOならば、ステップ
S530で次の受信済みバンドが受信バッファ10に存
在するかチェックし、YESならステップS531でイ
メージ伸長・ビデオ転送回路73に対して転送を完了し
たバンドの次のバンドに所属する単一イメージブロック
の圧縮イメージデータの伸長作業と、エンジン部4への
ビデオ転送作業を指示する。そしてステップS526の
直前に戻って、ビデオ転送の完了を待つ。
【0373】ステップS530でNOの場合は、1ペー
ジ分のビデオ転送が完了したわけではなく、しかも、次
のバンドのデータはまだ受信完了していないと言うこと
で、ステップS532でプリンタ2に「オーバーランエ
ラー発生」のパネル表示を行い、ステップS535へ飛
んでエラー処理を実行する。
【0374】ステップS526でNOの場合は、ステッ
プS533で紙ジャム、つまりエンジン部4で紙詰まり
が発生したかチェックし、NOならばステップS526
の直前に戻ってループを形成して、ビデオ転送の終了を
待つ。
【0375】ステップS533でYESなら、ステップ
S534で「紙詰りが発生しました」とパネル表示を
し、ステップS535では、受信管理プログラム51に
「エラー発生」を知らせる。この知らせるべき「エラ
ー」の種類としては、「紙ジャムエラー」及び「オーバ
ーランエラー」が含まれる。
【0376】そして、ステップS536でユーザが詰ま
った紙を取り除くまでチェックを繰り返し、その後、ス
テップS321の直前まで戻って、次のページの解析に
移る。
【0377】もちろん、ステップS532で「オーバー
ランエラー」が発生した時は、紙が詰まったわけではな
いので、ステップS536でのチェックは素通りする。
なお、「オーバーラン」発生時は、オーバーランの発生
したバンド位置以下の部分が白いままのページが排紙出
力される。 <第4の実施の形態特有の効果> (1)本実施の形態では、第3の実施の形態の「合成方
式」による出力と、「簡易同期式」による出力とをプリ
ンタドライバで自動判断して切り換えるので、ユーザは
特に切り替えの操作が不要である。 (2)(1)の前提の上で、文字を主体とした文書ペー
ジは、「合成方式」によって文字はほとんどコードで出
力できるので、すばやく排紙出力できる。 (3)(1)の前提の上で、写真等のイメージを主体と
した文書ページは、受信バッファ10の大きさを超える
ページデータでも、「簡易同期式」によって容量限界を
超えて排紙出力できる。 [第5の実施の形態]第5の実施の形態として、第1〜
第4の実施の形態において説明した、ホストのドライバ
において、文字とその他の画像とを区別して、文字は文
字コードで、その他はビットマップ画像データでプリン
タに送信するという方式と、従来の、すべての印刷デー
タをビットマップ画像データでプリンタに送信するとい
う方式とを組み合わせた方式を本実施の形態で説明す
る。
【0378】図61,62は、本実施の形態のプリンタ
ドライバのフローチャートである。なお、このドライバ
が制御できるプリンタは、第1の実施の形態において説
明したプリンタである。
【0379】プリンタドライバは、ユーザが用いるアプ
リケーションソフトで作成した文書データから図20で
説明した文字やイメージのプリンタコマンドを作成、プ
リンタ2へ転送する。ユーザがアプリケーションソフト
から文書の印刷を指示すると、ホスト1内でプリンタド
ライバが起動される。
【0380】図示されてはいないが、ドライバは起動時
にはホスト1のメモリ上に1ページ分の大きさのイメー
ジ展開領域としてのフレームバッファを確保し、同時に
フレームバッファをクリアする。また、ドライバの文書
印刷処理の終了時には、フレームバッファとして使われ
ていたメモリ領域は開放される。
【0381】処理としては、まずステップS6101で
ジョブ開始コマンド31をプリンタ2へ転送し、次にス
テップ6102で変数mに印刷しようとしている文書の
ページ数に1を加算した値をセットし、ステップS61
03で、処理中のページ番号を示す変数mpに1をセッ
トする。そして、ステップS6104で変数mpが変数
mより小さいかチェックし、NOなら文書の全てのペー
ジ数の処理が終わったので、ステップS172でジョブ
終了コマンドを転送して、ドライバの処理を終了する。
【0382】ステップS6104でYESなら、ステッ
プS6105でページ開始コマンド32をプリンタ2へ
転送し、ステップS6106でmpページ目のアプリケ
ーションからの文字印字指示を蓄積し、ステップS61
07で、蓄積された文字印字指示の数を、別途定義され
た所定値pと比較する。もし文字印字指示の数が所定数
pよりも大きいならば、ステップS6108に進んで、
蓄積された文字印字指示に基づいて、そのページに出現
した文字については、文字登録及び文字コードにより、
その他はビットマップ画像データとしてプリンタへと送
信する。文字印字指示の数が所定数pよりも小さい場合
には、ステップS6121に進み、そのページの描画指
示を文字も含めてすべてビットマップ画像データに展開
する。その後、後述するステップS6122に進んでプ
リンタへと展開されたイメージの送信を行う。
【0383】ステップS6108では、mpページ目の
アプリケーションからの文字印字指示以外の描画指示を
ホスト1上のフレームバッファに展開する。ここで文字
印字指示以外の描画指示とは、罫線や図形描画、イメー
ジの貼り付け等である。
【0384】次に、ステップS6109で、変数sに蓄
積された文字数に1を加算した値をセットして、ステッ
プS6110で、処理中の文字が1つのバンドにおいて
何番目であるか示す変数spヘ1をセットする。
【0385】次にステップS6111で変数spが変数
sより小さいかチェックし、NOならmpページ目に含
まれる文字データの転送処理は全て済んだことになるの
で、ステップS6122以降でnpバンド目のイメージ
データの転送処理に移る。つまり、ステップS6122
では、空白のページかチェックし、YESなら何もせず
ステップS6126に移る。
【0386】ステップS6122でNOなら、ステップ
S6123でイメージが実際に含まれる矩形領域を、単
一のブロックとして切り出し、ステップS6124でブ
ロックの貼り付け位置を示す位置移動コマンド33をプ
リンタ2へ転送し、ステップS6125で種別5に対応
するコマンド、つまりイメージブロックコマンド45,
46,47,48をプリンタ2へ転送する。当然なが
ら、イメージブロックデータはデータ圧縮されて転送さ
れる。
【0387】そして、ステップS6126で処理中のペ
ージ番号を示す変数mpに1を加算し、ステップS61
04の直前に戻り、次のページの転送処理に移る。
【0388】ステップS6111でYESの場合は、ス
テップS6116でsp番目の文字はこの文書で初めて
現れる文字の印字の指示かチェックし、初めてならばス
テップS6117でその文字の印字位置を示す位置移動
コマンド33をプリンタ2へ転送し、ステップS611
4で、プリンタ2側が登録可能な文字数の限界に達した
かチェックし、限界に達したならステップS6119で
種別3に対応するコマンド、つまり、sp番目の文字の
文字イメージ印字のみのコマンド43,44をプリンタ
2へ転送して、ステップS6115へ移る。
【0389】ステップS6117で限界に達していない
と分かれば、ステップS6118で種別2に対応するコ
マンド、つまり文字登録+印字コマンド41,42,4
3,44をプリンタ2へ転送してからステップS611
4ヘ移る。当然ながら、プリンタ2へ転送される一文字
のドットイメージは、データ圧縮されて転送される。
【0390】ステップS6112でNOならば、この文
字の印字の指示が文書の中で二度目以降の指示であるこ
とを示しているので、ステップS6113でその文字の
印字位置を示す位置移動命令33をプリンタ2へ転送
し、次にステップS6114で、その文字についての種
別コマンド34が4、つまり文字コード印字コマンド4
1,42をプリンタ2へ転送する。
【0391】そして、ステップS6115で何番目の文
字かを示す変数spに1を加算してステップS6111
の直前に戻り、次の文字データのプリンタ2への転送処
理を行なう。
【0392】以上の手順により、1ページに含まれる文
字数が所定数以上であれば文字とその他のデータとを区
別して、文字を文字登録と文字コードとでプリンタに送
信してプリンタにおいてイメージに展開させ、1ページ
に含まれる文字数が所定数より小さければ、文字も含め
てそのページの画像データを全てビットマップ画像に展
開してプリンタに送り付ける。こうすることで、わずか
の数の文字が含まれている場合に、その文字について、
ドライバで文字を抽出して文字登録及び文字を除いてイ
メージへの展開を行うことと、プリンタにおいて文字を
イメージに展開するという、双方における処理のオーバ
ーヘッドを小さくすることができる。
【0393】また、上述の第1〜第4の実施形態におけ
るプリンタは、従来のすべての印刷データをイメージと
してホストコンピュータから受信した場合でも対応でき
るため、本実施形態のように、両方式が混在していても
特別にプリンタ側の処理手順を変更する必要がない。
【0394】上記手順は1ページを単位とする場合に行
われる手順であるが、第2の実施の形態におけるよう
に、バンド単位でホストコンピュータからプリンタへと
印刷データが送信される場合であっても、上述の要領で
データ転送の方式を変更することができる。
【0395】図63は、この方式に係るプリンタドライ
バによる制御手順の一部である。なお、このプリンタド
ライバにより送信されるデータを適正に処理できるプリ
ンタは、第2の実施の形態に記載されたプリンタであ
る。
【0396】このドライバの手順は、そのほとんどが第
2の実施形態におけるドライバのフローチャートである
図22〜24と共通であるため、共通な部分については
図22〜24と同一の符号を付し、説明を省略する。第
2の実施形態とことなるのは、図63のステップS14
6とステップS147との間に、ステップS6301〜
ステップS6302が挿入されているという点である。
【0397】ステップS6301では、蓄積された文字
印字指示の数を、別途定義された所定値pと比較する。
もし文字印字指示の数が所定数pよりも大きいならば、
ステップS147に進んで、それ以降の処理により、蓄
積された文字印字指示に基づいて、そのページに出現し
た文字については、文字登録及び文字コードにより、そ
の他はビットマップ画像データとしてプリンタへと送信
する。文字印字指示の数が所定数pよりも小さい場合に
は、ステップS6302に進み、そのページの描画指示
を文字も含めてすべてビットマップ画像データに展開す
る。その後、ステップS158に進んでプリンタへと展
開されたイメージの送信を行う。
【0398】以上のようにプリンタドライバが処理を行
うことで、1ページに含まれる文字数が所定数以上であ
れば文字とその他のデータとを区別して、文字を文字登
録と文字コードとでプリンタに送信してプリンタにおい
てイメージに展開させ、1ページに含まれる文字数が所
定数より小さければ、文字も含めてそのページの画像デ
ータを全てビットマップ画像に展開してプリンタに送り
付ける。こうすることで、わずかの数の文字が含まれて
いる場合に、その文字について、ドライバで文字を抽出
して文字登録及び文字を除いてイメージへの展開を行う
ことと、プリンタにおいて文字をイメージに展開すると
いう、双方における処理のオーバーヘッドを小さくする
ことができる。
【0399】なお、図63の手順では、1ページ含まれ
る文字数を所定の数と比較しているが、1つのバンドご
とにそれに含まれる文字数を所定の数と比較し、1ペー
ジに含まれる文字数が所定数以上であれば、文字は文字
コードとして、その他はイメージとしてそのバンドをプ
リンタに送信、そうでなければそのバンドのすべての印
刷データおイメージとしてプリンタに送信する。
【0400】そのためには、図64に示すように、第2
の実施形態の図23におけるステップS154とステッ
プS155との間にステップS6401,S6402を
挿入する。ステップS6401においては、ピックアッ
プされたnpバンド目の文字印字指示の数を所定数p’
と比較し、文字の数の方が多ければステップS155に
進み、そうでなければ、ステップS6402において、
そのバンドの印刷データを全てイメージに展開し、ステ
ップS148で展開されたフレームバッファ上のイメー
ジと合成してステップS158に分岐することになる。
こうすることで、バンド単位で本発明に係る印刷制御方
式と従来の印刷制御方式とを切り替えることができる。
【0401】
【他の実施形態】なお、本発明は、複数の機器(例えば
ホストコンピュータ,インタフェイス機器,リーダ,プ
リンタなど)から構成されるシステムに適用しても、一
つの機器からなる装置(例えば、複写機,ファクシミリ
装置など)に適用してもよい。
【0402】また、本発明の目的は、前述した実施形態
の機能を実現するソフトウェアのプログラムコードを記
録した記憶媒体を、ホストあるいはプリンタに供給し、
そのホストあるいはプリンタのCPUやMPUが記憶媒
体に格納されたプログラムコードを読出し実行すること
によっても達成される。
【0403】この場合、記憶媒体から読出されたプログ
ラムコード自体が前述した実施形態の機能を実現するこ
とになり、そのプログラムコードを記憶した記憶媒体は
本発明を構成する。
【0404】プログラムコードを供給するための記憶媒
体としては、例えば、フロッピディスク,ハードディス
ク,光ディスク,光磁気ディスク,CD−ROM,CD
−R,磁気テープ,不揮発性のメモリカード,ROMな
どを用いることができる。
【0405】また、コンピュータが読出したプログラム
コードを実行することにより、前述した実施形態の機能
が実現されるだけでなく、そのプログラムコードの指示
に基づき、コンピュータ上で稼働しているOS(オペレ
ーティングシステム)などが実際の処理の一部または全
部を行い、その処理によって前述した実施形態の機能が
実現される場合も含まれる。
【0406】さらに、記憶媒体から読出されたプログラ
ムコードが、コンピュータに挿入された機能拡張ボード
やコンピュータに接続された機能拡張ユニットに備わる
メモリに書込まれた後、そのプログラムコードの指示に
基づき、その機能拡張ボードや機能拡張ユニットに備わ
るCPUなどが実際の処理の一部または全部を行い、そ
の処理によって前述した実施形態の機能が実現される場
合も含まれる。
【0407】
【発明の効果】以上説明したように、本発明によれば、
文字部分については、ほとんど文字コードによる処理な
ので、ホスト上では文字展開時間がそれほどいらない
し、データ量も小さいので文書データの高速出力ができ
るという効果がある。
【0408】また、フレームメモリの代わりにバンドメ
モリを備えることで、必要とするメモリ容量を小さく押
さえられるという効果がある。
【0409】また、バンド内で実際にイメージが含まれ
る矩形部分だけをイメージデータとして扱い、イメージ
を全く含まないバンドはイメージデータをプリンタに送
らないことで、イメージデータの転送量を小さく抑えら
れるという効果がある。
【0410】また、文字を含まないイメージだけのバン
ド部分の出力については、ハードウェア回路によって圧
縮イメージデータの伸長作業とエンジンへのビデオ転送
作業を行ない、バンドメモリへの展開作業を省略してプ
リンタのコントローラの負荷を小さくすることで、「オ
ーバーラン」等のエラーを発生しにくくできるという効
果がある。
【0411】また、ホスト上のパターン分析でバンド単
位に同じパターンのあるバンドが存在する場合はそのバ
ンドのイメージデータは以前転送済みのバンドのイメー
ジデータと同一であることを示すコマンドをプリンタへ
転送することで、イメージデータの転送量を小さく抑え
られるという効果がある。
【0412】また、受信バッファにデータが納まる場合
には、文字を文字コードとしてプリンタで展開する方式
で印刷出力するが、データは全てイメージであり、受信
バッファに納まりきらない場合には、イメージを所定の
大きさに区切ってホストから送信し、プリンタでは受信
する都度印刷するような方式に自動切り換えすること
で、巨大なイメージデータを含んだページも出力できる
という効果がある。
【0413】
【図面の簡単な説明】
【図1】第1の実施の形態のシステム全体のブロック構
成図である。
【図2】イメージデータと文字データの合成の原理の説
明図である。
【図3】コマンドの構造の説明図である。
【図4】コマンド列の構造の説明図である。
【図5】ROMに内蔵されたプログラムの図である。
【図6】受信バッファのポインタの説明図である。
【図7】プリンタドライバの動作のフローチャートであ
る。
【図8】プリンタドライバの動作のフローチャートであ
る。
【図9】受信管理プログラムの動作のフローチャートで
ある。
【図10】受信管理プログラムの動作のフローチャート
である。
【図11】受信部の動作のフローチャートである。
【図12】受信部の動作のフローチャートである。
【図13】解析プログラムの動作のフローチャートであ
る。
【図14】解析プログラムの動作のフローチャートであ
る。
【図15】登録プログラムの動作のフローチャートであ
る。
【図16】印字プログラムの動作のフローチャートであ
る。
【図17】排紙プログラムの動作のフローチャートであ
る。
【図18】第2の実施の形態のシステム全体のブロック
構成図である。
【図19】コントローラ部のバンド処理の原理の説明図
である。
【図20】コマンドの構造の説明図である。
【図21】ROMに内蔵されてたプログラムの図であ
る。
【図22】プリンタドライバの動作のフローチャートで
ある。
【図23】プリンタドライバの動作のフローチャートで
ある。
【図24】プリンタドライバの動作のフローチャートで
ある。
【図25】解析プログラムの動作のフローチャートであ
る。
【図26】解析プログラムの動作のフローチャートであ
る。
【図27】解析プログラムの動作のフローチャートであ
る。
【図28】解析プログラムの動作のフローチャートであ
る。
【図29】印字プログラムの動作のフローチャートであ
る。
【図30】バンドのビデオ出力をする際の各変数の説明
図である。
【図31】イメージ伸長・ビデオ転送回路の動作のフロ
ーチャートである。
【図32】イメージ伸長・ビデオ転送回路の動作のフロ
ーチャートである。
【図33】イメージ伸長・ビデオ転送回路の動作のフロ
ーチャートである。
【図34】第3の実施の形態のイメージバンドの繰り返
しの原理の説明図である。
【図35】イメージバンドの繰り返しの例の説明図であ
る。
【図36】コマンドの構造の説明図である。
【図37】プリンタドライバの動作のフローチャートで
ある
【図38】プリンタドライバの動作のフローチャートで
ある
【図39】プリンタドライバの動作のフローチャートで
ある
【図40】解析プログラムの動作のフローチャートであ
る。
【図41】解析プログラムの動作のフローチャートであ
る。
【図42】解析プログラムの動作のフローチャートであ
る。
【図43】解析プログラムの動作のフローチャートであ
る。
【図44】第4の実施の形態のシステム全体のブロック
構成図である。
【図45】コマンドの構造の説明図である。
【図46】ページ管理表の構造の説明図である。
【図47】プリンタドライバの動作のフローチャートで
ある。
【図48】プリンタドライバの動作のフローチャートで
ある。
【図49】プリンタドライバの動作のフローチャートで
ある。
【図50】プリンタドライバの動作のフローチャートで
ある。
【図51】プリンタドライバの動作のフローチャートで
ある。
【図52】受信部の動作のフローチャートである。
【図53】受信部の動作のフローチャートである。
【図54】受信管理プログラムの動作のフローチャート
である
【図55】受信管理プログラムの動作のフローチャート
である
【図56】受信管理プログラムの動作のフローチャート
である
【図57】解析プログラムの動作のフローチャートであ
る。
【図58】解析プログラムの動作のフローチャートであ
る。
【図59】巨大イメージを出力する手順の原理を示す図
である。
【図60】巨大イメージを出力する際のプリンタのよう
すを示す図である。
【図61】第5の実施の形態に係るプリンタドライバの
動作のフローチャートである。
【図62】第5の実施の形態に係るプリンタドライバの
動作のフローチャートである。
【図63】第5の実施の形態に係るプリンタドライバの
動作のフローチャートである。
【図64】第5の実施の形態に係るプリンタドライバの
動作のフローチャートである。
【符号の説明】
1 ホストコンピュータ 2 プリンタ 3 コントローラ 4 エンジン 5,21 CPU 6 受信部 7 ビデオ転送回路 9 RAM 10 受信バッファ 11 フレームバッファ 12 ワーク領域 13 ページ管理表 14 登録文字管理表 15 登録文字データ 16 イメージ伸長回路 17 文字伸長回路 25 ビデオ受信部 26 給紙部 27 現像定着部 28 排紙部
フロントページの続き (72)発明者 池野 俊彦 東京都大田区下丸子3丁目30番2号 キヤ ノン株式会社内 (72)発明者 土肥 純 東京都大田区下丸子3丁目30番2号 キヤ ノン株式会社内

Claims (44)

    【特許請求の範囲】
  1. 【請求項1】 ホスト装置で作成された文書データを印
    刷装置により印刷出力する印刷システムであって、 前記ホスト装置は、 文書データに出現する文字の文字コードと該コードに対
    応する文字イメージとを前記印刷装置に送信する第1の
    送信手段と、 文書データに出現する各文字を文字コードとして、文字
    以外の部分をイメージデータとして前記印刷装置に送信
    する第2の送信手段とを備え、 前記印刷装置は、 前記第1の送信手段により送信される文字コードと文字
    イメージとを登録する登録手段と、 前記第2の送信手段により送信される文字コードを、前
    記登録手段により登録されたコードと文字イメージとに
    基づいてイメージデータに展開し、前記第2の送信手段
    により送信されるイメージと合成するイメージ再生手段
    と、 前記イメージ再生手段により得られるイメージデータを
    印刷出力する手段とを備えることを特徴とする印刷シス
    テム。
  2. 【請求項2】 前記ホスト装置は圧縮手段を更に備え、
    前記文字イメージ及びイメージを圧縮して前記印刷装置
    に送信し、前記印刷装置は伸張手段を更に備え、前記登
    録手段により登録された文字イメージ及び前記第2の送
    信手段により送信されたイメージを伸長することを特徴
    とする請求項1に記載の印刷システム。
  3. 【請求項3】 前記イメージ再生手段は、合成されるイ
    メージを、印刷出力の順序に従って分割されるバンドご
    とに再生し、再生されたバンドごとに印刷出力すること
    を特徴とする請求項1または2に記載の印刷システム。
  4. 【請求項4】 前記第2の送信手段は、イメージをバン
    ドごとに分割して送信することを特徴とする請求項3に
    記載の印刷システム。
  5. 【請求項5】 前記第2の送信手段は、イメージをバン
    ドごとに分割し、空白のバンドについては、空白である
    ことを示すコードを送信することを特徴とする請求項4
    に記載の印刷システム。
  6. 【請求項6】 前記第2の送信手段は、イメージをバン
    ドごとに分割して送信し、既に送信されたバンドと同一
    のデータを有するバンドについては、繰り返しである旨
    を示すコードを送信することを特徴とする請求項4又は
    5に記載の印刷システム。
  7. 【請求項7】 前記ホスト装置は、文書データに含まれ
    るイメージデータの大きさを判定する判定手段と、前記
    印刷装置に格納しきれないと判定した場合には、該イメ
    ージデータを複数の部分に分割して印刷装置に送信する
    第3の送信手段とを更に備え、前記イメージ再生手段
    は、前記第3の送信手段によりデータを受け取った場合
    には、分割された部分ごとにイメージを再生し、印刷出
    力を終えるごとに再生されたイメージを消去することを
    特徴とする請求項1乃至6のいずれかに記載の印刷シス
    テム。
  8. 【請求項8】 前記第1の送信手段は、文書データに出
    現する最初の文字について、その文字コードと文字イメ
    ージとを前記印刷装置に送信することを特徴とする請求
    項1乃至7に記載の印刷システム。
  9. 【請求項9】 前記第2の送信手段は、前記第1の送信
    手段により文字コードとその文字イメージとが送信され
    ている文字について、文字コードを前記印刷装置に送信
    することを特徴とする請求項8に記載の印刷システム。
  10. 【請求項10】 受信した印刷データに基づいて印刷出
    力する印刷装置であって、 受信した文字コードと該コードに対応する文字イメージ
    とを登録する登録手段と、 受信した文字コードを、前記登録手段により登録された
    コードと文字イメージとに基づいてイメージデータに展
    開し、別途受信したイメージと合成するイメージ再生手
    段と、 前記イメージ再生手段により得られるイメージデータを
    印刷出力する手段とを備えることを特徴とする印刷装
    置。
  11. 【請求項11】 伸張手段を更に備え、受信した圧縮イ
    メージデータを伸長することを特徴とする請求項10に
    記載の印刷装置。
  12. 【請求項12】 前記イメージ再生手段は、合成される
    イメージを、印刷出力の順序に従って分割されるバンド
    ごとに再生し、再生されたバンドごとに印刷出力するこ
    とを特徴とする請求項10または11に記載の印刷装
    置。
  13. 【請求項13】 作成した文書データを印刷装置により
    印刷出力させる印刷制御装置であって、 文書データに出現する文字の文字コードと該コードに対
    応する文字イメージとを前記印刷装置に送信する第1の
    送信手段と、 文書データに出現する各文字を文字コードとして、文字
    以外の部分をイメージデータとして前記印刷装置に送信
    する第2の送信手段とを備えることを特徴とする印刷制
    御装置。
  14. 【請求項14】 圧縮手段を更に備え、前記文字イメー
    ジ及びイメージを圧縮して前記印刷装置に送信すること
    を特徴とする請求項13に記載の印刷制御装置。
  15. 【請求項15】 前記第2の送信手段は、イメージをバ
    ンドごとに分割して送信することを特徴とする請求項1
    3または14に記載の印刷制御装置。
  16. 【請求項16】 前記第2の送信手段は、イメージをバ
    ンドごとに分割し、空白のバンドについては、空白であ
    ることを示すコードを送信することを特徴とする請求項
    15に記載の印刷制御装置。
  17. 【請求項17】 前記第2の送信手段は、イメージをバ
    ンドごとに分割して送信し、既に送信されたバンドと同
    一のデータを有するバンドについては、繰り返しである
    旨を示すコードを送信することを特徴とする請求項15
    に記載の印刷制御装置。
  18. 【請求項18】 文書データに含まれるイメージデータ
    の大きさを判定する判定手段と、前記印刷装置に格納し
    きれないと判定した場合には、該イメージデータを複数
    の部分に分割して印刷装置に送信する第3の送信手段と
    を更に備えることを特徴とする請求項13乃至17のい
    ずれかに記載の印刷制御装置。
  19. 【請求項19】 前記第1の送信手段は、文書データに
    出現する最初の文字について、その文字コードと文字イ
    メージとを前記印刷装置に送信することを特徴とする請
    求項13乃至18に記載の印刷制御装置。
  20. 【請求項20】 前記第2の送信手段は、前記第1の送
    信手段により文字コードとその文字イメージとが送信さ
    れている文字について、文字コードを前記印刷装置に送
    信することを特徴とする請求項19に記載の印刷制御装
    置。
  21. 【請求項21】 文書データに出現する文字数が、所定
    サイズの文書データ中に所定数より多く存在するか判定
    する判定手段と、前記所定サイズ分の文書データを全て
    イメージデータとして前記印刷装置に送信する第3の送
    信手段を更に備え、前記判定手段により文字数が所定数
    よりも多いと判定された場合には、前記第1及び第2の
    送信手段により文書データを印刷装置に送信し、そうで
    ない場合には、前記第3の送信手段により文書データを
    印刷装置に送信することを特徴とする請求項13乃至1
    6のいずれかに記載の印刷制御装置。
  22. 【請求項22】 受信した印刷データに基づいて印刷出
    力する印刷制御方法であって、 受信した文字コードと該コードに対応する文字イメージ
    とを登録する登録工程と、 受信した文字コードを、前記登録工程により登録された
    コードと文字イメージとに基づいてイメージデータに展
    開し、別途受信したイメージと合成するイメージ再生工
    程と、 前記イメージ再生工程により得られるイメージデータを
    印刷出力する工程とを備えることを特徴とする印刷制御
    方法。
  23. 【請求項23】 伸張工程を更に備え、受信した圧縮イ
    メージを伸長することを特徴とする請求項22に記載の
    印刷制御方法。
  24. 【請求項24】 前記イメージ再生工程は、合成される
    イメージを、印刷出力の順序に従って分割されるバンド
    ごとに再生し、再生されたバンドごとに印刷出力するこ
    とを特徴とする請求項22または23に記載の印刷制御
    方法。
  25. 【請求項25】 作成した文書データを印刷出力させる
    印刷装置の制御方法であって、 文書データに出現する文字の文字コードと文字イメージ
    とを前記印刷装置に送信する第1の送信工程と、 文書データに出現する各文字を文字コードとして、文字
    以外の部分をイメージデータとして前記印刷装置に送信
    する第2の送信工程とを備えることを特徴とする印刷装
    置の制御方法。
  26. 【請求項26】 圧縮工程を更に備え、前記文字イメー
    ジ及びイメージを圧縮して前記印刷装置に送信すること
    を特徴とする請求項25に記載の印刷装置の制御方法。
  27. 【請求項27】 前記第2の送信工程は、イメージをバ
    ンドごとに分割して送信することを特徴とする請求項2
    5または26に記載の印刷装置の制御方法。
  28. 【請求項28】 前記第2の送信工程は、イメージをバ
    ンドごとに分割し、空白のバンドについては、空白であ
    ることを示すコードを送信することを特徴とする請求項
    26に記載の印刷装置の制御方法。
  29. 【請求項29】 前記第2の送信工程は、イメージをバ
    ンドごとに分割して送信し、既に送信されたバンドと同
    一のデータを有するバンドについては、繰り返しである
    旨を示すコードを送信することを特徴とする請求項27
    に記載の印刷装置の制御方法。
  30. 【請求項30】 文書データに含まれるイメージデータ
    の大きさを判定する判定工程と、前記印刷装置に格納し
    きれないと判定した場合には、該イメージデータを複数
    の部分に分割して印刷装置に送信する第3の送信工程と
    を更に備えることを特徴とする請求項25乃至29のい
    ずれかに記載の印刷装置の制御方法。
  31. 【請求項31】 前記第1の送信工程は、文書データに
    出現する最初の文字について、その文字コードと文字イ
    メージとを前記印刷装置に送信することを特徴とする請
    求項25乃至30に記載の印刷装置。
  32. 【請求項32】 前記第2の送信工程は、前記第1の送
    信手段により文字コードとその文字イメージとが送信さ
    れている文字について、文字コードを前記印刷装置に送
    信することを特徴とする請求項31に記載の印刷装置の
    制御方法。
  33. 【請求項33】 前記第1の送信工程の前に、文書デー
    タに出現する文字数が、所定サイズの文書データ中に所
    定数より多く存在するか判定する判定工程と、前記所定
    サイズ分の文書データを全てイメージデータとして前記
    印刷装置に送信する第3の送信工程を更に備え、前記判
    定工程により文字数が所定数よりも多いと判定された場
    合には、前記第1及び第2の送信工程により文書データ
    を印刷装置に送信し、そうでない場合には、前記第3の
    送信工程により文書データを印刷装置に送信することを
    特徴とする請求項25乃至30のいずれかに記載の印刷
    装置の制御方法。
  34. 【請求項34】 受信した印刷データに基づいて印刷出
    力させるプログラムを格納するコンピュータ可読の記憶
    媒体であって、前記プログラムは、 受信した文字コードと該コードに対応する文字イメージ
    とを登録する登録手段と、 受信した文字コードを、前記登録手段により登録された
    コードと文字イメージとに基づいてイメージデータに展
    開し、別途受信したイメージと合成するイメージ再生手
    段と、 前記イメージ再生手段により得られるイメージデータを
    印刷出力させる手段とを備えることを特徴とする記憶媒
    体。
  35. 【請求項35】 前記プログラムは伸張手段を更に備
    え、受信した圧縮イメージデータを伸長することを特徴
    とする請求項34に記載の記憶媒体。
  36. 【請求項36】 前記イメージ再生手段は、合成される
    イメージを、印刷出力の順序に従って分割されるバンド
    ごとに再生し、再生されたバンドごとに印刷出力するこ
    とを特徴とする請求項34または35に記載の記憶媒
    体。
  37. 【請求項37】 作成した文書データを印刷装置により
    印刷出力させる印刷制御プログラムを格納するコンピュ
    ータ可読の記憶媒体であって、前記プログラムは、 文書データに出現する文字の文字コードと該コードに対
    応する文字イメージとを前記印刷装置に送信する第1の
    送信手段と、 文書データに出現する各文字を文字コードとして、文字
    以外の部分をイメージデータとして前記印刷装置に送信
    する第2の送信手段とを備えることを特徴とする記憶媒
    体。
  38. 【請求項38】 前記プログラムは圧縮手段を更に備
    え、前記プログラムは前記文字イメージ及びイメージを
    圧縮して前記印刷装置に送信することを特徴とする請求
    項37に記載の記憶媒体。
  39. 【請求項39】 前記第2の送信手段は、イメージをバ
    ンドごとに分割して送信することを特徴とする請求項3
    7または38に記載の記憶媒体。
  40. 【請求項40】 前記第2の送信手段は、イメージをバ
    ンドごとに分割し、空白のバンドについては、空白であ
    ることを示すコードを送信することを特徴とする請求項
    39に記載の記憶媒体。
  41. 【請求項41】 前記第2の送信手段は、イメージをバ
    ンドごとに分割して送信し、既に送信されたバンドと同
    一のデータを有するバンドについては、繰り返しである
    旨を示すコードを送信することを特徴とする請求項39
    に記載の記憶媒体。
  42. 【請求項42】 前記プログラムは、文書データに含ま
    れるイメージデータの大きさを判定する判定手段と、前
    記印刷装置に格納しきれないと判定した場合には、該イ
    メージデータを複数の部分に分割して印刷装置に送信す
    る第3の送信手段とを更に備えることを特徴とする請求
    項37乃至41のいずれかに記載の記憶媒体。
  43. 【請求項43】 前記第1の送信手段は、文書データに
    出現する最初の文字について、その文字コードと文字イ
    メージとを前記印刷装置に送信することを特徴とする請
    求項37乃至42に記載の記憶媒体。
  44. 【請求項44】 前記第2の送信手段は、前記第1の送
    信手段により文字コードとその文字イメージとが送信さ
    れている文字について、文字コードを前記印刷装置に送
    信することを特徴とする請求項43に記載の記憶媒体。
JP14269497A 1996-12-27 1997-05-30 情報処理装置及び印刷制御装置及び方法とプログラム記憶媒体 Expired - Fee Related JP3814373B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP14269497A JP3814373B2 (ja) 1996-12-27 1997-05-30 情報処理装置及び印刷制御装置及び方法とプログラム記憶媒体

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP35038196 1996-12-27
JP8-350381 1996-12-27
JP14269497A JP3814373B2 (ja) 1996-12-27 1997-05-30 情報処理装置及び印刷制御装置及び方法とプログラム記憶媒体

Publications (2)

Publication Number Publication Date
JPH10240468A true JPH10240468A (ja) 1998-09-11
JP3814373B2 JP3814373B2 (ja) 2006-08-30

Family

ID=26474613

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14269497A Expired - Fee Related JP3814373B2 (ja) 1996-12-27 1997-05-30 情報処理装置及び印刷制御装置及び方法とプログラム記憶媒体

Country Status (1)

Country Link
JP (1) JP3814373B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008077158A (ja) * 2006-09-19 2008-04-03 Seiko Epson Corp プリンタ・ドライバ・プログラム
US8553269B2 (en) 2007-02-27 2013-10-08 Kyocera Mita Corporation Image forming apparatus and computer-readable recording medium storing image forming program for allowing storage section to store repeating use instruction information for repeatedly using band data
JP2016095608A (ja) * 2014-11-13 2016-05-26 セイコーエプソン株式会社 印刷制御装置の制御方法、印刷制御装置、及び、印刷システム
JP2016095607A (ja) * 2014-11-13 2016-05-26 セイコーエプソン株式会社 ドライバープログラム、印刷システム、及び、データ処理方法
JP2017195492A (ja) * 2016-04-20 2017-10-26 富士ゼロックス株式会社 画像蓄積装置及び画像蓄積プログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008077158A (ja) * 2006-09-19 2008-04-03 Seiko Epson Corp プリンタ・ドライバ・プログラム
US8553269B2 (en) 2007-02-27 2013-10-08 Kyocera Mita Corporation Image forming apparatus and computer-readable recording medium storing image forming program for allowing storage section to store repeating use instruction information for repeatedly using band data
JP2016095608A (ja) * 2014-11-13 2016-05-26 セイコーエプソン株式会社 印刷制御装置の制御方法、印刷制御装置、及び、印刷システム
JP2016095607A (ja) * 2014-11-13 2016-05-26 セイコーエプソン株式会社 ドライバープログラム、印刷システム、及び、データ処理方法
JP2017195492A (ja) * 2016-04-20 2017-10-26 富士ゼロックス株式会社 画像蓄積装置及び画像蓄積プログラム

Also Published As

Publication number Publication date
JP3814373B2 (ja) 2006-08-30

Similar Documents

Publication Publication Date Title
US4989163A (en) Photo printer having a host computer assist function and method of controlling the same
JP3792823B2 (ja) 印刷装置及び印刷制御装置
KR100253103B1 (ko) 인쇄 시스템
JP3634447B2 (ja) 画像処理装置及び方法
JP3814373B2 (ja) 情報処理装置及び印刷制御装置及び方法とプログラム記憶媒体
US6084687A (en) Image processing system, drawing system, drawing method, medium, printer, and image display unit
JPH10222319A (ja) 印刷装置及び印刷制御方法
JP3728076B2 (ja) 画像入出力装置及び方法
JPH10278362A (ja) 印刷制御装置及び方法と印刷システム
US6975757B1 (en) Color-image processing apparatus and method, and storage medium
JP3116354B2 (ja) プリンタデータ管理方式
JPH10320152A (ja) 印刷処理システム、印刷処理装置ならびに、印刷処理方法
JPH10309835A (ja) ページプリンタ
JPS5941054A (ja) ペ−ジプリンタ制御方式
JPH11170656A (ja) 画像出力装置及び方法
JPH091875A (ja) 画像出力装置
JPH08282064A (ja) 記録装置及び記録制御方法
JPH0691979A (ja) 画像形成装置におけるフォームデータ処理方式
JP3428817B2 (ja) 印字制御装置及び方法
JPH11129553A (ja) メモリ管理方法及びそれを用いた印刷装置と印刷システム
JP2690028B2 (ja) 印刷制御装置および印刷用データバッファ装置
JPH09248943A (ja) ページプリンタにおけるデータ圧縮方法
JP2003196648A (ja) 画像処理方法及び装置とその記憶媒体及びプログラム製品
JPH04334261A (ja) 印刷装置
JPH0764736A (ja) 印刷システムおよび印刷システムに使用する印刷装置

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040524

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040524

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20040524

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20040524

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050421

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050510

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050630

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20051206

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051226

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060106

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: 20060522

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060605

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: 20090609

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100609

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110609

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120609

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120609

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130609

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees