(57)【要約】【課題】ホスト・ベースト・プリンティング方式の印刷システムにおいて、プリンタドライバの処理速度や画像品質を良好に維持しながら開発効率を高める。【解決手段】ホストコンピュータ１とプリンタ５とを通信路１０により接続してなる印刷システムの構成として、ホストコンピュータ１のプリンタドライバ８は、文字を表すアウトラインデータに対応付けて文字毎に固有の識別情報を割り当てるコアプリンタドライバ部８１と、アウトラインデータ及び識別情報を含むレンダリング用のデータをコアプリンタドライバ部８１から受け取ってレンダリング処理するとともに、このレンダリング処理によって生成した文字フォントの画像データを一時的に格納するフォントキャッシュを管理し、かつ、レンダリング用のデータに含まれる識別情報を用いてフォントキャッシュの登録処理及び検索処理のためのキャッシュキーを生成するレンダリング処理部８２とを有する。【選択図】図２
2005099900.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータとプリンタとを通信手段により接続して構成されるとともに、印刷の対象となるデータを前記ホストコンピュータにて画素の並びで表現される印刷用の画像データに展開し、この画像データを前記プリンタに送信して印刷処理する印刷システムであって、
前記ホストコンピュータは、前記プリンタを制御するプリンタ制御手段を有し、
前記プリンタ制御手段は、文字を表すアウトラインデータに対応付けて文字毎に固有の識別情報を割り当てる第１の処理部と、前記アウトラインデータ及び前記識別情報を含むレンダリング用のデータを前記第１の処理部から受け取ってレンダリング処理するとともに、このレンダリング処理によって生成した文字フォントの画像データを一時的に格納するフォントキャッシュを管理し、かつ、前記レンダリング用のデータに含まれる前記識別情報を用いて前記フォントキャッシュの登録処理及び検索処理のためのキャッシュキーを生成する第２の処理部とを有する
ことを特徴とする印刷システム。
【請求項２】
前記第２の処理部は、前記印刷用の画像データを前記プリンタで印刷する際に適用される変換行列要素と前記識別情報とを組み合わせて前記キャッシュキーを生成する
ことを特徴とする請求項１記載の印刷システム。
【請求項３】
プリンタに通信手段を介して接続されるとともに、前記プリンタを制御するプリンタ制御手段を有するホストコンピュータであって、
前記プリンタ制御手段は、文字を表すアウトラインデータに対応付けて文字毎に固有の識別情報を割り当てる第１の処理部と、前記アウトラインデータ及び前記識別情報を含むレンダリング用のデータを前記第１の処理部から受け取ってレンダリング処理するとともに、このレンダリング処理によって生成した文字フォントの画像データを一時的に格納するフォントキャッシュを管理し、かつ、前記レンダリング用のデータに含まれる前記識別情報を用いて前記フォントキャッシュの登録処理及び検索処理のためのキャッシュキーを生成する第２の処理部とを有する
ことを特徴とするホストコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストコンピュータとプリンタとを通信手段により接続して構成される印刷システムに関する。
【背景技術】
【０００２】
ホストコンピュータなどの画像作成装置から出力される様々な描画命令を処理し、画素の並びで表現された印刷用の画像データに展開して印刷装置で用紙などに印刷出力する印刷システムがある。
【０００３】
図８は印刷システムの構成例を示す図である。この印刷システムにおいては、ホストコンピュータ５１が、オペレーティングシステム５２、アプリケーションプログラム５３、プリンタドライバ５４及びハードウェア５５を備えた構成となっている。ホストコンピュータ５１には、それぞれ専用のケーブル等を介して表示装置５６、外部記憶装置５７及び入力装置５８が接続されている。また、ホストコンピュータ５１には、ネットワーク等の通信路５９を介してプリンタ６０が接続されている。
【０００４】
上記構成の印刷システムにおいては、ホストコンピュータ５１上のアプリケーションプログラム５３で作成したデータを、プリンタドライバ（プリンタ制御プログラム）５４でページ記述言語（PDL:Page Description Language）形式のデータ（以下、ＰＤＬデータ）に変換し、このＰＤＬデータを通信路５９を通してプリンタ６０に送信する。この場合、ＰＤＬデータには、図形データや文字データ、写真をスキャナー等で読み込んで生成されるイメージデータなどが含まれる。
【０００５】
このうち、文字データは、文字の書体情報やコード情報などを含む。この文字データを、画素の並びで表現された画像データに展開する場合は、プリンタ６０の内部に記憶されているフォントデータからデータを取得して印刷用のビットマップデータを生成する方法がとられる。また、ホストコンピュータ５１でアプリケーションプログラム５３を使ってデータを作成するユーザは、多種の文字書体を使用することが考えられる。したがって、データ作成に使用した文字の書体がプリンタ６０の内部に記憶されていない場合も起こり得る。そうした場合、プリンタドライバ５４は、オペレーティングシステム５２から文字のアウトラインデータや文字のビットマップデータを取得した後、このデータをＰＤＬデータに含めて送信することで対処することがある。
【０００６】
一方、上述したデータ処理形態の他に、ホストコンピュータ５１上で印刷が指示された図形データや文字データを、それぞれ画素の並びで表現された印刷用の画像データに展開し、この画像データを圧縮した後にプリンタ６０に送信するデータ処理形態がある。（以下、このデータ処理形態を採用した印刷方式を『ホスト・ベースト・プリンティング方式』と呼ぶ）。
【０００７】
ホスト・ベースト・プリンティング方式に関連する従来技術として、例えば下記特許文献１には、印刷の対象となるデータをホストコンピュータ側でイメージデータの形式にレンダリングしてプリンタに送信すること、またその際に文字すべてをイメージデータとしてプリンタに送るとデータ転送量が増加するため、文字の部分は文字コードでプリンタに送信することが記載されている。
【０００８】
【特許文献１】特開平１０−２９３６６９号公報
【０００９】
ホスト・ベースト・プリンティング方式は、近年のホストコンピュータの高速化、処理効率の向上、データストレージの向上などにより注目されている技術の一つである。このホスト・ベースト・プリンティング方式では、ホストコンピュータ５１上で、プリンタドライバ５４が、文字や図形、写真といったＰＤＬと同程度の描画データを、画素の並びで表現された印刷用の画像データに展開（レンダリング）して圧縮した後、この印刷用の圧縮画像データを、通信路５９を通してプリンタ６０に送信する。よって、先述したＰＤＬ形式のデータ処理形態を採用した印刷システムでは、通信路５９を通して送信される印刷データがＰＤＬデータとなるが、ホスト・ベースト・プリンティング方式のデータ処理形態を採用した印刷システムでは、プリンタドライバ５４でページをラスタライズして圧縮した圧縮画像データが通信路５９を通して送信されることになる。ホスト・ベースト・プリンティングは、ホストコンピュータ５１の処理速度の向上、及び通信路５９の通信速度の向上に伴ってプリンタドライバ（プログラム）５４を入れ替えることなく、印刷システム全体としてのスループットを向上させるという特徴がある。
【００１０】
また、プリンタドライバ５４の内部構成という観点から見ると、図９に示すように、オペレーティングシステム５２に依存する処理部分（以下、コアプリンタドライバ部）５４１と図形や文字といったデータから画素の並びで表現される画像データに展開する処理部分（以下、レンダリング処理部）５４２に分けて動作させるのが好ましい。これは、オペレーティングシステム５２の種類やバージョンが変わったとしてもレンダリング処理部５４２を共通に使用したいという理由や、コアプリンタドライバ部５４１を従来のＰＤＬ用のプリンタドライバから大きく変更せずに開発できるよう、コアプリンタドライバ部５４１とレンダリング処理部５４２との間のインターフェース（呼び出しの関数）を従来のＰＤＬと同等のものとしておきたいという理由から発生する。よって、プリンタドライバ５４の内部構成をコアプリンタドライバ部５４１とレンダリング処理部５４２に分けた構成とすることにより、プリンタドライバ５４の開発効率を高めることが可能となる。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
ここで、文字のフォント情報を文字ビットマップ等の画素の並びで表現される画像データに展開する処理に注目して考えると、通常、ホスト・ベースト・プリンティング方式では、オペレーティングシステム５２が提供するグラフィックデータ用のインターフェースを通して文字のビットマップデータを取得し、これを最終出力用のバッファにコピーして、1ページ分のページ画像を生成した後に圧縮する形態がとられている。この場合、オペレーティングシステム５２の内部で文字ビットマップに対するキャッシュ処理が動作するため、プリンタドライバ５４では特別なフォントキャッシュを用意しなくても高速に処理することが可能である。
【００１２】
しかしながら、レンダリング処理部５４２を呼び出すインターフェースは、デバイス非依存型のＰＤＬと同様に、出力デバイスとなるプリンタの座標空間に非依存にデータを与えられることが好ましいものの、コアプリンタドライバ部５４１で文字ビットマップを取得する場合は、レンダリング処理部５４２での拡大縮小処理等でジャギーなどの画質劣化や、回転処理等による処理速度の低下を招くことになる。
【００１３】
一方、文字ビットマップの取得処理をレンダリング処理部５４２で行う構成も考えられる。この構成を採用した場合は、拡大縮小後や回転後の文字ビットマップをオペレーティングシステム５２から取得することで、画質や速度低下の問題は解消される。しかしながら、かかる構成を採用すると、レンダリング処理部５４１がオペレーティングシステム５２に依存することになるため、プリンタドライバ５４の開発効率を高めるという観点から好ましくない。
【００１４】
本発明は、上記課題を解決するためになされたもので、その目的とするところは、ホスト・ベースト・プリンティング方式を採用した印刷システムにおいて、オペレーティングシステムからビットマップ文字を取得する場合と同様の処理速度や画像品質を維持しながら、プリンタドライバ内部のレンダリング処理部をオペレーティングシステムに非依存にすることで開発効率を高めることにある。
【課題を解決するための手段】
【００１５】
本発明に係る印刷システムは、ホストコンピュータとプリンタとを通信手段により接続して構成されるとともに、印刷の対象となるデータをホストコンピュータにて画素の並びで表現される印刷用の画像データに展開し、この画像データをプリンタに送信して印刷処理する印刷システムであって、ホストコンピュータは、プリンタを制御するプリンタ制御手段を有し、このプリンタ制御手段は、文字を表すアウトラインデータに対応付けて文字毎に固有の識別情報を割り当てる第１の処理部と、アウトラインデータ及び識別情報を含むレンダリング用のデータを第１の処理部から受け取ってレンダリング処理するとともに、このレンダリング処理によって生成した文字フォントの画像データを一時的に格納するフォントキャッシュを管理し、かつ、レンダリング用のデータに含まれる識別情報を用いてフォントキャッシュの登録処理及び検索処理のためのキャッシュキーを生成する第２の処理部とを有するものである。
【００１６】
この印刷システムにおいては、ホストコンピュータのプリンタ制御手段で文字データを処理する場合に、その処理対象となる文字のアウトラインデータに対応付けて文字毎に固有の識別情報が第１の処理部によって割り当てられるとともに、それらのアウトラインデータと識別情報を含むレンダリング用のデータが第１の処理部から第２の処理部に送られる。そして、第２の処理部では、第１の処理部から受け取ったレンダリング用のデータがレンダリング処理されるとともに、そのレンダリング用のデータに含まれる識別情報を用いてフォントキャッシュの登録処理及び検索処理のためのキャッシュキーが生成される。
【発明の効果】
【００１７】
本発明によれば、ホスト・ベースト・プリンティング方式を採用した印刷システムで文字を含むデータの印刷処理を行う場合に、ホストコンピュータのプリンタ制御手段では、文字のアウトラインデータを用いてレンダリング処理を行うので高い画像品質が得られるとともに、文字毎に固有の識別情報を用いてキャッシュキーを生成し、これに基づくキャッシュ登録やキャッシュ検索によりフォントキャッシュを利用してレンダリング処理を行うので高い処理速度を実現することができる。さらに、ホストコンピュータではオペレーティングシステム非依存でレンダリング処理することが可能となるため、プリンタ制御手段の内部構成を簡素化して開発効率を高めることができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の具体的な実施の形態について図面を参照しつつ詳細に説明する。
【００１９】
図１は本発明の実施形態に係る印刷システムの構成例を示す図である。図示した印刷システムは、主として、ホストコンピュータ１と、このホストコンピュータ１に接続された表示装置２、外部記憶装置３、入力装置４及びプリンタ５によって構成されている。ホストコンピュータ１は、オペレーティングシステム６、アプリケーションプログラム７、プリンタドライバ８及びハードウェア９を備えて構成されている。
【００２０】
ホストコンピュータ１は、ＣＰＵ(Central Processing Unit)やメモリ等のハードウェア９を内蔵している。アプリケーションプログラム７は、印刷の対象となるデータを作成することができるとともに、作成したデータの印刷をオペレーティングシステム６に指示することができる。ホストコンピュータ１には、ＣＲＴ（陰極線管）やＬＣＤ（液晶ディスプレイ）などの表示装置２、ＨＤＤ（ハードディスクドライブ）などの外部記憶装置３、キーボードやマウスなどの入力装置４が接続されている。ホストコンピュータ１が内蔵するハードウェア９やソフトウェア、さらにはホストコンピュータ１に接続された各種の外部装置は、オペレーティングシステム６による制御及び管理のもとで動作する。一方、プリンタ５は、用紙などの記録媒体上に画像を印刷するもので、通信手段となるネットワーク、プリンタケーブル等の通信路１０を介してホストコンピュータ１に接続されている。
【００２１】
この印刷システムにおいては、ホストコンピュータ１で生成した圧縮画像データを、通信路１０を使用してプリンタ５に送信し、このプリンタ５で記録媒体上に画像を印刷出力する。その際、ホストコンピュータ１上では、アプリケーションプログラム７がオペレーティングシステム６に印刷を指示したデータ（印刷の対象となるデータ）を、プリンタドライバ８が、画素の並びで表現された印刷用の画像データに展開するとともに、この画像データを圧縮処理することにより、印刷用の圧縮画像データを生成する。
【００２２】
図２は本発明の実施形態に係る印刷システムのデータ処理フローを示す図である。先ず、ホストコンピュータ１内では、アプリケーションプログラム７を使用して作成したデータを、アプリケーションプログラム７からの印刷の指示にしたがってオペレーティングシステム６がプリンタドライバ８に送る。プリンタドライバ８は、プリンタ５を制御するプリンタ制御手段に相当するもので、これは、オペレーティングシステム６から送られたデータ（印刷の対象となるデータ）を、画素の並びで表現される印刷用の画像データに展開し、この展開後の画像データをオペレーティングシステム６に送信（返信）する。そうすると、オペレーティングシステム６は、プリンタドライバ８から受け取った圧縮画像データを、通信路１０を介してプリンタ５に送信する。一方、プリンタ５は、通信路１０を通して送信された圧縮画像データを受信するとともに、この受信した圧縮画像データを伸長処理してその内容を解釈し、これを可視画像として用紙などの記録媒体に印刷出力する。
【００２３】
上述したデータ処理の流れの中で、オペレーティングシステム６からプリンタドライバ８に送られるデータ（印刷対象データ）の中には、印刷に必要な描画データ（図形データ、文字データ、イメージデータ等）や、ページの開始や終了といった印刷制御データなどが含まれる。また、プリンタドライバ８では、オペレーティングシステム６から送信された印刷対象データをコアプリンタドライバ部（第１の処理部）８１で受信し、この受信データを、必要に応じて、レンダリング処理部（第２の処理部）８２で解釈可能なデータ形式に変換した後、レンダリング処理部８２に送信する。レンダリング処理部８２では、コアプリンタドライバ部８１から送信されたデータ（レンダリング用のデータ）を受け取り、これを、画素の並びで表現された印刷用の画像データ（ビットマップデータ等）に展開（レンダリング）するとともに、この展開した画像データを圧縮処理することにより、圧縮画像データを生成する。
【００２４】
このようにしてレンダリング処理部８２で1ページないしは数ページ分の圧縮画像データ（印刷用の画像データ）を生成すると、この圧縮画像データ（レンダリング処理部８２での処理結果）をコアプリンタドライバ部８１に送る。そうすると、コアプリンタドライバ部８１は、レンダリング処理部８２から受け取った圧縮画像データをオペレーティングシステム６に送る。
【００２５】
ここで、オペレーティングシステム６から送信された印刷対象データ（描画データ）に文字データが含まれ、この文字データをプリンタドライバ８で処理する場合、コアプリンタドライバ部８１は、オペレーティングシステム６から受け取った文字データの文字コード（JISコード）等から文字を特定し、この文字を表すアウトラインデータに対応付けて文字毎に固有の識別情報となるＩＤ番号を割り当てる。アウトラインデータとは基本的に一つの文字の輪郭線を表すデータである。コアプリンタドライバ部８１では、各々の文字に対して固有のＩＤ番号を割り当てるため、アウトラインデータが表す文字が同一のものであれば、同一のＩＤ番号を割り当てることになる。その際、ＩＤ番号は、コアプリンタドライバ部８１自身で生成して割り当ててもよいし、オペレーティングシステム６で生成したものをコアプリンタドライバ部８１で取得して割り当ててもよい。また、アウトラインデータとＩＤ番号との対応付けは、例えば一つの文字をレンダリング処理するためのデータにそれらの情報（アウトラインデータ、ＩＤ番号）を含めることで行うようにすればよい。
【００２６】
ちなみに、ＩＤ番号を生成できないような文字（例えば、外字などの特殊文字）や、文字サイズが非常に大きくて後述するフォントキャッシュのメモリ容量を圧迫するような文字の場合、コアプリンタドライバ部８１は、フォントキャッシュへの登録処理が不要な文字とするために、そうした文字に対して、ＩＤ番号のとり得る値の範囲内で予め設定された共通のＩＤ番号を割り当てる。例えば、ＩＤ番号が０番から割り当てられるものとすると、ＩＤ番号未定を表す値を予め０番と決めておき、コアプリンタドライバ部８１が、対象とする文字にＩＤ番号を割り付けられないと判断（フォントキャッシュへの登録処理が不要と判断）した場合は、その文字のＩＤ番号として０番を割り当てる。また、コアプリンタドライバ部８１では、文字データに含まれる文字の書体、文字コード値、文字の修飾状況などのフォント情報により、各々の文字を区別（識別）する。例えば、“明朝”体であり、SJISコード表現の0x82A0（16進数）の“あ”という文字であって、斜字体という修飾状況が決定されて、１つの文字を特定（確定）する。
【００２７】
これに対して、レンダリング処理部８２は、レンダリング用のデータに含まれる文字のアウトラインデータと、この文字に割り当てられたＩＤ番号（識別情報）をコアドライバ部８１から受け取ってレンダリング処理する。その際、レンダリング処理部８２では、文字の描画を効率的に行うためにフォントキャッシュを利用（管理）する。フォントキャッシュは、例えばホストコンピュータ１が備えるメモリの一部に割り当てられるもので、文字のアウトラインデータをレンダリング処理してビットマップに展開したときに、その文字フォントの画像データ（ビットマップ画像データ）を一時的に格納するためのメモリ領域として確保される。このフォントキャッシュを利用するにあたって、レンダリング処理部８２は、コアプリンタドライバ部８１から受け取ったレンダリング用のデータに含まれるＩＤ番号を用いてフォントキャッシュの登録処理及び検察処理のためのキャッシュキーを生成する。
【００２８】
このキャッシュキーの生成に際して、レンダリング処理部８２は、印刷用の圧縮画像データをプリンタ５で印刷する際に適用される変換行列要素と、上述したＩＤ番号とを組み合わせてキャッシュキーを生成する。これにより、コアプリンタドライバ部８１では、画像出力装置となるプリンタ５の座標空間への変換行列に何ら左右されることなく、同じ文字に同一のＩＤ番号を割り当ててレンダリング処理部８２に送ることができる。
【００２９】
例えば、上記の“あ”という文字であっても、画像出力装置の印刷ページ方向（用紙の向き）が縦の場合と横の場合で、実際に印刷される文字ビットマップの出力結果が異なる。また別の例では、複数ページ（Ｎページ）分の画像データを１ページにまとめて印刷出力する処理方法（N-UPなどと称される出力方法）を指定する場合でも、文字の大きさや方向（向き）が異なる。そうした場合、同じ“あ”という文字に対して、コアプリンタドライバ部８１で同じＩＤ番号を割り当てたとしても、レンダリング処理部８２は、単にそのＩＤ番号からキャッシュキーを生成するのではなく、行列変換要素との組み合わせでキャッシュキーを生成する。これにより、コアプリンタドライバ部８１で同じＩＤ番号が割り当てられた文字であっても、レンダリング処理部８２では行列変換要素毎に異なるキャッシュキーが生成される。そのため、コアプリンタドライバ部８１では、プリンタ５の座標空間に依存することなく、同じＩＤ番号を使って同一の文字を特定することができる。
【００３０】
図３はプリンタドライバ８内部のコアプリンタドライバ部８１とレンダリング処理部８２との間のインターフェース（Ｉ／Ｆ）の一例を示している。ここで記述するインターフェースとは、コアプリンタドライバ部８１から入力されるレンダリング用のデータをレンダリング処理部８２でレンダリング処理する際の処理内容を指定する関数（呼び出しの関数）を意味し、この中には、ページの開始・終了や、図形や文字の色を指定するインターフェース、描画オブジェクトの回転処理や拡大縮小処理などの変換行列を指定するインターフェース、図形をパス形式で描画するインターフェース、文字描画のインターフェース、ラスターイメージ描画のインターフェースなどが含まれる。
【００３１】
なお、上記図３においては、プリンタドライバ８内部のコアプリンタドライバ部８１とレンダリング処理部８２との間の代表的なインターフェースを例示しており、これらのインターフェースの他にも、例えば矩形や楕円といった図形を直接指定するインターフェースや、図形の線幅・破線形状を指定するインターフェース、さらにはハッチング等のパターンを指定するインターフェースなども含めることができる。
【００３２】
図４は、上記図３に示す各種のインターフェースの中で、文字描画のインターフェース（図中のDrawFont()関数）の詳細を示すものである。図示した文字描画インターフェースには、一つの文字を表すアウトラインデータの記憶先を示すメモリアドレスと、この文字を描画するときの描画基準点を表すＸ座標値及びＹ座標値と、文字毎に固有の識別情報として割り当てられたＩＤ番号が、それぞれ関数呼び出し用の引数(ID,FontData,X,Y)として含まれる。
【００３３】
図５は図４の文字描画インターフェースの引数で表される文字アウトラインデータの具体的なデータ形式の一例を示す図である。図示したアウトラインデータ形式では、１番目のフィールドがデータサイズを表している。また、２番目のフィールドは制御点の総数を表し、３番目のフィールドは線タイプの総数を表している。４番目以降のフィールドは、文字のアウトラインを表現するための制御点と、この制御点によって形作られるアウトラインの線タイプを格納するフィールドとなっている。すなわち、４番目以降のフィールドは、アウトラインを構成する各々の制御点のＸ座標値とＹ座標値を表し、その後のフィールドが線タイプの値を表している。
【００３４】
線タイプはパス描画形式の描画方法に基づいてMOVETOやLINETOなど５種類が用意されている。線タイプは、その種類によって、使用される制御点の数が異なる。例えばMOVETOでは制御点を1点だけ使用するが、CLOSE（パスを閉じる命令）では制御点を全く使用しない。また、制御点の座標値は、上記図４の文字描画インターフェースの文字描画基準点であるＸ座標値やＹ座標値からの相対位置で表現される。したがって、文字描画インターフェースの文字描画基準点のＸ座標値やＹ座標値を変更したとしても、同一のアウトラインデータ（データを格納したアドレス）を指定することができる。
【００３５】
図６は“Ａ”という文字を表すアウトラインデータの実例を示している。このアウトラインデータは、全体で１１６バイトのデータを使用し、１１個の制御点（a0〜a10）と１６個の線パターン（MOVETO×２、LINETO×１１、CLOSE×２、ENDCHAR×１）から構成されている。これらのデータは、ホストコンピュータ１が備えるメモリの中で、コアプリンタドライバ部８１が管理するメモリ領域に保存されている。
【００３６】
図７はレンダリング処理部８２の文字処理に係る処理手順の一例を示すフローチャートである。先ず、コアプリンタドライバ部８１から呼び出された文字描画インターフェースにより、ＩＤ番号、アウトラインデータ（アドレス）、Ｘ座標値、Ｙ座標値など、文字の描画に必要なデータを入力する（ステップＳ１）。
【００３７】
次に、文字描画インターフェースが呼び出された時点で設定されている、プリンタ（画像出力装置）に依存した座標空間への変換行列の値を取得する（ステップＳ２）。変換行列の値は、画像の拡大縮小や回転などによって設定される。この変換行列の値は、上記図３に示すインターフェースの一覧に含まれるSetMatrix()で事前に指定される。また、変換行列の値は、画像の拡大縮小や回転等の変換を表現する２×２の行列形式で表される。したがって、変換行列の値は４つの実数値となる。
【００３８】
次に、文字のアウトラインデータに割り当てられているＩＤ番号と行列変換要素を表す４つの実数値から、フォントキャッシュの登録処理及び検索処理のためのキャッシュキーを生成する。このキャッシュキーの生成に際して、最も簡単には行列変換要素の１つ分を４バイトの固定小数点で表現したとすれば、ＩＤ番号の４バイト分を含めて、全部で４バイト×５＝２０バイトのキャッシュキーを生成する（ステップＳ３）。このとき、文字種、書体、サイズ、向き等のフォント情報が同一の文字であれば、同じキャッシュキーが生成されることになる。
【００３９】
続いて、先ほど生成したキャッシュキーを検索キーとして、フォントキャッシュ内部に、検索キーと同じキャッシュキーで登録されている画像データが存在するかどうか、つまり同一フォント情報の文字をレンダリング処理して得られたビットマップの画像データが格納されているかどうかを検索する（ステップＳ４）。
【００４０】
検索の結果、同一フォント情報の文字の画像データ（ビットマップデータ）が格納されていた場合は、その格納先となるフォントキャッシュ内部のアドレスを取得する（ステップＳ５）。
【００４１】
また、検索の結果、同一フォント上の文字の画像データが格納されていなかった場合は、文字描画インターフェースによって指定されたアウトラインデータを参照し、このアウトラインデータにしたがってレンダリング処理してビットマップ等の文字の画像データ（レンダリング結果）を得る（ステップＳ６）。次いで、レンダリング結果を上記キャッシュキーと対応付けてフォントキャッシュ内部に登録（格納）するとともに、その登録先（格納先）となるフォントキャッシュ内部のアドレスを取得する（ステップＳ７）。
【００４２】
こうしてフォントキャッシュの検索処理又は登録処理を行った後は、上記ステップＳ１で入力された文字描画基準点のＸ座標値及びＹ座標値に基づいて出力バッファに文字の描画を行う（ステップＳ８）。
【００４３】
以上の処理により、同一フォント情報の文字は、一度レンダリング処理してフォントキャッシュに登録されると、その後、いちいちレンダリング処理されることなく、フォントキャッシュの登録情報を使って出力されるため、文字描画処理の高速化を実現することができる。
【図面の簡単な説明】
【００４４】
【図１】本発明の実施形態に係る印刷システムの構成例を示す図である。
【図２】本発明の実施形態に係る印刷システムのデータ処理フローを示す図である。
【図３】プリンタドライバの内部で受け渡されるインターフェースの一例図である。
【図４】文字描画のインターフェースの詳細を示す図である。
【図５】文字アウトラインデータの具体的なデータ形式の一例を示す図である。
【図６】アウトラインデータの実例を示す図である。
【図７】レンダリング処理部の処理手順の一例を示すフローチャートである。
【図８】印刷システムの構成例を示す図である。
【図９】印刷システムのデータ処理フローを示す図である。
【符号の説明】
【００４５】
１…ホストコンピュータ、５…プリンタ、８…プリンタドライバ、１０…通信路、８１…コアプリンタドライバ部、８２…レンダリング処理部
【図１】
2005099900.tif 000003
【図２】
2005099900.tif 000004
【図３】
2005099900.tif 000005
【図４】
2005099900.tif 000006
【図５】
2005099900.tif 000007
【図６】
2005099900.tif 000008
【図７】
2005099900.tif 000009
【図８】
2005099900.tif 000010
【図９】
2005099900.tif 000011