(57)【特許請求の範囲】
【請求項１】
メモリーと、印刷データに含まれる文字のビットマップイメージを描画する文字描画手段と、
前記文字描画手段によって描画された前記ビットマップイメージを一時的に格納する領域であるフォントキャッシュを管理するキャッシュ管理手段と
を備えており、
前記キャッシュ管理手段は、前記文字の書体およびフォントサイズに少なくとも応じて前記フォントキャッシュを別々に前記メモリー上に確保し、
前記文字描画手段は、前記文字の前記ビットマップイメージが前記フォントキャッシュに格納されている場合、そのビットマップイメージを前記フォントキャッシュから取得し、
前記キャッシュ管理手段は、前記フォントキャッシュを拡張する単位である拡張単位を前記フォントサイズに少なくとも応じて決定し、
前記キャッシュ管理手段は、前記文字描画手段によって描画された前記ビットマップイメージが格納される容量が前記フォントキャッシュの未使用の部分に残っていない場合、前記フォントキャッシュを前記拡張単位で拡張し、
前記キャッシュ管理手段は、前記フォントキャッシュを拡張する場合、拡張前の前記フォントキャッシュの前記未使用の部分を解放することを特徴とする画像形成装置。
【請求項２】
前記キャッシュ管理手段は、前記文字の解像度に少なくとも更に応じて前記フォントキャッシュを別々に前記メモリー上に確保し、
前記キャッシュ管理手段は、前記解像度に少なくとも更に応じて前記拡張単位を決定することを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記キャッシュ管理手段は、前記印刷データに含まれる前記文字のうち同一の前記フォントキャッシュに格納されるべき前記文字の種類の数に少なくとも更に応じて前記拡張単位を決定することを特徴とする請求項１または請求項２に記載の画像形成装置。
【請求項４】
メモリーを備えている画像形成装置によって実行される文字描画プログラムであって、
印刷データに含まれる文字のビットマップイメージを描画する文字描画ステップと、
前記文字描画ステップによって描画された前記ビットマップイメージを一時的に格納する領域であるフォントキャッシュを管理するキャッシュ管理ステップと
を前記画像形成装置に実行させ、
前記キャッシュ管理ステップは、前記文字の書体およびフォントサイズに少なくとも応じて前記フォントキャッシュを別々に前記メモリー上に確保するステップであり、
前記文字描画ステップは、前記文字の前記ビットマップイメージが前記フォントキャッシュに格納されている場合、そのビットマップイメージを前記フォントキャッシュから取得するステップであり、
前記キャッシュ管理ステップは、前記フォントキャッシュを拡張する単位である拡張単位を前記フォントサイズに少なくとも応じて決定するステップであり、
前記キャッシュ管理ステップは、前記文字描画ステップによって描画された前記ビットマップイメージが格納される容量が前記フォントキャッシュの未使用の部分に残っていない場合、前記フォントキャッシュを前記拡張単位で拡張するステップであり、
前記キャッシュ管理ステップは、前記フォントキャッシュを拡張する場合、拡張前の前記フォントキャッシュの前記未使用の部分を解放するステップであることを特徴とする文字描画プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、描画された文字のビットマップイメージを一時的に格納するメモリー上の領域であるフォントキャッシュを活用する画像形成装置に関する。
【背景技術】
【０００２】
従来、フォントキャッシュを活用する画像形成装置として、サイズが固定であるフォントキャッシュを予め確保し、そのフォントキャッシュに文字のビットマップイメージを格納していくものが知られている（特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−２０２９６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の画像形成装置においては、サイズが固定であるフォントキャッシュを予め確保するので、不必要に広い領域をフォントキャッシュとして確保してしまう場合があり、メモリーの使用効率が悪いという問題がある。
【０００５】
そこで、本発明は、フォントキャッシュに関してメモリーの使用効率を従来より向上することができる画像形成装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の画像形成装置は、メモリーと、印刷データに含まれる文字のビットマップイメージを描画する文字描画手段と、前記文字描画手段によって描画された前記ビットマップイメージを一時的に格納する領域であるフォントキャッシュを管理するキャッシュ管理手段とを備えており、前記キャッシュ管理手段は、前記文字の書体およびフォントサイズに少なくとも応じて前記フォントキャッシュを別々に前記メモリー上に確保し、前記文字描画手段は、前記文字の前記ビットマップイメージが前記フォントキャッシュに格納されている場合、そのビットマップイメージを前記フォントキャッシュから取得し、前記キャッシュ管理手段は、前記フォントキャッシュを拡張する単位である拡張単位を前記フォントサイズに少なくとも応じて決定し、前記キャッシュ管理手段は、前記文字描画手段によって描画された前記ビットマップイメージが格納される容量が前記フォントキャッシュの未使用の部分に残っていない場合、前記フォントキャッシュを前記拡張単位で拡張することを特徴とする。
【０００７】
この構成により、本発明の画像形成装置は、文字のビットマップイメージが格納される容量がフォントキャッシュの未使用の部分に残っていない場合に、文字のフォントサイズに少なくとも応じた適切な拡張単位でフォントキャッシュを拡張することができるので、メモリー上のフォントキャッシュを不必要に拡張することを抑えることができる。したがって、本発明の画像形成装置は、フォントキャッシュに関してメモリーの使用効率を従来より向上することができる。
【０００８】
また、本発明の画像形成装置の前記キャッシュ管理手段は、前記フォントキャッシュを拡張する場合、拡張前の前記フォントキャッシュの前記未使用の部分を解放しても良い。
【０００９】
この構成により、本発明の画像形成装置は、フォントキャッシュを拡張する場合に、拡張前のフォントキャッシュの未使用の部分を解放するので、フォントキャッシュに関してメモリーの使用効率を更に向上することができる。
【００１０】
また、本発明の画像形成装置の前記キャッシュ管理手段は、前記文字の解像度に少なくとも更に応じて前記フォントキャッシュを別々に前記メモリー上に確保し、前記キャッシュ管理手段は、前記解像度に少なくとも更に応じて前記拡張単位を決定しても良い。
【００１１】
この構成により、本発明の画像形成装置は、文字の解像度に少なくとも更に応じた適切な拡張単位でフォントキャッシュを拡張することができるので、フォントキャッシュに関してメモリーの使用効率を更に向上することができる。
【００１２】
また、本発明の画像形成装置の前記キャッシュ管理手段は、前記印刷データに含まれる前記文字のうち同一の前記フォントキャッシュに格納されるべき前記文字の種類の数に少なくとも更に応じて前記拡張単位を決定しても良い。
【００１３】
この構成により、本発明の画像形成装置は、印刷データに含まれる文字のうち同一のフォントキャッシュに格納されるべき文字の種類の数に少なくとも更に応じた適切な拡張単位でフォントキャッシュを拡張することができるので、フォントキャッシュに関してメモリーの使用効率を更に向上することができる。
【００１４】
本発明の文字描画プログラムは、メモリーを備えている画像形成装置によって実行される文字描画プログラムであって、印刷データに含まれる文字のビットマップイメージを描画する文字描画ステップと、前記文字描画ステップによって描画された前記ビットマップイメージを一時的に格納する領域であるフォントキャッシュを管理するキャッシュ管理ステップとを前記画像形成装置に実行させ、前記キャッシュ管理ステップは、前記文字の書体およびフォントサイズに少なくとも応じて前記フォントキャッシュを別々に前記メモリー上に確保するステップであり、前記文字描画ステップは、前記文字の前記ビットマップイメージが前記フォントキャッシュに格納されている場合、そのビットマップイメージを前記フォントキャッシュから取得するステップであり、前記キャッシュ管理ステップは、前記フォントキャッシュを拡張する単位である拡張単位を前記フォントサイズに少なくとも応じて決定するステップであり、前記キャッシュ管理ステップは、前記文字描画ステップによって描画された前記ビットマップイメージが格納される容量が前記フォントキャッシュの未使用の部分に残っていない場合、前記フォントキャッシュを前記拡張単位で拡張するステップであることを特徴とする。
【００１５】
この構成により、本発明の文字描画プログラムを実行する画像形成装置は、文字のビットマップイメージが格納される容量がフォントキャッシュの未使用の部分に残っていない場合に、文字のフォントサイズに少なくとも応じた適切な拡張単位でフォントキャッシュを拡張することができるので、メモリー上のフォントキャッシュを不必要に拡張することを抑えることができる。したがって、本発明の文字描画プログラムを実行する画像形成装置は、フォントキャッシュに関してメモリーの使用効率を従来より向上することができる。
【００１６】
本発明のプリンタードライバーは、画像形成装置に送信される前記印刷データを生成するためのプリンタードライバーであって、前記印刷データに含まれる予定の前記文字のうち同一の前記フォントキャッシュに格納されるべき前記文字の種類の数を前記フォントキャッシュ毎に算出する文字種類算出ステップと、前記文字種類算出ステップによって算出された前記文字の種類の数の情報を含めて前記印刷データを生成する印刷データ生成ステップとをコンピューターに実行させることを特徴とする。
【００１７】
この構成により、本発明のプリンタードライバーを実行するコンピューターは、画像形成装置に送信される印刷データに、この印刷データに含まれる予定の文字のうち同一のフォントキャッシュに格納されるべき文字の種類の数の情報を含めるので、印刷データに含まれる文字のうち同一のフォントキャッシュに格納されるべき文字の種類の数に少なくとも応じた適切な拡張単位で画像形成装置にフォントキャッシュを拡張させることができる。
【発明の効果】
【００１８】
本発明の画像形成装置は、フォントキャッシュに関してメモリーの使用効率を従来より向上することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施の形態に係るネットワークシステムのブロック図である。
【図２】図１に示すＭＦＰのブロック図である。
【図３】図２に示すフォントキャッシュの種類の一例を示す図である。
【図４】図２に示す制御部の機能を示す図である。
【図５】図１に示すＰＣのブロック図である。
【図６】印刷データを送信する場合の図５に示すＰＣの動作のフローチャートである。
【図７】図５に示す文字種類算出手段によって算出された文字の種類の数の一例を示す図である。
【図８】文字を描画する場合の図２に示すＭＦＰの動作のフローチャートである。
【図９】図４に示すキャッシュ管理手段によって決定される拡張単位のテーブルの一例を示す図である。
【図１０】図２に示すＭＦＰによって記録媒体に印刷される印刷データの一例を示す図である。
【図１１】（ａ）は、図２に示すＭＦＰによって確保されたフォントキャッシュの状態を示す図である。（ｂ）は、図１１（ａ）より後のフォントキャッシュの状態を示す図である。（ｃ）は、図１１（ｂ）より後のフォントキャッシュの状態を示す図である。（ｄ）は、図１１（ｃ）より後のフォントキャッシュの状態を示す図である。
【図１２】（ａ）は、図１１（ｄ）より後のフォントキャッシュの状態を示す図である。（ｂ）は、図１２（ａ）より後のフォントキャッシュの状態を示す図である。（ｃ）は、図１２（ｂ）より後のフォントキャッシュの状態を示す図である。
【図１３】印刷データ毎にフォントキャッシュの拡張単位を決定する場合の図２に示すＭＦＰの動作のフローチャートである。
【発明を実施するための形態】
【００２０】
以下、本発明の一実施の形態について、図面を用いて説明する。
【００２１】
まず、本実施の形態に係るネットワークシステムの構成について説明する。
【００２２】
図１は、本実施の形態に係るネットワークシステム１０のブロック図である。
【００２３】
図１に示すように、ネットワークシステム１０は、画像形成装置としてのＭＦＰ（Ｍｕｌｔｉｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）２０と、ＭＦＰ２０の外部のコンピューターであるＰＣ(Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ)５０とを備えている。ＭＦＰ２０およびＰＣ５０は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などのネットワーク１１を介して互いに通信可能に接続されている。
【００２４】
図２は、ＭＦＰ２０のブロック図である。
【００２５】
図２に示すように、ＭＦＰ２０は、利用者による種々の操作が入力されるボタンなどの入力デバイスである操作部２１と、種々の情報を表示するＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）などの表示デバイスである表示部２２と、用紙などの記録媒体への画像の印刷を実行する印刷デバイスであるプリンター２３と、原稿から画像を読み取る読取デバイスであるスキャナー２４と、公衆電話回線などの通信回線経由でファックス通信を行うファックスデバイスであるファックス通信部２５と、ネットワーク１１経由で通信を行うネットワーク通信デバイスであるネットワーク通信部２６と、各種のデータを記憶しているＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）などの記憶デバイスである記憶部３０と、ＭＦＰ２０全体を制御する制御部４０とを備えている。
【００２６】
記憶部３０は、文字を描画するための文字描画プログラム３１を記憶している。文字描画プログラム３１は、ＭＦＰ２０の製造段階でＭＦＰ２０にインストールされていても良いし、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリー、ＳＤメモリーカードなどの記憶媒体からＭＦＰ２０に追加でインストールされても良いし、ネットワーク１１上からＭＦＰ２０に追加でインストールされても良い。
【００２７】
制御部４０は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）４１と、プログラムおよび各種のデータを記憶しているＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）４２と、ＣＰＵ４１の作業領域として用いられる本発明のメモリーとしてのＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）４３とを備えている。ＣＰＵ４１は、ＲＯＭ４２または記憶部３０に記憶されているプログラムを実行するようになっている。
【００２８】
ＲＡＭ４３は、後述の文字描画手段４０ａによって描画されたビットマップイメージを一時的に格納する領域であるフォントキャッシュ４３ａを複数記憶することができる。
【００２９】
図３は、フォントキャッシュ４３ａの種類の一例を示す図である。
【００３０】
図３に示すように、フォントキャッシュ４３ａは、Ａｒｉａｌ、Ｃｏｕｒｉｅｒなどの文字の書体と、１２ｐｏｉｎｔ、１６ｐｏｉｎｔなどの文字のフォントサイズと、３００ｄｐｉ、１２００ｄｐｉなどの文字の解像度とに応じて別々にＲＡＭ４３上に確保される。フォントキャッシュ４３ａは、格納される文字の書体、フォントサイズおよび解像度の情報がヘッダーに含まれており、その情報によって判別されるようになっている。
【００３１】
図４は、制御部４０の機能を示す図である。
【００３２】
図４に示すように、制御部４０は、記憶部３０に記憶されている文字描画プログラム３１を実行することによって、印刷データに含まれる文字のビットマップイメージを描画する文字描画手段４０ａ、および、文字描画手段４０ａによって描画されたビットマップイメージを一時的に格納する領域であるフォントキャッシュ４３ａを管理するキャッシュ管理手段４０ｂとして機能する。
【００３３】
図５は、ＰＣ５０のブロック図である。
【００３４】
図５に示すように、ＰＣ５０は、利用者による種々の操作が入力されるマウス、キーボードなどの入力デバイスである操作部５１と、種々の情報を表示するＬＣＤなどの表示デバイスである表示部５２と、ネットワーク１１経由で通信を行うネットワーク通信デバイスであるネットワーク通信部５３と、各種のデータを記憶しているＨＤＤなどの記憶デバイスである記憶部６０と、ＰＣ５０全体を制御する制御部７０とを備えている。
【００３５】
記憶部６０は、ＭＦＰ２０での印刷を制御するためのプリンタードライバー６１を記憶している。
【００３６】
プリンタードライバー６１は、ＰＣ５０の製造段階でＰＣ５０にインストールされていても良いし、ＵＳＢメモリー、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）などの記憶媒体からＰＣ５０に追加でインストールされても良いし、ネットワーク１１上からＰＣ５０に追加でインストールされても良い。
【００３７】
制御部７０は、例えば、ＣＰＵと、プログラムおよび各種のデータを記憶しているＲＯＭと、ＣＰＵの作業領域として用いられるＲＡＭとを備えている。ＣＰＵは、ＲＯＭまたは記憶部６０に記憶されているプログラムを実行するようになっている。
【００３８】
制御部７０は、記憶部６０に記憶されているプリンタードライバー６１を実行することによって、印刷データに含まれる予定の文字のうち同一のフォントキャッシュ４３ａに格納されるべき文字の種類の数（以下「文字種類数」と言う。）をフォントキャッシュ４３ａ毎に算出する文字種類算出手段７０ａ、および、文字種類算出手段７０ａによって算出された文字種類数の情報を含めて印刷データを生成する印刷データ生成手段７０ｂとして機能する。
【００３９】
次に、ネットワークシステム１０の動作について説明する。
【００４０】
利用者は、ＭＦＰ２０での画像の印刷をＰＣ５０の操作部５１を介してＰＣ５０に指示することができる。この指示を受けると、ＰＣ５０の制御部７０は、図６に示す処理を実行する。
【００４１】
図６は、印刷データを送信する場合のＰＣ５０の動作のフローチャートである。
【００４２】
図６に示すように、ＰＣ５０の制御部７０の文字種類算出手段７０ａは、ＭＦＰ２０に送信される印刷データに含まれる予定の文字のうち、同一のフォントキャッシュ４３ａに格納されるべき文字の種類の数、すなわち、文字種類数をフォントキャッシュ４３ａ毎に算出する（Ｓ１０１）。すなわち、文字種類算出手段７０ａは、ＭＦＰ２０に送信される印刷データの中に、書体、フォントサイズおよび解像度の組み合わせが同一である文字が何種類含まれる予定であるかを、書体、フォントサイズおよび解像度の組み合わせ毎に算出する。
【００４３】
図７は、文字種類算出手段７０ａによって算出された文字種類数の一例を示す図である。
【００４４】
文字種類算出手段７０ａは、Ｓ１０１の処理において、例えば図７に示すように文字種類数を算出する。
【００４５】
図６に示すように、ＰＣ５０の制御部７０の印刷データ生成手段７０ｂは、Ｓ１０１の処理の後、Ｓ１０１において算出された文字種類数の情報を含めて印刷データを生成する（Ｓ１０２）。なお、この印刷データは、ＰＣＬ  ＸＬ、ＰＣＬ  ５ｅ、ＰＣＬ  ５ｃ、ＰｏｓｔＳｃｒｉｐｔなどのページ記述言語によって記述されている。
【００４６】
次いで、制御部７０は、Ｓ１０２において生成された印刷データをＭＦＰ２０に送信して（Ｓ１０３）、図６に示す処理を終了する。
【００４７】
ＭＦＰ２０の制御部４０は、ＰＣ５０からの印刷データを受信すると、印刷データに基づいた画像を生成し、この画像を記録媒体に印刷する。ここで、制御部４０は、印刷データに文字が含まれている場合、画像を生成するときに、文字を描画する。
【００４８】
図８は、文字を描画する場合のＭＦＰ２０の動作のフローチャートである。
【００４９】
図８に示すように、ＭＦＰ２０の制御部４０は、印刷データに含まれる文字のうち、最初の１文字を対象にする（Ｓ１３１）。
【００５０】
次いで、制御部４０のキャッシュ管理手段４０ｂは、現在対象にしている文字（以下「対象文字」と言う。）用のフォントキャッシュ４３ａがＲＡＭ４３上に存在するか否かを、その文字の書体、フォントサイズおよび解像度に基づいて判断する（Ｓ１３２）。
【００５１】
キャッシュ管理手段４０ｂは、対象文字用のフォントキャッシュ４３ａがＲＡＭ４３上に存在していないとＳ１３２において判断すると、フォントキャッシュ４３ａを拡張する単位である拡張単位を、フォントキャッシュ４３ａに対応するフォントサイズ、解像度および文字種類数に応じて決定する（Ｓ１３３）。なお、キャッシュ管理手段４０ｂは、フォントキャッシュ４３ａに対応する文字種類数を、印刷データに含まれている文字種類数の情報に基づいて判断する。
【００５２】
ここで、文字のフォントサイズが大きいほど文字のビットマップイメージのデータサイズが大きいので、キャッシュ管理手段４０ｂは、文字のフォントサイズが大きいほど拡張単位を大きくすることが好ましい。また、文字の解像度が高いほど文字のビットマップイメージのデータサイズが大きいので、キャッシュ管理手段４０ｂは、文字の解像度が高いほど拡張単位を大きくすることが好ましい。また、印刷データに含まれている文字種類数が多いほど該当のフォントキャッシュ４３ａにおける必要な容量が大きいので、キャッシュ管理手段４０ｂは、印刷データに含まれている文字種類数が多いほど拡張単位を大きくすることが好ましい。
【００５３】
図９は、キャッシュ管理手段４０ｂによって決定される拡張単位のテーブルの一例を示す図である。
【００５４】
キャッシュ管理手段４０ｂは、Ｓ１３３の処理において、例えば図９に示すようなテーブルを用いて拡張単位を決定する。
【００５５】
図８に示すように、ＭＦＰ２０の制御部４０のキャッシュ管理手段４０ｂは、Ｓ１３３の処理の後、Ｓ１３３において決定した拡張単位分のフォントキャッシュ４３ａを対象文字のためにＲＡＭ４３上に確保する（Ｓ１３４）。
【００５６】
次いで、制御部４０の文字描画手段４０ａは、対象文字のビットマップイメージを描画する（Ｓ１３５）。
【００５７】
次いで、文字描画手段４０ａは、対象文字用のフォントキャッシュ４３ａに、対象文字のビットマップイメージを格納する（Ｓ１３６）。
【００５８】
次いで、文字描画手段４０ａは、ＲＡＭ４３上のフォントキャッシュ４３ａから対象文字のビットマップイメージを取得する（Ｓ１３７）。
【００５９】
次いで、制御部４０は、印刷データに含まれている全ての文字を対象にしたか否かを判断する（Ｓ１３８）。
【００６０】
制御部４０は、印刷データに含まれている全ての文字を対象にしたとＳ１３８において判断すると、図８に示す処理を終了する。
【００６１】
一方、制御部４０は、印刷データに含まれている何れかの文字を対象にしていないとＳ１３８において判断すると、印刷データに含まれている文字のうち、対象文字の次の１文字を対象にして（Ｓ１３９）、再びＳ１３２の処理に戻る。
【００６２】
キャッシュ管理手段４０ｂは、対象文字用のフォントキャッシュ４３ａがＲＡＭ４３上に存在しているとＳ１３２において判断すると、対象文字用のフォントキャッシュ４３ａに対象文字のビットマップイメージが格納されているか否かを判断する（Ｓ１４０）。
【００６３】
文字描画手段４０ａは、対象文字用のフォントキャッシュ４３ａに対象文字のビットマップイメージが格納されているとＳ１４０において判断されると、Ｓ１３７の処理を実行する。
【００６４】
文字描画手段４０ａは、対象文字用のフォントキャッシュ４３ａに対象文字のビットマップイメージが格納されていないとＳ１４０において判断されると、対象文字のビットマップイメージを描画する（Ｓ１４１）。
【００６５】
次いで、キャッシュ管理手段４０ｂは、Ｓ１４１において描画されたビットマップイメージが格納される容量が対象文字用のフォントキャッシュ４３ａの未使用の部分に残っているか否かを判断する（Ｓ１４２）。
【００６６】
文字描画手段４０ａは、対象文字のビットマップイメージが格納される容量が対象文字用のフォントキャッシュ４３ａの未使用の部分に残っているとＳ１４２において判断されると、Ｓ１３６の処理を実行する。
【００６７】
キャッシュ管理手段４０ｂは、対象文字のビットマップイメージが格納される容量が対象文字用のフォントキャッシュ４３ａの未使用の部分に残っていないとＳ１４２において判断すると、対象文字用のフォントキャッシュ４３ａをＳ１３３において決定した拡張単位で拡張する（Ｓ１４３）。
【００６８】
キャッシュ管理手段４０ｂは、対象文字用のフォントキャッシュ４３ａについて、Ｓ１４３における拡張前のフォントキャッシュ４３ａの未使用の部分を解放する（Ｓ１４４）。すなわち、キャッシュ管理手段４０ｂは、対象文字用のフォントキャッシュ４３ａを最適化する。
【００６９】
制御部４０は、Ｓ１４４の処理の後、Ｓ１３６の処理を実行する。
【００７０】
図１０は、ＭＦＰ２０によって記録媒体に印刷される印刷データの一例を示す図である。
【００７１】
図１０に示す印刷データに含まれる全ての文字は、書体がＡｒｉａｌであり、フォントサイズが１２ｐｏｉｎｔであり、解像度が１２００ｄｐｉである。そして、図１０に示す印刷データにおいて、書体がＡｒｉａｌであり、フォントサイズが１２ｐｏｉｎｔであり、解像度が１２００ｄｐｉである文字の文字種類数は、２６である。
【００７２】
ＰＣ５０からＭＦＰ２０に送信された印刷データが例えば図１０に示す印刷データである場合、書体がＡｒｉａｌであり、フォントサイズが１２ｐｏｉｎｔであり、解像度が１２００ｄｐｉである文字用のフォントキャッシュ４３ａが存在しないとき、ＭＦＰ２０は、図８に示す処理において、印刷データに含まれる文字のうち、最初の１文字である“Ａ”を対象にする（Ｓ１３１）。
【００７３】
次いで、ＭＦＰ２０は、対象文字用のフォントキャッシュ４３ａがＲＡＭ４３上に存在していないとＳ１３２において判断して、対象文字用のフォントキャッシュ４３ａの拡張単位を図９に示すテーブルに基づいて１６ＫＢｙｔｅと決定する（Ｓ１３３）。
【００７４】
次いで、ＭＦＰ２０は、図１１（ａ）に示すように、拡張単位である１６ＫＢｙｔｅ分のフォントキャッシュ４３ａを対象文字のためにＲＡＭ４３上に確保する（Ｓ１３４）。
【００７５】
次いで、ＭＦＰ２０は、対象文字である“Ａ”のビットマップイメージを描画した後（Ｓ１３５）、図１１（ｂ）に示すように、対象文字用のフォントキャッシュ４３ａに対象文字のビットマップイメージを格納する（Ｓ１３６）。
【００７６】
次いで、ＭＦＰ２０は、Ｓ１３７の処理の後、印刷データに含まれている何れかの文字を対象にしていないとＳ１３８において判断して、印刷データに含まれている文字のうち、対象文字の次の１文字である“Ａ”を対象にする（Ｓ１３９）。
【００７７】
次いで、ＭＦＰ２０は、対象文字用のフォントキャッシュ４３ａがＲＡＭ４３上に存在しているとＳ１３２において判断した後、対象文字用のフォントキャッシュ４３ａに対象文字のビットマップイメージが格納されているとＳ１４０において判断して、Ｓ１３７の処理の後、印刷データに含まれている何れかの文字を対象にしていないとＳ１３８において判断して、印刷データに含まれている文字のうち、対象文字の次の１文字である“Ｂ”を対象にする（Ｓ１３９）。
【００７８】
次いで、ＭＦＰ２０は、対象文字用のフォントキャッシュ４３ａがＲＡＭ４３上に存在しているとＳ１３２において判断した後、対象文字用のフォントキャッシュ４３ａに対象文字のビットマップイメージが格納されていないとＳ１４０において判断して、対象文字である“Ｂ”のビットマップイメージを描画する（Ｓ１４１）。
【００７９】
次いで、ＭＦＰ２０は、対象文字のビットマップイメージが格納される容量が対象文字用のフォントキャッシュ４３ａの未使用の部分に残っているとＳ１４２において判断して、図１１（ｃ）に示すように、対象文字用のフォントキャッシュ４３ａに対象文字のビットマップイメージを格納する（Ｓ１３６）。
【００８０】
次いで、ＭＦＰ２０は、Ｓ１３７の処理の後、印刷データに含まれている何れかの文字を対象にしていないとＳ１３８において判断して、印刷データに含まれている文字のうち、対象文字の次の１文字である“Ｃ”を対象にする（Ｓ１３９）。
【００８１】
この後、“Ｅ”が対象文字になるまでは、上述した“Ｂ”のときと同様であるので、説明を省略する。“Ｅ”が対象文字になった時、対象文字用のフォントキャッシュ４３ａは、図１１（ｄ）に示すようになっている。
【００８２】
ＭＦＰ２０は、Ｓ１３９において“Ｅ”を対象文字にすると、対象文字用のフォントキャッシュ４３ａがＲＡＭ４３上に存在しているとＳ１３２において判断した後、対象文字用のフォントキャッシュ４３ａに対象文字のビットマップイメージが格納されていないとＳ１４０において判断して、対象文字である“Ｅ”のビットマップイメージを描画する（Ｓ１４１）。
【００８３】
次いで、ＭＦＰ２０は、対象文字のビットマップイメージが格納される容量が対象文字用のフォントキャッシュ４３ａの未使用の部分に残っていないとＳ１４２において判断して、図１２（ａ）に示すように、対象文字用のフォントキャッシュ４３ａを拡張単位である１６ＫＢｙｔｅで拡張する（Ｓ１４３）。
【００８４】
次いで、ＭＦＰ２０は、対象文字用のフォントキャッシュ４３ａについて、図１２（ｂ）に示すように、Ｓ１４３における拡張前のフォントキャッシュ４３ａの未使用の部分を解放する（Ｓ１４４）。
【００８５】
次いで、ＭＦＰ２０は、図１２（ｃ）に示すように、対象文字用のフォントキャッシュ４３ａに対象文字のビットマップイメージを格納する（Ｓ１３６）。
【００８６】
次いで、ＭＦＰ２０は、Ｓ１３７の処理の後、印刷データに含まれている何れかの文字を対象にしていないとＳ１３８において判断して、印刷データに含まれている文字のうち、対象文字の次の１文字である“Ｆ”を対象にする（Ｓ１３９）。
【００８７】
この後は、上述した“Ｂ”または“Ｅ”のときと同様であるので、説明を省略する。
【００８８】
以上に説明したように、ＭＦＰ２０は、文字のビットマップイメージが格納される容量がフォントキャッシュ４３ａの未使用の部分に残っていない場合（Ｓ１４２でＮＯ）に、文字のフォントサイズ、文字の解像度、および、文字種類数に応じた適切な拡張単位でフォントキャッシュ４３ａを拡張する（Ｓ１４３）ことができるので、ＲＡＭ４３上のフォントキャッシュ４３ａを不必要に拡張することを抑えることができる。したがって、ＭＦＰ２０は、フォントキャッシュ４３ａに関してＲＡＭ４３の使用効率を従来より向上することができる。
【００８９】
また、ＭＦＰ２０は、文字のフォントサイズ、文字の解像度、および、文字種類数に応じた適切な拡張単位でフォントキャッシュ４３ａを拡張することができるので、拡張単位が小さ過ぎる構成と比較して、文字のビットマップイメージが格納される容量がフォントキャッシュ４３ａの未使用の部分に残っていないという状況が生じ難い。そのため、ＭＦＰ２０は、拡張単位が小さ過ぎる構成と比較して、Ｓ１４３およびＳ１４４の処理の実行回数を低減することができる。したがって、ＭＦＰ２０は、拡張単位が小さ過ぎる構成と比較して、印字処理のパフォーマンスを向上することができるとともに、ＲＡＭ４３のフラグメンテーションを低減させることができる。
【００９０】
ＰＣ５０は、プリンタードライバー６１を実行することによって、ＭＦＰ２０に送信される印刷データに文字種類数の情報を含める（Ｓ１０１、Ｓ１０２）ので、文字種類数にも応じた適切な拡張単位でＭＦＰ２０にフォントキャッシュ４３ａを拡張させることができる。
【００９１】
なお、ＭＦＰ２０は、文字のフォントサイズのみでなく、文字の解像度、および、文字種類数にも応じた拡張単位を決定する（Ｓ１３３）ようになっているが、文字のフォントサイズのみに応じた拡張単位を決定するようになっていても良いし、文字のフォントサイズ、および、文字の解像度のみに応じた拡張単位を決定するようになっていても良いし、文字のフォントサイズ、および、文字種類数のみに応じた拡張単位を決定するようになっていても良い。
【００９２】
ＭＦＰ２０は、フォントキャッシュ４３ａを拡張する場合（Ｓ１４３）に、拡張前のフォントキャッシュ４３ａの未使用の部分を解放する（Ｓ１４４）ので、フォントキャッシュ４３ａに関してＲＡＭ４３の使用効率を更に向上することができる。
【００９３】
なお、ＭＦＰ２０は、Ｓ１４４の処理を実行しないようになっていても良い。
【００９４】
ＭＦＰ２０は、図８に示す処理において、対象文字用のフォントキャッシュ４３ａがＲＡＭ４３上に存在しているとＳ１３２において判断した場合に、フォントキャッシュ４３ａの拡張単位を決定する（Ｓ１３３）ことはない。しかしながら、ＭＦＰ２０は、印刷データ毎にフォントキャッシュ４３ａの拡張単位を決定するようになっていても良い。
【００９５】
図１３は、印刷データ毎にフォントキャッシュ４３ａの拡張単位を決定する場合のＭＦＰ２０の動作のフローチャートである。
【００９６】
図１３に示す処理は、Ｓ１６１およびＳ１６２の処理を除いて図８に示す処理と同様である。
【００９７】
図１３に示すように、ＭＦＰ２０の制御部４０のキャッシュ管理手段４０ｂは、対象文字用のフォントキャッシュ４３ａがＲＡＭ４３上に存在しているとＳ１３２において判断すると、この印刷データにおいて対象文字用のフォントキャッシュ４３ａの拡張単位を決定したか否かを判断する（Ｓ１６１）。
【００９８】
キャッシュ管理手段４０ｂは、この印刷データにおいて対象文字用のフォントキャッシュ４３ａの拡張単位を決定していないとＳ１６１において判断すると、Ｓ１３３と同様に対象文字用のフォントキャッシュ４３ａの拡張単位を決定する（Ｓ１６２）。
【００９９】
キャッシュ管理手段４０ｂは、この印刷データにおいて対象文字用のフォントキャッシュ４３ａの拡張単位を決定したとＳ１６１において判断するか、Ｓ１６２の処理を終了すると、対象文字用のフォントキャッシュ４３ａに対象文字のビットマップイメージが格納されているか否かを判断する（Ｓ１４０）。
【０１００】
なお、本発明のコンピューターは、本実施の形態においてＰＣであるが、ＰＣ以外のコンピューターであっても良い。
【０１０１】
また、本発明の画像形成装置は、本実施の形態においてＭＦＰであるが、プリンター専用機など、ＭＦＰ以外の画像形成装置であっても良い。
【符号の説明】
【０１０２】
２０  ＭＦＰ（画像形成装置）
３１  文字描画プログラム
４０ａ  文字描画手段
４０ｂ  キャッシュ管理手段
４３  ＲＡＭ（メモリー）
４３ａ  フォントキャッシュ
５０  ＰＣ（コンピューター）
６１  プリンタードライバー
【図１】
0005701234.tif 000002
【図２】
0005701234.tif 000003
【図３】
0005701234.tif 000004
【図４】
0005701234.tif 000005
【図５】
0005701234.tif 000006
【図６】
0005701234.tif 000007
【図７】
0005701234.tif 000008
【図８】
0005701234.tif 000009
【図９】
0005701234.tif 000010
【図１０】
0005701234.tif 000011
【図１１】
0005701234.tif 000012
【図１２】
0005701234.tif 000013
【図１３】
0005701234.tif 000014