(57)【要約】【課題】印刷処理の負荷が少なく、ファイリングに必要な記憶容量を節約することができるダウンロードフォントの管理を実現できる画像形成装置。【解決手段】印刷データと予め複数グループに分類されたダウンロードフォントのうち前記印刷データの印刷に必要なグループのダウンロードフォントと当該ダウンロードフォントが属するグループの情報とをホストから受けるデータ受領部と、印刷データとダウンロードフォントとを記憶するための記憶装置と、受領したダウンロードフォントが記憶装置に格納されたダウンロードフォントと異なるグループに属するかどうかを前記情報に基づいて判定し異なるグループのダウンロードフォントであれば記憶装置に格納するジョブ管理部と、記憶された印刷データと記憶装置に記憶されたダウンロードフォントとを用いて印刷を行う印刷部とを備える画像形成装置を適用する。【選択図】図１
2006224442.tif 000002
【特許請求の範囲】
【請求項１】
印刷データと予め複数グループに分類されたダウンロードフォントのうち前記印刷データの印刷に必要なグループのダウンロードフォントと当該ダウンロードフォントが属するグループの情報とをホストから受けるデータ受領部と、
印刷データとダウンロードフォントとを記憶するための記憶装置と、
受領したダウンロードフォントが記憶装置に格納されたダウンロードフォントと異なるグループに属するかどうかを前記情報に基づいて判定し異なるグループのダウンロードフォントであれば記憶装置に格納するジョブ管理部と、
記憶された印刷データと記憶装置に記憶されたダウンロードフォントとを用いて印刷を行う印刷部とを備える画像形成装置。
【請求項２】
前記印刷部が、同一グループのダウンロードフォントを使用する複数の印刷データを印刷する場合に、記憶装置に格納されたダウンロードフォントを共用する請求項１記載の画像形成装置。
【請求項３】
前記データ受領部が、一方が他方の全てのフォントを包含するようにグループ化されたダウンロードフォントのうち印刷に必要なグループのダウンロードフォントを受領し、
前記ジョブ管理部が、受領したダウンロードフォントに包含されるグループのダウンロードフォントが記憶装置に格納されている場合に、当該包含されるダウンロードフォントを記憶装置から削除し、受領したダウンロードフォントを記憶装置に格納する請求項１記載の画像形成装置。
【請求項４】
前記記憶装置に格納されたダウンロードフォントを使用する印刷データがすべて削除されるまで当該ダウンロードフォントを記憶装置内に保持し、すべての印刷データが削除された後に当該ダウンロードフォントを削除するフォント管理部をさらに備える請求項１記載の画像形成装置。
【請求項５】
前記記憶装置に格納されたダウンロードフォントを使用する印刷データの削除後、所定期間内の当該ダウンロードフォントの使用頻度を判定し、当該期間中に印刷データが前記ダウンロードフォントを使用した頻度が基準に満たない場合に前記ダウンロードフォントを削除するフォント管理部をさらに備える請求項１記載の画像形成装置。
【請求項６】
前記フォント管理部が、各グループのダウンロードフォントに対応するカウンタを有し、印刷データが記憶装置に格納された際に当該印刷データが使用するダウンロードフォントに対応するカウンタをインクリメントし、所定期間内のカウント数が所定数以下の場合に当該ダウンロードフォントの使用頻度が基準に満たないと判定する請求項５記載の画像形成装置。
【請求項７】
前記ジョブ管理部が、フォント形式に応じた格納方法でダウンロードフォントを記憶装置に格納する請求項１記載の画像形成装置。
【請求項８】
前記ジョブ管理部が、受領したダウンロードフォントであるアウトラインフォントが記憶装置に格納された同一書体のビットマップフォントを包含する場合に前記アウトラインフォントを記憶装置に格納し、格納したアウトラインフォントに包含されるビットマップフォントを削除する請求項１記載の画像形成装置。
【請求項９】
印刷データと予め複数グループに分類されたダウンロードフォントのうち前記印刷データの印刷に必要なグループのダウンロードフォントと当該ダウンロードフォントが属するグループの情報とを印刷装置へ送出する処理をコンピュータに実行させるプリンタドライバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷データの再印刷が可能な画像形成装置、画像形成方法及び記憶媒体に関し、特に、フォント情報を含んだ印刷データを記憶媒体に格納し、必要に応じて取り出して画像を形成できるようにした画像形成装置、画像形成方法及び記憶媒体に関する。
【背景技術】
【０００２】
近年、プリンタなどの画像形成装置が高機能化し、ハードディスクのような記憶媒体を内蔵し、一度印刷した画像データを格納（ファイリング）しておいて再印刷ができるようにしたり、ネットワークで接続されたホストから受けた印刷データを受信の時点で出力せず、ユーザーがプリンタの操作パネルから暗証コードを入力するまで記憶媒体に格納しておくことによってセキュリティーを強化する機能を持たせたりするいわゆるドキュメントファイリング機能を装備した画像形成装置が提案されている。
【０００３】
このようなドキュメントファイリング機能を利用した印刷において、記憶媒体に格納された印刷データを再印刷する場合、印刷に必要なダウンロードフォントがＲＡＭ上や記憶媒体に格納されているかを判別する必要がある。しかし、この判別は印刷データに含まれる全ての文字について行う必要があり、処理に時間を要する。特に印刷データ中に漢字フォントが含まれる場合は、文字数が多いため、英数字やかな文字だけの印刷データに比べて多くの時間を要する。さらに、ダウンロードフォントがＲＡＭ及び記憶媒体から削除されている場合には、外部装置から再度ダウンロードを行う必要があり、印刷処理の負荷が大きい。
【０００４】
印刷に必要な全てのフォントを画像形成装置に格納しておく考え方もあるが、フォントの種類は非常に多く必要な記憶容量は膨大になる。さらに、後日追加された新たなフォントに対応することができない。近年は、ホスト側の画面表示と印刷結果とを一致させるために、ホスト側が印刷データと共にダウンロードフォントを画像形成装置に提供することが多い。
印刷データの再印刷機能を実現するうえで、印刷処理の負荷の軽減や、ファイリングに必要な記憶容量の節約に関連するいくつかの手法が提案されている。
【０００５】
その一つに、記憶媒体に印刷データを格納する際に、画像形成装置が受け取ったページ記述言語を中間言語形式で格納するか、ラスタイメージの画像データ形式として格納するかを、あらかじめ計測したレンダリング時間と設定された制限時間とを比較することより選択するように構成し、印刷時間を増加させることなく記憶媒体のデータ容量の削減を可能にする手法が知られている（例えば、特許文献１）。
【０００６】
また、記憶媒体に格納した印刷データのリスト情報を、キャッシュデータとしてキャッシュ領域に格納することにより、印刷データの再印刷を行う際に外部装置から再送信することなく、且つ、記憶装置にアクセスする回数を少なくして、印刷データの再印刷を可能にする手法が知られている（例えば、特許文献２）。
【０００７】
さらにまた、ダウンロードフォントを含む印刷データを印刷する際に、ダウンロードフォントを格納するＲＡＭの空き容量が不足する場合、ＲＡＭ上にすでに格納されているデータを圧縮し、作成された空き領域にダウンロードフォントを格納するか、もしくは、ＲＡＭ上に十分な空き領域がない場合、記憶装置にＲＡＭ上のダウンロードフォントを格納しＲＡＭ上に記憶媒体に格納されたフォント情報のインデックスを格納することでダウンロードフォントをＲＡＭ及び記憶媒体上から削除することなく新たなダウンロードフォントの格納を可能にする手法が知られている（例えば、特許文献３）。
【０００８】
また、ダウンロードフォントを含む印刷データを印刷する際に、記憶媒体上のフォント情報テーブルを参照し自動整合性判別を行うことで、印刷データに含まれるダウンロードフォントがすでに記憶媒体に格納されているかの判定を行うことを可能にし、さらには、ダウンロードフォントを新たにＲＡＭに格納する場合に、ＲＡＭの空き容量をもとに、データ部のみ圧縮するかファイル全体を圧縮するかを選択することでＲＡＭ上に効率的にダウンロードフォントを格納可能する手法が知られている（例えば、特許文献４）。
【特許文献１】特開２００１−３４７７０９号公報
【特許文献２】特開２００２−２００７９８号公報
【特許文献３】特開平８−１６６８５８号公報
【特許文献４】特開２０００−３４７８２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
特許文献１および２においては、ダウンロードフォントを含む印刷データに関して特に言及はされていない。
しかし、特許文献１において印刷データを記憶媒体へ格納するのに、ラスタイメージの画像データ形式に変換して記憶媒体に格納する場合には再印刷の際にダウンロードフォントは必要ないが、ページ記述言語形式で記憶媒体に格納する場合には再印刷の際にダウンロードフォントが必要となる。従って、両者について個別の処理を行うべきであり、いずれか一方だけの処理を行う手法に比べて処理が複雑化し、設計工数やメンテナンスの工数が増大する。
【００１０】
特許文献２の手法は、再印刷のための記憶装置へのアクセス回数を少なくするためにキャッシュの容量を大きくするほど、大容量のキャッシュが必要になる。また、印刷データを記憶媒体にすべて格納するため、特に漢字フォントデータを印刷データとともに格納する場合に大容量の記憶装置が必要となる。
【００１１】
また、特許文献３の手法も、特許文献２と同様、印刷データを記憶装置にすべて格納するので大容量の記憶装置が必要となる。さらに、ＲＡＭ上の空き領域が不足する場合に、ダウンロードフォントを記憶領域へ格納するが、ＲＡＭ容量が不足する毎にインデックスの作成が必要であり、空き容量の不足が連続して発生した場合には、何度もインデックスを作成する必要があり処理に負担がかかる。
【００１２】
特許文献４の手法は、フォント書体テーブルを用いてダウンロードフォントを管理しているが、管理するダウンロードフォントが増加すると、記憶媒体に格納される印刷データを再印刷する場合や電子ソートする際に、印刷データが必要とするダウンロードフォントが記憶媒体に格納されているかの判別処理の負荷が大きくなってしまう。
印刷処理の負荷が少なく、ファイリングに必要な記憶容量を節約することができる手法が望まれている。
【課題を解決するための手段】
【００１３】
この発明は、印刷データと予め複数グループに分類されたダウンロードフォントのうち前記印刷データの印刷に必要なグループのダウンロードフォントと当該ダウンロードフォントが属するグループの情報とをホストから受けるデータ受領部と、印刷データとダウンロードフォントとを記憶するための記憶装置と、受領したダウンロードフォントが記憶装置に格納されたダウンロードフォントと異なるグループに属するかどうかを前記情報に基づいて判定し異なるグループのダウンロードフォントであれば記憶装置に格納するジョブ管理部と、記憶された印刷データと記憶装置に記憶されたダウンロードフォントとを用いて印刷を行う印刷部とを備える画像形成装置を提供する。
【００１４】
また、この発明は、印刷データと予め複数グループに分類されたダウンロードフォントのうち前記印刷データの印刷に必要なグループのダウンロードフォントと当該ダウンロードフォントが属するグループの情報とを印刷装置へ送出する処理をコンピュータに実行させるプリンタドライバを提供する。
【発明の効果】
【００１５】
この発明の画像形成装置は、印刷データと予め複数グループに分類されたダウンロードフォントのうち前記印刷データの印刷に必要なグループのダウンロードフォントと当該ダウンロードフォントが属するグループの情報とをホストから受けるデータ受領部と、受領したダウンロードフォントが記憶装置に格納されたダウンロードフォントと異なるグループに属するかどうかを前記情報に基づいて判定し異なるグループのダウンロードフォントであれば記憶装置に格納するジョブ管理部とを備えるので、受領したダウンロードフォントが既に記憶装置に格納されているかどうかを受領した情報に基づいて判断し、重複したダウンロードフォントを格納することなくダウンロードフォントの記憶容量を節約することができる。しかも、ダウンロードフォントがグループ単位に分類されているので各印刷データに必要なダウンロードフォントの判定を各文字について行う必要がなく、従って判定回数が少なく処理の負担がかからない。
【００１６】
また、この発明のプリンタドライバは、印刷データと予め複数グループに分類されたダウンロードフォントのうち前記印刷データの印刷に必要なグループのダウンロードフォントと当該ダウンロードフォントが属するグループの情報とを印刷装置へ送出する処理をコンピュータに実行させるので、送出されたダウンロードフォントが既に印刷装置に格納されているかどうかを情報に基づいて容易に判断させ、重複したダウンロードフォントを格納することなく記憶容量を節約することができる。
【発明を実施するための最良の形態】
【００１７】
画像形成装置には、ホストからの印刷データを記憶装置に格納することなく印刷出力するものと、一旦記憶装置に格納するものとがあるが、この発明の画像形成装置は印刷データを一旦記憶装置に格納することができる画像形成装置に関する。ただし、必ずしも全ての印刷データを記憶装置に格納する必要はなく、必要に応じて格納できるように構成されていればよい。印刷データを記憶装置に格納する印刷形態としては、例えば、頻繁に使用する印刷データを画像形成装置内に格納しておき、必要に応じて即座に印刷できるような形態、いわゆるドキュメントファイリングがある。この他にも、画像形成装置側で頁順を並べ替えて印刷する形態などもある。
【００１８】
画像形成装置が印刷データを受領したとき、受領した印刷データの印刷に必要なフォントが画像形成装置内にすでに格納されている場合と、格納されていない場合とがある。印刷に必要なフォントが格納されていない場合、そのフォントを外部から取得する必要がある。外部からフォントを取得する手法として、ネットワークを介して接続されたホストからフォントをダウンロードして使用する方法がある。このようにして受けたフォントをダウンロードフォントという。
【００１９】
この発明の画像形成装置は、印刷データと予め複数グループに分類されたダウンロードフォントのうち前記印刷データの印刷に必要なグループのダウンロードフォントと当該ダウンロードフォントが属するグループの情報とをホストから受けるデータ受領部と、印刷データとダウンロードフォントとを記憶するための記憶装置と、受領したダウンロードフォントが記憶装置に格納されたダウンロードフォントと異なるグループに属するかどうかを前記情報に基づいて判定し異なるグループのダウンロードフォントであれば記憶装置に格納するジョブ管理部と、記憶された印刷データと記憶装置に記憶されたダウンロードフォントとを用いて印刷を行う印刷部とを備える。
ここで、印刷データは、例えば、ページ記述言語形式で記述されたデータであってもよいが、これに限定されるものではない。
【００２０】
前記印刷部が、同一グループのダウンロードフォントを使用する複数の印刷データを印刷する場合に、記憶装置に格納されたダウンロードフォントを共用するようにしてもよい。このようにすれば、ダウンロードフォントを複数の印刷データで共用して印刷するので、重複したダウンロードフォントを記憶装置に格納する必要がなく、ダウンロードフォントの記憶容量を節約することができる。
【００２１】
前記データ受領部が、一方が他方の全てのフォントを包含するようにグループ化されたダウンロードフォントのうち印刷に必要なグループのダウンロードフォントを受領し、前記ジョブ管理部が、受領したダウンロードフォントに包含されるグループのダウンロードフォントが記憶装置に格納されている場合に、当該包含されるダウンロードフォントを記憶装置から削除し、受領したダウンロードフォントを記憶装置に格納するようにしてもよい。このようにすれば、記憶装置に格納されているグループのダウンロードフォントを用いる印刷は、そのグループを包含するグループのダウンロードフォントを用いて印刷できるので、両方のグループを記憶装置に格納する場合に比べて少ない記憶容量で印刷を行うことができ、記憶領域を節約することができる。別の観点からすると、限られたフォントを用いる印刷データに対し、それに応じて限定されたフォントを含むグループのダウンロードフォントを選択すれば、ダウンロードフォントの記憶容量を節約することができる。
【００２２】
フォントのグループ化は、種々の体系が考えられ用途に応じて好適な体系を用いればよい。また、すべてのグループが互いに包含関係にある必要はなく、一部のグループだけに包含関係のある体系であってもよい。グループ化の一例として、第１グループが英数、かな文字および各種記号、第２グループがＪＩＳ第一水準に含まれる文字、第３グループがＪＩＳ第二水準に含まれる文字としてもよい。上記の場合、第１グループは第２グループに包含され、第２グループは第３グループに包含される関係にある。上記の各グループに全ての書体が含まれるようにすると、全てのグループが互いに包含関係にあるが、書体別にグループ化すれば、同一書体についての各グループは包含関係にあるが、異なる書体との間では包含関係を有さない。
【００２３】
また、前記画像形成装置が、記憶装置に格納されたダウンロードフォントを使用する印刷データがすべて削除されるまで当該ダウンロードフォントを記憶装置内に保持し、すべての印刷データが削除された後に当該ダウンロードフォントを削除するフォント管理部をさらに備えていてもよい。このようにすれば、フォント管理部が、印刷が完了して印刷データが削除されるまでその印刷に必要なダウンロードフォントを保持するので、印刷時にダウンロードフォントがないために再度ダウンロードを行うといった重複処理が発生したり、あるいは、代替フォントを用いて印刷することによって使用者の意図しない印刷結果が出力されたりすることがなくなる。特に、ドキュメントファイリング機能を用いた印刷など、長期間に渡って印刷データが画像形成装置内に格納される場合に有効である。
【００２４】
あるいは、前記画像形成装置が、記憶装置に格納されたダウンロードフォントを使用する印刷データの削除後、所定期間内の当該ダウンロードフォントの使用頻度を判定し、当該期間中に印刷データが前記ダウンロードフォントを使用した頻度が基準に満たない場合に前記ダウンロードフォントを削除するフォント管理部をさらに備えるようにしてもよい。このようにした場合は、フォント管理部が、使用頻度の高いダウンロードフォントを、当該ダウンロードフォントを使用する印刷データが削除された後も保持するので、頻繁に当該ダウンロードフォントをダウンロードする必要がなくなり、当該ダウンロードに要する処理時間あるいは処理負荷が軽減される。使用頻度の多いダウンロードフォントに対して特に有効である。
【００２５】
例えば、前記フォント管理部が、各グループのダウンロードフォントに対応するカウンタを有し、印刷データが記憶装置に格納された際に当該印刷データが使用するダウンロードフォントに対応するカウンタをインクリメントし、所定期間内のカウント数が所定数以下の場合に当該ダウンロードフォントの使用頻度が基準に満たないと判定するようにしてもよい。
【００２６】
前記ジョブ管理部が、フォント形式に応じた格納方法でダウンロードフォントを記憶装置に格納するようにしてもよい。このようにすれば、例えば、ビットマップフォントではフォントのサイズごとにダウンロードフォントを格納する必要があるのに対して、フォント形式の異なるアウトラインフォントはサイズ別にフォントを格納する必要がないなど、それぞれのフォント形式に応じて必要かつ十分な記憶容量を割り当てることによってダウンロードフォントの記憶容量を節約することができる。
【００２７】
さらに、前記ジョブ管理部が、記憶装置に格納されたダウンロードフォントと同一グループでフォント形式の異なるダウンロードフォントを受けた場合に、両者について格納に必要な記憶容量を比較し、記憶容量の少ない方を記憶装置に格納し、他方を格納しないようにしてもよい。このようにすれば、同一グループのダウンロードフォントについて複数のフォント形式がある場合、記憶容量の少ない方を格納するので、ダウンロードフォントの記憶容量を節約することができる。
また、前記ジョブ管理部が、受領したダウンロードフォントであるアウトラインフォントが記憶装置に格納された同一書体のビットマップフォントを包含する場合に前記アウトラインフォントを記憶装置に格納し、格納したアウトラインフォントに包含されるビットマップフォントを削除するようにしてもよい。このようにすれば、サイズごとにフォントデータを格納する必要のあるビットマップフォントをアウトラインフォントに置換することによって、ダウンロードフォントの記憶容量を節約することができる。
【００２８】
また、この発明のプリンタドライバは、印刷データと予め複数グループに分類されたダウンロードフォントのうち前記印刷データの印刷に必要なグループのダウンロードフォントと当該ダウンロードフォントが属するグループの情報とを印刷装置へ送出する処理をコンピュータに実行させる。プリンタドライバは、アプリケーションから印刷処理の要求を受けて印刷データを生成するが、前記要求に選択したフォントの書体、サイズ等の情報が含まれる。選択されたフォントは一種類の場合もあるが、ワープロ文書の印刷などでは、多くの場合複数種類のフォントが選択される。プリンタドライバは、印刷データに付加すべきフォント、即ちダウンロードフォントと、ダウンロードが不要なフォントとを区別するように構成されている。ダウンロードが不要なフォントとは、例えば、画像形成装置側がＲＯＭ等に保持しているフォントであって、プリンタドライバは、画像形成装置側が保持しているフォントを知っている。画像形成装置側が保持するフォントの情報は、画像形成装置と対でメーカーが提供するプリンタドライバに、予めその情報が格納されていたり、プリンタドライバのインストール時に画像形成装置の構成情報を取得したりすることで実現される。
【００２９】
以下、図面を参照してこの発明をさらに詳述する。
図１は、この発明の画像形成装置およびこの発明のプリンタドライバに係る情報処理装置のハードウェア構成の一例を示すブロック図である。図１に示すように、画像形成装置１０は、ＣＰＵ１、プログラムＲＯＭ２、ＨＤＤ（ハードディスク装置）３、ホストＩ／Ｆ４、ＲＡＭ５、プリンタＩ／Ｆ６、プリンタエンジン７、ＵＩ（ユーザーインターフェース）部８、バス９から構成される。ＣＰＵ１は、画像形成処理を実行する。
【００３０】
プログラムＲＯＭ２は、ＣＰＵ１に実行させる処理の手順を示すプログラムを格納する。プログラムは、ＣＰＵ１にデータ受領部としての処理を実行させるプログラム２０（以下、データ受領部という）、ジョブ管理部としての処理を実行させるプログラム２１（以下、ジョブ管理部という）を含む。また、フォント管理部としての処理を実行させるプログラム２２（以下フォント管理部という）を含んでいてもよい。その他に、プログラムＲＯＭ２は、印刷データを処理してプリンタエンジン７に送出するラスタ信号を作成する処理を行うプログラムなどを含む。また、プリンタエンジン７を制御するプログラムを含んでＣＰＵ１がプリンタエンジン７を制御してもよいが、ＣＰＵ１とは別の図示しないＣＰＵがプリンタエンジン７の制御を行ってもよい。
【００３１】
ハードディスク装置（ＨＤＤ）３は、ホスト装置１９から受信した印刷データ、ダウンロードフォントおよびダウンロードフォントに関する情報を含むジョブ情報を格納するための記憶装置である。ホストＩ／Ｆ４は、ホスト装置１９と接続されて通信を介してホスト装置１９から印刷データ等を受信する。ＲＡＭ５は、ＣＰＵ１の作業用のワークエリアや印刷データ処理を行うための画像メモリ領域を提供する。プリンタＩ／Ｆ６は、プリンタエンジン７に印刷のためのラスタ信号を送出する。プリンタエンジン７は、受信した印刷データを印刷するための印刷部として機能する。ユーザーインターフェース（ＵＩ）部８は、画像形成装置の操作者に画像形成装置に格納された印刷データの内容、フォントの内容および画像形成装置の状態を知らせる液晶画面と、操作入力を受けつけるタッチパネルから構成される。
【００３２】
また、ホスト装置１９は、印刷用Ｉ／Ｆ１１、ＣＰＵ１２、入力装置１３、ＲＡＭ１４、表示装置１５、ハードディスク装置（ＨＤＤ）１６を含む。そして、ＨＤＤ１６には、ＣＰＵ１２にアプリケーションを実行させるアプリケーションプログラム１７やプリンタドライバ１８が格納されている。プリンタドライバ１８は、アプリケーション等からの印刷要求を受けてＣＰＵ１２に、印刷データを作成させ、当該印刷データをジョブとして実行させるために必要なダウンロードフォントとそのダウンロードフォントが属するグループの情報とを作成された印刷データと共に画像形成装置に送出するように処理を実行させる。
【００３３】
この実施形態におけるプリンタドライバ１８の処理手順の一例を説明する。図２は、この発明のプリンタドライバが、ファイリングジョブとして印刷データと共に画像形成装置へ送るダウンロードフォントに関する処理の手順を示すフローチャートである。プリンタドライバ１８は、アプリケーションから印刷処理の要求を受けて処理を開始する。そして、アプリケーションからの印刷処理要求に含まれるフォントの選択情報に基づいて、作成する印刷データにダウンロードフォントを含めるべきか否かの判別を行う（ステップＳ１０１）。印刷データにダウンロードフォントを含めない場合、ルーチンはステップＳ１０３へ進む。
【００３４】
印刷データにダウンロードフォントを含める場合、プリンタドライバ１８は、印刷データを作成する際に印刷データが使用するアウトラインフォントが属するグループの判別を行う（ステップＳ１０２）。ステップＳ１０２の処理の詳細については後述する。使用するアウトラインフォントのグループを決定したら、プリンタドライバは、決定した前記グループについての情報を画像形成装置に提供するためにジョブフォントリストを作成する（ステップＳ１０３）。ジョブフォントリストは、作成された印刷データに含まれる全てのダウンロードフォントの属性（フォント形式、文字サイズ、書体名など）、各ダウンロードフォントが属するグループのＩＤ番号、フォントデータを含むリストデータである。図１３は、ジョブフォントリストの一例を示す説明図である。ジョブフォントリスト作成の詳細についてはさらに後述する。
【００３５】
そして、プリンタドライバ１８は、ジョブフォントリストを作成された印刷データにリンクして（ステップＳ１０４）画像形成装置１０に送信する（ステップＳ１０５）。画像形成装置１０は、印刷データと、ジョブフォントリスト即ち前記印刷データの印刷に必要なグループのダウンロードフォントならびに当該ダウンロードフォントが属するグループの情報とをホスト装置から受ける。
【００３６】
図３は、アウトラインフォントが属するグループの判別を行う処理（図２のステップＳ１０２）の詳細を示すフローチャートである。まず、書体や文字サイズに対応して系列化されたフォントの各系列についてグループの番号を示す配列変数GourpNumber[j]を全て初期化する（ステップＳ２０１）。前記系列は、アウトラインフォントについては書体ごとの系列であり、ビットマップフォントについては書体とサイズごとの系列である。例えば、明朝体のビットマップフォントで、フォントサイズがサイズ１４，１６および２０のフォントが系列１に属する。アウトラインフォントのゴシック体は、系列２に属する。そして、アウトラインフォントの教科書体が系列３に属するといったように系列化される。  また、同じ書体のビットマップフォントとアウトラインフォントは、同系列としてもよい。
【００３７】
次に、ルーチンは印刷データに含まれる全ての文字について、順次以下に述べるステップＳ２０２からステップＳ２１２の処理を繰り返すループ処理に入る（ステップＳ２０２）。
まず、最初の１文字char[i]を選択し、char[i]の印刷に使うフォントの種類を、アプリケーションからの印刷要求に含まれるフォントの選択情報に基づいて決定する（ステップＳ２０３）。決定された系列のＩＤを仮にｎとする。選択文字char[i]が属するグループの判定を以降の処理で行い、得られる結果を、その系列ｎに対応するグループ番号の配列変数GroupNumber[n]に格納すべく、系列のＩＤ値ｎを保持しておく（ステップＳ２０４）。
【００３８】
そして、char[i]が各種記号、英数字、かな文字のいずれかに属するものであるかどうかの判定を行う（ステップＳ２０５）。char[i]が、各種記号、英数字、かな文字のいずれかであれば、変数GroupNumber[n]の値を１に設定（ステップＳ２０９）した後、ルーチンはＳ２１２のループ終端へ進む。
【００３９】
一方、char[i]が、各種記号、英数字、かな文字のいずれにも属さない場合、char[i]がＪＩＳ第１水準の文字コードに属するものであるかどうかの判定を行う（ステップＳ２０６）。char[i]が、ＪＩＳ第１水準に属する場合は、変数GroupNumber[n]の値を２に設定（ステップＳ２１０）した後、ルーチンはＳ２１２のループ終端へ進む。
【００４０】
char[i]が、ＪＩＳ第１水準に属さない場合、char[i]がＪＩＳ第２水準の文字コードに属するものであるかどうかの判定をさらに行う（ステップＳ２０７）。選択した文字が、ＪＩＳ第２水準に属する場合は、変数GroupNumber[n]の値を３に設定（ステップＳ２１１）した後、ルーチンはＳ２１２のループ終端へ進む。
【００４１】
一方、選択した文字が、ＪＩＳ第２水準に属さない場合、変数GroupNumber[n]の値を４に設定（ステップＳ２０８）した後、ルーチンはＳ２１２へ進み、次の文字char[i]を選択した後、新たに選択したchar[i]について前述のステップＳ２０３からステップＳ２１２の処理を繰り返す。全ての文字についての処理が終わるまで前記ループ処理を行う。
【００４２】
ステップＳ２０２〜Ｓ２１２のループ処理を終了したときに変数GroupNumber[n]の値は、各系列について、印刷データに含まれる全ての文字を含んだグループの値を示す。同系列のグループ１〜４は、大きな値のグループが小さな値のグループを包含する関係にある。GroupNumber[n]が０の場合は、その系列のフォントが印刷データに使用されないことを示す。GroupNumber[n]が１のグループは、各種記号、英数字、かな文字からなる文字グループであり、２のグループは、ＪＩＳ第１水準に属するグループ、３のグループはＪＩＳ第２水準に属するグループ、４のグループはＪＩＳ第２水準に含まれない文字を含むグループであり、例えば、JISの補助漢字として規定される、記述記号・単位記号・汎用的でない外国語のフォント（ダイアクリティカルマーク、ダイアクリティカルマーク付きギリシアアルファベット等）がこのグループ相当する。大きな値のグループがそれより小さい値のグループを包含する関係にある。従って、変数GroupNumberの示すグループのダウンロードフォントがあれば、その印刷データを印刷するのに十分である。
【００４３】
図４は、ジョブフォントリストの作成処理（図２のステップＳ１０３）の詳細を示すフローチャートである。図４に示すように、プリンタドライバ１８は、印刷データにダウンロードフォントが含まれるかどうかの判定を行う（ステップＳ３０１）。印刷データにダウンロードフォントが含まれない場合は、空のジョブフォントリストを作成（ステップＳ３０３）して処理を終了する。一方、印刷データにダウンロードフォントが含まれる場合は、そのダウンロードフォントのフォント形式がビットマップフォントであるかアウトラインフォントであるかを判断する（ステップＳ３０２）。その結果、アウトラインフォントであると判断した場合は、変数GroupNumber[j]で示されるグループのアウトラインフォントデータをジョブフォントリストに追加する（ステップＳ３０４）。一方、ダウンロードフォントのフォント形式がアウトラインフォントでなくビットマップフォントであると判断された場合は、変数GroupNumber[j]で示されるグループのビットマップフォントデータをジョブフォントリストに追加する（ステップＳ３０５）。
【００４４】
フォントは、その形式によって格納形式が異なっていてもよい。なぜならば、ビットマップフォントは、フォントサイズに応じたデータを持つが、アウトラインフォントは全サイズに共通のデータを持つ。従って、フォントを格納するために必要な記憶容量もフォント形式によって異なる。ビットマップフォントのグループ化の際は、そのグループに含むフォントサイズも一致しなければ同系列のフォントとして扱うことはしない。例えば、明朝体のビットマップフォントで、フォントサイズがサイズ１４，１６および２０のフォントが系列１に属する場合、同じ明朝体のビットマップフォントでフォントサイズがサイズ６，８、１０，１２のフォントは系列１とは異なるものして扱い、例えば系列４に属する。
【００４５】
次に、この実施形態における画像形成装置１０が実行する印刷処理手順の一例を説明する。
画像形成装置１０のプログラムＲＯＭ２に格納されたデータ受領部２０は、ホスト装置１９から送られた印刷データとジョブフォントリストとをホストＩ／Ｆ４を介して受領し、ＲＡＭ５に格納する処理をＣＰＵ１に実行させる。ホストＩ／Ｆ４は、例えば、ホスト装置との間をパラレルポートで接続するためのインターフェースであってもよいが、これに限定されず、ＵＳＢやＩＥＥＥ１３９４などで接続するものであってもよく、あるいは図１のようにホスト装置と一対一で接続されるものではなく、ネットワークに接続されるものであってもよい。
【００４６】
ＲＡＭ５に格納されたホスト装置からの印刷データとジョブフォントリストは、ＣＰＵ１がジョブ管理部２１を実行することによって処理される。
図５は、画像形成装置１０のプログラムＲＯＭ２に含まれるジョブ管理部２１の処理を示すフローチャートである。ジョブ管理部２１は、ＲＡＭ５に格納されたジョブフォントリストを参照し、印刷データがダウンロードフォントを含むか否かを判断する（ステップＳ４０１）。ジョブフォントリストが空で、ダウンロードフォントを含まないと判断した場合、ルーチンはステップＳ４０３へ進む。一方、印刷データがダウンロードフォントを含むと判断した場合、ジョブ管理部２１は、内蔵フォントリストの更新処理を行う（ステップＳ４０２）。即ち、受領したダウンロードのうち格納が必要なものをＨＤＤ３に格納し、ＨＤＤ３に格納されているフォントの一覧である内蔵フォントリストを更新する。図１４は、内蔵フォントリストの一例を示す説明図である。また、図１２は、内蔵フォントリストが参照するフォントデータリストの内容を示す説明図である。内蔵フォントリストの更新処理については、その詳細をさらに後述する。
【００４７】
そして、ジョブ管理部２１は、ＲＡＭ５に格納された印刷データをファイリングジョブとしてＨＤＤ３に格納し、格納されているファイリングジョブリストを管理するためのファイリングジョブリストに前記印刷データを追加する（ステップＳ４０３）。内蔵フォントリストの更新処理については、その詳細をさらに後述する。
【００４８】
図１１は、ファイリングジョブリストの一例を示す説明図である。
例えば、ファイリングジョブについて、そのジョブフォントリストの内容が図１３に示すものであったとする。前記ファイリングジョブは、文字サイズがサイズ１４の明朝体のビットマップフォントＪＦＬ（１）、文字サイズがサイズ１６の明朝体のビットマップフォントＪＦＬ（２）、ゴシック体のアウトラインフォントＪＦＬ（３）、教科書体のアウトラインフォントＪＦＬ（４）およびその他の系列のフォントを使用する。
【００４９】
ジョブ管理部２１は、ジョブフォントリストと内蔵フォントリストを比較する。まず、ＪＦＬ（１）と同じ明朝体のフォントについて調べると、内蔵フォントリストに登録されている内蔵フォントＦＬ（１）は、明朝体であり、文字サイズがサイズ１４を含む。そして、ＪＲＬ（１）のGroupNumberの値が１に対して、内蔵フォントのうちサイズ１４のフォントのGroupNumberは２であり、内蔵フォントに包含される。従って、ＪＦＬ（１）は、新たに内蔵フォントとして格納する必要がないことがないと判断できる。
【００５０】
同様に、ＪＦＬ（２），ＪＦＬ（３），ＪＦＬ（４）についても判断すると、いずれの書体も内蔵フォントリストに一致する書体があるが、ＪＦＬ（４）のGroupNumberが３であるのに対して、内蔵フォントのＦＬ（３）のGroupNumberは２であり、ファイリングジョブを印刷するためには教科書体のアウトラインフォントＦＮ（３）をＪＦＬ（４）で置換する必要があることがわかる。なお、各内蔵フォントは、図１２に示すフォントデータリストに格納され、内蔵フォントリストの「フォントデータリストの参照先」を参照してフォントデータにアクセスできる。各フォントデータは、公知のデータ形式でフォントデータリストに格納されている。例えば、フォントＦＮ（１）は、ビットマップフォント形式で、フォントサイズ別のデータが格納されている。サイズ１４、１６，２０が格納されている。
【００５１】
ホストから受領したファイリングジョブは、図１１に示すファイリングジョブリストに追加登録する。図１１では、既に登録されているファイリングジョブリストが、少なくとも３つあって、ファイリングジョブＦＪ（１）の使用フォントは、フォントＦＬ（２）を使用し、ファイリングジョブＦＪ（２）は、内蔵フォントを何も使用せず、ファイリングジョブＦＪ（３）は、フォントＦＮ（１）のうち文字サイズがサイズ１６のビットマップフォントと、フォントＦＮ（２）を使用することを示している。
【００５２】
図６は、内蔵フォントリストの更新処理（図５のステップＳ４０２）の詳細な処理手順を示すフローチャートである。図６に示すように、ジョブ管理部２１は、受領したジョブフォントリストを参照し、ジョブフォントリストに登録された最初のフォントを選択する（ステップＳ５０１）。リスト中のダウンロードフォントの書体が、既に内蔵フォントリストに登録され、フォントがＨＤＤ３に格納された同一書体のフォントがあるかどうかを判断する（ステップＳ５０２）。判断の結果、内蔵フォントリスト中に同一書体のフォントが登録されていない場合、ルーチンはＳ５０３へ進み、ジョブフォントリストにあるダウンロードフォントの形式がアウトラインフォントかビットマップフォントかを判断する（ステップＳ５０３）。判断の結果がアウトラインフォントであれば、ＨＤＤ３内のフォントデータリスト（図１２参照）にＲＡＭ５に格納された当該ダウンロードフォントをフォントデータリストに加える。即ち、ダウンロードフォントをＨＤＤ３に格納する。
【００５３】
そして、格納したダウンロードフォントを内蔵フォントリストで参照できるように新たなＦｏｎｔ Ｎｏ．として追加登録する（ステップＳ５０４）。また、図示しないタイマ部を参照して内蔵フォントリストへの「起算日時」の項目に当該ダウンロードフォントの登録日時を登録し、期間内リンク数をゼロにする。一方、前記判断の結果がビットマップフォントであれば、当該ダウンロードフォントをフォントデータリストに加え、ＨＤＤ３に格納する。そして、格納したダウンロードフォントを内蔵フォントリストで参照できるように新たなＦｏｎｔ Ｎｏ．として追加登録する（ステップＳ５０５）。また、図示しないタイマ部を参照して登録日時を内蔵フォントリストの「起算日時」に登録し、「期間内リンク数」をゼロにする。そして、ルーチンはＳ５１０へ進む。
【００５４】
一方、前記ステップＳ５０２で、ジョブフォントリスト中の対象Ｆｏｎｔ Ｎｏ．のフォントと同一書体のフォントが内蔵フォントリストに登録されていると判断した場合、登録されたフォントの形式がアウトラインフォントか、ビットマップフォントかを判断する（ステップＳ５０６）。アウトラインフォントの場合、ル―チンはステップＳ５０８へ進む。一方、フォント形式がビットマップフォントの場合、内蔵フォントリスト中に同一サイズのフォントが含まれているかどうかを判断する。ビットマップフォントはフォントサイズによってグループ化され、フォントデータが格納されているからである。内蔵フォントリストに同一サイズのフォントが含まれていない場合、ルーチンは前記ステップＳ５０５へ進み、当該サイズのビットマップフォントを内蔵フォントに追加する処理を行う。一方、前記ステップ５０７で内蔵フォントリストに同一サイズのフォントが含まれる場合、ルーチンはＳ５０８へ進む。
【００５５】
ステップＳ５０８では、ジョブフォントリスト中の対象Ｆｏｎｔ Ｎｏ．のフォントが、それに対応する内蔵フォントリストに含まれるかどうかについて、グループの判定を行う（ステップＳ５０８）。ジョブフォントリスト中の対象Ｆｏｎｔ Ｎｏ．の「ＧｒｏｕｐＮｕｍｂｅｒ」の値が、それに対応する内蔵フォントリストの「ＧｒｏｕｐＮｕｍｂｅｒ」の値よりも大きい場合、ジョブフォントリスト中の対象Ｆｏｎｔ Ｎｏ．のダウンロードフォントは、内蔵フォントリストに既に含まれておらず、フォントを登録必要がある。そこで、ジョブフォントリスト中のＦｏｎｔ Ｎｏ．のダウンロードフォントをフォントデータリストに加え、ＨＤＤ３に格納する。そして、格納したダウンロードフォントを内蔵フォントリストで参照できるように新たなＦｏｎｔ Ｎｏ．として追加登録する（ステップＳ５０９）。また、図示しないタイマ部を参照して登録日時を内蔵フォントリストの「起算日時」に登録し、期間内リンク数をゼロにする。
【００５６】
一方、前記ステップＳ５０８で、ジョブフォントリスト中の対象Ｆｏｎｔ Ｎｏ．の「ＧｒｏｕｐＮｕｍｂｅｒ」の値が、それに対応する内蔵フォントリストの「ＧｒｏｕｐＮｕｍｂｅｒ」の値よりも小さいか等しい場合、ジョブフォントリスト中の対象Ｆｏｎｔ Ｎｏ．のダウンロードフォントは、内蔵フォントリストに既に含まれているので、内蔵フォントを追加する必要がない。その場合、ルーチンはステップＳ５１０に進む。
【００５７】
ステップＳ５１０で、ジョブ管理部２１は、内蔵フォントリストを調べて、同一書体のビットマップフォントとアウトラインフォントが重複していないかどうかを調べる。そして、重複があった場合はビットマップフォントを削除してフォントデータの記憶容量を節約する。ステップＳ５１０の処理については、さらのその詳細を後述する。
次に、ステップＳ５１１で、ジョブ管理部２１は、ジョブフォントリストに含まれる全てのＦｏｎｔ Ｎｏ．について前述のステップＳ５０２〜Ｓ５０９の一連の処理を行ったかどうかを判断し、未処理のフォントがあれば、次のＦｏｎｔ Ｎｏ．を選択してステップＳ５０１へ戻り、処理を繰り返す。一方、ジョブフォントリスト中の全てのＦｏｎｔ Ｎｏ．のフォントについて処理を行ったと判断した場合は処理を終了する。
【００５８】
図１５は、図６のフローチャートで、内蔵フォントリストの重複を検出しビットマップフォントをアウトラインフォントに置き換えるステップＳ５１０の処理の詳細を示すフローチャートである。図１５に示すように、ステップＳ５１０の処理では、内蔵フォントリスト中の全てのFont No.について以下に説明するステップＳ１１０２〜Ｓ１１０８までの処理を順次行う。まず、対象とするFont No.のフォントが、アウトラインフォントかどうかを調べる（ステップＳ１１０２）。アウトラインフォントでない場合はそのフォントについての処理を行わずに次に対象とするFont No.を選択し（ステップＳ１１０９）、ステップＳ１１０１からのループ先頭へ戻る。
【００５９】
一方、対象とするFont No.のフォントが、アウトラインフォントであれば、内蔵フォントリストを検索し、同一書体のビットマップフォントがあるかどうかを調べる（ステップＳ１１０３）。内蔵フォントリスト中に対象とするFont No.のフォントと同一書体のビットマップフォントがなければ、そのフォントについての処理を行わずに次に対象とするFont No.を選択する。
【００６０】
一方、対象とするFont No.のフォントと同一書体のビットマップフォントがあれば、ビットマップフォントがアウトラインフォントに包含されるかどうかを調べる。具体的には、ビットマップフォントの全サイズについて、以下に説明するステップＳ１１０５〜Ｓ１１０７の処理を順次行う。即ち、対象とする一つのサイズを選択し、そのサイズのビットマップフォントについて、ビットマップフォントのGroupNumberが、比較対象のアウトラインフォントのGroupNumberよりも小さいかもしくは等しいかどうかを判断する（ステップＳ１１０５）。ビットマップフォントのGroupNumberが、アウトラインフォントのGroupNumberよりも小さいかもしくは等しければ、そのビットマップフォントは、アウトラインフォントに包含される。そこで、ビットマップフォントのデータを削除（ステップＳ１１０６）するとともに、ファイリングジョブリストの使用Font No.を更新（ステップＳ１１０７）し、ビットマップフォントをアウトラインフォントに置換する。そして、ステップＳ１１０８へ進む。一方、前記ステップＳ１１０５の判定で、ビットマップフォントのGroupNumberがアウトラインフォントのGroupNumberよりも大きく、ビットマップフォントがアウトラインフォントに包含されない場合、アウトラインフォントへの置換はできないと判断し、ルーチンはステップＳ１１０８へ進む。
【００６１】
ステップＳ１１０８では、次に対象とするビットマップフォントのサイズを選択し、ステップＳ１１０４に戻ってループ処理を繰り返す。ステップＳ１１０３の判定において対象とするビットマップフォントの全てのサイズに上記ループ処理を行ったのち、ルーチンはステップＳ１１０９へ進む。ステップＳ１１０９で、ジョブ管理部２１は、次に対象とすべきFont No.のフォントを選択し、ステップＳ１１０１のループ先頭へ戻って処理を繰り返す。内蔵フォントリスト中の全てのFont No.について前述のループ処理を行った後、ルーチンは終了する。
【００６２】
さらに、ファイリングジョブリスト中の使用Font No.を更新する前記ステップＳ１１０７の処理の詳細について説明する。
図１６は、図１５のフローチャートで、内蔵フォントリスト中の対象FontNo.から文字サイズのフォントデータを削除するステップＳ１１０６の処理の詳細を示すフォローチャートである。図１６に示すように、ジョブ管理部２１は、内蔵フォントリスト中の対象FontNo.から文字サイズのフォントデータを削除する場合、まず、フォントデータリスト中のフォントデータからアウトラインフォントで置換することを決定したサイズのビットマップデータを削除する（ステップＳ１２０１）。そして、内蔵フォントリストの処理「Font No.」の登録情報のうち「文字サイズ」項目中の登録情報から削除したサイズを削除する（ステップＳ１２０２）。さらに、ファイリングジョブリストを検索し、前記「Font No.」の登録情報の「リンク数」の値を更新する（ステップＳ１２０３）。また、ビットマップフォントを置換したアウトラインフォントの「リンク数」についても、ファイリングジョブリストを検索し、リンク数及び期間内リンク数の再計算を行ってそれらの値を更新する（ステップＳ１２０４）。なお、前のビットマップフォントがアウトラインフォントで置換されたフォントについてのファイリングジョブリスト中の「期間内リンク数」は、更新をせずにその値を保持すればよい。「期間内リンク数」は、フォントの使用頻度を評価する指標にすぎず、厳密に更新を行わなくても大きな支障は生じないからである。
そして、前記ステップＳ１２０２の処理によって、「文字サイズ」が存在しない状態であれば（ステップＳ１２０５）、内蔵フォントリストから、前記「Font No.」の登録情報をすべて削除する（ステップＳ１２０６）。しかし、他の「文字サイズ」登録情報が存在する場合は、前記「Font No.」の登録情報を削除しないでおく。
【００６３】
図７は、ファイリングジョブリストに印刷ジョブを追加する処理手順（図５のステップＳ４０３）の詳細を示すフローチャートである。図７に示すように、ジョブ管理部２１は、ＲＡＭ５に格納された印刷データを新たな「Ｆｉｌｉｎｇ Ｊｏｂ Ｎｏ．」のファイリングジョブとして、ファイリングジョブリストに追加登録する（ステップＳ６０１）。
【００６４】
そして、新たに追加した前記ファイリングジョブについて、印刷ジョブで使用されるフォントに対応する内蔵フォントリストのＦｏｎｔ Ｎｏ．を登録する（ステップＳ６０２）。印刷ジョブで使用するフォントは、ジョブフォントリストに登録されている。これらのフォントと内蔵フォントリストに登録されたフォントとの対応は、ジョブフォントリストと内蔵フォントリストに格納された各フォントの書体、サイズ等の属性を比較して得る。
【００６５】
次に、ファイリングジョブリストに新たに登録されたファイリングジョブの「使用Ｆｏｎｔ Ｎｏ．」に対応する内蔵フォントリストのフォントの「リンク数」の値に１を加える（ステップＳ６０３）。さらに、前記フォントの「期間内リンク数」の値に１を加える（ステップＳ６０４）。さらに、前記フォントの「保護フラグ」を「ＯＮ」にする（ステップＳ６０５）。
【００６６】
また、ファイリングジョブリストに登録されたファイリングジョブを印刷する場合のジョブ管理部２１の処理について説明する。
図８は、ジョブ管理部２１がファイリングジョブを印刷する際の処理の手順を示すフローチャートである。図８に示すように、ジョブ管理部２１は、ファイリングジョブリストを参照し、印刷すべき「Ｆｉｌｉｎｇ ｊｏｂ Ｎｏ．」のファイリングジョブの「使用Ｆｏｎｔ Ｎｏ．」の項目に基づいて内蔵フォントリスト中の対応「Ｆｏｎｔ Ｎｏ．」を取得する（ステップＳ７０１）。
【００６７】
そして、取得した「Ｆｏｎｏｔ Ｎｏ．」に基づいて内蔵フォントリストのデータをＲＡＭ５に読み込む（ステップＳ７０２）。また、ファイリングジョブリストを参照して「印刷データ」をＲＡＭ５に読み込み、印刷のためのデータ処理をＣＰＵ１に実行させた後に処理し（ステップＳ７０３）、処理した結果のラスタ信号をプリンタエンジン７に送出する（ステップＳ７０５）。プリンタエンジン７は、ラスタ信号に応じた画像を形成して印字出力する。
【００６８】
ジョブ管理部２１は、印刷出力が完了したら、その印刷データが使用する全てのフォントについて、内蔵フォントリスト中の対応「Ｆｏｎｔ Ｎｏ．」の「リンク数」の値から１を減じる（ステップＳ７０５）。そして、減算結果が０かどうかを判定し（ステップＳ７０６）、ゼロの場合は内蔵フォントリストからフォントデータの削除する処理を行う（ステップＳ７０７）。一方、減算結果が０でない場合、ルーチンはステップＳ７０８へ進む。最後に、ファイリングジョブリストから終了したファイリングジョブを削除する（ステップＳ７０８）。
【００６９】
内蔵フォントリストからフォントデータを削除する機会としては、いくつかの方法が選択できる。もっとも単純な方法は、内蔵フォントリストに登録されたフォントを使用するファイリングジョブがすべて削除された場合に当該フォントデータを削除する方法である。この方法を実現するには、前述のステップＳ７０７において、無条件にフォントデータを削除すればよい。ステップＳ７０７が実行されるのは、ステップＳ７０６の判定で内蔵フォントリストの当該フォントの「リンク数」がゼロ、即ち、当該フォントを使用する印刷データがない状態に相当するからである。
【００７０】
これとは異なる方法として、「リンク数」がゼロになっても、フォントを内蔵フォントリストに登録した時期から所定期間内の当該フォントの使用頻度が所定の基準以上の場合には、登録を継続し、所定の基準未満の場合にフォントを削除するように構成することもできる。図９は、前述の処理を実現するフォント管理部２２として、ＣＰＵ１に処理を実行させるためのプログラムの一例を示すフローチャートである。図９は、図８においてステップ７０６を実際に実行するための関数として呼ばれる部分に相当する。この他に、フォントの使用頻度を判定するために、定期的に処理を実行するタイマ処理もある。この関数が呼ばれると、フォント管理部２２は、受領したジョブフォントリストを参照し、ジョブフォントリストに登録された最初のフォントを選択する（ステップＳ８０１）。
【００７１】
そして、対象とするフォントを使用する他のファイリングジョブがあるかどうかをファイリングジョブリストを参照して判断する（ステップＳ８０２）。当該フォントを使用する他のファイリングジョブがある場合、ルーチンは、ループ終端のステップＳ８０９へ進む。一方、対象とするフォントを使用する他のファイリングジョブがない場合、フォント管理部２２は、内蔵フォントリストの「保護フラグ」を「ＯＦＦ」にして、周期的なタイマ処理で実行される処理に対して、フォントの削除を許可する（ステップＳ８０３）。
【００７２】
そして、内蔵フォントリストから期間内リンク数と起算日時とを取得する（ステップＳ８０４）。さらに、図示しないタイマから現在の日時を取得し、起算日時から現在日時までの判定期間を求める（ステップＳ８０５）。そして、期間内リンク数、即ち判定期間中にそのフォントを使用するファイリングジョブが登録された数を判定期間で除し、その値が基準とする閾値よりも小さいかどうかを判定する（ステップＳ８０６）。前記閾値は、基準のフォント使用頻度に対応する。判定結果が閾値よりも小さい場合、フォントの使用頻度が基準に満たないことを意味するので、内蔵フォントリストから対象のフォントを削除する（ステップＳ８０７）。そして、「期間内リンク数」をゼロに設定する（ステップＳ８０８）。一方、前記比較値が閾値以上の場合、ルーチンは、ループ終端のＳ８０９へ進む。
【００７３】
ステップＳ８０９で、フォント管理部２２は、ジョブフォントリストに含まれる全てのＦｏｎｔ Ｎｏ．について前述のステップＳ８０２〜Ｓ８０８の一連の処理を行ったかどうかを判断し、未処理のフォントがあれば、次のＦｏｎｔ Ｎｏ．を選択してステップＳ８０１へ戻り、処理を繰り返す。一方、ジョブフォントリスト中の全てのＦｏｎｔ Ｎｏ．のフォントについて処理を行ったと判断した場合は処理を終了する。
【００７４】
図１０は、フォントの使用頻度を判定するために、定期的に呼ばれるタイマ処理関数の処理の一例を示すフローチャートである。この関数が呼ばれると、フォント管理部２２は、受領したジョブフォントリストを参照し、ジョブフォントリストに登録された最初のフォントを選択する（ステップＳ９０１）。そして、対象とするフォントの「保護フラグ」が「ＯＦＦ」かどうかを判断する（ステップＳ９０２）。当該フォントを使用する他のファイリングジョブがある場合、ルーチンは、ループ終端のステップＳ９０８へ進む。  一方、対象とするフォントを使用する他のファイリングジョブがない場合、フォント管理部２２は、内蔵フォントリストから期間内リンク数と起算日時とを取得する（ステップＳ９０３）。さらに、図示しないタイマから現在の日時を取得し、起算日時から現在日時までの判定期間を求める（ステップＳ９０４）。
【００７５】
そして、期間内リンク数、即ち判定期間中にそのフォントを使用するファイリングジョブが登録された数を判定期間で除し、その値が基準とする閾値よりも小さいかどうかを判定する（ステップＳ９０５）。前記閾値は、基準のフォント使用頻度に対応する。判定結果が閾値よりも小さい場合、フォントの使用頻度が基準に満たないことを意味するので、内蔵フォントリストから対象のフォントを削除する（ステップＳ９０６）。そして、「期間内リンク数」をゼロに設定する（ステップＳ９０７）。一方、前記比較値が閾値以上の場合、ルーチンは、ループ終端のＳ９０８へ進む。
【００７６】
ステップＳ９０８で、フォント管理部２２は、ジョブフォントリストに含まれる全てのＦｏｎｔ Ｎｏ．について前述のステップＳ９０２〜Ｓ９０７の一連の処理を行ったかどうかを判断し、未処理のフォントがあれば、次のＦｏｎｔ Ｎｏ．を選択してステップＳ９０１へ戻り、処理を繰り返す。一方、ジョブフォントリスト中の全てのＦｏｎｔ Ｎｏ．のフォントについて処理を行ったと判断した場合は処理を終了する。
【図面の簡単な説明】
【００７７】
【図１】この発明の画像形成装置およびこの発明のプリンタドライバに係る情報処理装置のハードウェア構成の一例を示すブロック図である。
【図２】この発明のプリンタドライバが、ファイリングジョブとして印刷データと共に画像形成装置へ送るダウンロードフォントに関する処理の手順を示すフローチャートである。
【図３】アウトラインフォントが属するグループの判別を行う処理（図２のステップＳ１０２）の詳細を示すフローチャートである。
【図４】ジョブフォントリストの作成処理（図２のステップＳ１０３）の詳細を示すフローチャートである。
【図５】画像形成装置１０のプログラムＲＯＭ２に含まれるジョブ管理部２１の処理を示すフローチャートである。
【図６】内蔵フォントリストの更新処理（図５のステップＳ４０２）の詳細な処理手順を示すフローチャートである。
【図７】ファイリングジョブリストに印刷ジョブを追加する処理手順（図５のステップＳ４０３）の詳細を示すフローチャートである。
【図８】ジョブ管理部がファイリングジョブを印刷する際の処理の手順を示すフローチャートである。
【図９】所定期間内のフォント使用頻度が基準以上の場合に、内蔵フォントを削除しないように管理する処理の一例を示すフローチャートである。
【図１０】フォントの使用頻度を判定するために、定期的に呼ばれるタイマ処理関数の処理の一例を示すフローチャートである。
【図１１】ファイリングジョブリストの一例を示す説明図である。
【図１２】内蔵フォントリストが参照するフォントデータリストの内容を示す説明図である。
【図１３】ジョブフォントリストの一例を示す説明図である。
【図１４】内蔵フォントリストの一例を示す説明図である。
【図１５】図６のフローチャートで、内蔵フォントリストの重複を検出しビットマップフォントをアウトラインフォントに置き換える処理の詳細を示すフローチャートである。
【図１６】図１５のフローチャートで、内蔵フォントリスト中の選択されたFontNo. から文字サイズ情報を削除する処理の詳細を示すフォローチャートである。
【符号の説明】
【００７８】
１    ＣＰＵ
２    プログラムＲＯＭ（ジョブ管理部でジョブの管理を行う）
３    記憶装置、ハードディスク装置、ＨＤＤ：フォントリストテーブル・ファイリングジョブリスト・フォントデータリストを格納する
４    ホストＩ／Ｆ
５    ＲＡＭ
６    プリンタＩ／Ｆ
７    プリンタエンジン
８    ユーザーインターフェース部、液晶画面およびタッチパネル
９    バス
１０    画像形成装置
１９    ホスト装置（印刷データにジョブフォントリストテーブルを付加する）
２０    データ受領部
２１    ジョブ管理部
２２    フォント管理部
【図１】
2006224442.tif 000003
【図２】
2006224442.tif 000004
【図３】
2006224442.tif 000005
【図４】
2006224442.tif 000006
【図５】
2006224442.tif 000007
【図６】
2006224442.tif 000008
【図７】
2006224442.tif 000009
【図８】
2006224442.tif 000010
【図９】
2006224442.tif 000011
【図１０】
2006224442.tif 000012
【図１１】
2006224442.tif 000013
【図１２】
2006224442.tif 000014
【図１３】
2006224442.tif 000015
【図１４】
2006224442.tif 000016
【図１５】
2006224442.tif 000017
【図１６】
2006224442.tif 000018