JP3768670B2 - Printing system and printing control method - Google Patents

Printing system and printing control method Download PDF

Info

Publication number
JP3768670B2
JP3768670B2 JP01971998A JP1971998A JP3768670B2 JP 3768670 B2 JP3768670 B2 JP 3768670B2 JP 01971998 A JP01971998 A JP 01971998A JP 1971998 A JP1971998 A JP 1971998A JP 3768670 B2 JP3768670 B2 JP 3768670B2
Authority
JP
Japan
Prior art keywords
character
page
data
printer
character set
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
Application number
JP01971998A
Other languages
Japanese (ja)
Other versions
JPH10293669A (en
Inventor
雅成 戸田
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 JP01971998A priority Critical patent/JP3768670B2/en
Priority to US09/028,343 priority patent/US6317217B1/en
Priority claimed from US09/028,343 external-priority patent/US6317217B1/en
Publication of JPH10293669A publication Critical patent/JPH10293669A/en
Application granted granted Critical
Publication of JP3768670B2 publication Critical patent/JP3768670B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Record Information Processing For Printing (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、ホスト・コンピュータからの印刷情報を受けて動作する印刷装置を含む印刷システム及び印刷制御方法に関するものであり、特にプリンタ制御言語(PDL(Printer Description Languag))やプリンタ制御コマンドなどと呼ばれるプリンタ制御機能を持つ印刷装置及び、その印刷装置のためにホストコンピュータ側で用意されるプリンタドライバ、またはプリントスプーラやプリントプロセッサなどと呼ばれるソフトウェアを含む印刷システムや印刷制御方法に関するものである。
【0002】
【従来の技術】
近年の印刷装置として、CAD(計算機支援用設計)、CG(コンピュータグラフィックス)、デザイン、ビジネスにおけるDTP(デスクトップパブリッシング)分野等のマルチメディア処理で利用されるデータを高精細に印刷・記録するプリンタが製品化されている。
【0003】
このようなプリンタとして、ホストコンピュータから送られるPDL(ページ記述言語)コードを受け取って解析して作成した中間言語をハードウェアまたはソフトウェアで高速にレンダリング(ラスタライズ)するPDLプリンタと、低価格化するためにプリンタ側の機能を減らし、ホストコンピュータ側でプリントが出力可能なイメージデータ形式にまでラスタライズしてプリンタに送信するイメージプリンタがある。
【0004】
PDLプリンタはページ内の情報をページ記述言語として受取り、中間言語を作成し、1ページ分溜まったところで描画処理を行うものである。
【0005】
文字の描画方法はプリンタ内部のROM内にあるフォントデータを使う場合と、ホストコンピュータでフォントデータを展開してイメージデータにして送ってくる場合があるが、ディスプレイの表示と同じ印刷結果を得るために後者の利用率が上がっている。
【0006】
【発明が解決しようとする課題】
しかし、文字すべてをイメージデータとして送ると転送データ量が増え、描画速度が低下する。
【0007】
本発明の目的は、前記イメージプリンタに近い、簡単な構成のイメージ専用プリンタでありながら、文字の部分は文字コードで受信して文字画像に展開することで、ホストにおける文字の展開処理時間とホストからの転送データ量とを非常に小さくし、しかも印刷装置のメモリ容量を小さく抑えて効率的に利用する印刷システム及び印刷制御方法を提供することである。
【0008】
【課題を解決するための手段】
上記目的を達成するために、本発明は次のような構成からなる。すなわち、各文字の出現するページの範囲を管理する管理手段と、前記管理手段により管理される各文字のページ範囲に基づき、文字のグループを作成するグループ化手段と、前記グループ化手段により作成されたグループから注目ページで用いられる文字の文字セットを作成し、作成された文字セットをプリンタに転送する転送手段と、前記転送手段により転送された文字セットを削除する削除コマンドをプリンタに送信する送信手段とを有する。
【0014】
【発明の実施の形態】
(第一実施形態)
本発明の印刷手法の実施の形態について説明する。図1は実施の形態における印刷装置の構成を示すブロック図である。
<システムの構成>
図1において、101はホストコンピュータである。ホストコンピュータ101においては、文字や自然画像などを含んだ画像を作成する作画アプリケーションを用いて作成したデータを、CPU1011で実行されるイメージドライバによって、プリンタが受け取れるデータ形式に変換する。変換されたデータをプリンタコントローラ102に送出する。このイメージドライバは外部メモリ1013あるいは主メモリ1012に格納されたプログラムである。
【0015】
プリンタコントローラ102に入力されたデータはDMA転送によって入力バッファ103(RAM)に格納される。入力バッファ103に格納されたデータは、CPU105で実行されるプログラム用ROM104内の転送データ解析プログラムによって処理される。また入力バッファ103は文字セットデータを保持するための領域としても利用される。プログラム用ROM104は後述する図に示す処理手順(制御プログラム)を格納するメモリであり、CPU105がこの制御プログラムにしたがってデータを読み込み各処理を実行する。
【0016】
CPU105は入力バッファに格納されたイメージデータの描画位置などのパラメータをイメージハードレンダラ107にセットする。イメージハードレンダラ107は入力バッファ内の圧縮されたイメージデータを伸長してバンドメモリ108に描画する。
【0017】
CPU105は入力バッファに格納された文字描画命令を解析し、既に登録された文字データを文字ハードレンダラ106にセットする。文字ハードレンダラ106は入力バッファ内の文字データを文字のイメージに展開して、バンドメモリ108に既に展開されているイメージがあればその上に直接描画する。
【0018】
バンドメモリ(ページ幅×128画素程度のバンドの高さ)は少なくとも2つ備えられ、ひとつのメモリがシッピング状態(バンドメモリからエンジン部へとイメージデータが出力されている状態)であれば、他のメモリは、イメージ展開状態(バンドメモリに文字データ以外のイメージデータを展開している状態)及び文字描画状態(バンドメモリに文字イメージを展開している状態)とを続けて行う行うことによってイメージの合成処理を行っている。合成が終わったバンドの情報は即座にプリンタインターフェース109を介してプリンタエンジン110に送られる。一方、シッピングが終えたバンドメモリには、イメージ展開及び文字描画が行われる。
【0019】
プリンタインターフェース109は、プリンタエンジン110、例えばLBPとの間でバンドメモリ108との間でプリンタエンジン110へのコマンド送信やプリンタエンジン110からのステータス(データ格納可能など)受信を行う。
【0020】
CPU105はプリンタコントローラ102の内部処理を制御する演算装置であり、プリンタ全体を制御している。110はプリンタコントローラ102から送出されるビデオ信号を印字するプリンタエンジンであり、電子写真によるLBPでもインクジェット方式であっても良い。またカラープリンタでもモノクロプリンタでも良い。
<TypeWing方式の説明>
上記構成のシステムにおいては、ホストコンピュータから印刷データをプリンタに送るに際して、その前にジョブごとにデータの先頭から順に文字データを拾う。その文字が初めて送られる文字データであればその登録番号(文字ID)と文字イメージとを所定数セットにしてプリンタに登録し(これを文字セットと呼び、その識別子を文字セットIDと呼ぶ)、2回目以降の文字は文字IDと描画位置とをホストコンピュータからプリンタに送る。プリンタでは、先に登録されている文字IDとその文字の文字イメージとを参照して文字イメージを展開し、印刷するイメージを作成する。この手法を発明者らはTypeWing方式と呼んでいる。
【0021】
本実施例におけるTypeWing方式は、ホストコンピュータからプリンタへ文字セットデータを登録するための文字セット登録命令、印刷データにおける文字描画命令、登録されている文字セットを削除するための文字セット削除命令で実現可能である。プリンタは、各命令に対して次のように動作する。
【0022】
文字セット登録命令によって、文字セットIDに対応したフォントセット用アドレステーブル領域を確保し、その文字セットに含まれる文字IDと文字イメージデータを関連づけて登録する。
【0023】
登録文字印字(文字描画)命令によって、既に登録されている文字を指定された位置に描画する。
【0024】
文字セット削除命令は、プリンタ内部のメモリが一杯になった場合などにあまり使わない文字セットを消去するための命令であり、登録されている文字セットから指定された文字セットを削除してその領域を開放する。
【0025】
このTypeWing方式により、文字はコード化されるためにデータ量が減り、ホストコンピュータからプリンタへの転送時間も短くなる。そのため、低価格プリンタで文字印字の高速化を実現するためには、イメージプリンタにTypeWing方式を取り入れる方法が有効である。
【0026】
図2はホストコンピュータで文字と図形が混ざったデータを作成し、プリンタコントローラで出力するまでを示す説明図である。
【0027】
201はホストコンピュータ101の作画アプリケーションで作画した結果をディスプレイに表示した出力結果の模式図である。ホストコンピュータ101においては、文字はキャラクタコード、線はその開始点と終了点と線幅等のデータ形式で保持している。プリンタドライバはこれらのデータ形式からプリンタコントローラ102が出力可能なデータ形式に変換する。
(プリンタドライバの処理)
(1)プリントジョブの初期化
1プリントジョブ全体の印刷データをスキャンし、プリンタコントローラ102が描画可能な文字を抽出して、抽出された文字を文字種毎に管理テーブルに保存する。管理テーブルの各文字には、出現したページの情報も付加する。1プリントジョブ全体について、文字の管理テーブルへの保存が終了した後、複数のページで使用される文字を集めて、ビットマップフォントデータと文字識別子とで構成される文字セットを作成する。
(2)ページデータの生成
1ページに必要な文字セットを生成する。印刷データを再度スキャンし、文字データについては、その文字データが属する文字セットの識別子(ID)、その文字セット内での文字識別子(ID)、文字のページ内の描画位置で文字描画命令を生成する。
【0028】
文字として描画する印刷データ以外は全てイメージデータに展開する。それをバンドメモリ108のサイズ毎に伸長できるよう、バンド毎に圧縮して圧縮イメージデータ203とする。こうして生成された1ページ分の文字描画命令及び圧縮イメージデータ及びそのページに必要な文字セットデータをページデータと称する。
(3)データ転送
ホストコンピュータ101の内部メモリ空間に1ページ分のページデータがそろうと、プリンタコントローラ102に文字セット登録命令及び文字描画命令を送り付け、プリンタコトローラ102のメモリに余裕がある限りイメージデータをプリンタに転送する。
【0029】
プリンタコントローラ102からメモリに十分な余裕ができたことを知らされると、空いた分だけ続きのイメージデータを送り付ける。
(4)不要データの削除
1ページ分のページデータの転送を終えると、ホストコンピュータ101は、そのページでしか使われない文字で構成された文字セットの削除命令を作成し、印刷装置に転送する。
【0030】
なお、ホストコンピュータでは、プリンタからの出力が済んだか否かに関わらず命令やデータをプリンタに次々と転送する。プリンタは、印刷の状態とホストコンピュータからの命令とに応じて文字セットを管理する。例えば、あるページを出力し終えたなら、その後にそのページの文字セット削除命令を処理することで、データの整合性を取る。こうすることで、プリンタとホストとが双方向通信で接続されなくとも、本実施形態の処理を行うことが可能となる。
【0031】
図3は、ホストコンピュータ101により文字セットの管理の為に用意される各種テーブルを示している。
【0032】
図3において、ドライバ管理用文字テーブル群301は、印刷ジョブを単位として用意されるテーブル群で、文字セットテーブル303と文字管理テーブル304が含まれる。
(ドライバ管理用文字セット)
ドライバ管理用文字セット301は、プリンタドライバによりプリンタが有する文字セットを管理する為に、その印刷ジョブ中はホストコンピュータに保持されている。
【0033】
文字セットテーブル303は、文字種(ポイント数や明朝、ゴシックなど)に分けて文字セットを登録してあるテーブルである。プリンタドライバは、1ジョブ中の印刷しようとするデータに含まれる文字を調べ、その文字種をドライバ管理用文字セットテーブル303に登録する。この文字種の登録は、ドライバ管理用文字セットテーブル303のポインタ部に文字種毎に対応するドライバ管理用文字管理テーブル304へのポインタがセットされることで行われる。
【0034】
ドライバ管理用文字管理テーブル304は各文字種毎に作成される。以下図9で文字管理テーブル304の構造を説明する。
【0035】
ページデータに含まれる文字は、ホストコンピュータで使用されている文字コードとは別に、各文字に固有の文字ID901が文字毎に割り当てられる。割り当てられた文字ID901は、高速に検索可能な方法、例えばハッシングなどにより文字コードから検索できるように登録される。
【0036】
初めて登録される時は、出現したページ番号を、minPage902、maXPage903にセットする。ビットマップ形式に展開した文字データは文字データ格納領域に保管し、その先頭アドレスを文字ポインタ904にセットする。
【0037】
1ジョブ中に同一文字が複数回出現した際は、ドライバ管理用文字管理テーブル304内の対応する文字IDを見つけ、出現したページ番号でmaxPage903を更新する。
【0038】
1ジョブ分の文字が登録されると、ドライバ管理用文字管理テーブル304に登録された文字の出現したページ番号を参照し、プリンタ転送用文字セットを作成する為のグループ分けを行う。プリンタ転送用文字セットを作成するに当たり、まず複数のページで用いられる文字のうち、共通するページ範囲で用いられる文字同士をグループ化する。それによって1ジョブ中で極力同一文字のビットマップデータ転送を行わないようにする。
【0039】
このグループが決定したら、1ページ目に必要となる文字セットのグループ分けを行う。1ページ目に必要な文字セットのグループが決定したら、プリンタ転送用文字セットを作成し、プリンタ転送用文字セットの管理テーブル305に登録する。
【0040】
このように、文字セットのグルーピングは下記の3つのルールに従って行われる。
(1)ページの描画に必要な文字は全て印刷装置内に転送されていなくてはならない。
(2)印刷装置内のデータ格納メモリがあふれないよう、不用になった文字セットは、文字セット削除命令で消去される。
(3)互いに共通のページ範囲で使われる文字同士は、同じ文字セットに登録することで再送回数を減らすようにする。
【0041】
文字が格納された文字セットのIDと、文字セット内のオフセット値(相対アドレス)は、文字管理テーブル304のCharSetID905,Offset906に登録される。
【0042】
なお、ひらがな、数字などの頻繁に出現する文字の文字IDは予約されており、文字管理テーブル304においてその予約されたIDの位置に優先的に登録される。このことにより、ハッシュ関数の計算や衝突時の処理などのオーバーヘッドを防止できる。
(文字のグループ化及びプリンタ転送用文字セット作成例)
図10は、こうして生成されたドライバ管理用文字セットの一例を示す図である。例えば文字1すなわち文字IDが”1”の文字と、文字7すなわち文字IDが”7”の文字は、1ページ目から5ページ目までの間で用いられており、文字8、すなわち文字IDが”8”の文字は5ページ目でだけ用いられていることがわかる。従って、文字1と文字7とは、それらが用いられるページ範囲が同じであるから同一のグループにまとめられる。そのほかの文字は全て用いられるページ範囲が互いに異なっているから、別々のグループに分けられる。
【0043】
このグループから転送用文字セットを作成する際には、プリンタ転送用文字セットは固定長であることから、文字セットの長さに応じて複数のグループをひとつの文字セットにまとめた方が効率的な場合もある。まとめた方が良いグループの条件は、例えば次の2つの条件をともに満たすことである。
(1)まとめられて作成されたプリンタ転送用文字セットが前記固定長に収まる。
(2)使用されるページ範囲が連続しているか、あるいは重複している。
【0044】
図10においては、例えば文字1と文字7の使用範囲は、他のすべての文字の使用範囲を含むため、文字セット長に空きがあればどのグループともまとめられる。また、文字4も、他のすべての文字の使用範囲と重複するか連続しているため、空きさえあればどのグループともまとめられる。文字2と文字8は上記条件を満たさないためにまとめることができない。
【0045】
これは一例に過ぎないが、このようにして文字をグループ化し、そのグループから転送用文字セットを作成する。
(プリンタ転送用文字セット)
プリンタ転送用文字セット302は、プリンタに送る文字セット登録命令を作成するためのデータである。ドライバ管理用文字セット301に登録された文字データはプリンタ転送用文字セット302にも登録される。
【0046】
プリンタ転送用文字セット302は、文字セット管理テーブル305と文字セットデータ306とを含んでいる。なお、文字セットデータ306はドライバからプリンタに転送される文字セットデータそのものであり、後述する形式を有している。
【0047】
文字データの実態であるビットマップデータは、ホストコンピュータが有するアウトラインフォントからの展開などで得られる。文字セット306は文字セット削除処理によって消去されてしまう。そのため、ドライバ用の文字管理テーブル304にも1文字単位でビットマップデータを登録することによって、文字セット削除処理後に紙詰まりなどが発生した場合に、ビットマップデータを新たに展開する処理を行わずとも文字セットを再登録することが出来、処理のスピードアップが可能である。
<ホストコンピュータからプリンタヘの転送データ>
次に図4を用いて転送データ形式について説明する。
【0048】
図4は、ホストコンピュータで作成される1ページ分のページデータの構造である。
(ジョブ開始データ部)
ジョブ開始データ401は、転送される各々のデータの情報を登録したテーブルであり、ページのレイアウト情報データなど、描画処理を行う為に必要な初期設定データが含まれている。
(文字セットデータ部)
文字セットデータ402は、そのページの描画に用いられる文字のビットマップフォントデータを文字IDから簡単に探し出せるように構成されているデータである。
【0049】
1つの文字セットのサイズはプリンタによって決められた固定長の倍数であり、フォントサイズや圧縮率などによって登録文字数は変化する。また、固定長サイズに満たない場合は空白をつめることで固定長サイズに調整する。文字セットデータには、文字セットヘッダ部405と相対アドレス406と文字データ部407とが含まれている。
【0050】
文字セットヘッダ部405には、文字セットID4051や、その文字セットに登録されている文字数4052、またその文字セットが使われる最初のページであるfirstPage4053と最後のページlastPage4054が含まれている。
【0051】
相対アドレス部406には、文字セットデータ内の各文字データにアクセスする為のヘッダ部からのバイトオフセット値が登録文字数分だけセットされている。
【0052】
文字データ部407は、実際に文字データが登録されている部分であり、文字の幅、高さ、圧縮タイプ、サイズなどの情報が格納された文字ヘッダ部に続いて各文字のビットマップデータが圧縮されて登録されている。
(文字描画命令データ部)
文字描画命令データ403は、文字の描画位置を命令するコマンド群である。各文字描画命令データはバンド単位に分けられており、印刷すべき文字が含まれている文字セットのIDと、文字セット内でのその文字のオフセット値により示されている。その描画位置としては、バンド内における相対座標位置がセットされる。
【0053】
また、文字描画命令データ全体のデータサイズも前記固定長サイズの倍数になるように調整される。
(イメージデータ部)
イメージデータ部404は、プリンタが処理する単位であるバンドごとの高さ及び幅で生成され、圧縮されたイメージデータである。
<文字セット管理及び文字描画命令作成手順>
次に、図8のフローチャート及び図3,4,9のデータ構造を用いて、ホストコンピュータのプリンタドライバによる文字セットデータの生成及び文字描画命令の生成手順を説明する。
【0054】
S801:印刷データを1ジョブ分スプールする。その中で文字データだけを処理し、ドライバ管理用文字セット301を構築する。この際、文字が出現するページ番号を、文字管理テーブル304中のminPage902,maxPage903で管理する。
【0055】
S802:ドライバ管理用文字セットから複数ページで使われる文字を、文字が出現するページ数を示すminPage902,maXPage903により探し出し、複数のページで用いられる文字をグループにする。
【0056】
S803:処理中の注目ページで用いられる文字を、その文字が出現するページ数を示すminPage902,maXPage903に基づいてグループにする。このグループ及びS802で作成された文字グループから、注目ページで用いられる文字の転送用文字セット302を作成する。この際、異なるグループに属する文字は、異なる文字セットに登録される。
【0057】
S804:注目ページ用の文字描画命令を作成し、S803で作成した文字セットと共にプリンタに転送する。文字描画命令は、文字セットID905と、文字セット内の相対アドレス906を描画位置と組み合わせて生成する。それ以外のデータは全てイメージに展開され、イメージ描画命令とされ、プリンタに転送される。
【0058】
S805:注目ページ以降では不必要となった文字セットを削除する削除命令を生成して、プリンタに転送する。削除の対象となる文字セットは、通常S803でグループ化された文字が含まれる文字セットであり、S802でグループ化された文字セットは、注目ページ以降でも用いられるために削除対象とはならない。
【0059】
S806:このジョブ内に次のページがある場合はそのページを注目ページとしてS803へ戻り、次のページがない場合は処理終了となる。
【0060】
以上の手順により、プリンタ転送用文字セットを作成し、文字描画命令とともにプリンタに送信する。
<プリンタにおけるデータ形式>
次に図5及び図11を用いてプリンタのRAM上にデータが格納される手順及び登録されるデータ形式について説明する。
【0061】
S1101プリンタ102はドライバが作成した転送データ400のジョブ開始データを読み込み、プリンタの初期設定を行う。
【0062】
S1102:その後、ジョブ開始命令に含まれているデータのサイズに従ってデータをRAM上に読み込む。
【0063】
受信バッファ103は、多くの固定長の受信セルから構成されている。各受信セル501は、次の空きバッファへのポインタであるアドレス部(nextp)とデータ部とを持った構造になっている。ホストコンピュータで作成する1つの文字セットデータのサイズは、この受信セルのサイズと一致している。一致していなくともデータは管理できるが、プリンタでは受信セルごとに領域の使用・未使用の別を管理するため、半端なサイズのデータも受信セル1つを占めることになり、メモリが有効利用できない。
【0064】
受信バッファ103は、受信バッファ制御構造体502によって管理されている。受信バッファ制御構造体502は、空き状態の受信セルへのポインタFreep、空き状態受信セルの最終セルへのポインタFreeEndp、文字セットデータ部のトップへのポインタFontp、文字描画命令データ部のトップへのポインタRenderp、イメージデータ部のトップへのポインタImagepによって構成されている。初期状態では、ポインタFreepは受信バッファの先頭を、ポインタFreeEndpは受信バッファの末尾の受信セルを指し、各々の受信セルのアドレス部には次の受信セルへのポインタが書き込まれている。
【0065】
ホストコンピュータから受信したデータは、ポインタFreepが示す先に受信バッファセル単位で詰め込まれる。ポインタFreepは、データが格納された受信セルのポインタnextpの値で更新される。ポインタFreepがポインタFreeEndpと同じになるまでデータの読み込みが可能である。
【0066】
S1103:最初に読み込んだジョブ開始命令のデータサイズから文字セットデータのトップの位置(Fontp)、文字描画命令データのトップの位置(Renderp)、イメージデータのトップの位置(Imagep)が算出でき、その位置を受信バッファ制御構造体502に登録する。
【0067】
なお、イメージデータは1ページ分入りきれない場合があるが、その場合には格納できるぶんだけ格納しておく。
【0068】
S1104:ポインタfontpをたどり、文字セットごとに、文字セットIDとそれに対応する文字セットへのポインタを格納した文字セットテーブル503を作成する。
<印刷の手順>
次に、図6を用いて以上のメモリ空間上で複数ページを受信するところからそれを印刷出力するまでの処理を説明する。
【0069】
600:描画開始時は受信バッファは初期化状態である。
【0070】
601:受信バッファ上部からnextpに従って、受信した文字セットデータ、文字描画データを格納する。
【0071】
602:イメージデータがメモリフルになるまで格納し、ジョブ開始命令に含まれる各々のデータサイズからポインタFontp,Renderp,Imagepをセットする。
【0072】
また、格納された文字セットは各セット毎に先頭アドレスを文字セットテーブルに登録する。ここまでが図11の手順である。
【0073】
603:描画を開始する。ポインタImagepが示す先のバンドイメージデータをバンドメモリに展開し、その上にポインタRenderpが示す先の文字描画命令データをCPUが解析して、文字セットデータから対応する文字イメージを獲得して文字の描画を行う。
【0074】
それに伴い、バンドメモリに展開されたイメージデータ部の受信セルを解放する。それまでポインタFreeEndpで指し示される受信セルのポインタnextp部に解放された受信セルのアドレスをセットし、その後FreeEndpにも解放された受信セルのアドレスをセットする。
【0075】
解放された受信セルには、受信バッファへの格納待ちとなっている状態のデータを随時読み込む。
【0076】
604:1ページ分のデータが全て受信セルに読み込まれた後は、次のページのデータも取り込む。状態604では、1ページ目のイメージデータに続けて、空き領域に2ページ目の文字セットデータを格納している。
【0077】
605:1ページのデータ処理が全て終わる直前の状態を示している。1ページ目の文字セットデータと文字描画命令、それとイメージデータの一部が格納されている。また、2ページ目の文字セットデータと文字描画命令とイメージデータの一部が格納されている。
【0078】
606:必要に応じてホストコンピュータから文字セットデータの削除命令が送られてくる。注目ページの文字描画命令の処理を終えたならば、文字セットの削除命令に従って、要らなくなった文字セットデータと1ページ目の描画命令を格納していた受信セルを解放する。その後、2ページ目のジョブ開始命令を読み込んでパラメータをセットする。
【0079】
文字データを削除する場合、解放された受信セルの先頭アドレスを、ポインタFreeEndpが指し示す先の受信セルのポインタnextpにセットし、最終アドレスをFreeEndpにセットする。
<削除命令の処理手順>
次に、図12を参照して文字セット削除命令に対する処理手順を説明する。
【0080】
S1201:削除対象として指定された文字セットIDをプリンタで保持している文字セットテーブル503から検索する。
【0081】
S1202:見つからなければエラー処理を行う。
【0082】
S1203:指定された文字セットIDに対応する文字セットの受信セルのアドレスを文字セットテーブルから得て、その受信セルを開放する。受信セルの開放は、現在の空き領域と新たに開放する領域とを各受信セルのポインタnextpにより接続して行われる。すなわち、現在の空き領域の末尾へのポインタFreeEndpに指し示される受信セルのポインタnextpを新たに開放される受信セルのアドレスをセットし、その後ポインタFreeEndpにも新たに開放される受信セルのアドレスをセットする。
【0083】
S1204:削除された文字セットIDに対応する文字セットテーブルのエントリを削除して更新する。
【0084】
以上のようにして文字セットデータを削除することで、空き領域は受信セルの単位で開放される。そのため、開放された領域を集めなくともそのままで再利用することができる。なお、この受信セルの開放の手順は、文字セットデータに限らず、1ページ分出力しおえた文字描画命令や、1バンド分出力し終えたバンドイメージデータの格納されている受信セルを開放する際にも用いられる。
【0085】
図7に描画処理が進んだ時の状態を示す。ポインタFreepをたどり、その示す受信セルからnextpをたどる先が空き領域である。なお、nextpが連続する受信セルを示している場合には、そのnextpを表す矢印を省略してある。
【0086】
このように、文字セットサイズが非固定長かつ不連続にメモリを占有する場合には文字セットデータを消去したときにできる空き領域のサイズは不均一であり、また1文字単位で登録した文字セットを削除すると不連続な空き領域ができる。そこで、空きメモリを集めるために文字セットデータの再構築を行うと多くの時間が掛かり、連続ページ出力時のページ間で文字セットデータの再構築処理を行うことは不可能である。
【0087】
これに対して、本実施例に係る印刷システムでは、プリンタのメモリを固定長の受信セル単位で管理している。そのため、プリンタのメモリにおいて開放される空き領域は受信セルの単位であり、空き領域の収集を行わなくとも直ちに再利用できる。
【0088】
このような場合、文字セットデータを例えば1文字毎に作成すると、1文字分の文字セットデータを1つの受信セルに格納するために多くの領域が無駄に使用されることになる。本実施例においては、ホストコンピュータでは、文字セットデータを受信セルにあわせたサイズを単位として固定長で作成しているため、文字セットデータは無駄なく受信セルに納まり、メモリの利用効率を低下させることがない。
【0089】
以上、プリンタ側で文字セットデータの削除命令を実行するタイミングを決めて、文字セット削除命令を実行する印刷システムを説明したが、双方向インターフェースで接続されており、ホストコンピュータがプリンタから情報を得られるならば、ページの印刷出力の終了をプリンタからホストコンピュータに通知させ、ホストコンピュータではその情報に基づいて、そのページ以降では使用しない文字セット削除命令をプリンタに送信しても良い。
<プリンタエンジン>
上記実施例のプリンタエンジンとしては特に何を用いるという制限はない。ここでは本実施例のプリンタに適用できる代表的な2種のエンジンを説明する。
【0090】
図13はこの場合のレーザビームプリンタ(以下、LBPと略す)の内部構造を示す断面図で、このLBPは、文字パターンデータ等を入力して記録紙に印刷することができる。
【0091】
図において、740はLBP本体であり、供給される文字パターン等を基に、記録媒体である記録紙上に像を形成する。700は操作のためのスイツチ及びLED表示器などが配されている操作パネル、701はLBP740全体の制御及び文字パターン情報等を解析するプリンタ制御ユニツトである。このプリンタ制御ユニツト701は主に文字パターン情報をビデオ信号に変換してレーザドライバ702に出力する。
【0092】
レーザドライバ702は半導体レーザ703を駆動するための回路であり、入力されたビデオ信号に応じて半導体レーザ703から発射されるレーザ光704をオン・オフ切替えする。レーザ光704は回転多面鏡705で左右方向に振られて静電ドラム706上を走査する。これにより、静電ドラム706上には文字パターンの静電潜像が形成される。この潜像は静電ドラム706周囲の現像ユニツト707により現像された後、記録紙に転写される。この記録紙にはカツトシートを用い、カツトシート記録紙はLBP740に装着した用紙カセツト708に収納され、給紙ローラ709及び搬送ローラ710と711とにより装置内に取込まれて、静電ドラム706に供給される。
【0093】
図14は、本発明が適用できるインクジェット記録装置IJRAの概観図である。同図において、駆動モータ5013の正逆回転に連動して駆動力伝達ギア5011,5009を介して回転するリードスクリュー5005の螺旋溝5004に対して係合するキャリッジHCはピン(不図示)を有し、矢印a,b方向に往復移動される。このキャリッジHCには、インクジェットカートリッジIJCが搭載されている。5002は紙押え板であり、キャリッジの移動方向に亙って紙をプラテン5000に対して押圧する。5007,5008はフォトカプラで、キャリッジのレバー5006のこの域での存在を確認して、モータ5013の回転方向切り換え等を行うためのホームポジション検知手段である。5016は記録ヘッドの前面をキャップするキャップ部材5022を支持する部材で、5015はこのキャップ内を吸引する吸引手段で、キャップ内開口5023を介して記録ヘッドの吸引回復を行う。5017はクリーニングブレードで、5019はこのブレードを前後方向に移動可能にする部材であり、本体支持板5018にこれらが支持されている。ブレードは、この形態でなく周知のクリーニングブレードが本例に適用できることは言うまでもない。又、5021は、吸引回復の吸引を開始するためのレバーで、キャリッジと係合するカム5020の移動に伴って移動し、駆動モータからの駆動力がクラッチ切り換え等の公知の伝達手段で移動制御される。
【0094】
【他の実施形態】
なお、本発明は、複数の機器(例えばホストコンピュータ,インタフェイス機器,リーダ,プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機,ファクシミリ装置など)に適用してもよい。
【0095】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成される。
【0096】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0097】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,磁気テープ,不揮発性のメモリカード,ROMなどを用いることができる。
【0098】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【0099】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【0100】
【発明の効果】
以上説明したように、本発明によれば、簡単な構成でありながら、文字の部分は文字コードで受信して文字画像に展開することで、ホストにおける文字の展開処理時間とホストからの転送データ量とを非常に小さくし、しかも印刷装置のメモリ容量を小さく抑えて効率的に利用することができるという効果を奏する。
【0101】
【図面の簡単な説明】
【図1】実施の形態における印刷制御システムの構成を示すブロック図である。
【図2】ドライバのデータ作成処理とプリンタの印字処理とを説明する図である。
【図3】ドライバ側の文字セットの管理データの構造を説明する図である。
【図4】転送用文字セットの詳細な構造の説明図である。
【図5】プリンタの受信バッファの構造と格納形態(1頁目)を示す図である。
【図6】プリンタのメモリ管理方法を示す図である。
【図7】プリンタの受信バッファの構造と格納形態(複数ページ出力中)を示す図である。
【図8】ホストコンピュータにおける文字処理手順のフローチャートである。
【図9】ドライバ管理用文字セットの構造を示す図である。
【図10】ドライバ管理用文字セットの使われかたの一例を示す図である。
【図11】プリンタにおいて印刷データを受信する手順のフローチャートである。
【図12】プリンタにおいて文字セットデータを削除する手順のフローチャートである。
【図13】レーザビームプリンタのエンジンの図である。
【図14】インクジェットプリンタのエンジンの図である。
【符号の説明】
101 ホストコンピュータ
102 プリンタコントローラ
103 入力バッファ
104 ROM
105 CPU
106 文字ハードレンダラ
107 イメージレンダラ
108 バンドメモリ
110 プリンタエンジン
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a printing system including a printing apparatus that operates in response to printing information from a host computer and a printing control method, and is particularly called a printer control language (PDL (Printer Description Languag)) or a printer control command. The present invention relates to a printing apparatus having a printer control function, a printing system including a printer driver prepared on the host computer side for the printing apparatus, or software called a print spooler or a print processor, and a printing control method.
[0002]
[Prior art]
As printers in recent years, printers that print and record high-definition data used in multimedia processing such as CAD (computer-aided design), CG (computer graphics), design, and business DTP (desktop publishing) fields Has been commercialized.
[0003]
As such a printer, a PDL printer that renders (rasterizes) hardware or software an intermediate language created by receiving and analyzing a PDL (page description language) code sent from a host computer, and reducing the cost. In addition, there is an image printer that reduces the functions on the printer side, and rasterizes it to an image data format that can be output on the host computer side, and sends it to the printer.
[0004]
The PDL printer receives information in a page as a page description language, creates an intermediate language, and performs drawing processing when one page is accumulated.
[0005]
The character drawing method uses the font data in the ROM inside the printer, or the font data is expanded and sent as image data by the host computer. In order to obtain the same print result as the display on the display The latter utilization rate has increased.
[0006]
[Problems to be solved by the invention]
However, if all characters are sent as image data, the amount of transfer data increases and the drawing speed decreases.
[0007]
An object of the present invention is to provide an image-dedicated printer having a simple configuration similar to that of the image printer, but by receiving a character portion as a character code and expanding it into a character image, the character expansion processing time and the host in the host It is to provide a printing system and a printing control method that can be used efficiently by reducing the amount of data transferred from the printer and reducing the memory capacity of the printing apparatus.
[0008]
[Means for Solving the Problems]
In order to achieve the above object, the present invention comprises the following arrangement. That is, Management means for managing the range of pages in which each character appears, and based on the page range of each character managed by the management means, group Create Grouping means and the grouping means A transfer unit that creates a character set of characters to be used on the page of interest from the created group, transfers the created character set to a printer, and a character set transferred by the transfer unit. Delete command to delete To the printer Send Send Means.
[0014]
DETAILED DESCRIPTION OF THE INVENTION
(First embodiment)
An embodiment of the printing method of the present invention will be described. FIG. 1 is a block diagram illustrating a configuration of a printing apparatus according to an embodiment.
<System configuration>
In FIG. 1, reference numeral 101 denotes a host computer. In the host computer 101, data created using a drawing application that creates an image including characters and natural images is converted into a data format that can be received by the printer by an image driver executed by the CPU 1011. The converted data is sent to the printer controller 102. This image driver is a program stored in the external memory 1013 or the main memory 1012.
[0015]
Data input to the printer controller 102 is stored in the input buffer 103 (RAM) by DMA transfer. Data stored in the input buffer 103 is processed by a transfer data analysis program in the program ROM 104 executed by the CPU 105. The input buffer 103 is also used as an area for holding character set data. The program ROM 104 is a memory for storing a processing procedure (control program) shown in the drawing, which will be described later, and the CPU 105 reads data according to this control program and executes each process.
[0016]
The CPU 105 sets parameters such as the drawing position of the image data stored in the input buffer in the image hard renderer 107. The image hard renderer 107 decompresses the compressed image data in the input buffer and draws it on the band memory 108.
[0017]
The CPU 105 analyzes the character drawing command stored in the input buffer and sets the already registered character data in the character hard renderer 106. The character hard renderer 106 expands the character data in the input buffer into a character image, and directly draws the image on the band memory 108 if there is an image already developed.
[0018]
There are at least two band memories (page width x band height of about 128 pixels). If one memory is in a shipping state (image data is being output from the band memory to the engine unit), the other The memory of the image is obtained by continuously performing an image expansion state (a state in which image data other than character data is expanded in the band memory) and a character drawing state (a state in which the character image is expanded in the band memory). The synthesis process is performed. Information on the band that has been combined is immediately sent to the printer engine 110 via the printer interface 109. On the other hand, image development and character drawing are performed on the band memory after shipping.
[0019]
The printer interface 109 transmits a command to the printer engine 110 with the printer engine 110, for example, the LBP, and receives a status (data can be stored, etc.) from the printer engine 110.
[0020]
A CPU 105 is an arithmetic unit that controls internal processing of the printer controller 102 and controls the entire printer. A printer engine 110 prints a video signal sent from the printer controller 102, and may be an electrophotographic LBP or an inkjet system. A color printer or a monochrome printer may be used.
<Description of Type Wing method>
In the system configured as described above, before sending print data from the host computer to the printer, character data is picked up in order from the head of the data for each job. If the character is character data to be sent for the first time, the registration number (character ID) and character image are registered in a printer with a predetermined number of sets (this is called a character set, and its identifier is called a character set ID). For the second and subsequent characters, the character ID and drawing position are sent from the host computer to the printer. The printer refers to the previously registered character ID and the character image of the character, develops the character image, and creates an image to be printed. The inventors call this method the Type Wing method.
[0021]
The Type Wing method in this embodiment is realized by a character set registration command for registering character set data from the host computer to the printer, a character drawing command for print data, and a character set deletion command for deleting a registered character set. Is possible. The printer operates as follows for each command.
[0022]
A font set address table area corresponding to the character set ID is secured by the character set registration command, and the character ID and character image data included in the character set are registered in association with each other.
[0023]
In accordance with a registered character printing (character drawing) command, an already registered character is drawn at a designated position.
[0024]
The character set deletion command is used to delete a character set that is not often used when the printer's internal memory becomes full. The specified character set is deleted from the registered character set and its area is deleted. Is released.
[0025]
With this Type Wing method, since the characters are encoded, the amount of data is reduced, and the transfer time from the host computer to the printer is also shortened. Therefore, in order to realize high-speed character printing with a low-cost printer, it is effective to adopt a TypeWing method in the image printer.
[0026]
FIG. 2 is an explanatory diagram showing the process from creation of data in which characters and graphics are mixed by the host computer to output by the printer controller.
[0027]
Reference numeral 201 denotes a schematic diagram of an output result in which a result drawn with the drawing application of the host computer 101 is displayed on a display. In the host computer 101, characters are stored in a character code, and lines are stored in a data format such as a start point, an end point, and a line width. The printer driver converts these data formats into a data format that can be output by the printer controller 102.
(Printer driver processing)
(1) Print job initialization
The print data of one print job is scanned, characters that can be drawn by the printer controller 102 are extracted, and the extracted characters are stored in the management table for each character type. Information about the page that appears is also added to each character in the management table. For one entire print job, after storing the characters in the management table, characters used in a plurality of pages are collected to create a character set composed of bitmap font data and character identifiers.
(2) Generation of page data
A character set necessary for one page is generated. The print data is scanned again, and for character data, a character drawing command is generated based on the character set identifier (ID) to which the character data belongs, the character identifier (ID) in the character set, and the character drawing position in the page. To do.
[0028]
All of the data other than print data to be drawn as characters is expanded into image data. The compressed image data 203 is compressed for each band so that it can be expanded for each size of the band memory 108. The character drawing command and compressed image data generated for one page and the character set data necessary for the page are referred to as page data.
(3) Data transfer
When page data for one page is stored in the internal memory space of the host computer 101, a character set registration command and a character drawing command are sent to the printer controller 102, and the image data is transferred to the printer as long as the printer controller 102 has enough memory. To do.
[0029]
When the printer controller 102 informs that there is a sufficient margin in the memory, it continues sending image data as much as it is free.
(4) Delete unnecessary data
When the transfer of page data for one page is completed, the host computer 101 creates a delete command for a character set composed of characters that are used only on that page, and transfers it to the printing apparatus.
[0030]
Note that the host computer successively transfers commands and data to the printer regardless of whether the output from the printer is completed. The printer manages the character set according to the printing status and the command from the host computer. For example, when the output of a certain page is completed, the data consistency is taken by processing the character set deletion command for that page after that. By doing so, the processing of this embodiment can be performed even if the printer and the host are not connected by bidirectional communication.
[0031]
FIG. 3 shows various tables prepared for character set management by the host computer 101.
[0032]
In FIG. 3, a driver management character table group 301 is a table group prepared for each print job, and includes a character set table 303 and a character management table 304.
(Character set for driver management)
The driver management character set 301 is held in the host computer during the print job in order to manage the character set of the printer by the printer driver.
[0033]
The character set table 303 is a table in which character sets are registered for each character type (number of points, Mincho, Gothic, etc.). The printer driver checks the characters included in the data to be printed in one job and registers the character type in the driver management character set table 303. The registration of the character type is performed by setting a pointer to the driver management character management table 304 corresponding to each character type in the pointer portion of the driver management character set table 303.
[0034]
The driver management character management table 304 is created for each character type. Hereinafter, the structure of the character management table 304 will be described with reference to FIG.
[0035]
Characters included in the page data are assigned a character ID 901 unique to each character separately from the character code used in the host computer. The assigned character ID 901 is registered so that it can be searched from the character code by a fast search method such as hashing.
[0036]
When registering for the first time, the page numbers that appear are set in minPage 902 and maXPage 903. The character data expanded in the bitmap format is stored in the character data storage area, and the head address is set in the character pointer 904.
[0037]
When the same character appears multiple times in one job, the corresponding character ID in the driver management character management table 304 is found, and the maxPage 903 is updated with the page number that has appeared.
[0038]
When characters for one job are registered, the page number on which the character registered in the driver management character management table 304 appears is referred to and grouping for creating a printer transfer character set is performed. In creating a printer transfer character set, characters used in a common page range are first grouped among characters used in a plurality of pages. As a result, bitmap data transfer of the same character is avoided as much as possible in one job.
[0039]
When this group is determined, the character set required for the first page is grouped. When the character set group required for the first page is determined, a printer transfer character set is created and registered in the printer transfer character set management table 305.
[0040]
Thus, character set grouping is performed according to the following three rules.
(1) All characters necessary for drawing a page must be transferred to the printing apparatus.
(2) An unnecessary character set is deleted by a character set deletion command so that the data storage memory in the printing apparatus does not overflow.
(3) Characters used in a common page range are registered in the same character set to reduce the number of retransmissions.
[0041]
The ID of the character set in which the character is stored and the offset value (relative address) in the character set are registered in CharSetID 905 and Offset 906 of the character management table 304.
[0042]
Note that character IDs of frequently appearing characters such as hiragana and numbers are reserved, and are preferentially registered in the character management table 304 at the position of the reserved ID. This can prevent overhead such as calculation of a hash function and processing at the time of collision.
(Character grouping and printer transfer character set creation example)
FIG. 10 is a diagram illustrating an example of the driver management character set thus generated. For example, the character 1 or the character ID “1” and the character 7 or the character ID “7” are used between the first page and the fifth page, and the character 8 or the character ID is used. It can be seen that the character “8” is used only on the fifth page. Therefore, the character 1 and the character 7 are grouped in the same group because the page range in which they are used is the same. All other characters are divided into separate groups because they use different page ranges.
[0043]
When creating a transfer character set from this group, the printer transfer character set has a fixed length, so it is more efficient to combine multiple groups into one character set according to the length of the character set. In some cases. A group condition that should be summarized is to satisfy both of the following two conditions, for example.
(1) The printer transfer character set created in a lump fits within the fixed length.
(2) The range of pages used is continuous or overlapping.
[0044]
In FIG. 10, for example, the usage ranges of character 1 and character 7 include the usage ranges of all other characters. In addition, the character 4 overlaps or is continuous with the use range of all other characters, so that any character group can be grouped as long as there is an empty space. Characters 2 and 8 cannot be collected because they do not satisfy the above conditions.
[0045]
This is only an example, but characters are grouped in this way, and a transfer character set is created from the group.
(Character set for printer transfer)
The printer transfer character set 302 is data for creating a character set registration command to be sent to the printer. The character data registered in the driver management character set 301 is also registered in the printer transfer character set 302.
[0046]
The printer transfer character set 302 includes a character set management table 305 and character set data 306. The character set data 306 is the character set data itself transferred from the driver to the printer, and has a format to be described later.
[0047]
Bitmap data, which is the actual state of character data, is obtained by development from an outline font of the host computer. The character set 306 is erased by the character set deletion process. Therefore, if bitmap data is registered in the character management table 304 for the driver in units of one character and a paper jam or the like occurs after the character set deletion processing, the processing for newly developing the bitmap data is not performed. In both cases, the character set can be re-registered, and the processing speed can be increased.
<Data transferred from the host computer to the printer>
Next, the transfer data format will be described with reference to FIG.
[0048]
FIG. 4 shows the structure of page data for one page created by the host computer.
(Job start data section)
The job start data 401 is a table in which information of each data to be transferred is registered, and includes initial setting data necessary for performing drawing processing such as page layout information data.
(Character set data part)
The character set data 402 is data configured so that bitmap font data of characters used for drawing the page can be easily found from the character ID.
[0049]
The size of one character set is a multiple of a fixed length determined by the printer, and the number of registered characters changes depending on the font size and compression rate. If it is less than the fixed length size, it is adjusted to the fixed length size by filling in blanks. The character set data includes a character set header portion 405, a relative address 406, and a character data portion 407.
[0050]
The character set header portion 405 includes a character set ID 4051, the number of characters 4052 registered in the character set, a first page 4053 that is the first page in which the character set is used, and a last page last page 4054.
[0051]
In the relative address portion 406, byte offset values from the header portion for accessing each character data in the character set data are set for the number of registered characters.
[0052]
The character data portion 407 is a portion where character data is actually registered. Bitmap data of each character is stored following the character header portion in which information such as the character width, height, compression type, and size is stored. Compressed and registered.
(Character drawing command data part)
The character drawing command data 403 is a command group for instructing a character drawing position. Each character drawing command data is divided into band units, and is indicated by the ID of the character set that includes the character to be printed and the offset value of the character within the character set. As the drawing position, a relative coordinate position in the band is set.
[0053]
The data size of the entire character drawing command data is also adjusted to be a multiple of the fixed length size.
(Image data part)
The image data unit 404 is image data generated and compressed with a height and width for each band, which is a unit processed by the printer.
<Character set management and character drawing command creation procedure>
Next, a procedure for generating character set data and a character drawing command by the printer driver of the host computer will be described using the flowchart of FIG. 8 and the data structures of FIGS.
[0054]
S801: Print data is spooled for one job. Among them, only character data is processed, and a driver management character set 301 is constructed. At this time, the page number where the character appears is managed by the minPage 902 and maxPage 903 in the character management table 304.
[0055]
S802: Search for characters used in a plurality of pages from the driver management character set by minPage 902 and maXPage 903 indicating the number of pages in which the characters appear, and group the characters used in the plurality of pages.
[0056]
S803: Characters used in the target page being processed are grouped based on minPage 902 and maXPage 903 indicating the number of pages on which the character appears. From this group and the character group created in S802, a character set 302 for character transfer used in the page of interest is created. At this time, characters belonging to different groups are registered in different character sets.
[0057]
S804: Create a character drawing command for the page of interest, and transfer it to the printer together with the character set created in S803. The character drawing command is generated by combining the character set ID 905 and the relative address 906 in the character set with the drawing position. All other data is expanded into an image, used as an image drawing command, and transferred to the printer.
[0058]
S805: A delete command for deleting a character set that is unnecessary after the page of interest is generated and transferred to the printer. The character set to be deleted is a character set that normally includes characters grouped in S803, and the character set grouped in S802 is not used as a deletion target because it is used even after the page of interest.
[0059]
S806: If there is a next page in the job, the page is set as the page of interest, and the process returns to S803. If there is no next page, the process ends.
[0060]
By the above procedure, a printer transfer character set is created and transmitted to the printer together with a character drawing command.
<Data format in printer>
Next, a procedure for storing data on the printer RAM and a registered data format will be described with reference to FIGS.
[0061]
In step S <b> 1101, the printer 102 reads job start data of the transfer data 400 created by the driver and performs initial setting of the printer.
[0062]
S1102: Thereafter, data is read into the RAM according to the size of data included in the job start command.
[0063]
The reception buffer 103 is composed of many fixed-length reception cells. Each reception cell 501 has a structure having an address part (nextp) which is a pointer to the next empty buffer and a data part. The size of one character set data created by the host computer matches the size of this reception cell. Data can be managed even if they do not match, but since the printer manages the use / unuse of the area for each received cell, odd-sized data also occupies one received cell, and the memory is effectively used. Can not.
[0064]
The reception buffer 103 is managed by the reception buffer control structure 502. The reception buffer control structure 502 includes a pointer Freep to an empty reception cell, a pointer FreeEndp to the last cell of the empty reception cell, a pointer Fontp to the top of the character set data portion, and a top to the character drawing command data portion. It is composed of a pointer Renderp and a pointer Imagep to the top of the image data portion. In the initial state, the pointer Freep points to the beginning of the receiving buffer, the pointer FreeEndp points to the receiving cell at the end of the receiving buffer, and a pointer to the next receiving cell is written in the address portion of each receiving cell.
[0065]
Data received from the host computer is packed in units of reception buffer cells at the destination indicated by the pointer Freep. The pointer Freep is updated with the value of the pointer nextp of the reception cell in which data is stored. Data can be read until the pointer Freep becomes the same as the pointer FreeEndp.
[0066]
S1103: The top position (Fontp) of the character set data, the top position (Renderp) of the character drawing command data, and the top position (Imagep) of the image data can be calculated from the data size of the job start command read first. The position is registered in the reception buffer control structure 502.
[0067]
Note that image data may not be able to fit into one page, but in that case, the image data is stored as much as possible.
[0068]
S1104: Trace the pointer fontp, and create a character set table 503 storing a character set ID and a pointer to the corresponding character set for each character set.
<Printing procedure>
Next, processing from receiving a plurality of pages in the above memory space to printing out the same will be described with reference to FIG.
[0069]
600: The reception buffer is in an initialized state at the start of drawing.
[0070]
601: The received character set data and character drawing data are stored according to nextp from the upper part of the reception buffer.
[0071]
602: Store image data until the memory becomes full, and set pointers Fontp, Renderp, and Imagep from each data size included in the job start instruction.
[0072]
For the stored character set, the head address is registered in the character set table for each set. The procedure so far is the procedure of FIG.
[0073]
603: Start drawing. The previous band image data indicated by the pointer “Imagep” is expanded in the band memory, and the CPU analyzes the previous character drawing command data indicated by the pointer “Renderp”, and obtains the corresponding character image from the character set data. Draw.
[0074]
Along with this, the receiving cell of the image data portion developed in the band memory is released. The address of the received cell that has been released is set in the pointer nextp portion of the received cell pointed to by the pointer FreeEndp until then, and the address of the received cell that has been released is also set in FreeEndp.
[0075]
In the released reception cell, data in a state waiting for storage in the reception buffer is read as needed.
[0076]
604: After all the data for one page has been read into the receiving cell, the next page of data is also fetched. In the state 604, the character set data of the second page is stored in the empty area following the image data of the first page.
[0077]
605: A state immediately before the end of data processing for one page is shown. The first page stores character set data, character drawing commands, and part of image data. In addition, character set data, a character drawing command, and part of image data for the second page are stored.
[0078]
606: A command to delete character set data is sent from the host computer as necessary. When the processing of the character drawing command for the page of interest is completed, the received cell storing the character set data that is no longer needed and the drawing command for the first page is released according to the character set deletion command. Thereafter, the job start command on the second page is read and parameters are set.
[0079]
When deleting character data, the head address of the released reception cell is set to the pointer nextp of the destination reception cell pointed to by the pointer FreeEndp, and the final address is set to FreeEndp.
<Deleting Instruction Processing Procedure>
Next, the processing procedure for the character set deletion command will be described with reference to FIG.
[0080]
S1201: The character set ID designated as the deletion target is searched from the character set table 503 held by the printer.
[0081]
S1202: If not found, error processing is performed.
[0082]
S1203: The address of the received cell of the character set corresponding to the designated character set ID is obtained from the character set table, and the received cell is released. The reception cell is released by connecting the current empty area and the newly released area by the pointer nextp of each reception cell. That is, the address of the received cell to be newly released is set to the pointer nextp of the received cell pointed to by the pointer FreeEndp to the end of the current free space, and then the address of the received cell to be newly released is also set to the pointer FreeEndp. set.
[0083]
S1204: The character set table entry corresponding to the deleted character set ID is deleted and updated.
[0084]
By deleting the character set data as described above, the free area is released in units of received cells. Therefore, it is possible to reuse the open area without collecting it. The procedure for releasing the reception cell is not limited to the character set data, and the reception cell storing the character drawing command that has been output for one page and the band image data that has been output for one band is released. Also used when.
[0085]
FIG. 7 shows a state when the drawing process has progressed. The destination of tracing the pointer Freep and tracing the nextp from the reception cell indicated by the pointer Freep is an empty area. In addition, when nextp shows the receiving cell which continues, the arrow showing the nextp is abbreviate | omitted.
[0086]
In this way, when the character set size is non-fixed length and occupies memory discontinuously, the size of the free space that is created when character set data is erased is uneven, and the character set registered in units of one character If is deleted, a discontinuous free space is created. Therefore, it takes a lot of time to reconstruct character set data in order to collect free memory, and it is impossible to reconstruct character set data between pages during continuous page output.
[0087]
In contrast, in the printing system according to the present embodiment, the printer memory is managed in units of fixed-length received cells. For this reason, the free area released in the memory of the printer is a unit of the reception cell, and can be reused immediately without collecting the free area.
[0088]
In such a case, if character set data is created for each character, for example, many areas are wasted in order to store character set data for one character in one receiving cell. In this embodiment, since the host computer creates character set data with a fixed length in units of the size matched to the received cell, the character set data is stored in the received cell without waste, reducing the memory utilization efficiency. There is nothing.
[0089]
In the above, the printing system that determines the timing for executing the character set data deletion command on the printer side and executes the character set deletion command has been described. However, the host computer obtains information from the printer because it is connected with a bidirectional interface. If it is possible, the printer may notify the host computer of the end of the print output of the page, and the host computer may send a character set deletion command that is not used on the page or later to the printer based on the information.
<Printer engine>
There is no particular limitation on what is used as the printer engine of the above embodiment. Here, two typical engines applicable to the printer of this embodiment will be described.
[0090]
FIG. 13 is a cross-sectional view showing the internal structure of a laser beam printer (hereinafter abbreviated as LBP) in this case. This LBP can input character pattern data or the like and print it on recording paper.
[0091]
In the figure, reference numeral 740 denotes an LBP main body, which forms an image on a recording paper as a recording medium based on a supplied character pattern and the like. Reference numeral 700 denotes an operation panel on which an operation switch and an LED display are arranged. Reference numeral 701 denotes a printer control unit for controlling the entire LBP 740 and analyzing character pattern information. This printer control unit 701 mainly converts character pattern information into a video signal and outputs it to the laser driver 702.
[0092]
The laser driver 702 is a circuit for driving the semiconductor laser 703, and switches on / off the laser beam 704 emitted from the semiconductor laser 703 in accordance with the input video signal. The laser beam 704 is swung left and right by the rotary polygon mirror 705 to scan the electrostatic drum 706. As a result, an electrostatic latent image of a character pattern is formed on the electrostatic drum 706. This latent image is developed by a developing unit 707 around the electrostatic drum 706 and then transferred to a recording sheet. A cut sheet is used as the recording paper, and the cut sheet recording paper is stored in a paper cassette 708 mounted on the LBP 740, taken into the apparatus by a paper feed roller 709 and transport rollers 710 and 711, and supplied to the electrostatic drum 706. Is done.
[0093]
FIG. 14 is a schematic view of an ink jet recording apparatus IJRA to which the present invention can be applied. In the drawing, the carriage HC engaged with the spiral groove 5004 of the lead screw 5005 that rotates via the driving force transmission gears 5011 and 5009 in conjunction with the forward and reverse rotation of the drive motor 5013 has a pin (not shown). And is reciprocated in the directions of arrows a and b. An ink jet cartridge IJC is mounted on the carriage HC. Reference numeral 5002 denotes a paper pressing plate that presses the paper against the platen 5000 in the moving direction of the carriage. Reference numerals 5007 and 5008 denote photo-couplers which are home position detecting means for confirming the presence of the carriage lever 5006 in this region and switching the rotation direction of the motor 5013. Reference numeral 5016 denotes a member that supports a cap member 5022 that caps the front surface of the recording head. Reference numeral 5015 denotes suction means that sucks the inside of the cap, and performs suction recovery of the recording head through an opening 5023 in the cap. Reference numeral 5017 denotes a cleaning blade, and reference numeral 5019 denotes a member that enables the blade to move in the front-rear direction, and these are supported by a main body support plate 5018. Needless to say, the blade is not in this form, and a known cleaning blade can be applied to this example. Reference numeral 5021 denotes a lever for starting suction for suction recovery, which moves in accordance with the movement of the cam 5020 engaged with the carriage. The driving force from the drive motor is controlled by a known transmission means such as clutch switching. Is done.
[0094]
[Other Embodiments]
Note that the present invention can be applied to a system including a plurality of devices (for example, a host computer, an interface device, a reader, a printer, etc.), or a device (for example, a copier, a facsimile device, etc.) including a single device. You may apply to.
[0095]
Another object of the present invention is to supply a storage medium storing software program codes for implementing the functions of the above-described embodiments to a system or apparatus, and the computer (or CPU or MPU) of the system or apparatus stores the storage medium. This can also be achieved by reading and executing the program code stored in.
[0096]
In this case, the program code itself read from the storage medium realizes the functions of the above-described embodiments, and the storage medium storing the program code constitutes the present invention.
[0097]
As a storage medium for supplying the program code, for example, flexible A disk, hard disk, optical disk, magneto-optical disk, CD-ROM, CD-R, magnetic tape, nonvolatile memory card, ROM, or the like can be used.
[0098]
Further, by executing the program code read by the computer, not only the functions of the above-described embodiments are realized, but also an OS (operating system) operating on the computer based on the instruction of the program code. A case where part or all of the actual processing is performed and the functions of the above-described embodiments are realized by the processing is also included.
[0099]
Further, after the program code read from the storage medium is written into a memory provided in a function expansion board inserted into the computer or a function expansion unit connected to the computer, the function expansion is performed based on the instruction of the program code. This includes a case where the CPU or the like provided in the board or the function expansion unit performs part or all of the actual processing and the functions of the above-described embodiments are realized by the processing.
[0100]
【The invention's effect】
As described above, according to the present invention, the character portion is received as a character code and developed into a character image with a simple configuration, so that the character development processing time and transfer data from the host can be obtained. The amount is very small, and the memory capacity of the printing apparatus can be reduced, so that it can be used efficiently.
[0101]
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a configuration of a print control system according to an embodiment.
FIG. 2 is a diagram illustrating driver data creation processing and printer printing processing;
FIG. 3 is a diagram for explaining the structure of character set management data on the driver side;
FIG. 4 is an explanatory diagram of a detailed structure of a transfer character set.
FIG. 5 is a diagram illustrating a structure and a storage form (first page) of a reception buffer of the printer.
FIG. 6 is a diagram illustrating a printer memory management method;
FIG. 7 is a diagram illustrating a structure of a reception buffer of a printer and a storage form (during output of a plurality of pages).
FIG. 8 is a flowchart of a character processing procedure in the host computer.
FIG. 9 is a diagram illustrating the structure of a driver management character set.
FIG. 10 is a diagram illustrating an example of how a driver management character set is used;
FIG. 11 is a flowchart of a procedure for receiving print data in a printer.
FIG. 12 is a flowchart of a procedure for deleting character set data in the printer.
FIG. 13 is a diagram of a laser beam printer engine.
FIG. 14 is a diagram of an engine of an inkjet printer.
[Explanation of symbols]
101 Host computer
102 Printer controller
103 Input buffer
104 ROM
105 CPU
106 character hard renderer
107 Image renderer
108 band memory
110 Printer engine

Claims (15)

各文字の出現するページの範囲を管理する管理手段と、
前記管理手段により管理される各文字のページ範囲に基づき、文字のグループを作成するグループ化手段と、
前記グループ化手段により作成されたグループから注目ページで用いられる文字の文字セットを作成し、作成された文字セットをプリンタに転送する転送手段と、
前記転送手段により転送された文字セットを削除する削除コマンドをプリンタに送信する送信手段とを有することを特徴とする情報処理装置。
Management means for managing the range of pages in which each character appears;
Grouping means for creating a group of characters based on the page range of each character managed by the management means ;
Transfer means for creating a character set of characters used in the page of interest from the group created by the grouping means, and transferring the created character set to a printer;
An information processing apparatus comprising: a transmission unit that transmits a deletion command for deleting the character set transferred by the transfer unit to the printer .
前記グループ化手段は、前記管理手段により管理される各文字のページ範囲に基づき、ページ範囲が同じである文字を同一のグループにまとめることを特徴とする請求項1記載の情報処理装置。The information processing apparatus according to claim 1, wherein the grouping unit groups characters having the same page range into the same group based on a page range of each character managed by the management unit. 前記転送手段は、注目ページの文字描画データを転送することを特徴とする請求項1記載の情報処理装置。 Said transfer means, an information processing apparatus according to claim 1, wherein the transfer of character drawing data of the target page. 前記送信手段は、注目ページ以降では不要となった文字セットを削除する削除コマンドを送信することを特徴とする請求項3記載の情報処理装置。The information processing apparatus according to claim 3 , wherein the transmission unit transmits a delete command for deleting a character set that is no longer necessary after the page of interest . 前記管理手段は、印刷データを1ジョブ分スプールし、文字データを処理し、文字が出現するページを管理することを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。 The information processing apparatus according to claim 1, wherein the management unit spools print data for one job, processes character data, and manages a page on which characters appear . 各文字の出現するページの範囲を管理する管理ステップと、
前記管理手段により管理される各文字のページ範囲に基づき、文字のグループを作成するグループ化ステップと、
前記グループ化ステップにより作成されたグループから注目ページで用いられる文字の文字セットを作成し、作成された文字セットをプリンタに転送する転送ステップと、
前記転送ステップにより転送された文字セットを削除する削除コマンドをプリンタに送信する送信ステップとを有することを特徴とする印刷制御方法。
Management steps to manage the range of pages where each character appears;
A grouping step for creating a group of characters based on the page range of each character managed by the management means ;
A transfer step of creating a character set of characters used in the page of interest from the group created by the grouping step, and transferring the created character set to a printer;
A printing control method comprising: a transmission step of transmitting to the printer a deletion command for deleting the character set transferred in the transfer step .
前記グループ化ステップは、前記管理ステップにより管理される各文字のページ範囲に基づき、ページ範囲が同じである文字を同一のグループにまとめることを特徴とする請求項6記載の印刷制御方法。The print control method according to claim 6, wherein the grouping step groups characters having the same page range into the same group based on the page range of each character managed by the management step . 前記転送ステップは、注目ページの文字描画データを転送することを特徴とする請求項6記載の印刷制御方法。 It said transfer step, the print control method according to claim 6, wherein the transfer of character drawing data of the target page. 前記送信ステップは、注目ページ以降では不要となった文字セットを削除する削除コマンドを送信することを特徴とする請求項8記載の印刷制御方法。 9. The print control method according to claim 8 , wherein the transmission step transmits a delete command for deleting a character set that is no longer necessary after the page of interest . 前記管理ステップは、印刷データを1ジョブ分スプールし、文字データを処理し、文字が出現するページを管理することを特徴とする請求項6乃至9のいずれか1項に記載の印刷制御方法。 10. The print control method according to claim 6, wherein the management step spools print data for one job, processes character data, and manages a page on which characters appear . 各文字の出現するページの範囲を管理する管理ステップと、
前記管理手段により管理される各文字のページ範囲に基づき、文字のグループを作成するグループ化ステップと、
前記グループ化ステップにより作成されたグループから注目ページで用いられる文字の 文字セットを作成し、作成された文字セットをプリンタに転送する転送ステップと、
前記転送ステップにより転送された文字セットを削除する削除コマンドをプリンタに送信する送信ステップとを有するプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
Management steps to manage the range of pages where each character appears;
A grouping step for creating a group of characters based on the page range of each character managed by the management means ;
A transfer step of creating a character set of characters used in the page of interest from the group created by the grouping step, and transferring the created character set to a printer;
A computer-readable storage medium storing a program having a transmission step of transmitting to the printer a deletion command for deleting the character set transferred in the transfer step .
前記グループ化ステップは、前記管理ステップにより管理される各文字のページ範囲に基づき、ページ範囲が同じである文字を同一のグループにまとめることを特徴とする請求項11記載のプログラムを記憶したコンピュータ読み取り可能な記憶媒体。12. The computer-readable program storing a program according to claim 11, wherein the grouping step groups characters having the same page range into the same group based on the page range of each character managed by the management step. Possible storage medium. 前記転送ステップは、注目ページの文字描画データを転送することを特徴とする請求項11記載のプログラムを記憶したコンピュータ読み取り可能な記憶媒体。 It said transfer step, a computer-readable storage medium storing the claim 11, wherein the program characterized by transferring the character drawing data of the target page. 前記送信ステップは、注目ページ以降では不要となった文字セットを削除する削除コマンドを送信することを特徴とする請求項13記載のプログラムを記憶したコンピュータ読み取り可能な記憶媒体。 14. The computer-readable storage medium storing a program according to claim 13 , wherein the transmission step transmits a delete command for deleting a character set that is no longer necessary after the page of interest . 前記管理ステップは、印刷データを1ジョブ分スプールし、文字データを処理し、文字が出現するページを管理することを特徴とする請求項11乃至14のいずれか1項に記載のプログラムを記憶したコンピュータ読み取り可能な記憶媒体。 15. The program according to claim 11, wherein the management step spools print data for one job, processes character data, and manages a page on which characters appear . A computer-readable storage medium.
JP01971998A 1997-02-24 1998-01-30 Printing system and printing control method Expired - Fee Related JP3768670B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP01971998A JP3768670B2 (en) 1997-02-24 1998-01-30 Printing system and printing control method
US09/028,343 US6317217B1 (en) 1998-01-30 1998-02-24 Printing system and printing control method

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP3923097 1997-02-24
JP9-39230 1997-02-24
JP01971998A JP3768670B2 (en) 1997-02-24 1998-01-30 Printing system and printing control method
US09/028,343 US6317217B1 (en) 1998-01-30 1998-02-24 Printing system and printing control method

Publications (2)

Publication Number Publication Date
JPH10293669A JPH10293669A (en) 1998-11-04
JP3768670B2 true JP3768670B2 (en) 2006-04-19

Family

ID=27282744

Family Applications (1)

Application Number Title Priority Date Filing Date
JP01971998A Expired - Fee Related JP3768670B2 (en) 1997-02-24 1998-01-30 Printing system and printing control method

Country Status (1)

Country Link
JP (1) JP3768670B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5040978B2 (en) * 2009-09-25 2012-10-03 ブラザー工業株式会社 PDL data processing apparatus and computer program
CN103373093A (en) * 2012-04-28 2013-10-30 新采国际股份有限公司 Printing control method and relevant printing device system

Also Published As

Publication number Publication date
JPH10293669A (en) 1998-11-04

Similar Documents

Publication Publication Date Title
JP3618884B2 (en) Information processing apparatus, information processing method, printing system, and memory
JP3576819B2 (en) Information processing apparatus, print control method, and storage medium
US6317217B1 (en) Printing system and printing control method
JP3634447B2 (en) Image processing apparatus and method
JP3466808B2 (en) Image processing apparatus and method
JP3817387B2 (en) Information processing apparatus, printing apparatus, information processing method, and storage medium capable of instructing cancellation of print job
US6310693B1 (en) Printing control apparatus and method, and printing system for reducing processing overhead
JP3768670B2 (en) Printing system and printing control method
JPH09325867A (en) Printing controlling method, and printing system
US20010040688A1 (en) Printer
JP3116354B2 (en) Printer data management method
JP3320264B2 (en) Memory shortage processing method for printing, printer system, printer device, printer interface
JP3281327B2 (en) Information processing apparatus and information processing method
JPH10187390A (en) Information processor, data processing method for information processor and recording medium storing program that can be read by computer
JP2003072162A (en) Printing controller, method for processing data, storage medium, and program
JP3056948B2 (en) PRINTING APPARATUS, CONTROLLER THEREOF, AND METHOD OF CONTROLLING PRINTING APPARATUS
JPH09295432A (en) Printer and print controlling method
JP2000155663A (en) Printing controller, data processing method for the printing controller and storage medium stored with computer readable program
JP2003173446A (en) Image processing device, system and method, storage medium and program
JP2012081711A (en) Image forming apparatus and image processing method
JPH09327947A (en) Apparatus and method for output of image
JPH05345449A (en) Managing method for printing information in printer and printing device
JPH10175332A (en) Equipment and method for controlling printing, and storage medium storing program which can be read by computer
JPH09272234A (en) Image output device, control method thereof and computer readable memory
JPH11129555A (en) Control device for printing, method for data processing thereof and recording medium containing computer readable program

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040608

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040608

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20040608

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20040608

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

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050719

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060202

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

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees