(57)【要約】【課題】フォントキャッシュ部と制御部とを備え、Ｎページ目の印刷データの指示によりフォントキャッシュ部からの削除対象となったフォントデータを、Ｎページ目の印刷終了後にフォントキャッシュ部から削除する印刷装置において、Ｍページ目の印刷が不能、あるいは、不要となった場合にも、Ｍ−１ページ以前の印刷結果が乱れないようにする。【解決手段】Ｍページ目の印刷が不能、あるいは、不要となった場合に、Ｍページ目の印刷データの指示によりフォントキャッシュ部からの削除対象となったフォントデータを、Ｍ−１ページ目の印刷終了後にフォントキャッシュ部から削除する。【選択図】  図１
2004246740.tif 000002
【特許請求の範囲】
【請求項１】
フォントキャッシュ部を有する制御部を備え、Ｎページ目の印刷データの指示によりフォントキャッシュ部からの削除対象となったフォントデータを、Ｎページ目の印刷終了後にフォントキャッシュ部から削除する印刷装置において、
前記制御部は、Ｍページ目の印刷が不能、あるいは、不要となった場合に、Ｍページ目の印刷データの指示によりフォントキャッシュ部からの削除対象となったフォントデータを、Ｍ−１ページ目の印刷終了後にフォントキャッシュ部から削除することを特徴とする印刷装置。
【請求項２】
フォントキャッシュ部を有する制御部を備え、Ｎページ目の印刷データの指示によりフォントキャッシュ部からの削除対象となったフォントデータを、Ｎページ目の印刷終了後にフォントキャッシュ部から削除する印刷装置において、
前記制御部は、Ｍページ目の印刷が不能、あるいは、不要となると、Ｍページ目の印刷データの指示によりフォントキャッシュ部からの削除対象となったフォントデータが存在しているかどうかを判断し、
フォントデータが存在している場合には、Ｍページ目の印刷データの指示によりフォントキャッシュ部からの削除対象となったフォントデータを、Ｍ−１ページ目の印刷終了後にフォントキャッシュ部から削除することを特徴とする印刷装置。
【請求項３】
請求項２に記載の印刷装置において、
前記制御部は、フォントデータが存在していない場合には、Ｍページ目の印刷データの指示によりフォントキャッシュ部からの削除対象となったフォントデータを、Ｍ−１ページ目の印刷終了を待たずにフォントキャッシュ部から削除することを特徴とする印刷装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、印刷装置のフォントキャッシュの管理に関する。
【０００２】
【従来の技術】
ホストコンピュータとプリンタとから構成される印刷システムでは、プリンタにベクトルフォントをあらかじめ格納しておき、印刷実行時にプリンタ側でビットイメージに展開して印刷することで、高速にきれいな印刷結果を得るようにしているものがある。
【０００３】
このような印刷システムでは、印刷書類に何度も現われる文字のベクトルフォントをその都度ビットイメージに展開する時間を節約するため、フォントキャッシュが広く用いられている。
【０００４】
フォントキャッシュは、ビットイメージに展開されたフォントデータを一時的にプリンタが備えるメモリ上に格納し、その後、同じ文字が現われた場合には格納されたビットイメージを用いることにより、処理速度を向上させるようにしている。
【０００５】
フォントキャッシュを管理する方法として、ホストコンピュータが、ある文字のフォントデータについてフォントキャッシュに登録する指示、あるいは、フォントキャッシュから削除する指示をキャッシュ管理用のコマンドとして印刷データに含めてプリンタに送る方法が知られている。
【０００６】
プリンタでは、ホストコンピュータから送られたキャッシュ管理用のコマンドに基づいて、指定された文字のフォントデータをフォントキャッシュに登録したり、指定されたフォントデータあるいは登録済みのすべてのフォントデータをフォントキャッシュから削除する。
【０００７】
ところで、プリンタにおいて、制御部における印刷データのコマンド解釈と印刷エンジンによる実際の印刷処理とは別々に行なわれ、印刷データはコマンドが解釈されると、印刷エンジンでの印刷実行待ちの状態になる。このため、フォントデータの削除コマンドを受け付けたとき、即座にフォントキャッシュからフォントデータを削除すると、印刷実行時にフォントキャッシュを参照しても、すでにフォントデータが削除されており、文字が正常に印刷されないおそれがある。
【０００８】
これを防ぐために、プリンタの制御部は、コマンド解釈を行なっているページについての印刷データにフォントデータの削除コマンドが含まれていた場合には、すぐにはフォントデータの削除を行なわず、そのフォントデータを削除対象リストと呼ばれるリストに登録する。そして、印刷エンジンによる当該ページの印刷実行後に削除対象リストに登録されているフォントデータをフォントキャッシュから削除するようにしている。
【０００９】
すなわち、例えば、ある印刷ジョブにおいて登録したフォントデータをすべて削除するのに、最終ページの改ページコマンドの後に、最終ページであることが判明し、ここで全フォントデータを対象とした削除コマンドが記載されている場合がある。この場合、改ページコマンドの後であるため、削除コマンドを解釈した時点で、既に印刷が終了しており当該ページが存在しないこともあり得る。当該フォントを使用しているページの次のページの削除対象リストに登録される次印刷ジョブの最初のページの印刷終了後にフォントデータの削除を行なうことができる。最終ページの改ページコマンドの後ではなく、ジョブの先頭に削除コマンドを配しても同様である。
【００１０】
【発明が解決しようとする課題】
フォントデータを確実にフォントキャッシュから削除するために、上述のように、削除対象リストはフォントデータを使用するページの次のページに関連付けられる。
【００１１】
ここで、フォントデータの削除コマンドで削除対象とされるキャッシュに登録されたフォントデータは、そのページのみならず、そのページ以前のページでも参照されている可能性がある。例えば、１ページ目から４ページ目までに使用される文字のフォントについて、５ページ目の印刷データにフォントデータの削除コマンドが含まれる場合である。
【００１２】
正常に印刷が行なわれた場合には、５ページ目の印刷終了後にこのフォントデータが削除され、この時点では１ページ目から４ページ目までの印刷は確実に終了しているため、問題は生じない。
【００１３】
ところが、５ページ目の印刷データのコマンド解釈中にエラーが発生、あるいは、５ページ目が白紙で印刷を要さないとされる場合等には、５ページ目の印刷データは、印刷実行待ち状態にならずに、即座に廃棄されてしまう。このとき、５ページ目の印刷データに含まれていたフォントデータの削除コマンドにより、５ページ目に関連付けられた削除対象リストに登録された１ページ目から４ページ目までに使用されるフォントデータも同時に削除されてしまう。
【００１４】
この時点で、プリントエンジンでの印刷実行が終了していない４ページ以前では、印刷実行時に参照しているフォントキャッシュが既に削除されており、文字が正常に印刷されないおそれがある。
【００１５】
本発明の目的は、フォントキャッシュ部と制御部とを備え、Ｎページ目の印刷データの指示によりフォントキャッシュ部からの削除対象となったフォントデータを、Ｎページ目の印刷終了後にフォントキャッシュ部から削除する印刷装置において、Ｍページ目の印刷が不能、あるいは、不要となった場合にも、Ｍ−１ページ以前の印刷結果が乱れないようにする。
【００１６】
【課題を解決するための手段】
上記課題を解決するため、本発明によれば、
フォントキャッシュ部を有する制御部を備え、Ｎページ目の印刷データの指示によりフォントキャッシュ部からの削除対象となったフォントデータを、Ｎページ目の印刷終了後にフォントキャッシュ部から削除する印刷装置において、
前記制御部は、Ｍページ目の印刷が不能、あるいは、不要となった場合に、Ｍページ目の印刷データの指示によりフォントキャッシュ部からの削除対象となったフォントデータを、Ｍ−１ページ目の印刷終了後にフォントキャッシュ部から削除することを特徴とする印刷装置が提供される。
【００１７】
Ｍページ目の印刷データの指示によりフォントキャッシュ部からの削除対象となったフォントデータは、（Ｍ−１）ページ目以前のページで参照される可能性があるが、（Ｍ−１）ページ目までの印刷処理終了後に削除することにより、印刷結果が乱れることがない。
【００１８】
また、上記課題を解決するため、本発明によれば、
フォントキャッシュ部を有する制御部を備え、Ｎページ目の印刷データの指示によりフォントキャッシュ部からの削除対象となったフォントデータを、Ｎページ目の印刷終了後にフォントキャッシュ部から削除する印刷装置において、
前記制御部は、Ｍページ目の印刷が不能、あるいは、不要となると、Ｍページ目の印刷データの指示によりフォントキャッシュ部からの削除対象となったフォントデータが存在しているかどうかを判断し、
フォントデータが存在している場合には、Ｍページ目の印刷データの指示によりフォントキャッシュ部からの削除対象となったフォントデータを、Ｍ−１ページ目の印刷終了後にフォントキャッシュ部から削除することを特徴とする印刷装置が提供される。
【００１９】
これにより、さらに、フォントデータが存在していない場合におけるＭページ目以降の処理に与える影響を少なくすることができる。
【００２０】
なお、前記制御部は、フォントデータが存在していない場合には、Ｍページ目の印刷データの指示によりフォントキャッシュ部からの削除対象となったフォントデータを、Ｍ−１ページ目の印刷終了を待たずにフォントキャッシュ部から削除することができる。
【００２１】
フォントデータが存在していないため、Ｍ−１ページ目の印刷終了を待たずに削除しても印刷結果が乱れないからである。
【００２２】
【発明の実施の形態】
本発明の実施の形態について、図面を参照して説明する。
【００２３】
図１は、本発明を適用可能な印刷システムのハードウェア構成の一例を示すブロック図である。本図に示すように印刷システムは、ホストコンピュータ２０と、印刷装置として機能するプリンタ１０とを備えて構成される。
【００２４】
例えば、汎用的なコンピュータは、そのコンピュータの基本ソフトウェアを対象に開発されたプリンタ制御用プログラムを実行することによりホストコンピュータ２０として機能することができる。
【００２５】
ホストコンピュータ２０は、ユーザから印刷命令を受け付けると、命令に係るドキュメントに基づく印刷データを生成して、プリンタ１０に送信する。これらの一連の処理は、１つの印刷ジョブとして管理される。印刷データは、ドキュメントに含まれる各ページの情報を、プリンタ１０が解釈可能なコマンドを用いて記載したものである。
【００２６】
ここで、コマンドには、描画コマンド、改ページコマンド、キャッシュ登録コマンド、キャッシュ削除コマンド等が含まれる。
【００２７】
描画コマンドは、指定する文字、図形、ビットイメージ等を指定する位置に描画することを指示するコマンドである。改ページコマンドは、処理中のページに関するコマンドが終了したことを通知し、次ページの処理の準備を指示するコマンドである。キャッシュ登録コマンドは、指定する文字のフォントデータをキャッシュに登録することを指示するコマンドである。キャッシュ削除コマンドは、指定する文字のフォントデータあるいは登録されているすべてのフォントデータをキャッシュから削除することを指示するコマンドである。
【００２８】
プリンタ１０は、例えば、レーザ方式のページプリンタである。レーザ方式のページプリンタは、ホストコンピュータ２０から送信される印刷データを解釈して、ページ毎にビットイメージを生成する。そして、このビットイメージを感光体ドラム上にレーザ光線によって形成し、帯電した印刷イメージにトナーを付着させて、印刷用紙に転写することによりページ毎の印刷を行なう。
【００２９】
本図において、プリンタ１０は、プリンタ１０における各種処理の制御を行なうＣＰＵ１１と、各種プログラム等を格納したＲＯＭ１２と、ＣＰＵ１０の作業領域等として用いるＲＡＭ１３と、ホストコンピュータ２０と接続するためのホストインタフェース１４と、ベクトルフォント等を格納したハードディスク１５と、トナーカートリッジ、感光体ドラム、レーザ光照射機構、給排紙機構等からなる印刷エンジン１６とを備えて構成される。
【００３０】
図２は、プリンタ１０上に構築される制御部の機能構成を示すブロック図である。本図に示すように、プリンタ１０上には、ページ管理部１１０と描画管理部１２０と印刷管理部１３０とが構築される。ただし、プリンタ１０の機能構成はこれに限られない。
【００３１】
ページ管理部１１０は、ホストコンピュータ２０から送られた印刷データに基づいて、ページ毎の印刷処理を管理する。具体的には、印刷データに含まれる各コマンドを解釈して、描画等の処理を描画管理部１２０に実行させる処理と、印刷処理を印刷管理部１３０に依頼する処理等とを行なう。
【００３２】
描画管理部１２０は、描画コマンドに基づいて、１ページに描画すべき情報をインデックス形式で表現した中間コードを生成する処理と、中間コードからビットイメージデータを生成する処理とを行なう。
【００３３】
また、描画管理部１２０は、フォントキャッシュ部１２１を備えており、ホストコンピュータ２０の指示に基づいて、フォントデータをキャッシュとして登録したり削除する機能を有する。なお、フォントキャッシュ部１２１は、ＲＡＭ１３上に構成することができる。
【００３４】
印刷管理部１３０は、ページ管理部１１０から印刷要求を受け付け、印刷要求に対応するフレームの中間コードのビットイメージへの展開を描画管理部１２０に依頼し、展開されたビットイメージに基づく印刷を印刷エンジン１６に実行させる。
【００３５】
つぎに、本実施形態の処理について説明する。本実施形態の処理は、印刷データの解釈時の処理と、印刷実行時の処理とに分けることができる。これらの処理は独立して行なわれるが、後述するフレームという概念で両者は関連付けられる。
【００３６】
まず、印刷データの解釈時における処理について説明する。
【００３７】
ページ管理部１１０は、ホストコンピュータから印刷データが送られると印刷データに含まれるコマンドを順次解釈する。このとき、印刷開始時あるいは改ページコマンド等により新たなページの処理を開始する際に、１つのフレームを生成し、そのページに関する処理をフレームに関連付けて管理する。以下では、Ｎページ目の処理を行なってる場合で、このページに関する処理をフレーム（Ｎ）に関連付けて管理するものとして説明する。
【００３８】
ページ管理部１１０は、印刷データ中に描画コマンドがあった場合には、描画管理部１２０に描画を依頼する。この依頼に対応して、描画管理部１２０は、描画コマンドにしたがって、描画すべき情報をインデックス形式で表現した中間コードを生成する。
【００３９】
ページ管理部１１０は、印刷データ中にキャッシュ登録コマンドがあった場合には、描画管理部１２０にフォントデータのキャッシュへの登録を依頼する。この依頼に対応して、描画管理部１２０は指定された文字のフォントデータを識別子を付してキャッシュに登録する。
【００４０】
ページ管理部１１０は、印刷データ中にキャッシュ削除コマンドがあった場合には、描画管理部１２０にフォントデータのキャッシュからの削除を依頼する。この依頼に対応して、描画管理部１２０は指定された文字のフォントデータの識別子を削除対象リストに登録する。
【００４１】
ページ管理部１１０は、印刷データ中に改ページコマンドがあった場合には、次のＮ＋１ページ目の準備としてフレーム（Ｎ＋１）を生成する。また、描画管理部１２０に処理中のＮページ目についてのコマンドが終了したことを通知する。この通知に対応して描画管理部１２０は、生成した中間コードと削除対象リストとをページ管理部１１０に送る。
【００４２】
ページ管理部１１０は、受け取ったＮページ目の中間コードをフレーム（Ｎ）に関連付けて、印刷管理部１３０にフレーム（Ｎ）の印刷要求を行なう。また、Ｎページ目に含まれるキャッシュ削除コマンドにより登録された削除対象リストはフレーム（Ｎ）に関連付ける。そして、（Ｎ＋１）ページ目の印刷データに含まれるコマンドの解釈を開始する。
【００４３】
つぎに、印刷実行時における処理について説明する。
【００４４】
印刷管理部１３０は、ページ管理部１１０から印刷要求のあったフレームの印刷を、印刷要求を受け付けた順で順次、印刷エンジン１６に実行させる。この処理は印刷データの解釈時の処理とは独立に行なわれる。
【００４５】
印刷管理部１３０は、印刷対象のフレームに関連付けられた中間コードのビットイメージデータへの展開を描画管理部１２０に依頼する。この依頼に対応して、描画管理部１２０は中間コードに基づいてビットイメージデータを生成する。このとき、必要に応じてフォントキャッシュを参照して文字のビットイメージデータを取得する。そして、生成した１ページ分のビットイメージデータを印刷管理部１３０に送る。
【００４６】
印刷管理部１３０は、印刷エンジン１６を用いて、受け取ったビットイメージデータによる１ページ分の印刷を実行する。そして、そのページ（ここでは、フレーム（Ｌ）で管理されるＬページ目とする）の印刷が終了して、用紙が排紙されると、印刷管理部１３０は、ページ管理部１１０に対して、フレーム（Ｌ）の印刷終了報告を送る。
【００４７】
フレーム（Ｌ）の印刷終了報告を受け取った、ページ管理部１１０は、Ｌページ目の処理がすべて終了したとして、フレーム（Ｌ）を廃棄する。このとき、フレーム（Ｌ）に関連付けられている（Ｌ）ページ目の削除対象リストに含まれるフォントデータのフォントキャッシュからの削除を描画管理部１２０に依頼する。この依頼に対応して描画管理部１２０は、削除対象リストに登録された識別子に対応するフォントデータをキャッシュから削除する。
【００４８】
ところで、Ｍページ目の印刷データの解釈処理時に、何らかの事情によりエラーが発生して、Ｍページ目の印刷が不能となる場合がある。また、Ｍページ目の印刷データに描画コマンドが含まれていなくて、Ｍページ目の印刷を要さないと判断する場合がある（なお、描画コマンドが含まれていない場合には、白紙を排出するという設定の場合には、白紙の印刷が行なわれるものとして扱う）。
【００４９】
この場合、フレーム（Ｍ）についての印刷要求は行なわれないため、ページ管理部１１０は、フレーム（Ｍ）を廃棄するトリガーである印刷管理部１３０からの印刷終了報告を受け取ることができない。
【００５０】
このため、従来は、上述のように、Ｍページ目の印刷が不能となった時点、あるいは、印刷を要さないと判断された時点でフレーム（Ｍ）を廃棄するようにしていた。これにより、フレーム（Ｍ）に関連付けられた（Ｍ）ページ目の削除対象リストに登録されているフォントデータもフォントキャッシュから削除されるため、印刷が終了していない（Ｍ−１）ページ目以前のページで、これらのフォントを参照しているページでは、文字が正常に印刷されないおそれがあった。
【００５１】
そこで、本発明の第１の実施形態では、Ｍページ目の印刷が不能となった時点、あるいは、印刷を要さないと判断した時点では、ページ管理部１１０は、フレーム（Ｍ）を廃棄しないようにする。ただし、フレーム（Ｍ）についての、印刷管理部１３０に対する印刷要求は行なわない。このとき、フレーム（Ｍ）には、通常のフレームと区別するための識別情報を付加しておくことが望ましい。そして、印刷管理部１３０から、フレーム（Ｍ−１）の印刷終了報告を受け付けた時点以降で、フレーム（Ｍ）を廃棄するようにする。
【００５２】
フレーム（Ｍ）に関連付けられた（Ｍ）ページ目の削除対象リストに登録されたフォントデータは、（Ｍ−１）ページ目以前のページで参照される可能性があるが、フレーム（Ｍ−１）の印刷終了報告を受け付けた時点では、（Ｍ−１）ページ目までの印刷処理が終了していることが保証されるため、フレーム（Ｍ）を廃棄したとしても、印刷結果が乱れることがない。
【００５３】
なお、印刷が不能、あるいは、不要となったＭページ目に対応するフレーム（Ｍ）を、フレーム（Ｍ−１）の印刷終了報告を受け付ける時点まで保持し続けることは、Ｍページ目以降の処理に影響を与えるため、印刷システムのパフォーマンスの面からは不利になる。
【００５４】
そこで、本発明の第２の実施形態では、フレーム（Ｍ）を廃棄しても（Ｍ−１）ページ目以前のページに影響を与えない場合には、フレーム（Ｍ−１）の印刷終了報告を待つことなく、フレーム（Ｍ）廃棄することで、パフォーマンスの低下を最小限に抑えるようにする。
【００５５】
すなわち、ページ管理部１１０は、Ｍページ目の印刷が不能となった時点、あるいは、印刷を要さないと判断すると、フレーム（Ｍ）に関連付けられているページ（Ｍ）の削除対象リストにフォントデータが登録されているかどうかを調べる。
【００５６】
その結果、削除対象リストにフォントデータが登録されていない場合には、ページ管理部１１０は、フレーム（Ｍ−１）の印刷終了報告を待つことなく、フレーム（Ｍ）を廃棄するようにする。このときフレーム（Ｍ）に関連付けられているページ（Ｍ）の削除対象リストに登録されたフォントキャッシュも削除されるが、（Ｍ−１）ページ以前で参照するフォントデータは削除対象リストに登録されていないため、印刷結果が乱れることがない。しかも、フレーム（Ｍ）を保持し続けることによるＭページ目以降の処理に与える影響も避けることができる。
【００５７】
一方、フレーム（Ｍ）に関連付けられているページ（Ｍ）の削除対象リストにフォントデータが登録されている場合には、第１の実施形態と同様に、ページ管理部１１０は、フレーム（Ｍ）を廃棄しないようにする。ただし、フレーム（Ｍ）についての、印刷管理部１３０に対する印刷要求は行なわない。このとき、フレーム（Ｍ）には、通常のフレームと区別するための識別情報を付加しておくことが望ましい。そして、印刷管理部１３０から、フレーム（Ｍ−１）の印刷終了報告を受け付けた時点以降で、フレーム（Ｍ）を廃棄するようにする。
【００５８】
フレーム（Ｍ）に関連付けられた（Ｍ）ページ目の削除対象リストに登録されたフォントデータは、（Ｍ−１）ページ目以前のページで参照される可能性があるが、フレーム（Ｍ−１）の印刷終了報告を受け付けた時点では、（Ｍ−１）ページ目までの印刷処理が終了していることが保証されるため、フレーム（Ｍ）を廃棄したとしても、印刷結果が乱れることがない。
【図面の簡単な説明】
【図１】印刷システムのハードウェア構成の概要を示すブロック図。
【図２】プリンタの制御部の機能構成を示すブロック図。
【符号の説明】
１０  プリンタ、１１  ＣＰＵ、１２  ＲＯＭ、１３  ＲＡＭ、１４  ホストインタフェース、１５  ハードディスク、１６  印刷エンジン、１７  印刷エンジン、２０  ホストコンピュータ、１１０  ページ管理部、１１０  描画管理部、１２０  描画管理部、１２１  フォントキャッシュ部、１３０  印刷管理部
【図１】
2004246740.tif 000003
【図２】
2004246740.tif 000004