(57)【特許請求の範囲】
【請求項１】
各文字の出現するページの範囲を管理する管理手段と、
前記管理手段により管理される各文字のページ範囲に基づき、文字のグループを作成するグループ化手段と、
前記グループ化手段により作成されたグループから注目ページで用いられる文字の文字セットを作成し、作成された文字セットをプリンタに転送する転送手段と、
前記転送手段により転送された文字セットを削除する削除コマンドをプリンタに送信する送信手段とを有することを特徴とする情報処理装置。
【請求項２】
前記グループ化手段は、前記管理手段により管理される各文字のページ範囲に基づき、ページ範囲が同じである文字を同一のグループにまとめることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記転送手段は、注目ページの文字描画データを転送することを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記送信手段は、注目ページ以降では不要となった文字セットを削除する削除コマンドを送信することを特徴とする請求項３記載の情報処理装置。
【請求項５】
前記管理手段は、印刷データを１ジョブ分スプールし、文字データを処理し、文字が出現するページを管理することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
各文字の出現するページの範囲を管理する管理ステップと、
前記管理手段により管理される各文字のページ範囲に基づき、文字のグループを作成するグループ化ステップと、
前記グループ化ステップにより作成されたグループから注目ページで用いられる文字の文字セットを作成し、作成された文字セットをプリンタに転送する転送ステップと、
前記転送ステップにより転送された文字セットを削除する削除コマンドをプリンタに送信する送信ステップとを有することを特徴とする印刷制御方法。
【請求項７】
前記グループ化ステップは、前記管理ステップにより管理される各文字のページ範囲に基づき、ページ範囲が同じである文字を同一のグループにまとめることを特徴とする請求項６記載の印刷制御方法。
【請求項８】
前記転送ステップは、注目ページの文字描画データを転送することを特徴とする請求項６記載の印刷制御方法。
【請求項９】
前記送信ステップは、注目ページ以降では不要となった文字セットを削除する削除コマンドを送信することを特徴とする請求項８記載の印刷制御方法。
【請求項１０】
前記管理ステップは、印刷データを１ジョブ分スプールし、文字データを処理し、文字が出現するページを管理することを特徴とする請求項６乃至９のいずれか１項に記載の印刷制御方法。
【請求項１１】
各文字の出現するページの範囲を管理する管理ステップと、
前記管理手段により管理される各文字のページ範囲に基づき、文字のグループを作成するグループ化ステップと、
前記グループ化ステップにより作成されたグループから注目ページで用いられる文字の文字セットを作成し、作成された文字セットをプリンタに転送する転送ステップと、
前記転送ステップにより転送された文字セットを削除する削除コマンドをプリンタに送信する送信ステップとを有するプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【請求項１２】
前記グループ化ステップは、前記管理ステップにより管理される各文字のページ範囲に基づき、ページ範囲が同じである文字を同一のグループにまとめることを特徴とする請求項１１記載のプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【請求項１３】
前記転送ステップは、注目ページの文字描画データを転送することを特徴とする請求項１１記載のプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【請求項１４】
前記送信ステップは、注目ページ以降では不要となった文字セットを削除する削除コマンドを送信することを特徴とする請求項１３記載のプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【請求項１５】
前記管理ステップは、印刷データを１ジョブ分スプールし、文字データを処理し、文字が出現するページを管理することを特徴とする請求項１１乃至１４のいずれか１項に記載のプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ホスト・コンピュータからの印刷情報を受けて動作する印刷装置を含む印刷システム及び印刷制御方法に関するものであり、特にプリンタ制御言語（ＰＤＬ(Printer Description Languag)）やプリンタ制御コマンドなどと呼ばれるプリンタ制御機能を持つ印刷装置及び、その印刷装置のためにホストコンピュータ側で用意されるプリンタドライバ、またはプリントスプーラやプリントプロセッサなどと呼ばれるソフトウェアを含む印刷システムや印刷制御方法に関するものである。
【０００２】
【従来の技術】
近年の印刷装置として、ＣＡＤ（計算機支援用設計）、ＣＧ（コンピュータグラフィックス）、デザイン、ビジネスにおけるＤＴＰ（デスクトップパブリッシング）分野等のマルチメディア処理で利用されるデータを高精細に印刷・記録するプリンタが製品化されている。
【０００３】
このようなプリンタとして、ホストコンピュータから送られるＰＤＬ（ページ記述言語）コードを受け取って解析して作成した中間言語をハードウェアまたはソフトウェアで高速にレンダリング（ラスタライズ）するＰＤＬプリンタと、低価格化するためにプリンタ側の機能を減らし、ホストコンピュータ側でプリントが出力可能なイメージデータ形式にまでラスタライズしてプリンタに送信するイメージプリンタがある。
【０００４】
ＰＤＬプリンタはページ内の情報をページ記述言語として受取り、中間言語を作成し、１ページ分溜まったところで描画処理を行うものである。
【０００５】
文字の描画方法はプリンタ内部のＲＯＭ内にあるフォントデータを使う場合と、ホストコンピュータでフォントデータを展開してイメージデータにして送ってくる場合があるが、ディスプレイの表示と同じ印刷結果を得るために後者の利用率が上がっている。
【０００６】
【発明が解決しようとする課題】
しかし、文字すべてをイメージデータとして送ると転送データ量が増え、描画速度が低下する。
【０００７】
本発明の目的は、前記イメージプリンタに近い、簡単な構成のイメージ専用プリンタでありながら、文字の部分は文字コードで受信して文字画像に展開することで、ホストにおける文字の展開処理時間とホストからの転送データ量とを非常に小さくし、しかも印刷装置のメモリ容量を小さく抑えて効率的に利用する印刷システム及び印刷制御方法を提供することである。
【０００８】
【課題を解決するための手段】
上記目的を達成するために、本発明は次のような構成からなる。すなわち、各文字の出現するページの範囲を管理する管理手段と、前記管理手段により管理される各文字のページ範囲に基づき、文字のグループを作成するグループ化手段と、前記グループ化手段により作成されたグループから注目ページで用いられる文字の文字セットを作成し、作成された文字セットをプリンタに転送する転送手段と、前記転送手段により転送された文字セットを削除する削除コマンドをプリンタに送信する送信手段とを有する。
【００１４】
【発明の実施の形態】
（第一実施形態）
本発明の印刷手法の実施の形態について説明する。図１は実施の形態における印刷装置の構成を示すブロック図である。
＜システムの構成＞
図１において、１０１はホストコンピュータである。ホストコンピュータ１０１においては、文字や自然画像などを含んだ画像を作成する作画アプリケーションを用いて作成したデータを、ＣＰＵ１０１１で実行されるイメージドライバによって、プリンタが受け取れるデータ形式に変換する。変換されたデータをプリンタコントローラ１０２に送出する。このイメージドライバは外部メモリ１０１３あるいは主メモリ１０１２に格納されたプログラムである。
【００１５】
プリンタコントローラ１０２に入力されたデータはＤＭＡ転送によって入力バッファ１０３（ＲＡＭ）に格納される。入力バッファ１０３に格納されたデータは、ＣＰＵ１０５で実行されるプログラム用ＲＯＭ１０４内の転送データ解析プログラムによって処理される。また入力バッファ１０３は文字セットデータを保持するための領域としても利用される。プログラム用ＲＯＭ１０４は後述する図に示す処理手順（制御プログラム）を格納するメモリであり、ＣＰＵ１０５がこの制御プログラムにしたがってデータを読み込み各処理を実行する。
【００１６】
ＣＰＵ１０５は入力バッファに格納されたイメージデータの描画位置などのパラメータをイメージハードレンダラ１０７にセットする。イメージハードレンダラ１０７は入力バッファ内の圧縮されたイメージデータを伸長してバンドメモリ１０８に描画する。
【００１７】
ＣＰＵ１０５は入力バッファに格納された文字描画命令を解析し、既に登録された文字データを文字ハードレンダラ１０６にセットする。文字ハードレンダラ１０６は入力バッファ内の文字データを文字のイメージに展開して、バンドメモリ１０８に既に展開されているイメージがあればその上に直接描画する。
【００１８】
バンドメモリ（ページ幅×１２８画素程度のバンドの高さ）は少なくとも２つ備えられ、ひとつのメモリがシッピング状態（バンドメモリからエンジン部へとイメージデータが出力されている状態）であれば、他のメモリは、イメージ展開状態（バンドメモリに文字データ以外のイメージデータを展開している状態）及び文字描画状態（バンドメモリに文字イメージを展開している状態）とを続けて行う行うことによってイメージの合成処理を行っている。合成が終わったバンドの情報は即座にプリンタインターフェース１０９を介してプリンタエンジン１１０に送られる。一方、シッピングが終えたバンドメモリには、イメージ展開及び文字描画が行われる。
【００１９】
プリンタインターフェース１０９は、プリンタエンジン１１０、例えばＬＢＰとの間でバンドメモリ１０８との間でプリンタエンジン１１０へのコマンド送信やプリンタエンジン１１０からのステータス（データ格納可能など）受信を行う。
【００２０】
ＣＰＵ１０５はプリンタコントローラ１０２の内部処理を制御する演算装置であり、プリンタ全体を制御している。１１０はプリンタコントローラ１０２から送出されるビデオ信号を印字するプリンタエンジンであり、電子写真によるＬＢＰでもインクジェット方式であっても良い。またカラープリンタでもモノクロプリンタでも良い。
＜ＴｙｐｅＷｉｎｇ方式の説明＞
上記構成のシステムにおいては、ホストコンピュータから印刷データをプリンタに送るに際して、その前にジョブごとにデータの先頭から順に文字データを拾う。その文字が初めて送られる文字データであればその登録番号（文字ＩＤ）と文字イメージとを所定数セットにしてプリンタに登録し（これを文字セットと呼び、その識別子を文字セットＩＤと呼ぶ）、２回目以降の文字は文字ＩＤと描画位置とをホストコンピュータからプリンタに送る。プリンタでは、先に登録されている文字ＩＤとその文字の文字イメージとを参照して文字イメージを展開し、印刷するイメージを作成する。この手法を発明者らはＴｙｐｅＷｉｎｇ方式と呼んでいる。
【００２１】
本実施例におけるＴｙｐｅＷｉｎｇ方式は、ホストコンピュータからプリンタへ文字セットデータを登録するための文字セット登録命令、印刷データにおける文字描画命令、登録されている文字セットを削除するための文字セット削除命令で実現可能である。プリンタは、各命令に対して次のように動作する。
【００２２】
文字セット登録命令によって、文字セットＩＤに対応したフォントセット用アドレステーブル領域を確保し、その文字セットに含まれる文字ＩＤと文字イメージデータを関連づけて登録する。
【００２３】
登録文字印字（文字描画）命令によって、既に登録されている文字を指定された位置に描画する。
【００２４】
文字セット削除命令は、プリンタ内部のメモリが一杯になった場合などにあまり使わない文字セットを消去するための命令であり、登録されている文字セットから指定された文字セットを削除してその領域を開放する。
【００２５】
このＴｙｐｅＷｉｎｇ方式により、文字はコード化されるためにデータ量が減り、ホストコンピュータからプリンタへの転送時間も短くなる。そのため、低価格プリンタで文字印字の高速化を実現するためには、イメージプリンタにＴｙｐｅＷｉｎｇ方式を取り入れる方法が有効である。
【００２６】
図２はホストコンピュータで文字と図形が混ざったデータを作成し、プリンタコントローラで出力するまでを示す説明図である。
【００２７】
２０１はホストコンピュータ１０１の作画アプリケーションで作画した結果をディスプレイに表示した出力結果の模式図である。ホストコンピュータ１０１においては、文字はキャラクタコード、線はその開始点と終了点と線幅等のデータ形式で保持している。プリンタドライバはこれらのデータ形式からプリンタコントローラ１０２が出力可能なデータ形式に変換する。
（プリンタドライバの処理）
（１）プリントジョブの初期化
１プリントジョブ全体の印刷データをスキャンし、プリンタコントローラ１０２が描画可能な文字を抽出して、抽出された文字を文字種毎に管理テーブルに保存する。管理テーブルの各文字には、出現したページの情報も付加する。１プリントジョブ全体について、文字の管理テーブルへの保存が終了した後、複数のページで使用される文字を集めて、ビットマップフォントデータと文字識別子とで構成される文字セットを作成する。
（２）ページデータの生成
１ページに必要な文字セットを生成する。印刷データを再度スキャンし、文字データについては、その文字データが属する文字セットの識別子（ＩＤ）、その文字セット内での文字識別子（ＩＤ）、文字のページ内の描画位置で文字描画命令を生成する。
【００２８】
文字として描画する印刷データ以外は全てイメージデータに展開する。それをバンドメモリ１０８のサイズ毎に伸長できるよう、バンド毎に圧縮して圧縮イメージデータ２０３とする。こうして生成された１ページ分の文字描画命令及び圧縮イメージデータ及びそのページに必要な文字セットデータをページデータと称する。
（３）データ転送
ホストコンピュータ１０１の内部メモリ空間に１ページ分のページデータがそろうと、プリンタコントローラ１０２に文字セット登録命令及び文字描画命令を送り付け、プリンタコトローラ１０２のメモリに余裕がある限りイメージデータをプリンタに転送する。
【００２９】
プリンタコントローラ１０２からメモリに十分な余裕ができたことを知らされると、空いた分だけ続きのイメージデータを送り付ける。
（４）不要データの削除
１ページ分のページデータの転送を終えると、ホストコンピュータ１０１は、そのページでしか使われない文字で構成された文字セットの削除命令を作成し、印刷装置に転送する。
【００３０】
なお、ホストコンピュータでは、プリンタからの出力が済んだか否かに関わらず命令やデータをプリンタに次々と転送する。プリンタは、印刷の状態とホストコンピュータからの命令とに応じて文字セットを管理する。例えば、あるページを出力し終えたなら、その後にそのページの文字セット削除命令を処理することで、データの整合性を取る。こうすることで、プリンタとホストとが双方向通信で接続されなくとも、本実施形態の処理を行うことが可能となる。
【００３１】
図３は、ホストコンピュータ１０１により文字セットの管理の為に用意される各種テーブルを示している。
【００３２】
図３において、ドライバ管理用文字テーブル群３０１は、印刷ジョブを単位として用意されるテーブル群で、文字セットテーブル３０３と文字管理テーブル３０４が含まれる。
（ドライバ管理用文字セット）
ドライバ管理用文字セット３０１は、プリンタドライバによりプリンタが有する文字セットを管理する為に、その印刷ジョブ中はホストコンピュータに保持されている。
【００３３】
文字セットテーブル３０３は、文字種（ポイント数や明朝、ゴシックなど）に分けて文字セットを登録してあるテーブルである。プリンタドライバは、１ジョブ中の印刷しようとするデータに含まれる文字を調べ、その文字種をドライバ管理用文字セットテーブル３０３に登録する。この文字種の登録は、ドライバ管理用文字セットテーブル３０３のポインタ部に文字種毎に対応するドライバ管理用文字管理テーブル３０４へのポインタがセットされることで行われる。
【００３４】
ドライバ管理用文字管理テーブル３０４は各文字種毎に作成される。以下図９で文字管理テーブル３０４の構造を説明する。
【００３５】
ページデータに含まれる文字は、ホストコンピュータで使用されている文字コードとは別に、各文字に固有の文字ＩＤ９０１が文字毎に割り当てられる。割り当てられた文字ＩＤ９０１は、高速に検索可能な方法、例えばハッシングなどにより文字コードから検索できるように登録される。
【００３６】
初めて登録される時は、出現したページ番号を、ｍｉｎＰａｇｅ９０２、ｍａＸＰａｇｅ９０３にセットする。ビットマップ形式に展開した文字データは文字データ格納領域に保管し、その先頭アドレスを文字ポインタ９０４にセットする。
【００３７】
１ジョブ中に同一文字が複数回出現した際は、ドライバ管理用文字管理テーブル３０４内の対応する文字ＩＤを見つけ、出現したページ番号でｍａｘＰａｇｅ９０３を更新する。
【００３８】
１ジョブ分の文字が登録されると、ドライバ管理用文字管理テーブル３０４に登録された文字の出現したページ番号を参照し、プリンタ転送用文字セットを作成する為のグループ分けを行う。プリンタ転送用文字セットを作成するに当たり、まず複数のページで用いられる文字のうち、共通するページ範囲で用いられる文字同士をグループ化する。それによって１ジョブ中で極力同一文字のビットマップデータ転送を行わないようにする。
【００３９】
このグループが決定したら、１ページ目に必要となる文字セットのグループ分けを行う。１ページ目に必要な文字セットのグループが決定したら、プリンタ転送用文字セットを作成し、プリンタ転送用文字セットの管理テーブル３０５に登録する。
【００４０】
このように、文字セットのグルーピングは下記の３つのルールに従って行われる。
（１）ページの描画に必要な文字は全て印刷装置内に転送されていなくてはならない。
（２）印刷装置内のデータ格納メモリがあふれないよう、不用になった文字セットは、文字セット削除命令で消去される。
（３）互いに共通のページ範囲で使われる文字同士は、同じ文字セットに登録することで再送回数を減らすようにする。
【００４１】
文字が格納された文字セットのＩＤと、文字セット内のオフセット値（相対アドレス）は、文字管理テーブル３０４のＣｈａｒＳｅｔＩＤ９０５，Ｏｆｆｓｅｔ９０６に登録される。
【００４２】
なお、ひらがな、数字などの頻繁に出現する文字の文字ＩＤは予約されており、文字管理テーブル３０４においてその予約されたＩＤの位置に優先的に登録される。このことにより、ハッシュ関数の計算や衝突時の処理などのオーバーヘッドを防止できる。
（文字のグループ化及びプリンタ転送用文字セット作成例）
図１０は、こうして生成されたドライバ管理用文字セットの一例を示す図である。例えば文字１すなわち文字ＩＤが”１”の文字と、文字７すなわち文字ＩＤが”７”の文字は、１ページ目から５ページ目までの間で用いられており、文字８、すなわち文字ＩＤが”８”の文字は５ページ目でだけ用いられていることがわかる。従って、文字１と文字７とは、それらが用いられるページ範囲が同じであるから同一のグループにまとめられる。そのほかの文字は全て用いられるページ範囲が互いに異なっているから、別々のグループに分けられる。
【００４３】
このグループから転送用文字セットを作成する際には、プリンタ転送用文字セットは固定長であることから、文字セットの長さに応じて複数のグループをひとつの文字セットにまとめた方が効率的な場合もある。まとめた方が良いグループの条件は、例えば次の２つの条件をともに満たすことである。
(1)まとめられて作成されたプリンタ転送用文字セットが前記固定長に収まる。
(2)使用されるページ範囲が連続しているか、あるいは重複している。
【００４４】
図１０においては、例えば文字１と文字７の使用範囲は、他のすべての文字の使用範囲を含むため、文字セット長に空きがあればどのグループともまとめられる。また、文字４も、他のすべての文字の使用範囲と重複するか連続しているため、空きさえあればどのグループともまとめられる。文字２と文字８は上記条件を満たさないためにまとめることができない。
【００４５】
これは一例に過ぎないが、このようにして文字をグループ化し、そのグループから転送用文字セットを作成する。
（プリンタ転送用文字セット）
プリンタ転送用文字セット３０２は、プリンタに送る文字セット登録命令を作成するためのデータである。ドライバ管理用文字セット３０１に登録された文字データはプリンタ転送用文字セット３０２にも登録される。
【００４６】
プリンタ転送用文字セット３０２は、文字セット管理テーブル３０５と文字セットデータ３０６とを含んでいる。なお、文字セットデータ３０６はドライバからプリンタに転送される文字セットデータそのものであり、後述する形式を有している。
【００４７】
文字データの実態であるビットマップデータは、ホストコンピュータが有するアウトラインフォントからの展開などで得られる。文字セット３０６は文字セット削除処理によって消去されてしまう。そのため、ドライバ用の文字管理テーブル３０４にも１文字単位でビットマップデータを登録することによって、文字セット削除処理後に紙詰まりなどが発生した場合に、ビットマップデータを新たに展開する処理を行わずとも文字セットを再登録することが出来、処理のスピードアップが可能である。
＜ホストコンピュータからプリンタヘの転送データ＞
次に図４を用いて転送データ形式について説明する。
【００４８】
図４は、ホストコンピュータで作成される１ページ分のページデータの構造である。
（ジョブ開始データ部）
ジョブ開始データ４０１は、転送される各々のデータの情報を登録したテーブルであり、ページのレイアウト情報データなど、描画処理を行う為に必要な初期設定データが含まれている。
（文字セットデータ部）
文字セットデータ４０２は、そのページの描画に用いられる文字のビットマップフォントデータを文字ＩＤから簡単に探し出せるように構成されているデータである。
【００４９】
１つの文字セットのサイズはプリンタによって決められた固定長の倍数であり、フォントサイズや圧縮率などによって登録文字数は変化する。また、固定長サイズに満たない場合は空白をつめることで固定長サイズに調整する。文字セットデータには、文字セットヘッダ部４０５と相対アドレス４０６と文字データ部４０７とが含まれている。
【００５０】
文字セットヘッダ部４０５には、文字セットＩＤ４０５１や、その文字セットに登録されている文字数４０５２、またその文字セットが使われる最初のページであるｆｉｒｓｔＰａｇｅ４０５３と最後のページｌａｓｔＰａｇｅ４０５４が含まれている。
【００５１】
相対アドレス部４０６には、文字セットデータ内の各文字データにアクセスする為のヘッダ部からのバイトオフセット値が登録文字数分だけセットされている。
【００５２】
文字データ部４０７は、実際に文字データが登録されている部分であり、文字の幅、高さ、圧縮タイプ、サイズなどの情報が格納された文字ヘッダ部に続いて各文字のビットマップデータが圧縮されて登録されている。
（文字描画命令データ部）
文字描画命令データ４０３は、文字の描画位置を命令するコマンド群である。各文字描画命令データはバンド単位に分けられており、印刷すべき文字が含まれている文字セットのＩＤと、文字セット内でのその文字のオフセット値により示されている。その描画位置としては、バンド内における相対座標位置がセットされる。
【００５３】
また、文字描画命令データ全体のデータサイズも前記固定長サイズの倍数になるように調整される。
（イメージデータ部）
イメージデータ部４０４は、プリンタが処理する単位であるバンドごとの高さ及び幅で生成され、圧縮されたイメージデータである。
＜文字セット管理及び文字描画命令作成手順＞
次に、図８のフローチャート及び図３，４，９のデータ構造を用いて、ホストコンピュータのプリンタドライバによる文字セットデータの生成及び文字描画命令の生成手順を説明する。
【００５４】
Ｓ８０１：印刷データを１ジョブ分スプールする。その中で文字データだけを処理し、ドライバ管理用文字セット３０１を構築する。この際、文字が出現するページ番号を、文字管理テーブル３０４中のｍｉｎＰａｇｅ９０２，ｍａｘＰａｇｅ９０３で管理する。
【００５５】
Ｓ８０２：ドライバ管理用文字セットから複数ページで使われる文字を、文字が出現するページ数を示すｍｉｎＰａｇｅ９０２，ｍａＸＰａｇｅ９０３により探し出し、複数のページで用いられる文字をグループにする。
【００５６】
Ｓ８０３：処理中の注目ページで用いられる文字を、その文字が出現するページ数を示すｍｉｎＰａｇｅ９０２，ｍａＸＰａｇｅ９０３に基づいてグループにする。このグループ及びＳ８０２で作成された文字グループから、注目ページで用いられる文字の転送用文字セット３０２を作成する。この際、異なるグループに属する文字は、異なる文字セットに登録される。
【００５７】
Ｓ８０４：注目ページ用の文字描画命令を作成し、Ｓ８０３で作成した文字セットと共にプリンタに転送する。文字描画命令は、文字セットＩＤ９０５と、文字セット内の相対アドレス９０６を描画位置と組み合わせて生成する。それ以外のデータは全てイメージに展開され、イメージ描画命令とされ、プリンタに転送される。
【００５８】
Ｓ８０５：注目ページ以降では不必要となった文字セットを削除する削除命令を生成して、プリンタに転送する。削除の対象となる文字セットは、通常Ｓ８０３でグループ化された文字が含まれる文字セットであり、Ｓ８０２でグループ化された文字セットは、注目ページ以降でも用いられるために削除対象とはならない。
【００５９】
Ｓ８０６：このジョブ内に次のページがある場合はそのページを注目ページとしてＳ８０３へ戻り、次のページがない場合は処理終了となる。
【００６０】
以上の手順により、プリンタ転送用文字セットを作成し、文字描画命令とともにプリンタに送信する。
＜プリンタにおけるデータ形式＞
次に図５及び図１１を用いてプリンタのＲＡＭ上にデータが格納される手順及び登録されるデータ形式について説明する。
【００６１】
Ｓ１１０１プリンタ１０２はドライバが作成した転送データ４００のジョブ開始データを読み込み、プリンタの初期設定を行う。
【００６２】
Ｓ１１０２：その後、ジョブ開始命令に含まれているデータのサイズに従ってデータをＲＡＭ上に読み込む。
【００６３】
受信バッファ１０３は、多くの固定長の受信セルから構成されている。各受信セル５０１は、次の空きバッファへのポインタであるアドレス部（ｎｅｘｔｐ）とデータ部とを持った構造になっている。ホストコンピュータで作成する１つの文字セットデータのサイズは、この受信セルのサイズと一致している。一致していなくともデータは管理できるが、プリンタでは受信セルごとに領域の使用・未使用の別を管理するため、半端なサイズのデータも受信セル１つを占めることになり、メモリが有効利用できない。
【００６４】
受信バッファ１０３は、受信バッファ制御構造体５０２によって管理されている。受信バッファ制御構造体５０２は、空き状態の受信セルへのポインタＦｒｅｅｐ、空き状態受信セルの最終セルへのポインタＦｒｅｅＥｎｄｐ、文字セットデータ部のトップへのポインタＦｏｎｔｐ、文字描画命令データ部のトップへのポインタＲｅｎｄｅｒｐ、イメージデータ部のトップへのポインタＩｍａｇｅｐによって構成されている。初期状態では、ポインタＦｒｅｅｐは受信バッファの先頭を、ポインタＦｒｅｅＥｎｄｐは受信バッファの末尾の受信セルを指し、各々の受信セルのアドレス部には次の受信セルへのポインタが書き込まれている。
【００６５】
ホストコンピュータから受信したデータは、ポインタＦｒｅｅｐが示す先に受信バッファセル単位で詰め込まれる。ポインタＦｒｅｅｐは、データが格納された受信セルのポインタｎｅｘｔｐの値で更新される。ポインタＦｒｅｅｐがポインタＦｒｅｅＥｎｄｐと同じになるまでデータの読み込みが可能である。
【００６６】
Ｓ１１０３：最初に読み込んだジョブ開始命令のデータサイズから文字セットデータのトップの位置（Ｆｏｎｔｐ）、文字描画命令データのトップの位置（Ｒｅｎｄｅｒｐ）、イメージデータのトップの位置（Ｉｍａｇｅｐ）が算出でき、その位置を受信バッファ制御構造体５０２に登録する。
【００６７】
なお、イメージデータは１ページ分入りきれない場合があるが、その場合には格納できるぶんだけ格納しておく。
【００６８】
Ｓ１１０４：ポインタｆｏｎｔｐをたどり、文字セットごとに、文字セットＩＤとそれに対応する文字セットへのポインタを格納した文字セットテーブル５０３を作成する。
＜印刷の手順＞
次に、図６を用いて以上のメモリ空間上で複数ページを受信するところからそれを印刷出力するまでの処理を説明する。
【００６９】
６００：描画開始時は受信バッファは初期化状態である。
【００７０】
６０１：受信バッファ上部からｎｅｘｔｐに従って、受信した文字セットデータ、文字描画データを格納する。
【００７１】
６０２：イメージデータがメモリフルになるまで格納し、ジョブ開始命令に含まれる各々のデータサイズからポインタＦｏｎｔｐ，Ｒｅｎｄｅｒｐ，Ｉｍａｇｅｐをセットする。
【００７２】
また、格納された文字セットは各セット毎に先頭アドレスを文字セットテーブルに登録する。ここまでが図１１の手順である。
【００７３】
６０３：描画を開始する。ポインタＩｍａｇｅｐが示す先のバンドイメージデータをバンドメモリに展開し、その上にポインタＲｅｎｄｅｒｐが示す先の文字描画命令データをＣＰＵが解析して、文字セットデータから対応する文字イメージを獲得して文字の描画を行う。
【００７４】
それに伴い、バンドメモリに展開されたイメージデータ部の受信セルを解放する。それまでポインタＦｒｅｅＥｎｄｐで指し示される受信セルのポインタｎｅｘｔｐ部に解放された受信セルのアドレスをセットし、その後ＦｒｅｅＥｎｄｐにも解放された受信セルのアドレスをセットする。
【００７５】
解放された受信セルには、受信バッファへの格納待ちとなっている状態のデータを随時読み込む。
【００７６】
６０４：１ページ分のデータが全て受信セルに読み込まれた後は、次のページのデータも取り込む。状態６０４では、１ページ目のイメージデータに続けて、空き領域に２ページ目の文字セットデータを格納している。
【００７７】
６０５：１ページのデータ処理が全て終わる直前の状態を示している。１ページ目の文字セットデータと文字描画命令、それとイメージデータの一部が格納されている。また、２ページ目の文字セットデータと文字描画命令とイメージデータの一部が格納されている。
【００７８】
６０６：必要に応じてホストコンピュータから文字セットデータの削除命令が送られてくる。注目ページの文字描画命令の処理を終えたならば、文字セットの削除命令に従って、要らなくなった文字セットデータと１ページ目の描画命令を格納していた受信セルを解放する。その後、２ページ目のジョブ開始命令を読み込んでパラメータをセットする。
【００７９】
文字データを削除する場合、解放された受信セルの先頭アドレスを、ポインタＦｒｅｅＥｎｄｐが指し示す先の受信セルのポインタｎｅｘｔｐにセットし、最終アドレスをＦｒｅｅＥｎｄｐにセットする。
＜削除命令の処理手順＞
次に、図１２を参照して文字セット削除命令に対する処理手順を説明する。
【００８０】
Ｓ１２０１：削除対象として指定された文字セットＩＤをプリンタで保持している文字セットテーブル５０３から検索する。
【００８１】
Ｓ１２０２：見つからなければエラー処理を行う。
【００８２】
Ｓ１２０３：指定された文字セットＩＤに対応する文字セットの受信セルのアドレスを文字セットテーブルから得て、その受信セルを開放する。受信セルの開放は、現在の空き領域と新たに開放する領域とを各受信セルのポインタｎｅｘｔｐにより接続して行われる。すなわち、現在の空き領域の末尾へのポインタＦｒｅｅＥｎｄｐに指し示される受信セルのポインタｎｅｘｔｐを新たに開放される受信セルのアドレスをセットし、その後ポインタＦｒｅｅＥｎｄｐにも新たに開放される受信セルのアドレスをセットする。
【００８３】
Ｓ１２０４：削除された文字セットＩＤに対応する文字セットテーブルのエントリを削除して更新する。
【００８４】
以上のようにして文字セットデータを削除することで、空き領域は受信セルの単位で開放される。そのため、開放された領域を集めなくともそのままで再利用することができる。なお、この受信セルの開放の手順は、文字セットデータに限らず、１ページ分出力しおえた文字描画命令や、１バンド分出力し終えたバンドイメージデータの格納されている受信セルを開放する際にも用いられる。
【００８５】
図７に描画処理が進んだ時の状態を示す。ポインタＦｒｅｅｐをたどり、その示す受信セルからｎｅｘｔｐをたどる先が空き領域である。なお、ｎｅｘｔｐが連続する受信セルを示している場合には、そのｎｅｘｔｐを表す矢印を省略してある。
【００８６】
このように、文字セットサイズが非固定長かつ不連続にメモリを占有する場合には文字セットデータを消去したときにできる空き領域のサイズは不均一であり、また１文字単位で登録した文字セットを削除すると不連続な空き領域ができる。そこで、空きメモリを集めるために文字セットデータの再構築を行うと多くの時間が掛かり、連続ページ出力時のページ間で文字セットデータの再構築処理を行うことは不可能である。
【００８７】
これに対して、本実施例に係る印刷システムでは、プリンタのメモリを固定長の受信セル単位で管理している。そのため、プリンタのメモリにおいて開放される空き領域は受信セルの単位であり、空き領域の収集を行わなくとも直ちに再利用できる。
【００８８】
このような場合、文字セットデータを例えば１文字毎に作成すると、１文字分の文字セットデータを１つの受信セルに格納するために多くの領域が無駄に使用されることになる。本実施例においては、ホストコンピュータでは、文字セットデータを受信セルにあわせたサイズを単位として固定長で作成しているため、文字セットデータは無駄なく受信セルに納まり、メモリの利用効率を低下させることがない。
【００８９】
以上、プリンタ側で文字セットデータの削除命令を実行するタイミングを決めて、文字セット削除命令を実行する印刷システムを説明したが、双方向インターフェースで接続されており、ホストコンピュータがプリンタから情報を得られるならば、ページの印刷出力の終了をプリンタからホストコンピュータに通知させ、ホストコンピュータではその情報に基づいて、そのページ以降では使用しない文字セット削除命令をプリンタに送信しても良い。
＜プリンタエンジン＞
上記実施例のプリンタエンジンとしては特に何を用いるという制限はない。ここでは本実施例のプリンタに適用できる代表的な２種のエンジンを説明する。
【００９０】
図１３はこの場合のレーザビームプリンタ（以下、ＬＢＰと略す）の内部構造を示す断面図で、このＬＢＰは、文字パターンデータ等を入力して記録紙に印刷することができる。
【００９１】
図において、７４０はＬＢＰ本体であり、供給される文字パターン等を基に、記録媒体である記録紙上に像を形成する。７００は操作のためのスイツチ及びＬＥＤ表示器などが配されている操作パネル、７０１はＬＢＰ７４０全体の制御及び文字パターン情報等を解析するプリンタ制御ユニツトである。このプリンタ制御ユニツト７０１は主に文字パターン情報をビデオ信号に変換してレーザドライバ７０２に出力する。
【００９２】
レーザドライバ７０２は半導体レーザ７０３を駆動するための回路であり、入力されたビデオ信号に応じて半導体レーザ７０３から発射されるレーザ光７０４をオン・オフ切替えする。レーザ光７０４は回転多面鏡７０５で左右方向に振られて静電ドラム７０６上を走査する。これにより、静電ドラム７０６上には文字パターンの静電潜像が形成される。この潜像は静電ドラム７０６周囲の現像ユニツト７０７により現像された後、記録紙に転写される。この記録紙にはカツトシートを用い、カツトシート記録紙はＬＢＰ７４０に装着した用紙カセツト７０８に収納され、給紙ローラ７０９及び搬送ローラ７１０と７１１とにより装置内に取込まれて、静電ドラム７０６に供給される。
【００９３】
図１４は、本発明が適用できるインクジェット記録装置ＩＪＲＡの概観図である。同図において、駆動モータ５０１３の正逆回転に連動して駆動力伝達ギア５０１１，５００９を介して回転するリードスクリュー５００５の螺旋溝５００４に対して係合するキャリッジＨＣはピン（不図示）を有し、矢印ａ，ｂ方向に往復移動される。このキャリッジＨＣには、インクジェットカートリッジＩＪＣが搭載されている。５００２は紙押え板であり、キャリッジの移動方向に亙って紙をプラテン５０００に対して押圧する。５００７，５００８はフォトカプラで、キャリッジのレバー５００６のこの域での存在を確認して、モータ５０１３の回転方向切り換え等を行うためのホームポジション検知手段である。５０１６は記録ヘッドの前面をキャップするキャップ部材５０２２を支持する部材で、５０１５はこのキャップ内を吸引する吸引手段で、キャップ内開口５０２３を介して記録ヘッドの吸引回復を行う。５０１７はクリーニングブレードで、５０１９はこのブレードを前後方向に移動可能にする部材であり、本体支持板５０１８にこれらが支持されている。ブレードは、この形態でなく周知のクリーニングブレードが本例に適用できることは言うまでもない。又、５０２１は、吸引回復の吸引を開始するためのレバーで、キャリッジと係合するカム５０２０の移動に伴って移動し、駆動モータからの駆動力がクラッチ切り換え等の公知の伝達手段で移動制御される。
【００９４】
【他の実施形態】
なお、本発明は、複数の機器（例えばホストコンピュータ，インタフェイス機器，リーダ，プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用してもよい。
【００９５】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成される。
【００９６】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００９７】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００９８】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００９９】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１００】
【発明の効果】
以上説明したように、本発明によれば、簡単な構成でありながら、文字の部分は文字コードで受信して文字画像に展開することで、ホストにおける文字の展開処理時間とホストからの転送データ量とを非常に小さくし、しかも印刷装置のメモリ容量を小さく抑えて効率的に利用することができるという効果を奏する。
【０１０１】
【図面の簡単な説明】
【図１】実施の形態における印刷制御システムの構成を示すブロック図である。
【図２】ドライバのデータ作成処理とプリンタの印字処理とを説明する図である。
【図３】ドライバ側の文字セットの管理データの構造を説明する図である。
【図４】転送用文字セットの詳細な構造の説明図である。
【図５】プリンタの受信バッファの構造と格納形態（１頁目）を示す図である。
【図６】プリンタのメモリ管理方法を示す図である。
【図７】プリンタの受信バッファの構造と格納形態（複数ページ出力中）を示す図である。
【図８】ホストコンピュータにおける文字処理手順のフローチャートである。
【図９】ドライバ管理用文字セットの構造を示す図である。
【図１０】ドライバ管理用文字セットの使われかたの一例を示す図である。
【図１１】プリンタにおいて印刷データを受信する手順のフローチャートである。
【図１２】プリンタにおいて文字セットデータを削除する手順のフローチャートである。
【図１３】レーザビームプリンタのエンジンの図である。
【図１４】インクジェットプリンタのエンジンの図である。
【符号の説明】
１０１  ホストコンピュータ
１０２  プリンタコントローラ
１０３  入力バッファ
１０４  ＲＯＭ
１０５  ＣＰＵ
１０６  文字ハードレンダラ
１０７  イメージレンダラ
１０８  バンドメモリ
１１０  プリンタエンジン
【図１】
0003768670.tif 000002
【図２】
0003768670.tif 000003
【図３】
0003768670.tif 000004
【図４】
0003768670.tif 000005
【図５】
0003768670.tif 000006
【図６】
0003768670.tif 000007
【図７】
0003768670.tif 000008
【図８】
0003768670.tif 000009
【図９】
0003768670.tif 000010
【図１０】
0003768670.tif 000011
【図１１】
0003768670.tif 000012
【図１２】
0003768670.tif 000013
【図１３】
0003768670.tif 000014
【図１４】
0003768670.tif 000015