以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
先ず、本発明の第1の実施形態について説明する。図1は、本発明の第1の実施形態に係る画像形成装置100の構成を示す図である。なお、本実施形態では、画像形成装置100単体の場合を例に挙げるが、ネットワークを介して接続されるホストコンピュータ上に多くの処理を分離実行させる構成であってもよい。
図1において、200は、コントローラユニットであり、画像データやデバイス情報の入出力を制御する。CPU1は、ROM3又はHDD4に記憶されたプログラムをRAM2に読み出して実行する。さらに、システムバス5に接続される各デバイスをCPU1が統括的に制御する。RAM2は、CPU1の主メモリ及びワークエリアとして機能する。ROM3には、電源ON時に実行されるブートプログラムが格納され、HDD4には、オペレーティングシステム及び画像形成装置100の制御プログラムが格納される。また、HDD4は、画像データやプリントデータ等の大容量データを一時的又は長期的に保持する目的でも使用される。
ネットワークI/F6は、ローカルエリアネットワーク13とのインタフェースであり、印刷データやデバイス情報の入出力を担う。操作部I/F7は、操作部14とのインタフェースであり、表示させる画像データを操作部14に対して出力する。また、操作部I/F7は、画像形成装置100のユーザが操作部14から入力した情報を、CPU1に伝える役割をする。操作部14は、出力器として液晶パネル及び音源を備え、入力器としてタッチパネル及びハードキーを備えるものである。
コントローラユニット200は、デバイスI/F8を介してプリンタエンジン15に接続される。デバイスI/F8は、CPU1の指示に基づき、画像データの送信処理、デバイス動作の指示処理、及び、デバイス情報の受信処理を行う。プリンタエンジン15は、コントローラユニット200から入力した画像データを媒体上に出力する出力部であり、電子写真方式及びインクジェット方式の何れでも構わない。
RIP(Raster Image Processor)9は、ディスプレイリスト(以下、DLと称す)をラスタイメージに展開する専用ハードウェアである。このディスプレイリストはRIP9が解釈可能な形式の中間データである。RIP9は、CPU1によりRAM2上に生成されたDLを高速、且つ、CPU1の実行と並列に処理するものである。プリンタ画像処理部10は、プリント出力画像データに対して、画像補正及びハーフトーニング等を行う。画像回転部12は、画像データの回転処理を行う。画像圧伸部11は、多値画像データに対してはJPEG形式の圧縮伸張処理を行い、2値画像データに対してはJBIG、MMR、MH形式の圧縮伸張処理を行う。
図2は、第1の実施形態に係る画像形成装置100のソフトウェアモジュールの構成を示す図である。図2に示した各ソフトウェアモジュールは、プログラムとしてHDD4に格納され、RAM2にロードされ、CPU1により実行されるものである。より具体的には、各ソフトウェアモジュールは、CPU1上で動作するOS(オペレーティングシステム)によりRAM2にロードされ、スレッド単位で実行権を付与され、実行されるものである。
データ受信部201は、ホスト端末から送信されたプリントデータを受信する。データ受信部201において受信したプリントデータは、ジョブ制御部202を介してジョブデータ管理部208で保持される。
ジョブ制御部202は、プリントデータの受信処理から印刷処理までのジョブ制御の全般を司る。PSインタプリタ203は、PostScript(登録商標)データを解釈して、中間データであるDLを生成する。生成されたDLは、ジョブ制御部202を介してジョブデータ管理部208で保持される。レンダラ204は、DLからビットマップイメージを生成するモジュールであり、多くの処理は専用ハードウェアRIP9により実行される。生成されたビットマップイメージは、ジョブ制御部202を介してジョブデータ管理部208で保持される。プリンタドライバ205は、デバイスI/F8を介してプリンタエンジン15に対する印刷指示処理とビットマップイメージの送信処理とを実行する。この際に、プリンタドライバ205は、プリンタ画像処理部10による画像補正も行う。ユーザインタフェース206は、操作部I/F7を介して、操作部14を制御するモジュールである。主に、ユーザインタフェース206は、操作部14の液晶パネルに表示するデータを生成し、タッチパネルからの入力に従って液晶パネルの表示を更新する。また、タッチパネルからの入力が何らかのジョブ実行指示であった場合、ユーザインタフェース206は、ジョブ制御部202に指示を伝達する。ジョブデータ管理部208は、プリントデータ、DL、ビットマップイメージのそれぞれを一時的又は長期的に管理するデータベースである。
図3は、操作部14の液晶タッチパネルに表示される線幅補正の設定画面を示す図である。「線幅補正」項目301において、「ON」302が押下されると、線幅補正が有効となり、「OFF」303が押下されると、線幅補正が無効となる。また、「太らせ幅(ピクセル)」項目304において、「1」305が押下されると、太らせ幅は1ピクセルと設定され、「2」306が押下されると、太らせ幅は2ピクセルと設定される。ここで、CPU1は、設定画面上の押下された位置から選択された項目を判定し、その設定値をRAM2に保存する。例えば、CPU1は、液晶タッチパネル上の「ON」302が押下されたことを検知して、RAM2に細線補正が有効という情報を記憶する。同様に、CPU1は、液晶タッチパネルの「1」305の領域が押下されたことを検知して、RAM2に太らせ幅1ピクセルという情報を記憶する。
図4は、コントローラユニット200にて実行されるプリント処理を示すフローチャートである。なお、図4のフローチャートに示す処理は、HDD4に記憶された図2の各ソフトウェアモジュール内のプログラムがRAM2に読み出され、CPU1により実行されることにより実現される。また、図4のフローチャートに示す処理では、スレッドA、スレッドB及びスレッドCの三つのスレッドが並列に実行される。各スレッドは、オペレーティングシステムにより時分割され、その実行権が割り振られる。時分割の単位は十分に小さいため、三つのスレッドは並列動作するとみなすことができる。オペレーティングシステムによるマルチスレッディング処理は一般に広く知られた技術であるため、詳細な説明は省略する。スレッドA、スレッドB及びスレッドCは、画像形成装置100の起動時にオペレーティングシステムにより生成される常駐スレッドである。
先ず、スレッドAについて説明する。ステップS101において、データ受信部201は、プリントデータであるPSデータを受信し、ジョブ制御部202を介してジョブデータ管理部208に格納する。ステップS102において、PSインタプリタ203は、出力解像度及びレイアウトの内容に応じて、論理座標とデバイス座標間のアフィン変換マトリックスをPSインタプリタ203自身に設定する。画像形成装置100では、出力解像度として600dpiと1200dpiとの二つをサポートしているものとする。また、画像形成装置100では、1ページを一枚の用紙に配置する1UPと2ページを一枚の用紙の左右に並べて配置する2UPとの二つのレイアウトをサポートしているものとする。PostScriptでは、論理座標の基準単位は、ポイント(1ポイントは1/72インチ)であり、座標原点はページの左下角の点となる。また、デバイス座標の基準単位はピクセルであり、座標原点は用紙の左上角の点となる。このとき、LTRサイズ(8.5×11インチ)のページを1UP、600dpiで出力した場合のアフィン変換マトリックスは(8.333,0,0,−8.333,0,6600)となる。出力解像度とレイアウト内容との設定値は、PSデータとともに送信されるジョブチケットにより指定される。ジョブチケットにより設定された設定値は、ジョブ制御部202からPSインタプリタ203に通知される。
ステップS103において、PSインタプリタ203は、線幅補正の設定が有効であるか否かを判定する。ここで、PSインタプリタ203は、操作部14により設定された線幅補正の設定値をRAM2から読み出すことにより有効であるか否かを判定する。線幅補正の設定が有効である場合、処理はステップS104に移行する。一方、線幅補正の設定が有効ではない場合、処理はステップS107に移行する。
ステップS104において、PSインタプリタ203は、図3の設定画面上の操作の結果RAM2に記憶された太らせ幅(線幅を太らせるピクセル数)を、取得する。図3を用いて説明したように、画像形成装置100では、1ピクセル及び2ピクセルの値をサポートしている。ステップS105において、PSインタプリタ203は、論理座標とデバイス座標間の変換マトリックスを取得し、太らせるピクセル数から太らせる論理線幅(以下、論理太らせ幅と称す)を逆算するPSコードを生成する。ステップS106において、PSインタプリタ203は、生成したPSコードを用いて、論理太らせ幅だけ太くなるように線幅指定PSオペレータ(setlinewidth)を再定義する。再定義の詳細については後述する。
ステップS107において、PSインタプリタ203は、PSデータを解析処理し、当該ページのディスプレイリストを生成する。ここで、ステップS105及びS106で再定義された論理線幅を太らせるための処理は、ステップS107において実際に線幅指定PSオペレータによって線幅が指定された際に実行されることに留意されたい。即ち、ステップS107において、PSインタプリタ203は、指定されたピクセル数分だけ、論理線幅を太らせる処理をPSデータに対して実行する。また、本実施形態では、線幅指定PSオペレータの再定義により論理線幅を太らせる処理を実現するが、線幅指定PSオペレータの実行モジュール内に同様の実装を行う方法も可能である。いずれにせよ、線幅指定PSオペレータによる線幅指定時に論理線幅を補正することにより、ラスタライズ後のビットマップデータに対する補正ではなく、ベクタデータ(PSデータ)段階での線幅の補正が可能となる。
ステップS108において、PSインタプリタ203は、レンダラ204に対してディスプレイリストの生成完了を通知し、レンダリングを依頼する。ステップS109において、PSインタプリタ203は、全ページの処理を終了したか否かを判定する。全ページの処理が終了した場合、本フローチャートに示す処理は終了する。一方、全ページの処理が終了していない場合、残りのページについて処理を継続する。
スレッドBの処理は、レンダラ204によって実行される。ステップS111において、レンダラ204は、1ページ分のディスプレイリストの生成完了を待つ。ディスプレイリストの生成完了が通知されると、処理はステップS111からステップS112に移行する。ステップS112において、レンダラ204は、ディスプレイリストを用いてレンダリングを行うことにより、ビットマップデータ及び属性マップを生成する。ここで、生成されるビットマップデータは、CMYKの各色8ビットの諧調を有し、属性マップはビットマップデータの各ピクセルに対応した2ビットの情報を有する。ディスプレイリスト内には、各オブジェクトの属性フラグが含まれており、オブジェクトがグラフィックス、イメージ及びテキストの何れであるかが識別される。この属性フラグがレンダリング時に属性マップに展開される。即ち、属性マップは各ピクセルがグラフィックス(00)、テキスト(01)及びイメージ(10)の何れであるかを示す。
ステップS113において、レンダラ204は、ビットマップデータ及び属性マップをジョブデータ管理部208に保存し、プリンタドライバ205にプリントを依頼する。プリントの依頼は、プリンタドライバ205に対してレンダリング終了通知を送信することにより行われる。プリンタドライバ205は、プリンタエンジン15と同期して処理を実行するために、スレッドCとしてスレッドAとは別スレッドで実行される。ステップS121において、依頼を受けたプリンタドライバ205は、ビットマップデータに対して画像処理を施す。そして、プリンタドライバ205は、プリンタエンジン15に対してプリント開始要求コマンドを送信し、画像データを転送する。ここで行う画像処理には、ハーフトーニング処理とテキストを太らせる処理とがある。なお、ステップS121の詳細については後述する。
ステップS114において、レンダラ204は、全ページのレンダリングが完了したか否かを判定する。全ページのレンダリングが完了した場合、スレッドBの処理は終了する。一方、全ページのレンダリングが完了していない場合、処理はステップS111に戻る。
次に、図5を参照しながら、線幅指定PSオペレータの再定義について説明する。図5(A)は、線幅指定PSオペレータを指定された幅よりも1ピクセル太らせるように再定義したPSコードを示している。このPSコードをPSインタプリタ203に実行させることにより線幅指定PSオペレータの再定義が完了する。図5(A)では、2〜4行目が再定義した処理の内容を示し、これを1行目及び5行目のPSコードにより既存の線幅指定PSオペレータの動作から変更する。2行目では、先ず、現在の論理座標とデバイス座標間の変換マトリックスを取得し(matrix currentmatrix)、その変換マトリックスの第一要素を取り出し(0 get)、絶対値に変換(abs)し、変倍率を求めることが定義されている。この値は1ポイントが何ピクセルに相当するかを示す。また、2行目では、変倍率と線幅指定PSオペレータに指定された論理線幅との積を計算し(dup 3 1 roll mul)、論理線幅(ポイント)をデバイス線幅(ピクセル)に変換することが定義されている。3行目では、計算したデバイス線幅に1を足して(1 add)、変倍率で割る(div)ことにより1ピクセル太らせた場合の論理線幅(ポイント)を計算することが定義されている。4行目では、その値を線幅値として設定する(systemdict /setlinewidth get exec)ことが定義されている。1行目の左括弧({)と5行目の右括弧(})に挟まれた間のPSコードが実際に実行されるのは、再定義された線幅指定PSオペレータが呼び出された際になる。図5(B)は、同様に線幅指定PSオペレータを指定された幅よりも2ピクセル太らせるように再定義したPSコードを示している。図5(A)との違いは、3行目の加算値が2となっている(2 add)箇所のみである。
次に、図6を参照しながら、出力画像の中でどのように線幅が太るのかについて説明する。図6(A)は、論理線幅が1.8ピクセルの垂直線が指定された場合を仮想的に示している。マス目の1マスは1ピクセルを示す。便宜的に特定解像度に関連付けた表記をしているが、論理線幅は解像度とは関係しないことに注意されたい。即ち、出力解像度が2倍になった場合、図6(A)の1マスは4マスに分割され、論理線幅は3.6ピクセルになる。ラインの位置は中心線の位置に指定され、中心線の両側に0.9ピクセルの厚さを持った塗りが期待される描画となる。図6(B)は、論理線幅を1ピクセル増やして2.8ピクセルとした場合を仮想的に示している。中心線の両側の厚みをそれぞれ0.5ピクセルずつ増やすことにより線幅が1ピクセル太くなる。図6(C)は、これを実際のデバイス座標上での塗りに変換した結果であるデバイス線幅を示している。デバイス座標上では整数のピクセル分しか塗れないため、デバイス線幅は四捨五入して3ピクセルとなる。1ピクセル太らせた場合に水平線又は垂直線の場合は上下、左右の何れかに追加ピクセルが偏る。しかしながら、斜め線や曲線の場合は論理座標上で中心線から均等に太らせることにより、追加ピクセルが特定方向に偏ることはない。
図7は、図4に示すプリント処理におけるスレッドC(即ち、ステップS121)の処理を詳細に示すフローチャートである。スレッドCの処理は、プリンタドライバ205により実行される。
ステップS1211において、プリンタドライバ205は、レンダリング終了通知の受信を待つ。図4のステップS113でレンダリング終了通知が発行されると、処理はステップS1212に移行する。ステップS1212において、プリンタドライバ205は、属性マップを用いて、ビットマップデータに画像処理を施す。画像処理の内容としては、テキストを太らせる処理、及び、ハーフトーニング処理であり、プリンタ画像処理部10を用いてハードウェア処理されるものである。テキストを太らせる処理の詳細については後述する。
ステップS1213において、プリンタドライバ205は、プリンタエンジン15に対してプリント開始要求コマンドを送信し、画像データを転送する。なお、ステップS1213において、プリンタドライバ205は、プリンタエンジン15との同期処理も行う。プリンタエンジン15は、所定のスピード以上では出力できない。コントローラユニット200は、そのRIP処理が速すぎる場合にプリンタエンジン15の印字出力を待つ必要がある。
ステップS1214において、プリンタドライバ205は、次ページがレンダリング済みであるか否かを判定する。次ページがレンダリング済みである場合、処理はステップS1212に戻る。次ページがレンダリング済みではない場合、処理はステップS1215に移行する。
ステップS1215において、プリンタドライバ205は、全ページの画像転送が完了したか否かを判定する。全ページの画像転送が完了した場合、処理はステップS1216に移行する。一方、全ページの画像転送が完了していない場合、処理はステップS1211に戻る。ステップS1216において、プリンタドライバ205は、プリンタエンジン15に対してプリント完了要求コマンドを送信する。
図8は、図7のステップS1212において実行される、パターンマッチングによりテキストを太らせる処理の詳細を示すフローチャートである。ステップS121201において、プリンタドライバ205は、線幅補正の設定が有効であるか否かを判定する。プリンタドライバ205は、操作部14により設定された線幅補正の設定値をRAM2から読み出すことにより、線幅補正の設定が有効であるか否かを判定する。線幅補正の設定が有効である場合、処理はステップS121202に移行する。一方、線幅補正の設定が無効である場合、図8に示す処理は終了する。
ステップS121202において、プリンタドライバ205は、注目ピクセルを画像データの左上ピクセルに設定する。ステップS121203において、プリンタドライバ205は、太らせるピクセル数が1ピクセルであるか否かを判定する。太らせるピクセル数が1ピクセルである場合、処理はステップS121204に移行する。一方、太らせるピクセル数が1ピクセルではない場合(太らせるピクセル数が2ピクセルである場合)、処理はステップS121205に移行する。
ステップS121204において、プリンタドライバ205は、参照ピクセルを注目ピクセルの上ピクセル及び左ピクセルに設定する。ステップS121205において、プリンタドライバ205は、参照ピクセルを注目ピクセルの上下左右の4ピクセルに設定する。
ステップS121206において、プリンタドライバ205は、参照ピクセルの何れかの属性がテキストであるか否かを属性マップにより判定する。参照ピクセルの何れかの属性がテキストである場合、処理はステップS121207に移行する。一方、参照ピクセルの何れの属性もテキストではない場合、処理はステップS121209に移行する。
ステップS121207において、プリンタドライバ205は、テキスト属性の参照ピクセルの中で最高濃度のピクセルの色値を取り出す。ステップS121208において、プリンタドライバ205は、注目ピクセルの色値を、ステップS121207で取り出した色値で上書きする。ステップS121209において、プリンタドライバ205は、全ピクセルの処理が終了したか否かを判定する。全ピクセルの処理が終了した場合、図8に示す処理は終了する。一方、全ピクセルの処理が終了していない場合、処理はステップS121210に移行する。
ステップS121210において、プリンタドライバ205は、注目ピクセルを次のピクセルに設定する。そして、処理はステップS121203に戻り、処理を繰り返す。ここで、次のピクセルとは、注目ピクセルのスキャンライン方向右隣のピクセルを意味する。しかし、注目ピクセルがスキャンライン右端のピクセルである場合に限り、1ライン下のスキャンラインの左端ピクセルが次のピクセルとなる。
図9は、図8を用いて説明したパターンマッチングによりテキストを太らせる処理の具体例を示す図である。図9(A)は、テキストの一部分をピクセル単位で示した例を示している。マス目の1マスは、1ピクセルを示す。濃く塗られたマスがテキストを構成するピクセルであり、当該ピクセルに対応する属性マップの属性もテキストとなる。図9(B)は、1ピクセル太らせる処理を実施した場合に追加で塗られるピクセルを示している。追加で塗られるピクセルはマスの中央にドットを配したピクセルである。参照ピクセルが上ピクセル及び左ピクセルになるため、右側のピクセル及び下側のピクセルが塗られることになる。図9(C)は、最終的に1ピクセル太らせるための塗りを実施した結果を示している。図9(D)は、2ピクセル太らせる処理を実施した場合に追加で塗られるピクセルを示している。同様に、追加で塗られるピクセルは、マスの中央にドットを配したピクセルである。参照ピクセルが上下左右の4ピクセルになるため、上下左右の全方向にピクセルが付加される。図9(E)は、最終的に2ピクセル太らせるための塗りを実施した結果を示している。
以上の手順により、ライン(線)に対してはPSデータレベル、即ち、ベクタデータ段階で線幅を太らせる処理を実行し、テキスト(文字)に対してはパターンマッチングにより太らせる処理を実行することができる。従って、本実施形態によれば、ベクタデータ段階で線幅を太らせる量を、テキストを太らせる量と連動させることにより、一貫性をもってラインとテキストとを太らせることが可能となる。また、解像度を変更した場合や、N−UP処理に代表されるレイアウト処理を行った場合でも、ラインとテキストとを太らせる量に一貫性を持たせることができる。従って、操作者は、線幅を太らせる量だけを設定すればよく、シンプルな操作により効果的に線幅を太らせることができる。
次に、本発明の第2の実施形態について説明する。なお、第2の実施形態に係る画像形成装置は、図1及び図2に示した第1の実施形態に係る画像形成装置100と同様の構成であるため、以下の説明においても、図1及び図2に示した符号を用いるものとする。また、以下では、第1の実施形態と相違する点に主眼をおいて説明を行うものとする。
図10(A)は、図9(A)に示したテキスト上に、左上から右下に走る45度のラインを重ねて描画した例を示している。図10(B)は、図10(A)に示したテキストを1ピクセル太らせる処理を実行した場合に追加で塗られるピクセルを示している。追加で塗られるピクセルは、マスの中央にドットを配したピクセルである。参照ピクセルが上ピクセルと左ピクセルになるため、右側のピクセルと下側のピクセルとが塗られることになる。図10(C)は、最終的に1ピクセル太らせる処理を実行して塗りを実施した結果を示している。図10(B)及び図10(C)に示すように、テキストを太らせることによりライン上にテキストが浸食し、その部分だけラインが細くなる結果となっている。テキストとラインとの濃度が大きく異なる場合、この影響が非常に目立ち易い。第2の実施形態は、このような課題を解決するものである。
図11は、テキストとラインとの重なりを検知するための処理を示すフローチャートである。図11に示す処理は、図4のステップS108に代わって実行されるものである。即ち、第2の実施形態では、図4のステップS107の後に図11に示す処理が実行され、図11に示す処理の後に図4のステップS109が実行されることになる。
ステップS1101において、PSインタプリタ203は、テキストの線幅補正フラグをオンに設定する。ステップS1102において、PSインタプリタ203は、PSデータを解釈して描画コマンドを取得する。
ステップS1103において、PSインタプリタ203は、取得した描画コマンドがテキスト描画コマンドであるか否かを判定する。テキスト描画コマンドである場合、処理はステップS1104に移行する。一方、テキスト描画コマンドでない場合、処理はステップS1105に移行する。
ステップS1104において、PSインタプリタ203は、当該テキスト描画コマンドにより描画されるテキストのバウンディングボックスを取得し、バウンディングボックスリストに追加する。ステップS1105において、PSインタプリタ203は、取得した描画コマンドがライン描画コマンドであるか否かを判定する。ライン描画コマンドである場合、処理はステップS1106に移行する。一方、ライン描画コマンドではない場合、処理はステップS1108に移行する。
ステップS1106において、PSインタプリタ203は、ライン描画コマンドにより指示されたラインの下にテキストがあるか否かを判定する。ラインの下にテキストがあるか否かの判定は、バウンディングボックスリストにラインと交わるバウンディングボックスがあるか否かにより判定される。即ち、ラインと交わるバウンディングボックスがある場合、ラインの下にテキストがあると判定され、ラインと交わるバウンディングボックスがない場合、ラインの下にテキストがないと判定される。ラインの下にテキストがある場合、処理はステップS1107に移行する。一方、ラインの下にテキストがない場合、処理はステップS1108に移行する。
ステップS1107において、PSインタプリタ203は、テキストの線幅補正フラグをオフに設定する。ステップS1108において、PSインタプリタ203は、描画オブジェクトをディスプレイリストに追加する。
ステップS1109において、PSインタプリタ203は、ページ内の全描画処理が終了したか否か判定する。ページ内の全描画処理が終了した場合、処理はステップS1110に移行する。一方、ページ内の全描画処理が終了していない場合、処理はステップS1102に戻る。ステップS1110において、PSインタプリタ203は、テキストの線幅補正フラグの値をページに関連付けてジョブデータ管理部208に保存する。従って、複数ページからなるPSデータの場合、複数の線幅補正フラグの値がジョブデータ管理部208に保持される。
図12は、図7のステップS1212において実行される、パターンマッチングによりテキストを太らせる処理の詳細を示すフローチャートである。即ち、図12に示す処理は、第1の実施形態における図8に示す処理に代わって実行される処理である。
ステップS121201´において、プリンタドライバ205は、線幅補正の設定が有効であり、且つ、テキストの線幅補正フラグがオンであるか否かを判定する。線幅補正フラグは、ジョブデータ管理部208において管理される当該ページに関連する線幅補正フラグである。線幅補正の設定が有効であり、且つ、テキストの線幅補正フラグがオンである場合、処理はステップS121202に移行する。一方、線幅補正の設定が無効である場合、又は、テキストの線幅補正フラグがオフである場合、処理は終了する。なお、ステップS121201´以外の処理は、図8に示した同一符号の処理と同様であるため、説明を省略する。
以上により、テキストの上にラインが重なっていると判定されたページに関しては、パターンマッチングによりテキストを太らせる処理は一切実行されなくなる。従って、第2の実施形態によれば、テキストとラインとの重なりに伴う弊害を回避することができる。
次に、本発明の第3の実施形態について説明する。第3の実施形態に係る画像形成装置は、図1及び図2に示した第1の実施形態に係る画像形成装置100と同様の構成であるため、以下の説明においても、図1及び図2に示した符号を用いるものとする。また、以下では、第1の実施形態と相違する点に主眼をおいて説明を行うものとする。
第2の実施形態では、テキストの上にラインが重なるページでは、パターンマッチングによりテキストを太らせる処理を実行しないことにより、テキストを太らせたことによるラインへの浸食を回避する方法について示した。第3の実施形態は、第2の実施形態とは異なる方法により、テキストを太らせたことによるラインへの浸食を回避するものである。
第1の実施形態では、属性マップに定義される属性は、グラフィックス、イメージ及びテキストの3種類であったが、第3の実施形態では、これにラインを追加した4種類の属性とする。即ち、イメージ(10)、テキスト(01)、ラインを除くグラッフィクス(00)、ライン(11)の4属性になる。これは、図4のステップS111において、ライン描画が指定されたディスプレイリスト上の描画オブジェクトに対して、レンダラ204がライン属性を付与することにより実現される。そして、パターンマッチングによりテキストを太らせる場合において、注目ピクセルがライン属性である場合に当該ピクセルに対して太らせる処理を実施しないことにより、テキストを太らせることによるラインへの浸食が回避される。
図13は、第3の実施形態における、パターンマッチングによりテキストを太らせる処理の詳細を示すフローチャートである。即ち、第3の実施形態では、図8に示す処理に代わって、図13に示す処理が実行される。図13において、ステップS121201及びS121202は、図8に示したステップS121201及びS121202と同様の処理である。
ステップS201において、プリンタ画像処理部10は、注目ピクセルの属性がラインであるか否かを判定する。注目ピクセルの属性がラインである場合、処理はステップS121209に移行する。一方、注目ピクセルの属性がラインではない場合、処理はステップS121203に移行する。
図13におけるステップS121203〜S121210の処理は、図8における同一符号の処理と同様である。以上のように、第3の実施形態では、ステップS201で注目ピクセルの属性がラインであるか否かを判定し、注目ピクセルの属性がラインである場合、テキストを太らせる処理をスキップする。これにより、テキストを太らせることによるラインへの浸食を完全に防止しつつ、テキストの太らせとラインの太らせとを同時に実現することができる。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。