(57)【特許請求の範囲】
【請求項１】
ＰＤＬデータで記述された描画コマンドを受信する受信手段と、
前記描画コマンドに基づいてディスプレイリストを生成する生成手段と、
前記生成手段が生成したディスプレイリストに基づいてラスタライズを行い、ビットマップ画像を生成するラスタライズ手段とを有し、
前記生成手段は、第１の濃度の１つの文字のビットマップ画像と、第２の濃度の前記１つの文字のビットマップ画像とを含む複数のビットマップ画像を描画位置を異ならせて描画し、論理和演算により生成した１つの文字のビットマップ画像を含むディスプレイリストを生成し、
前記第１の濃度は、文字のビットマップ画像を描画するための前記描画コマンドによって指定されている濃度情報に基づいて決定される濃度であり、前記第２の濃度は、前記第１の濃度よりも薄い濃度であることを特徴とする情報処理装置。
【請求項２】
１つの文字の前記複数のビットマップ画像は、互いに重なりを持つように描画されることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記生成手段は、前記描画コマンドに含まれる文字のビットマップ画像、又は、前記情報処理装置の記憶手段から取得した文字のビットマップ画像に基づいて生成された前記１つの文字のビットマップ画像を含む前記ディスプレイリストを生成することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記ＰＤＬデータは、文字属性が関連付けられたビットマップデータの描画コマンド、及び、文字属性が関連付けられたベクトルデータの描画コマンドを含み、
前記生成手段は、前記文字属性が関連付けられたビットマップデータの描画コマンドに基づいて前記複数のビットマップ画像を描画位置を異ならせて描画して生成した前記１つの文字のビットマップ画像を含む前記ディスプレイリストを生成することを特徴とする請求項１乃至３の何れか１項に記載の情報処理装置。
【請求項５】
前記描画手段は、前記ディスプレイリストに含まれる前記１つの文字のビットマップ画像と、前記ディスプレイリストに含まれるベクトルデータに基づいて、前記ビットマップ画像を描画することを特徴とする請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項６】
文字を描画するための前記描画コマンドは、前記１つの文字の描画位置を示す情報を含み、
前記生成手段は、前記複数の文字のうちの１つの文字のビットマップ画像を、前記描画コマンドによって示される前記描画位置に描画し、前記複数の文字のうち他の１つの文字のビットマップ画像を、前記描画コマンドによって示される前記描画位置から所定距離だけずれた位置に描画することによって生成された前記１つの文字のビットマップ画像を含む前記ディスプレイリストを生成する
ことを特徴とする請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項７】
前記生成手段は、文字を描画するための前記描画コマンドに基づいて、前記文字のビットマップ画像を取得し、取得されたビットマップ画像を、１回１回の描画位置を異ならせて、複数回、描画することによって生成された前記１つの文字のビットマップ画像を含む前記ディスプレイリストを生成することを特徴とする請求項１乃至６の何れか１項に記載の情報処理装置。
【請求項８】
前記生成手段は、文字を描画するための前記描画コマンドに基づいて描画される文字のビットマップ画像の大きさが閾値未満の大きさであるかを判定し、閾値未満の大きさの文字のビットマップ画像の描画コマンドに対して、複数回の描画を行うことによって生成された前記１つの文字のビットマップ画像を含む前記ディスプレイリストを生成することを特徴とする請求項１乃至７の何れか１項に記載の情報処理装置。
【請求項９】
前記生成手段は、前記第１の濃度の文字のビットマップ画像および前記第２の濃度の文字のビットマップ画像を描画するか否かを、文字のビットマップ画像のフォントに基づいて決定することによって生成された前記１つの文字のビットマップ画像を含む前記ディスプレイリストを生成することを特徴とする請求項１に記載の情報処理装置。
【請求項１０】
前記生成手段は、前記第１の濃度の文字のビットマップ画像および前記第２の濃度の文字のビットマップ画像を描画するか否かを、文字画像の大きさに基づいて決定することによって生成された前記１つの文字のビットマップ画像を含む前記ディスプレイリストを生成することを特徴とする請求項１に記載の情報処理装置。
【請求項１１】
前記生成手段は、前記第１の濃度の文字のビットマップ画像および前記第２の濃度の文字のビットマップ画像を描画するか否かを、文字画像の種類に基づいて決定することによって生成された前記１つの文字のビットマップ画像を含む前記ディスプレイリストを生成することを特徴とする請求項１に記載の情報処理装置。
【請求項１２】
前記描画手段によって描画された前記ビットマップ画像を印刷する印刷手段をさらに有することを特徴とする請求項１乃至１１の何れか１項に記載の情報処理装置。
【請求項１３】
ＰＤＬデータで記述された描画コマンドを受信する受信ステップと、
前記描画コマンドに基づいてディスプレイリストを生成する生成ステップと、
前記生成ステップにおいて生成したディスプレイリストに基づいてラスタライズを行い、ビットマップ画像を生成するラスタライズステップとを有し、
前記生成ステップにおいて、第１の濃度の１つの文字のビットマップ画像と、第２の濃度の前記１つの文字のビットマップ画像とを含む複数のビットマップ画像を描画位置を異ならせて描画し、論理和演算により生成した１つの文字のビットマップ画像を含むディスプレイリストを生成し、
前記第１の濃度は、文字のビットマップ画像を描画するための前記描画コマンドによって指定されている濃度情報に基づいて決定される濃度であり、
前記第２の濃度は、前記第１の濃度よりも薄い濃度であることを特徴とする情報処理装置の制御方法。
【請求項１４】
コンピュータに、
ＰＤＬデータで記述された描画コマンドを受信する受信手順と、
前記描画コマンドに基づいてディスプレイリストを生成する生成手順と、
前記生成手順において生成したディスプレイリストに基づいてラスタライズを行い、ビットマップ画像を生成するラスタライズ手順と実行させるプログラムであって、
前記生成手順において、第１の濃度の１つの文字のビットマップ画像と、第２の濃度の前記１つの文字のビットマップ画像とを含む複数のビットマップ画像を描画位置を異ならせて描画し、論理和演算により生成した１つの文字のビットマップ画像を含む前記ディスプレイリストを生成する処理を前記コンピュータに実行させるためのプログラムであって、
前記第１の濃度は、文字のビットマップ画像を描画するための前記描画コマンドによって指定されている濃度情報に基づいて決定される濃度であり、
前記第２の濃度は、前記第１の濃度よりも薄い濃度であることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字のボールド処理技術に関する。
【背景技術】
【０００２】
文字がより太く見えるようにするために、文字のボールド処理がある。特許文献１では、ビットマップで表現された文字に対して、その文字に隣接する画素を特定してその画素を文字色に変更する処理を行うことで、文字のボールド処理を行う技術を開示する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−３１３４１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１の技術は、文字に隣接する画素を特定するために、ビットマップ中の各画素に対してその画素が文字に隣接するかどうかの判定処理を行う。この判定処理は各画素に対して行われるので、その判定処理コストは、文字を表現するビットマップのサイズに比例して増大する。本発明は、各画素に対する判定処理を不要とする文字のボールド処理を提案する。
【課題を解決するための手段】
【０００５】
本発明の情報処理装置は、ＰＤＬデータで記述された描画コマンドを受信する受信手段と、前記描画コマンドに基づいてディスプレイリストを生成する生成手段と、前記生成手段が生成したディスプレイリストに基づいてラスタライズを行い、ビットマップ画像を生成するラスタライズ手段とを有し、前記生成手段は、第１の濃度の１つの文字のビットマップ画像と、第２の濃度の前記１つの文字のビットマップ画像とを含む複数のビットマップ画像を描画位置を異ならせて描画し、論理和演算により生成した１つの文字のビットマップ画像を含むディスプレイリストを生成し、前記第１の濃度は、文字のビットマップ画像を描画するための前記描画コマンドによって指定されている濃度情報に基づいて決定される濃度であり、前記第２の濃度は、前記第１の濃度よりも薄い濃度であることを特徴とする。
【発明の効果】
【０００６】
文字に隣接する画素を特定するための判定処理を各画素に対して行うことなく、文字のボールド処理を行う。
【図面の簡単な説明】
【０００７】
【図１】実施例１に係る文字処理システムの構成を表す概略図。
【図２】実施例１に係るＭＦＰ１００の構成例を示すブロック図。
【図３】実施例１に係る処理のフローチャート。
【図４】実施例１のビットマップ文字のディスプレイリスト生成のフローチャート。
【図５】重ね合わせ合成処理についての説明図。
【図６】実施例２のビットマップ文字のディスプレイリスト生成のフローチャート。
【発明を実施するための形態】
【０００８】
以下、本発明を実施するための形態について図面を用いて説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものでなく、また実施形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【０００９】
（実施例１）
＜印刷システムの構成＞
図１は、本発明の文字処理システムの一例の、画像処理システムの構成を示すブロック図である。
【００１０】
図１において、オフィス内に構築されたＬＡＮ１０２は、複数種類の機能（複写機能、印刷機能、送信機能等）を実現する複合機であるＭＦＰ１００と、クライアントＰＣ１０１とを接続する。このＭＦＰ１００は、文字処理装置の一例である。更に、ＬＡＮ１０２には、プロキシサーバー１０３が接続されている。また、プロキシサーバー１０３は、インターネットなどのネットワーク１０４に接続されている。クライアントＰＣ１０１は、印刷データをＭＦＰ１００へ送信することで、その印刷データに基づいた印刷をＭＦＰ１００に行わせることができる。なお、図１に示されるシステム構成は本発明を実施するための一例である。
【００１１】
図２は、図１におけるＭＦＰ１００の構成例を示すブロック図である。図２において、ＭＦＰ１００は、画像読取装置２００、記憶装置２０１、印刷装置２０２、入力装置２０３、ネットワークＩ／Ｆ２０４、データ処理装置２０５、表示装置２０９を有する。各装置、Ｉ／Ｆは、データ処理装置２０５と接続し、データ処理装置２０５によって統括的に制御されている。
【００１２】
画像読取装置２００は、光学スキャナーであり、原稿台に置かれた原稿を光学的に読み取ることで、ラスターデータ（ビットマップ画像データ）をデータ処理装置２０５に入力する。
【００１３】
記憶装置２０１は、ＨＤＤであり、読み出しと書き込みが可能な不揮発性の記憶媒体である。記憶装置２０１は、画像読取装置２００が生成したラスターデータや、クライアントＰＣ１０１のプリンタドライバからＬＡＮ１０２経由で受け取ったＰＤＬデータや、そのＰＤＬデータをデータ処理装置２０５がレンダリング（ラスタライズ）することで得られるラスターデータ（ビットマップ画像データ）などを記憶する。なおＰＤＬデータは描画データと呼ばれることがある。
【００１４】
印刷装置２０２は、プリンターあるいはプリンターエンジンであり、データ処理装置２０５から入力されたラスターデータに基づいて、画像を紙などのシートに印刷する。
【００１５】
入力装置２０３は、タッチパネルやキーボード、マウス等であり、ユーザーからの操作入力を受け付け、受け付けた操作入力の情報をデータ処理装置２０５に送る。
【００１６】
ネットワークＩ／Ｆ２０４は、ＬＡＮ１０２を介して、別体の外部装置と、データの送信あるいは受信を行う。
【００１７】
データ処理装置２０５は、上記の各装置およびＩ／Ｆを統括的に制御することで、ＭＦＰ１００全体を制御する。このデータ処理装置２０５は、プロセッサーであるＣＰＵ２０６、不揮発性メモリであるＲＯＭ２０７、揮発性メモリであるＲＡＭ２０８を有する。ＲＯＭ２０７には、データ処理プログラムが格納されており、ＣＰＵ２０６は当該プログラムをＲＯＭ２０７からＲＡＭ２０８に読みだして実行することにより、後述のデータ処理を実現する。なお本実施例ではデータ処理装置２０５が行う処理はＣＰＵ２０６によって実行される。
【００１８】
表示装置２０９は、ＬＣＤであり、入力装置２０３を介したユーザーによる操作入力の状態を表示することができる。
【００１９】
ＭＦＰ１００が複写機能を実行する際には、画像読取装置２００によって得られるビットマップ画像データに対して、データ処理装置２０５が画像処理を行い、画像処理後のビットマップ画像データを印刷装置２０２に入力する。このとき、ビットマップ画像データは印刷装置２０２で処理できる記録信号へと不図示のインターフェースによって変換されている。すると印刷装置２０２は画像をシート上に印刷する。
【００２０】
またＭＦＰ１００は、クライアントＰＣ１０１（プリンタドライバ）からＬＡＮ１０２経由で受け取ったＰＤＬデータに基づいて、ビットマップ画像データを生成し、そのビットマップ画像データの表す画像を、印刷装置２０２によって印刷する。
【００２１】
＜本実施例の処理の説明＞
ＭＦＰ１００によって実行される画像の印刷処理について図３を用いて説明する。図３に示されるフローチャートは、ＲＯＭ２０７に格納されているプログラムをＣＰＵ２０６が実行することで実現される。すなわち、ＣＰＵ２０６が、プログラムに従って、ＭＦＰ１００の各部を制御することで、図３のフローチャートの処理は実行される。
【００２２】
まず、図３のステップＳ３０１において、データ処理装置２０５は、ネットワークＩ／Ｆ２０４を介して、ＰＣ１０１よりＰＤＬデータを受信する。ＰＤＬデータは、ＰＣ１０１がアプリケーションを実行して作成したドキュメントを、プリンタドライバが変換することで得られるものである。
【００２３】
次にステップＳ３０２において、データ処理装置２０５は、受信したＰＤＬデータから描画コマンドを１つ取得して、描画コマンドの内容の解釈を行う。このときデータ処理装置はＰＤＬデータを解釈するインタープリターとして機能する。
【００２４】
ステップＳ３０３において、データ処理装置２０５は、Ｓ３０２で解釈された描画コマンドが文字の描画コマンド（文字を描画するためのデータ：文字データ）であるか否かを判定する。文字の描画コマンドであれば処理はＳ３０４へ移行する。文字の描画コマンドであるかどうかは、文字コードが指定されているか否か、あるいは、文字属性フラグが付与されているか否かによって判定できる。一方、文字の描画コマンドでなく、グラフィクスやイメージの描画コマンドであれば、処理はＳ３０７へ移行する。文字属性フラグが付与されていないベクトルデータが指定されている描画コマンドであれば、グラフィクスの描画コマンドであると判定され、多値のビットマップ画像が指定されている描画コマンドであれば、イメージの描画コマンドであると判定される。
【００２５】
ステップＳ３０４では、データ処理装置２０５は、文字の描画コマンドが、ビットマップ文字を描画するためのものであるかを判定する。文字の描画コマンドがビットマップ文字を描画するためのものであれば、処理はステップＳ３０５に進む。そうでなければ処理は、ステップＳ３０６に進む。
【００２６】
ビットマップ文字とは、文字がビットマップ画像データで与えられているものである。ビットマップ画像データは２値でも多値でも良い。本実施例において、この文字の描画コマンドがビットマップ文字を描画するためのものであると判定されるのは以下の２つの場合である。１つは、描画コマンドがＰＤＬデータ中に含まれているビットマップ文字を指定している場合である。もう１つは、描画コマンドが文字コードで与えられており、記憶装置２０１内に予め備えられているビットマップ画像データを指定している場合である。
【００２７】
ステップＳ３０５において、データ処理装置２０５は、描画コマンドで指定されるビットマップ文字および描画位置を取得する。そしてデータ処理装置２０５は、そのビットマップ文字および描画位置に基づいて、そのビットマップ文字を、１回１回の描画位置を異ならせて、複数回、重ね書き（合成）で描画することで、新たな合成後のビットマップ文字を得る。これがビットマップで表現された文字のボールド処理である。
【００２８】
この合成処理は、文字を複数回、合成するという比較的単純なものである。そのため、文字に隣接する画素を特定する判定処理を各画素に対して行って、その特定された画素を文字色に変更するボールド処理よりも、この合成処理によるボールド処理の方が、高速である。この合成処理における文字の合成方法については、図４、５を用いて詳述する。
【００２９】
そしてデータ処理装置２０５は、その合成後のビットマップ文字の中間コード（ＤＬ：ディスプレイリスト）を生成する。ディスプレイリストには描画コマンドで指定されていた描画位置が含まれている。処理はＳ３０８へ移行する。
【００３０】
ステップＳ３０６において、データ処理装置２０５は、ベクトル文字に対して、ベクトル文字の輪郭線を取得する。そしてデータ処理装置２０５は、その輪郭線の位置をずらすことでベクトル文字のボールド処理を行う。そしてデータ処理装置２０５は、ボールド処理が行われたベクトル文字のディスプレイリストを生成する。ディスプレイリストには描画コマンドで指定されていた描画位置が含まれている。処理はＳ３０８へ移行する。
【００３１】
ステップＳ３０７において、データ処理装置２０５は、Ｓ３０２で解釈された描画コマンドのディスプレイリストを、ボールド処理を行うことなく生成する。例えば描画コマンドがベクトルデータを指定していたとしても、ベクトルデータに対するボールド処理を行うことなく、ディスプレイリストを生成する。ディスプレイリストには描画コマンドで指定されていた描画位置が含まれている。処理はＳ３０８へ移行する。
【００３２】
ステップＳ３０８において、データ処理装置２０５は、１ページ分の描画コマンドを解釈し、ディスプレイリストを生成したかを判定する。１ページ分の処理が終了していれば、処理はＳ３０９へ移行し、終了していなければ処理はＳ３０２へと戻る。
【００３３】
続いてステップＳ３０９において、データ処理装置２０５は、生成された１ページ分のディスプレイリストに基づいて、レンダリング（ラスタライズ）を行う。レンダリングにおいては、ビットマップ文字を指定するディスプレイリストであれば、データ処理装置２０５は、Ｓ３０５で生成された合成後のビットマップ文字を、ディスプレイリストで指定されている描画位置に描画する。ベクトル文字を指定するディスプレイリストであれば、データ処理装置２０５は、Ｓ３０６でボールド処理が行われたベクトル文字をビットマップデータに変換し、指定された描画位置に描画する。またグラフィクスを指定するディスプレイリストであれば、データ処理装置２０５は、グラフィクスをビットマップデータに変換し、指定された描画位置に描画する。また多値のビットマップ画像を指定するディスプレイリストであれば、データ処理装置２０５は、多値のビットマップ画像を指定された描画位置に描画する。以上のようにして、データ処理装置２０５は、１ページ分のビットマップ画像を生成する。
【００３４】
ステップＳ３１０において、データ処理装置２０５は、生成された１ページ分のビットマップ画像を印刷装置２０２に送信し、画像をシートに印刷する。
【００３５】
＜ビットマップ文字の重ね合わせ処理＞
次に、図４のフローチャートと図５を用いて、ビットマップ文字のディスプレイリスト作成の処理の説明をする。
【００３６】
ステップＳ４０１において、データ処理装置２０５は、ビットマップ文字およびその描画位置を取得する。またデータ処理装置２０５はビットマップ文字の色情報（濃度）も取得する。例えば取得されたビットマップ文字は図５のビットマップ文字５００、その描画位置は（ｘ、ｙ）、濃度１００％（０〜２５５のうち濃度値２５５に相当）とする。
【００３７】
次に、ステップＳ４０２において、データ処理装置２０５は、ステップＳ４０１で取得されたビットマップ文字をｘ方向に第１の所定距離（＋１ピクセル）だけずらされるビットマップ文字を生成する。つまり描画位置（ｘ＋１、ｙ）のビットマップ文字が生成される。このずらされたビットマップ文字の濃度を、取得された濃度と等しい濃度に決定すれば、文字をより太く見せる効果が得られる。一方で、このずらされたビットマップ文字の濃度を、取得された濃度よりも小さな濃度に決定すれば、文字を太く見せる効果を得つつも、その太く見せる効果の程度を調整することができる。図５の例では濃度を半分にした濃度５０％のビットマップ文字５０１が生成される。
【００３８】
そして、ステップＳ４０３において、データ処理装置２０５は、ステップＳ４０２で生成されたビットマップ文字を、さらにｙ方向に第２の所定距離（＋１ピクセル）だけずらされるビットマップ文字を生成する。つまり描画位置（ｘ＋１、ｙ＋１）のビットマップ文字が生成される。濃度はＳ４０２で生成されたビットマップ文字と等しい。図５の例では濃度５０％のビットマップ文字５０２が生成される。
【００３９】
つまりステップＳ４０２およびＳ４０３では、データ処理装置２０５は、描画位置がＳ４０１で取得された元のビットマップ文字とは異なる、その元のビットマップ文字のコピーを２つ生成する。
【００４０】
ステップＳ４０４において、データ処理装置２０５は、ステップＳ４０１〜Ｓ４０３で得られた３つのビットマップ文字を重ね合わせ合成する。まずデータ処理装置２０５は、Ｓ４０１で取得されたビットマップ文字をＲＡＭ２０８上に確保したワーク領域に上書きで描画する（すなわち貼り付ける）。この上書きは描画位置（ｘ、ｙ）に相当する位置に対して行われる。例えばワーク領域上では位置（０、０）に対して上書きが行われるとする。次にデータ処理装置２０５は、Ｓ４０２で生成されたビットマップ文字をワーク領域にＯＲ演算で描画する。ＯＲ演算とは、すでに描画されているデータと、描画対象ビットマップとの論理和をワーク領域に書き戻す演算処理である。このときワーク領域に対する描画位置は（１、０）であり、描画位置（ｘ＋１、ｙ）に対応する。そしてデータ処理装置２０５は、Ｓ４０３で生成されたビットマップ文字をワーク領域にＯＲ演算で描画する。このときワーク領域に対する描画位置は（１、１）であり、描画位置（ｘ＋１、ｙ＋１）に対応する。なお、ビットマップ文字をワーク領域に描画するとは、ビットマップ文字のデータをワーク領域に上書きすることを含む。またビットマップ文字の書き込み先がワーク領域で無い場合（例えばフレームバッファに直接書き込む場合）でも、ビットマップ文字の描画と呼ぶ。
【００４１】
以上のように１回目は上書きで行うのは、ＯＲ演算のようにワーク領域上のデータを参照することなく高速で描画が行えるからである。しかしながら、１回目のビットマップ文字の描画をＯＲ演算によって行っても良い。
【００４２】
以上ではＳ４０４で３つのビットマップ文字をまとめて合成したが、Ｓ４０１、Ｓ４０２、Ｓ４０３の各ステップにおいて都度ワーク領域にビットマップ文字を描画しても良い。そうすれば、３つのビットマップ文字を一時的に保持するための使用メモリ量を削減できる。また或いは、３つのビットマップ文字を得るのではなく、Ｓ４０１で取得されたビットマップ文字を複数回、繰返して重ね合わせ合成しても良い。このときには合成の都度、描画位置が異なるようにする。
【００４３】
なお重ね合わせ合成の仕方としては他の方法でも良い。例えばＳ４０３のビットマップ文字を上書きして、その結果にＳ４０２のビットマップ文字を上書きして、さらにその結果にＳ４０１のビットマップ文字を上書きしても良い。すなわち各ビットマップ文字の貼り付け位置を変えての貼り付けも本発明の描画の範疇である。なお、このようにＳ４０３のビットマップ文字、Ｓ４０２のビットマップ文字、Ｓ４０１のビットマップ文字の順で重ね合わせて上書きする方法の他に、これらビットマップ文字どうしで重なる部分があればその部分の描画を省略する方法を採っても良い。
【００４４】
以上のようにしてデータ処理装置２０５は、合成後のビットマップ（描画結果）を得て、このビットマップ合成後のビットマップをビットマップ文字として指定するディスプレイリストを生成して、本処理フローを終了する。
【００４５】
以上の実施例では、ビットマップ文字に対して重ね合わせ合成を行っていたが、データ処理装置２０５は、描画コマンドに指定されている文字のポイント数を取得して、閾値未満のポイント数のビットマップ文字にだけ重ね合わせ合成をおこなっても良い。すなわち、閾値以上のポイント数を持つ小文字以外のビットマップ文字には、Ｓ３０７の処理を行い、閾値未満のポイント数を持つ小文字のビットマップ文字には、Ｓ３０５の処理を行うようにする。これは小文字は太くする必要性が高いが、小文字以外の文字は太くする必要性がそれほど高くないことがあるからである。
【００４６】
また入力装置２０３によってユーザーが指示した時に限ってビットマップ文字に対してＳ３０５の処理を行うようにしても良い。すなわち、ユーザーによるボールド処理の指示がなければ、文字コマンドであっても、Ｓ３０７の処理が行われるようにする。
【００４７】
また、ビットマップ文字のコマンドであっても、文字のフォント（ゴシック体、明朝体など）や文字の種類（例えば、ひらがな、カタカナ、ハングル、アルファベット、漢字など）によって処理を切り替えるようにしても良い。例えば、明朝体であれば、Ｓ３０５、Ｓ３０６の処理を行い、ゴシック体であれば、Ｓ３０５あるいはＳ３０６の処理に代えてＳ３０７の処理を行う。また例えば、ひらがな、カタカナ、ハングル、アルファベッドであれば、Ｓ３０５、Ｓ３０６の処理を行い、漢字であれば、Ｓ３０５あるいはＳ３０６の処理に代えてＳ３０７の処理を行う。
【００４８】
なお、ステップＳ４０２やステップＳ４０３で生成されるビットマップ文字の濃度は、印刷装置２０２の特性によってユーザーが指定可能で合っても良い。例えば、文字が細く印刷されるような印刷装置２０２で画像を印刷する場合には、ユーザーはＳ４０２、４０３で生成されるビットマップ文字の濃度を、Ｓ４０１で取得されるビットマップ文字の濃度の半分（５０％）でなく、８０％とするように設定しても良い。
【００４９】
以上の実施例の処理は、１つのビットマップ文字の描画コマンドから得られるビットマップ文字から得られる３つのビットマップ文字の合成を、ディスプレイリストを生成する際に行っている。しかしこれに本発明は限定されない。例えば、３つのビットマップ文字それぞれのディスプレイリストを生成し、それら３つのディスプレイリストをレンダリング時に上述の上書きあるいはＯＲ演算などの適切な描画方法によってレンダリングするようにしても同様な効果（文字のボールド効果）が得られる。
【００５０】
（実施例２）
本実施例では、文字のフォント種によって文字のボールド処理を異ならせる。本実施例は、実施例１のＳ３０５の処理を図６のフローチャートの処理に置き換えたものであり、他の構成は実施例１と同様である。
【００５１】
図６のフローチャートの処理を説明する。
【００５２】
ステップＳ６０１は、実施例１のＳ４０１の処理と異なるのは、データ処理装置２０５が描画コマンドの情報として、文字のフォント種もさらに取得することである。
【００５３】
ステップＳ６０２において、データ処理装置２０５は、Ｓ６０１で取得されたフォント種が特定のフォントであるかを判定し、特定フォントであれば処理はＳ６０３に進み、そうでなければＳ６０５に処理は進む。特定フォントとは、例えば明朝体における横方向の線などのように、文字を構成する要素が著しく細い部分を持つフォントである。このようなフォントであれば、ユーザーの文字の可読性向上のため、文字をより太く見せるようにするのが好ましい。そうでなければ文字を太くしすぎるのは文字の可読性をむしろ低下させてしまう。
【００５４】
そこで特定フォントの文字であれば、特定フォントではない文字よりもより太く文字を見せるようにボールド処理を行う。その一例として、ステップＳ６０３、Ｓ６０４、Ｓ６０５、Ｓ６０６を説明する。
【００５５】
Ｓ６０３においてデータ処理装置２０５は、Ｓ６０１で取得されたビットマップ文字と等しい濃度のビットマップ文字をｘ方向に＋１ピクセルだけずらして生成する。
【００５６】
Ｓ６０４においてデータ処理装置２０５は、Ｓ６０３で生成されたビットマップ文字（Ｓ６０１で取得されたビットマップ文字と等しい濃度である）をｙ方向に＋１ピクセルだけずらして生成する。
【００５７】
一方で、Ｓ６０５においてデータ処理装置２０５は、Ｓ６０１で取得されたビットマップ文字の濃度の半分の濃度のビットマップ文字をｘ方向に＋１ピクセルだけずらして生成する。
【００５８】
Ｓ６０６においてデータ処理装置２０５は、Ｓ６０５で生成されたビットマップ文字（Ｓ６０１で取得されたビットマップ文字の濃度の半分の濃度である）をｙ方向に＋１ピクセルだけずらして生成する。
【００５９】
Ｓ６０７の処理は、実施例１のＳ４０４の処理と同様である。
【００６０】
Ｓ６０１、Ｓ６０３、Ｓ６０４によって、特定フォントであれば、３つの重ね合わされるビットマップ文字の濃度は等しいものとなり、ビットマップ文字がよりはっきりと描画される。
【００６１】
また、Ｓ６０１、Ｓ６０５、Ｓ６０６によって、特定フォントでないフォントであれば、元のビットマップ文字は薄い濃度で縁取られるようになり、可読性を返って妨げることなく文字を太くする効果が得られる。
【００６２】
以上の処理では、Ｓ６０２において特定フォントとそうでないフォントとで処理を切り替えたが、本発明はそれに限られない。例えば、Ｓ６０１においてデータ処理装置２０５がさらに文字の大きさの情報（ポイント数）を取得し、Ｓ６０２においてそのポイント数が閾値未満のポイント数であるか否かを判定してもよい。この場合では、閾値以上のポイント数である小文字でないビットマップ文字に対しては、Ｓ６０３、Ｓ６０４の処理が行われるようにデータ処理装置２０５が動作する。閾値未満のポイント数である小文字のビットマップ文字に対しては、Ｓ６０５、Ｓ６０６の処理が行われるようにデータ処理装置２０５が動作する。これは、小文字であれば薄く縁取られることによって、複雑な形状を持つ文字で合っても文字を構成する要素と要素の間の空白を埋めることなく印刷できるからである。すなわち、文字のつぶれを抑制しつつ、文字を太くする効果を得られる。
【００６３】
（その他の実施例）
以上の実施例におけるステップＳ３０６において、データ処理装置２０５は、ベクトル文字に対して、ベクトル文字の輪郭線をずらすことでベクトル文字のボールド処理を行った。しかし、その方法に代えて、以下の処理を実行しても良い。データ処理装置２０５は、ベクトル文字をラスタライズすることで、ビットマップ文字を得る。次に上述したステップＳ３０５と同様の処理を行うようにしても良い。
【００６４】
以上の実施例においては、ステップＳ３０５でビットマップ文字の合成を行い、その合成で得られた新たなビットマップ文字をステップＳ３０９でページに描画していた。しかし次のように処理しても良い。データ処理装置２０５は、Ｓ３０５において、ビットマップ文字の描画コマンドから、その描画コマンドで指定されている描画位置だけを書き替えた（異ならせた）描画コマンドを１つ以上、生成する。すなわち、同一文字ではあるがそれぞれが異なる描画位置を指定する複数の描画コマンドが生成される。これら複数の描画コマンドのそれぞれは中間コードに変換される。そして、データ処理装置２０５は、Ｓ３０９において、それら複数の中間コードに基づき、描画位置がそれぞれ異なる同一文字をページに描画する。
【００６５】
以上の実施例では、ＭＦＰ１００がビットマップ文字のボールド処理を行っていたが、以上の実施例で説明したビットマップ文字のボールド処理をクライアントＰＣ１０１上で行い、ボールド処理後のビットマップ文字をＰＤＬデータの描画コマンドとしてＭＦＰ１００に送信してレンダリングおよび印刷を行うようなシステム構成でもよい。すなわち、クライアントＰＣ１０１上で動作するアプリケーションソフトウェアからプリンタドライバがデータを受け取って、そのデータに含まれる文字の描画コマンドを判定する。そしてプリンタドライバは上記説明した文字のボールド処理を行った後、その文字をＰＤＬの描画コマンドとしてＰＤＬデータに含めてＭＦＰ１００に送信する。
【００６６】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
0006755644.tif 000002
【図２】
0006755644.tif 000003
【図３】
0006755644.tif 000004
【図４】
0006755644.tif 000005
【図５】
0006755644.tif 000006
【図６】
0006755644.tif 000007