(57)【要約】【課題】ビットマップ文字パターンを利用したボールド処理結果との差がない、新たなボールド処理手法が求められている。【解決手段】中間文字パターン生成部１２０は、文字の２次元座標系における、文字を構成するＸ軸方向の各素子の開始点と終点を規定したエレメントを纏めた中間文字パターンを生成する。中間文字パターン修飾部１３０は、中間文字パターン生成部１２０で生成された中間文字パターンを構成する各エレメントに対して、Ｘ軸方向やＹ軸方向にボールド処理を加える。文字出力部１４０は、中間文字パターン修飾部１３０によりボールド処理された各エレメントに基づいて文字を出力する。【選択図】図１
2010218502.tif 000002
【特許請求の範囲】
【請求項１】
文字の２次元座標系における、前記文字を構成するＸ軸方向の各素子の開始点と終点を規定した素子情報を纏めた中間文字情報を生成する中間文字情報生成部と、
文字の太さを変更する修飾処理を、前記中間文字情報生成部で生成された前記中間文字情報を構成する各素子情報に対して、修飾量に応じて前記開始点や前記終点の位置を変更することで行なう中間文字情報修飾部と、
前記中間文字情報修飾部により前記修飾処理が行なわれた各素子情報の開始点と終点に基づいて文字を出力する第１の文字出力部と、
を備えた文字出力装置。
【請求項２】
前記中間文字情報修飾部は、前記中間文字情報を構成する各素子情報に対して、前記開始点や前記終点の位置を修飾量に応じてＸ軸方向に変更することで、Ｘ軸方向の文字の太さを変更する
請求項１に記載の文字出力装置。
【請求項３】
前記中間文字情報修飾部は、処理対象のＹ軸方向の位置の前記中間文字情報を構成する各素子情報を修飾量に応じてＹ軸方向に複製する、または、削除することで、Ｙ軸方向の文字の太さを変更する
請求項１または２に記載の文字出力装置。
【請求項４】
前記中間文字情報修飾部は、文字を太くする修飾処理を行なう
請求項１〜３の内の何れか一項に記載の文字出力装置。
【請求項５】
前記中間文字情報修飾部は、文字を太くした後の各素子情報が重複するか否かを判定し、重複するときは、それらを纏めて１つにすることで素子情報の数を圧縮する情報量圧縮部を有し、
前記情報量圧縮部は、重複する各素子情報を纏めた状態での素子情報について、前記開始点と前記終点を特定し、
前記第１の文字出力部は、重複する各素子情報については、前記情報量圧縮部から出力される前記重複する各素子情報を纏めた状態での素子情報に基づいて文字を出力する
請求項４に記載の文字出力装置。
【請求項６】
前記中間文字情報修飾部は、文字を太くした後の各素子情報が連続するか否かを判定し、連続するときは、それらを纏めて１つにすることで素子情報の数を圧縮する情報量圧縮部を有し、
前記情報量圧縮部は、連続する各素子情報を纏めた状態での素子情報について、前記開始点と前記終点を特定し、
前記第１の文字出力部は、連続する各素子情報については、前記情報量圧縮部から出力される前記連続する各素子情報を纏めた状態での素子情報に基づいて文字を出力する
請求項４に記載の文字出力装置。
【請求項７】
２次元座標系で点の集合として表された文字情報に対して、Ｘ軸方向および／またはＹ軸方向に、文字の太さを変更する修飾処理を行なう第２の文字情報修飾部と、
前記第２の文字情報修飾部により文字の太さが変更された文字情報に基づいて文字を出力する第２の文字出力部と、
前記文字の太さを変更する修飾処理の内容に応じて、前記中間文字情報修飾部と前記第２の文字情報修飾部の何れを機能させるかを切り替える切替部と、
をさらに備えた請求項１〜６の内の何れか一項に記載の文字出力装置。
【請求項８】
前記切替部は、予め決められた文字寸法よりも大きな文字に対して文字を太くする修飾処理を行なう場合には、前記第２の文字情報修飾部を機能させる
請求項７に記載の文字出力装置。
【請求項９】
前記切替部は、文字を太くする修飾量が予め決められた値よりも多い場合には、前記中間文字情報修飾部を機能させる
請求項７に記載の文字出力装置。
【請求項１０】
前記切替部は、予め決められた文字寸法よりも大きな文字に対して文字を太くする修飾処理を行なう場合で、かつ、文字を太くする修飾量が予め決められた値よりも多い場合には、前記中間文字情報修飾部を機能させる
請求項７に記載の文字出力装置。
【請求項１１】
前記切替部は、前記文字の太さを変更する修飾処理が、Ｙ軸方向への修飾処理を含まない場合には、前記中間文字情報修飾部を機能させる
請求項７に記載の文字出力装置。
【請求項１２】
文字の２次元座標系における、前記文字を構成するＸ軸方向の各素子の開始点と終点を規定した素子情報を纏めた中間文字情報を生成する中間文字情報生成工程と、
文字の太さを変更する修飾処理を、前記中間文字情報生成部で生成された前記中間文字情報を構成する各素子情報に対して、修飾量に応じて前記開始点や前記終点の位置を変更することで行なう中間文字情報修飾工程と、
前記中間文字情報修飾工程により前記修飾処理が行なわれた各素子情報の開始点と終点に基づいて文字を出力する文字出力工程と、
を電子計算機によって実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字出力装置およびプログラムに関する。
【背景技術】
【０００２】
太字体（ボールド体）や細字体の書体を持たない場合にも、太字の文字（ボールド文字とも称する）や細字を出力することを可能にする仕組みがある。なお、文字を太く修飾する（ボールド修飾する）処理を、太字化処理やボールド処理と称する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開昭６０−２４５８４号公報
【特許文献２】特開平２−２３２７７５号公報
【０００４】
特許文献１では、画像メモリ内のドットパターンデータを指定された方向に１ドット分シフトしたデータを用意し、元のデータと重ね合わせる処理（ＯＲ処理、つまり論理和演算）を指定された回数だけ繰り返すことで、ビットマップ文字のボールド文字パターンを生成している。
【０００５】
特許文献２では、文字アウトラインに対してボールド修飾を実施することで、ボールド文字を高速に出力する仕組みが提案されている。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、ビットマップ文字パターンを利用した文字修飾との差分や処理負荷との関係において、少なくとも一方についての観点でさらなる改善を図った新たな文字修飾処理の仕組みを提供することを目的とする。
【課題を解決するための手段】
【０００７】
請求項１に記載の発明は、文字の２次元座標系における、前記文字を構成するＸ軸方向の各素子の開始点と終点を規定した素子情報を纏めた中間文字情報を生成する中間文字情報生成部と、文字の太さを変更する修飾処理を、前記中間文字情報生成部で生成された前記中間文字情報を構成する各素子情報に対して、修飾量に応じて前記開始点や前記終点の位置を変更することで行なう中間文字情報修飾部と、前記中間文字情報修飾部により前記修飾処理が行なわれた各素子情報の開始点と終点に基づいて文字を出力する第１の文字出力部と、を備えた文字出力装置である。
【０００８】
請求項２に記載の発明は、請求項１に記載の発明において、前記中間文字情報修飾部は、前記中間文字情報を構成する各素子情報に対して、前記開始点や前記終点の位置を修飾量に応じてＸ軸方向に変更することで、Ｘ軸方向の文字の太さを変更する。
【０００９】
請求項３に記載の発明は、請求項１または２に記載の発明において、前記中間文字情報修飾部は、処理対象のＹ軸方向の位置の前記中間文字情報を構成する各素子情報を修飾量に応じてＹ軸方向に複製する、または、削除することで、Ｙ軸方向の文字の太さを変更する。
【００１０】
請求項４に記載の発明は、請求項１〜３の内の何れか一項に記載の発明において、前記中間文字情報修飾部は、文字を太くする修飾処理を行なう。
【００１１】
請求項５に記載の発明は、請求項４に記載の発明において、前記中間文字情報修飾部は、文字を太くした後の各素子情報が重複するか否かを判定し、重複するときは、それらを纏めて１つにすることで素子情報の数を圧縮する情報量圧縮部を有し、前記情報量圧縮部は、重複する各素子情報を纏めた状態での素子情報について、前記開始点と前記終点を特定し、前記第１の文字出力部は、重複する各素子情報については、前記情報量圧縮部から出力される前記重複する各素子情報を纏めた状態での素子情報に基づいて文字を出力する。
【００１２】
請求項６に記載の発明は、請求項４に記載の発明において、前記中間文字情報修飾部は、文字を太くした後の各素子情報が連続するか否かを判定し、連続するときは、それらを纏めて１つにすることで素子情報の数を圧縮する情報量圧縮部を有し、前記情報量圧縮部は、連続する各素子情報を纏めた状態での素子情報について、前記開始点と前記終点を特定し、前記第１の文字出力部は、連続する各素子情報については、前記情報量圧縮部から出力される前記連続する各素子情報を纏めた状態での素子情報に基づいて文字を出力する。
【００１３】
請求項７に記載の発明は、請求項１〜６の内の何れか一項に記載の発明において、２次元座標系で点の集合として表された文字情報に対して、Ｘ軸方向および／またはＹ軸方向に、文字の太さを変更する修飾処理を行なう第２の文字情報修飾部と、前記第２の文字情報修飾部により文字の太さが変更された文字情報に基づいて文字を出力する第２の文字出力部と、前記文字の太さを変更する修飾処理の内容に応じて、前記中間文字情報修飾部と前記第２の文字情報修飾部の何れを機能させるかを切り替える切替部と、をさらに備えた。
【００１４】
請求項８に記載の発明は、請求項７に記載の発明において、前記切替部は、予め決められた文字寸法よりも大きな文字に対して文字を太くする修飾処理を行なう場合には、前記第２の文字情報修飾部を機能させる。
【００１５】
請求項９に記載の発明は、請求項７に記載の発明において、前記切替部は、文字を太くする修飾量が予め決められた値よりも多い場合には、前記中間文字情報修飾部を機能させる。
【００１６】
請求項１０に記載の発明は、請求項７に記載の発明において、前記切替部は、予め決められた文字寸法よりも大きな文字に対して文字を太くする修飾処理を行なう場合で、かつ、文字を太くする修飾量が予め決められた値よりも多い場合には、前記中間文字情報修飾部を機能させる。
【００１７】
請求項１１に記載の発明は、請求項７に記載の発明において、前記切替部は、前記文字の太さを変更する修飾処理が、Ｙ軸方向への修飾処理を含まない場合には、前記中間文字情報修飾部を機能させる。
【００１８】
請求項１２に記載の発明は、文字の２次元座標系における、前記文字を構成するＸ軸方向の各素子の開始点と終点を規定した素子情報を纏めた中間文字情報を生成する中間文字情報生成工程と、文字の太さを変更する修飾処理を、前記中間文字情報生成部で生成された前記中間文字情報を構成する各素子情報に対して、修飾量に応じて前記開始点や前記終点の位置を変更することで行なう中間文字情報修飾工程と、前記中間文字情報修飾工程により前記修飾処理が行なわれた各素子情報の開始点と終点に基づいて文字を出力する文字出力工程と、を電子計算機によって実行させるプログラムである。
【発明の効果】
【００１９】
請求項１，１２に記載の発明によれば、文字の太さを変更する修飾処理を行なう新たな仕組みを実現できる。
【００２０】
請求項２に記載の発明によれば、２次元座標系で点の集合として表された文字情報を利用して文字の太さを変更する修飾処理を行なう場合での出力状態との差を発生させずに、Ｘ軸方向への前記修飾処理を行なうことができる。
【００２１】
請求項３に記載の発明によれば、２次元座標系で点の集合として表された文字情報を利用して文字の太さを変更する修飾処理を行なう場合での出力状態との差を発生させずに、Ｙ軸方向への前記修飾処理を行なうことができる。
【００２２】
請求項４に記載の発明によれば、中間文字情報を利用して文字を太くする修飾処理を行なうことができる。
【００２３】
請求項５に記載の発明によれば、文字を太くした後の各素子情報が重複する場合に、重複する部分への重複出力を避けることができる。
【００２４】
請求項６に記載の発明によれば、文字を太くした後の各素子情報が連続する場合に、出力処理に使用する素子情報の数を少なくすることができる。
【００２５】
請求項７に記載の発明によれば、中間文字情報を利用して文字の太さを変更する修飾処理と２次元座標系で点の集合として表された文字情報を利用して文字の太さを変更する修飾処理を、文字の太さを変更する修飾処理の内容に応じて切り替えることができる。
【００２６】
請求項８に記載の発明によれば、予め決められた文字寸法よりも大きな文字に対して文字を太くする修飾処理を、２次元座標系で点の集合として表された文字情報を利用して行なう場合よりも高速に処理できる。
【００２７】
請求項９に記載の発明によれば、文字を太くする修飾量が予め決められた値よりも多い修飾処理を、２次元座標系で点の集合として表された文字情報を利用して行なう場合よりも高速に処理できる。
【００２８】
請求項１０に記載の発明によれば、予め決められた文字寸法よりも大きな文字に対して、文字を太くする修飾量が予め決められた値よりも多い修飾処理を、２次元座標系で点の集合として表された文字情報を利用して行なう場合よりも高速に処理できる。
【００２９】
請求項１１に記載の発明によれば、Ｘ軸方向のみに文字を太くする修飾処理を、２次元座標系で点の集合として表された文字情報を利用して行なう場合よりも高速に処理できる。
【図面の簡単な説明】
【００３０】
【図１】第１実施形態の文字出力装置の構成を示す図である。
【図２】中間文字パターンを説明する図である。
【図３】第１実施形態におけるＸ軸方向のボールド処理を説明するフローチャートである。
【図４】第１実施形態におけるＹ軸方向のボールド処理を説明するフローチャートである。
【図５】ある文字とその中間文字パターンの関係を示す図である。
【図５Ａ】図５に示す文字に対して、Ｘ軸方向のボールド処理を行なった結果を示す図である。
【図５Ｂ】図５Ａに示す文字に対して、Ｙ軸方向のボールド処理を行なった結果を示す図である。
【図６】第２実施形態の文字出力装置の構成を示す図である。
【図７】第２実施形態におけるＸ軸方向のボールド処理を説明するフローチャートである。
【図７Ａ】Ｘ軸方向の情報量圧縮処理の動作を説明するフローチャートである。
【図７Ｂ】Ｘ軸方向の情報量圧縮処理を行なう前後の文字と中間文字パターンの一例を示す図である。
【図８】第２実施形態におけるＹ軸方向のボールド処理を説明するフローチャートである。
【図８Ａ】第２実施形態におけるＹ軸方向の情報量圧縮処理の動作を説明するフローチャートである。
【図８Ｂ】第２実施形態におけるＹ軸方向の情報量圧縮処理におけるソート処理を行なう前後の文字と中間文字パターンの一例を示す図である。
【図８Ｃ】第２実施形態におけるＹ軸方向の情報量圧縮処理におけるＸ軸方向の情報量圧縮処理を行なう前後の文字と中間文字パターンの一例を示す図である。
【図８Ｄ】第２実施形態におけるＹ軸方向の情報量圧縮処理を行なう前後の文字と中間文字パターンの一例を示す図である。
【図８Ｅ】第２実施形態におけるＸ軸方向およびＹ軸方向の情報量圧縮処理の動作を説明するフローチャートである。
【図９】第３実施形態の文字出力装置の構成を示す図である。
【図１０】第３実施形態の第１例のボールド処理を説明するフローチャートである。
【図１０Ａ】第３実施形態の第２例のボールド処理を説明するフローチャートである。
【図１１】文字出力装置を、電子計算機を利用して構成するときの構成例を示すブロック図である。
【発明を実施するための形態】
【００３１】
以下、図面を参照して本発明の実施形態について詳細に説明する。
【００３２】
＜第１実施形態＞
［装置構成］
図１は、第１実施形態の文字出力装置の構成を示す図である。文字出力装置は、紙やＯＨＰ（Over Head Projector ）シートなどの印刷媒体に文字を印刷出力する形態の画像形成装置（いわゆる印刷装置）であってもよいし、液晶やＣＲＴ（陰極線管）などの表示媒体に文字を表示する形態の表示装置であってもよい。
【００３３】
第１実施形態の文字出力装置１Ａは、文字アウトライン情報格納部１１０と、中間文字パターン生成部１２０と、中間文字パターン修飾部１３０と、文字出力部１４０を備える。中間文字パターン生成部１２０と、中間文字パターン修飾部１３０と、文字出力部１４０で、中間文字パターン処理部３が構成される。
【００３４】
文字アウトライン情報格納部１１０は、文字処理システムで使用する文字アウトライン情報を記憶媒体に格納しておく。
【００３５】
中間文字パターンは、文字を２次元座標系で表わし、その文字を構成するＸ軸方向の各素子の開始点と終点を規定した素子情報（エレメントと称する）を纏めた中間文字情報の一例である。中間文字パターン生成部１２０は、その中間文字パターンを生成する中間文字情報生成部の一例である。
【００３６】
中間文字パターン生成部１２０は、ボールド体の書体を持たない場合においてボールド文字を生成する際に、文字アウトライン情報格納部１１０に格納されている文字アウトライン情報に基づいてボールド処理に適した中間形式の文字パターンである中間文字パターンを生成する。このため、中間文字パターン生成部１２０は、文字コード取得部１２２と、文字アウトライン情報取得部１２４と、文字変形部１２６と、中間文字パターン特定部１２８を有する。
【００３７】
文字コード取得部１２２は、文書中の文字コードを取得し文字アウトライン情報取得部１２４に渡す。文字アウトライン情報取得部１２４は、文字コード取得部１２２から渡された文字コードに対応する文字アウトライン情報を文字アウトライン情報格納部１１０から取得し文字変形部１２６に渡す。文字変形部１２６は、その文字アウトライン情報に対して指定された変倍（拡大や縮小）や変形（たとえば斜体化）を施して、変形処理済みの文字アウトライン情報を中間文字パターン特定部１２８に渡す。中間文字パターン特定部１２８は、変形処理済みの文字アウトライン情報に対して、後述するような規則に従ってボールド処理に適した中間文字パターンTPを生成して中間文字パターン修飾部１３０に渡す。
【００３８】
中間文字パターン修飾部１３０は、中間文字パターン生成部１２０で生成された中間文字パターンに対して文字の太さを変更する修飾処理を行なう中間文字情報修飾部の一例である。第１実施形態の中間文字パターン修飾部１３０は、中間文字パターン生成部１２０で生成された中間文字パターンに対して、指定された修飾方向および修飾量のボールド処理を行ない、ボールド修飾後の中間文字パターンを生成し、文字出力部１４０に渡す。このため、中間文字パターン修飾部１３０は、修飾量取得部１３２と、Ｘ軸方向修飾部１３４と、Ｙ軸方向修飾部１３６を有する。
【００３９】
修飾量取得部１３２には、図示しない制御部からボールド処理の修飾量ORの情報が供給される。修飾量取得部１３２は、文字座標のＸ軸方向とＹ軸方向のそれぞれについて修飾量OR、つまり、何画素分太らせるかの情報を取得し、Ｘ軸方向の修飾量BxについてはＸ軸方向修飾部１３４に通知し、Ｙ軸方向の修飾量ByについてはＹ軸方向修飾部１３６に通知する。
【００４０】
Ｘ軸方向修飾部１３４は、修飾量取得部１３２から通知されたＸ軸方向の修飾量Bxに基づき、中間文字パターン生成部１２０から受け取った中間文字パターンTPに対し、Ｘ軸方向のボールド処理を行なって、処理済みの中間文字パターンTP_XをＹ軸方向修飾部１３６に渡す。
【００４１】
なお、Ｘ軸方向のボールド修飾は、文字の左右の両方にボールド処理する場合、文字の左右の何れか一方のみにボールド処理する場合の何れであってもよい。Ｘ軸方向の修飾量Bx（正の値とする）の設定に当たっては、文字の左方向に対する修飾量Bx_Lと文字の右方向に対する修飾量Bx_Rのそれぞれを設定する。ボールド処理量がゼロの場合その方向にはボールド処理が不要であることを意味する。
【００４２】
Ｙ軸方向修飾部１３６は、修飾量取得部１３２から通知されたＹ軸方向の修飾量Byに基づき、Ｘ軸方向修飾部１３４から受け取った中間文字パターンTP_Xに対し、Ｙ軸方向のボールド処理を行なって、処理済みの中間文字パターンTP_Yを文字出力部１４０に渡す。
【００４３】
なお、Ｙ軸方向のボールド修飾は、文字の上下の両方にボールド処理する場合、文字の上下の何れか一方のみにボールド処理する場合の何れであってもよい。Ｙ軸方向の修飾量By（正の値とする）の設定に当たっては、文字の上方向に対する修飾量By_Uと文字の下方向に対する修飾量By_Dのそれぞれを設定する。ボールド処理量がゼロの場合その方向にはボールド処理が不要であることを意味する。
【００４４】
文字出力部１４０には、図示しない制御部からボールド処理の有無の情報が供給される。文字出力部１４０は、中間文字パターン生成部１２０で生成された中間文字パターンTPまたは中間文字パターン修飾部１３０で生成されたボールド処理済みの中間文字パターンTP_Yに基づいて文字を出力する。詳しくは、文字出力部１４０は、ボールド処理がないときには中間文字パターン生成部１２０からの中間文字パターンTPを参照し、ボールド処理があるときには中間文字パターン修飾部１３０からの中間文字パターンTP_Yを参照する。
【００４５】
［中間文字パターン］
図２は、中間文字パターン生成部１２０が生成する中間文字パターンを説明する図である。
【００４６】
文字をビットマップ文字パターンで表わすときの２次元座標系を文字座標系と称している。図２中に示すＸ軸方向とＹ軸方向の取り方は一例であり、Ｘ軸方向とＹ軸方向を入れ替えてもよい。ビットマップ文字パターン（ビットマップ文字）は、文字を小さな正方形の点（画素やドット）の集合として表し、決まった数の画素（縦Ｍ個×横Ｎ個：Ｎ＝Ｍでもよい）で全ての文字の形状を表現する。中間文字パターンは、文字をビットマップで表わしたときの文字座標系における描画の開始位置（開始点）と描画の終了位置（終点）の情報を持つＸ軸方向の各エレメントをＹ軸方向の分も纏めたものである。以下では、中間文字パターンのＸ軸方向の各エレメントの構造を明細書本文ではPT（開始点，終点）で示す。
【００４７】
文字出力部１４０にて中間文字パターンTP_Yに基づいて文字を出力する際には、中間文字パターンTP_Yを構成する各エレメントの構造を示すPT（開始点，終点）に基づき、Ｘ軸方向に開始点から終点までを出力対象の画素とする処理をすればよい。
【００４８】
図２（１）では、「小」という文字をビットマップ状に表わしている。図中において、ハッチングありで示している画素が出力（印字）される画素であり、ハッチングなしで示している画素が出力（印字）されない画素である。
【００４９】
Ｘ軸方向のエレメントは、描画のＸ軸方向の開始点とＸ軸方向の終点の情報を持っている。たとえば、図２（２）は、文字座標系において、ある行の文字成分がＸ軸方向に１つの纏まり（エレメント）で構成されている事例である。たとえば、「小」という文字の図中のｙ１ライン目に着目した場合が該当する。図の例では、Ｘ軸方向に、９画素目から１４画素目までを印字するので、ｙ１ライン目の中間文字パターンの構造はPT_X（９，１４）となる。
【００５０】
図２（３）は、文字座標系において、ある行の文字成分がＸ軸方向に複数の纏まり（エレメント）で構成されている事例である。たとえば、「小」という文字の図中のｙ２ライン目に着目した場合が該当する。図の例では、Ｘ軸方向に３つのエレメントを有し、５画素目から６画素目までを印字し、１２画素目から１４画素目までを印字し、２０画素目から２１画素目までを印字するので、ｙ２ライン目のそれぞれの中間文字パターンの構造はPT_X1 （５，６），PT_X2 （１２，１４），PT_X3 （２０，２１）となる。
【００５１】
図２（４）は、各ライン（行）のＸ軸方向のエレメントをＹ軸方向についても纏めた全体の中間文字パターンの構造を示している。開始点と終点に位置情報の記載がないラインは、印字対象となる画素が存在しないラインを意味する。
【００５２】
［Ｘ軸方向処理］
図３は、第１実施形態の中間文字パターン修飾部１３０におけるＸ軸方向のボールド処理（特にＸ軸方向修飾部１３４の動作）を説明するフローチャートである。
【００５３】
Ｘ軸方向修飾部１３４は、Ｘ軸方向の修飾量Bxが“０”であるか否かを判定する（Ｓ１１０）。修飾量Bxが“０”である場合には、Ｘ軸方向のボールド修飾が不要であるので、Ｘ軸方向修飾部１３４は、中間文字パターンをＹ軸方向修飾部１３６に渡してＹ軸方向のボールド処理（Ｓ２００）に移行する（Ｓ１１０−ＹＥＳ）。
【００５４】
修飾量Bxが“０”でない場合には、Ｘ軸方向のボールド修飾が必要であるので、Ｘ軸方向修飾部１３４は、Ｘ軸方向のボールド処理を開始する（Ｓ１１０−ＮＯ）。Ｘ軸方向修飾部１３４は先ず、処理対象行を規定するオペレータｍを“０”に初期化する（Ｓ１２０）。なお、文字の描画領域のＹ軸方向の最大値を“Ｍ−１”とする。また、処理対象ライン（オペレータｍ）の総エレメント数をＥｍ_Xとする。
【００５５】
Ｘ軸方向修飾部１３４は、Ｘ軸方向のボールド処理を行なう場合、中間文字パターンのＹ軸方向の０番目かＭ−１番目のラインに位置する全てのエレメントについて、開始点や終点を、修飾量Bxに合わせて更新する。そのため、Ｘ軸方向修飾部１３４は、オペレータｍがＭを下回るか否かを判定する（Ｓ１３０）。
【００５６】
オペレータｍがＭを下回るときは、Ｘ軸方向修飾部１３４は、処理対象ライン（オペレータｍ）の処理対象エレメントを規定するオペレータｅを“０”に初期化し（Ｓ１４０）、オペレータｅがＥｍ_Xを下回るか否かを判定する（Ｓ１５０）。
【００５７】
同じラインに複数のエレメントが属する場合は、処理対象エレメント（オペレータｅ）の扱い順序は、全体としての処理を効率的にするべく（無駄な処理を行なわないようにするべく）、開始点の値が小さいものを先に処理するようにする。
【００５８】
オペレータｅがＥｍ_Xを下回るときは（Ｓ１５０−ＹＥＳ）、Ｘ軸方向修飾部１３４は、処理対象エレメント（オペレータｅ）の中間文字パターンの開始点や終点を、修飾量Bxに合わせて更新する（Ｓ１５２）。その後、Ｘ軸方向修飾部１３４は、オペレータｅに“１”を加えて（Ｓ１５４）、ステップＳ１５０に戻り、次エレメントの処理に移行する。
【００５９】
オペレータｅがＥｍ_Xになると（Ｓ１５０−ＮＯ）、処理対象ライン（オペレータｍ）での全てのエレメントに対するＸ軸方向のボールド処理が完了したことになるので、Ｘ軸方向修飾部１３４は、オペレータｍに“１”を加えて（Ｓ１５８）、ステップＳ１３０に戻り、次ラインの処理に移行する。
【００６０】
オペレータｍがＭになると、Ｘ軸方向のボールド処理が完了したことになるので、中間文字パターン修飾部１３０は、処理済みの中間文字パターンTP_XをＹ軸方向修飾部１３６に渡してＹ軸方向のボールド処理（Ｓ２００）に移行する（Ｓ１３０−ＮＯ）。
【００６１】
［Ｙ軸方向処理］
図４は、第１実施形態の中間文字パターン修飾部１３０におけるＹ軸方向のボールド処理（特にＹ軸方向修飾部１３６の動作）を説明するフローチャートである。
【００６２】
Ｙ軸方向修飾部１３６は、Ｙ軸方向の修飾量Byが“０”であるか否かを判定する（Ｓ２１０）。修飾量Byが“０”である場合には、Ｙ軸方向のボールド修飾が不要であるので、Ｙ軸方向修飾部１３６は、中間文字パターンTP_Xを文字出力部１４０に渡して出力処理に移行する（Ｓ２１０−ＹＥＳ）。
【００６３】
修飾量Byが“０”でない場合には、Ｙ軸方向のボールド修飾が必要であるので、Ｙ軸方向修飾部１３６は、Ｙ軸方向のボールド処理を開始する（Ｓ２１０−ＮＯ）。Ｙ軸方向修飾部１３６は先ず、Ｙ軸方向の修飾量Byに基づきＹ軸方向のボールド修飾処理で追加されるラインに対応する領域を確保する（Ｓ２２０）。そして、Ｙ軸方向修飾部１３６は、処理対象行を規定するオペレータｙを“０”に初期化する（Ｓ２２２）。
【００６４】
Ｙ軸方向修飾部１３６は、Ｙ軸方向のボールド処理を行なう場合、Ｙ軸方向のボールド修飾分の中間文字パターンを生成し、エレメントを追加することで修飾後の中間文字パターンTP_Yにする。つまり、Ｙ軸方向のボールド修飾は、処理対象行の中間文字パターンを構成する各エレメントを、修飾量Byの分だけＹ軸方向へ複製することで行なう。
【００６５】
そのため、Ｙ軸方向修飾部１３６は、オペレータｙがＭを下回るか否かを判定する（Ｓ２３０）。オペレータｙがＭを下回るときは、Ｙ軸方向修飾部１３６は、修飾量Byに基づき、Ｙ軸方向のボールド修飾分を規定する開始ラインＢｓと終了ラインＢｅを設定し（Ｓ１４０）、オペレータｂを開始ラインＢｓに初期化する（Ｓ２４２）。たとえば、文字の上下の両方に同量ずつボールド処理する場合には、その修飾量Byの負数を開始ラインＢｓに設定し、修飾量Byを終了ラインＢｅに設定する。文字の上下の両方に異なる量でボールド処理する場合には、下方向の修飾量By_Dの負数を開始ラインＢｓに設定し、上方向の修飾量By_Uを終了ラインＢｅに設定する。文字の下方向のみにボールド処理する場合には、下方向の修飾量By_Dの負数を開始ラインＢｓに設定し、“０”を終了ラインＢｅに設定する。
【００６６】
Ｙ軸方向修飾部１３６は、オペレータｂが終了ラインＢｅを下回るか否かを判定する（Ｓ２５０）。オペレータｂが終了ラインＢｅを下回るときは、処理対象行（オペレータｙ）の中間文字パターンTP_Xを、修飾処理後の中間文字パターンの領域における“ｙ＋ｂ”ラインの中間文字パターンのエレメントとして追加する（Ｓ２５０−ＹＥＳ，Ｓ２５２）。その後、Ｙ軸方向修飾部１３６は、オペレータｂに“１”を加えて（Ｓ２５４）、ステップＳ２５０に戻り、次のＹ軸方向のボールド修飾分の処理に移行する。
【００６７】
オペレータｂが終了ラインＢｅになると（Ｓ２５０−ＮＯ）、処理対象ライン（オペレータｙ）でのＹ軸方向のボールド処理が完了したことになるので、Ｙ軸方向修飾部１３６は、オペレータｙに“１”を加えて（Ｓ２５８）、ステップＳ２３０に戻り、次ラインの処理に移行する。
【００６８】
オペレータｙがＭになると、全てのラインに対してのＹ軸方向のボールド処理が完了したことになるので、中間文字パターン修飾部１３０は、処理済みの中間文字パターンTP_Yを文字出力部１４０に渡す（Ｓ２３０−ＮＯ）。
【００６９】
［適用例］
図５〜図５Ｂは、第１実施形態の適用例を説明する図である。図５は、ある文字とその中間文字パターンの関係を示す図である。図５Ａは、図５に示す文字（中間文字パターン）に対して、Ｘ軸方向のボールド処理を行なった結果を示す図である。図５Ｂは、図５Ａに示す文字（中間文字パターン）に対して、Ｙ軸方向のボールド処理を行なった結果を示す図である。
【００７０】
図５（１）は、ある文字をビットマップ状に表わしており、図５（２）は、その中間文字パターンTPを示している。下から１行目では、２画素目だけを印字するのでその中間文字パターンの構造はPT（２，２）となる。下から２行目では、１画素目から３画素目までを印字するのでその中間文字パターンの構造はPT（１，３）となる。下から３行目では、３画素目から５画素目までを印字するのでその中間文字パターンの構造はPT（３，５）となる。下から４行目では、５画素目だけを印字するのでその中間文字パターンの構造はPT（５，５）となる。
【００７１】
Ｘ軸方向修飾部１３４は、図５（２）に示す中間文字パターンの各エレメントの開始点と終点の値を、Ｘ軸方向の修飾量Bx（修飾量Bx_L，修飾量Bx_R）に基づいて変更する。図５Ａは、図５（１）に示す文字に対して、修飾量Bx_L＝１、修飾量Bx_R＝１でボールド処理する場合を示す。図５Ａ（１）は、そのＸ軸方向のボールド処理をした後の文字をビットマップ状に表わしており、図５Ａ（２）は、そのＸ軸方向のボールド処理をした後の中間文字パターンTP_Xを示している。
【００７２】
中間文字パターンTP_Xを構成するエレメントは、図５（２）に示す中間文字パターンに対して、修飾量Bx_L＝１、修飾量Bx_R＝１のボールド処理を適用すると、開始点は左方向に“１”移動するので開始点の値が“１”減算され、終点は右に“１”移動するので終点の値が“１”増加され、中間文字パターンが図５Ａ（２）に示すように変更される。
【００７３】
次に、Ｙ軸方向修飾部１３６は、Ｙ軸方向にボールド処理を行なう。このとき、Ｙ軸方向修飾部１３６は、図５Ａ（２）に示すＸ軸方向のボールド処理がされた中間文字パターンTP_Xを元に、Ｙ方向修飾分のエレメントを生成することで、Ｙ軸方向のボールド処理がされた中間文字パターンTP_Yを生成する。
【００７４】
図５Ｂは、図５Ａ（１）に示すＸ軸方向のボールド処理がされた文字に対して、修飾量By_D＝１、修飾量By_U＝１でボールド処理する場合を示す。図５Ｂ（１）は、そのＹ軸方向のボールド処理をした後の文字をビットマップ状に表わしており、図５Ｂ（２）は、そのＹ軸方向のボールド処理をした後の中間文字パターンTP_Yを示している。
【００７５】
この例では、Ｘ軸方向のボールド処理をした後の中間文字パターンTP_X（＝TP_Y±0）そのものに加えて、下に１行分ずらした状態の中間文字パターンTP_X-1と、上に１行分ずらした状態の中間文字パターンTP_X+1が生成され、その集合で中間文字パターンTP_Yが構成される。
【００７６】
文字出力部１４０は、中間文字パターン修飾部１３０から受け取った中間文字パターンTP_Y（Ｘ軸方向ボールド処理がないときは中間文字パターンTP_Xに等しい）に基づいて、出力処理を行なう。中間文字パターンTP_Yのエレメントには、開始点と終点の情報が記述されているので、開始点から終点までの画素を出力対象とする処理を行なえばよい。
【００７７】
図５Ｂから理解されるように、処理対象ラインに複数のエレメントが存在する場合には同一画素位置に重複出力すること起こり得るが、文字の出力状態は、ビットマップ上で論理和演算を行なう場合と等価になる。
【００７８】
＜第２実施形態＞
［装置構成］
図６は、第２実施形態の文字出力装置の構成を示す図である。第２実施形態の文字出力装置１Ｂは、第１実施形態の文字出力装置１Ａをベースに、中間文字パターン修飾部１３０が情報量圧縮部１３８を備える点に特徴がある。
【００７９】
情報量圧縮部１３８は、第１実施形態の構成の場合、処理対象ラインに複数のエレメントが存在する場合において、同一画素位置に重複出力することを解消する。そのため、処理対象ラインの複数のエレメントの重なり（重複）を調べ、できるだけ少ない（好ましくは最小）のエレメント数で文字の印字すべき画素位置を表現できるように、重なりのあるエレメントを纏めることで、中間文字パターンの情報量（エレメント数）を圧縮（最適化）する。好ましくは、隣接するエレメントが連続する場合にも、エレメント数を少なくするべく、連続するエレメントを１つに纏めることで、中間文字パターンの情報量（エレメント数）を圧縮（最適化：Optimum ）する。以下では、最適化された後の中間文字パターンのＸ軸方向の各エレメントの構造を明細書本文ではPTOP（開始点，終点）で示す。
【００８０】
［Ｘ軸方向情報量圧縮処理］
図７〜図７Ｂは、情報量圧縮部１３８が機能する場合における中間文字パターン修飾部１３０におけるＸ軸方向のボールド処理を説明する図である。ここで、図７は、情報量圧縮部１３８が機能する場合における中間文字パターン修飾部１３０におけるＸ軸方向のボールド処理を説明するフローチャートである。図７Ａは、情報量圧縮部１３８によるＸ軸方向の情報量圧縮処理の動作を説明するフローチャートである。図７Ｂは、Ｘ軸方向の情報量圧縮処理を行なう前後の文字と中間文字パターンの一例を示す図である。
【００８１】
以下では、図３に示したＸ軸方向処理において、同じラインに複数のエレメントが属する場合には、開始点の値が小さいものを先に処理している場合で示す。
【００８２】
第２実施形態では、オペレータｅがＥｍ_Xになると（Ｓ１５０−ＮＯ）、情報量圧縮部１３８は、処理対象ライン（オペレータｍ）のエレメントの重なりを調べ、最小のエレメントで文字の印字位置を表現するように中間文字パターンを最適化する（Ｓ１５６）。この処理を「ｍラインのエレメント最適化処理」と称する。その後に、Ｘ軸方向修飾部１３４は、オペレータｍに“１”を加えて（Ｓ１５８）、ステップＳ１３０に戻り、次ラインの処理に移行する。
【００８３】
図７Ａには、情報量圧縮部１３８によるｍラインのエレメント最適化処理（Ｓ１５６）の詳細手順が示されている。情報量圧縮部１３８は、処理対象ライン（オペレータｍ）の処理対象エレメントを規定するオペレータｅを“０”に初期化し（Ｓ３３０）、オペレータｅがＥｍ_Xを下回るか否かを判定する（Ｓ３３２）。
【００８４】
オペレータｅがＥｍ_Xを下回るときは（Ｓ３３２−ＹＥＳ）、情報量圧縮部１３８は、処理対象ライン（オペレータｍ）の全エレメントを走査し、エレメントの連続や重なりをチェックし、連続や重なりのあるエレメントは１つに纏める（マージする）。なお、同一画素位置に重複出力することを解消するという点では、連続の場合にマージすることは必須ではないが、エレメントの数を少なくすると言う点ではマージした方がよい。
【００８５】
具体的には、ｅ番目のエレメントの構造をPT_e（Ｓe ，Ｅe ）、ｅ＋１番目のエレメントの構造をPT_e+1（Ｓe+1 ，Ｅe+1 ）とする。情報量圧縮部１３８は、ｅ＋１番目のエレメントの開始点Ｓe+1 がｅ番目のエレメントの開始点Ｓe と終点Ｅe の間に位置するか否かを判定する（Ｓ３３４）。連続の場合にマージしないケースでは“Ｓe ＜Ｓe+1 ＜Ｅe ”であるか否かを判定し、連続の場合にマージするケースでは“Ｓe ＜Ｓe+1 ≦Ｅe ”であるか否かを判定することになる。
【００８６】
該当する場合は（Ｓ３３４−ＹＥＳ）、情報量圧縮部１３８は、次のようにして処理後のｅ＋１番目のエレメントの構造PTOP_e+1（開始点，終点）を特定して、ｅ番目とｅ＋１番目のエレメントを１つに纏める（マージする）（Ｓ３３６）。具体的には、処理後のｅ＋１番目のエレメントの構造における開始点の値を、現時点の処理直前前のｅ番目のエレメントの構造における開始点の値に変更することで、PTOP_e+1（Ｓe ，Ｅe+1 ）とする。また、情報量圧縮部１３８は、ｅ番目のエレメントの開始点と終点の値を無効にする。
【００８７】
該当しない場合や（Ｓ３３４−ＮＯ）、開始点に関するマージ処理（Ｓ３３６）が完了すると、情報量圧縮部１３８は、オペレータｅに“１”を加えて（Ｓ３３８）、ステップＳ３３２に戻り、次エレメントの処理に移行する。
【００８８】
ステップＳ３３２に戻ったとき、マージ処理（Ｓ３３６）がなされていた場合は、ステップＳ３３４においてｅ番目（先の処理でのｅ＋１番目に該当する）のエレメントの構造はマージ処理がなされた後のものを使用する。こうすることで、たとえばｅ番目とｅ＋１番目とｅ＋２番目のエレメントが連続する場合や、ｅ番目とｅ＋１番目が重なり、またｅ＋１番目とｅ＋２番目のエレメントが重なる場合や、ｅ番目とｅ＋１番目とｅ＋２番目のエレメントが重なる場合でも、オペレータｅを順番にインクリメントして処理するだけで、不都合なく対処される。
【００８９】
オペレータｅがＥｍ_Xになると（Ｓ３３２−ＮＯ）、処理対象ライン（オペレータｍ）での全てのエレメントに対するＸ軸方向の情報量圧縮処理が完了したことになる。
【００９０】
図７Ｂ（１）に示す第１例には、２つのエレメントについて該当する場合（Ｓ３３４−ＹＥＳ）における「ｍラインのエレメント最適化処理」の前後の文字と中間文字パターンの一例が示されている。図７Ｂ（２）に示す第２例には、３つのエレメントが連続する場合における「ｍラインのエレメント最適化処理」の前後の文字と中間文字パターンの一例が示されている。図７Ｂ（３）に示す第３例には、３つのエレメントが重なる場合における「ｍラインのエレメント最適化処理」の前後の文字と中間文字パターンの一例が示されている。図７Ｂ（４）に示す第４例には、該当しない場合（Ｓ３３４−ＮＯ）における「ｍラインのエレメント最適化処理」の前後の文字と中間文字パターンの一例が示されている。総エレメント数が少なくなるとともに、文字の出力状態はビットマップ上で論理和演算を行なう場合と等価になる。
【００９１】
なお、後述するＹ軸方向の情報量圧縮処理の場合とは異なり、Ｘ方向のボールド処理前にはエレメントの連続もあり得ないので、Ｓe ＜Ｅe ＜Ｓe+1 ＜Ｅe+1 の関係にあるため、「Ｅe ＋Bx_R＞Ｅe+1 ＋Bx_R」となるケースはない。
【００９２】
［Ｙ軸方向情報量圧縮処理］
図８〜図８Ｄは、情報量圧縮部１３８が機能する場合における中間文字パターン修飾部１３０におけるＹ軸方向のボールド処理を説明する図である。ここで、図８は、情報量圧縮部１３８が機能する場合における中間文字パターン修飾部１３０におけるＹ軸方向のボールド処理を説明するフローチャートである。図８Ａは、情報量圧縮部１３８によるＹ軸方向の情報量圧縮処理の動作を説明するフローチャートである。図８Ｂは、Ｙ軸方向の情報量圧縮処理におけるソート処理を行なう前後の文字と中間文字パターンの一例を示す図である。図８Ｃは、Ｙ軸方向の情報量圧縮処理におけるＸ軸方向の情報量圧縮処理を行なう前後の文字と中間文字パターンの一例を示す図である。図８Ｄは、Ｙ軸方向の情報量圧縮処理を行なう前後の文字と中間文字パターンの一例を示す図である。
【００９３】
第２実施形態では、オペレータｙがＭになると（Ｓ２３０−ＮＯ）、情報量圧縮部１３８は、処理対象行を規定するオペレータｙを“０”に初期化する（Ｓ２６０）。その後、情報量圧縮部１３８は、オペレータｙがＭ以下であるか否かを判定する（Ｓ２６２）。
【００９４】
オペレータｙがＭ以下のときは、情報量圧縮部１３８は、全てのラインに対しエレメントの最適化を行ない文字出力部１４０に渡す中間文字パターンを生成する（Ｓ２６４）。 この処理を「ｙライン目のエレメント最適化処理」と称する。その後に、情報量圧縮部１３８は、オペレータｙに“１”を加えて（Ｓ２６６）、ステップＳ２６０に戻り、次ラインの処理に移行する。
【００９５】
オペレータｙがＭになると、全てのラインに対してのＹ軸方向の情報量圧縮処理が完了したことになる。
【００９６】
図８Ａには、情報量圧縮部１３８によるｙライン目のエレメント最適化処理（Ｓ２６４）の詳細手順が示されている。以下では、図４Ａに示したＹ軸方向のボールド処理が完了した後の処理対象ライン（オペレータｙ）の総エレメント数をＥｍ_Yとする。
【００９７】
情報量圧縮部１３８は、エレメントの開始点を元にソートする。ソート処理では、同じラインに属するエレメントの開始点を比較し、開始点が小さいエレメントを、同一ラインに属するエレメントの先頭側に移動する。この操作を全エレメントに対して行なう。具体的には、情報量圧縮部１３８は、処理対象ライン（オペレータｙ）の処理対象エレメントを規定するオペレータｅを“０”に初期化し（Ｓ４１０）、オペレータｅがＥｍ_Yを下回るか否かを判定する（Ｓ４１２）。
【００９８】
オペレータｅがＥｍ_Yを下回るときは（Ｓ４１２−ＹＥＳ）、情報量圧縮部１３８は、処理対象ライン（オペレータｙ）の各エレメントの開始点を元に、各エレメントの開始点の値が小さい順に、各エレメントを並び替える。
【００９９】
具体的には、ｅ番目のエレメントの構造をPT_e（Ｓe ，Ｅe ）、ｅ＋１番目のエレメントの構造をPT_e+1（Ｓe+1 ，Ｅe+1 ）とする。情報量圧縮部１３８は、ｅ＋１番目のエレメントの開始点Ｓe+1 がｅ番目のエレメントの開始点Ｓe よりも小さいか（Ｓe ＞Ｓe+1 ）否かを判定する（Ｓ４１４）。
【０１００】
該当する場合は（Ｓ４１４−ＹＥＳ）、情報量圧縮部１３８は、処理後のｅ番目とｅ＋１番目のエレメントの構造を入れ替える（Ｓ４１６）。
【０１０１】
該当しない場合や（Ｓ４１４−ＮＯ）、ソート処理（Ｓ４１６）が完了すると、情報量圧縮部１３８は、オペレータｅに“１”を加えて（Ｓ３３８）、ステップＳ４１２に戻り、次エレメントの処理に移行する。
【０１０２】
ステップＳ４１２に戻ったとき、ソート処理（Ｓ４１６）がなされていた場合は、ステップＳ４１４においてｅ番目（先の処理でのｅ＋１番目に該当する）のエレメントの構造はソート処理がなされた後のものを使用する。こうすることで、オペレータｅを順番にインクリメントして処理するだけで、不都合なくソート処理がなされる。
【０１０３】
オペレータｅがＥｍ_Yになると（Ｓ４１２−ＮＯ）、処理対象ライン（オペレータｙ）での全てのエレメントに対するソート処理が完了したことになるので、情報量圧縮部１３８は、処理対象ラインのエレメントの重なりを調べ、最小のエレメントで文字の印字位置を表現するように中間文字パターンを最適化する。この処理を、「ｙライン目のＸ軸方向のエレメント最適化処理」と称する。
【０１０４】
「ｙライン目のＸ軸方向のエレメント最適化処理」は、基本的には、図７〜図７Ｂで説明した「ｍラインのエレメント最適化処理」と同じである。違いは、総エレメント数Ｅｍ_Xに代えて、Ｙ軸方向のボールド処理が完了した後の処理対象ラインの総エレメント数Ｅｍ_Yを使用する点である。共通する処理については、図８Ａの処理ステップ番号を、図７Ａで示した３００番台から４００番台に代えて示す。
【０１０５】
基本的には、図７Ｂに示したものと似通っている。相違は、一方のエレメント内に他方のエレメントが完全に包含され“Ｅe ＋Bx_R＞Ｅe+1 ＋Bx_R”となるケースが存在することである。なお、ソート処理をしているので、“Ｓe −Bx_L＝Ｓe+1 −Bx_L”となるケースはあっても、“Ｓe −Bx_L＞Ｓe+1 −Bx_L”となるケースはない。
【０１０６】
“Ｅe ＋Bx_R＞Ｅe+1 ＋Bx_R”となるケースへの対処のため、“Ｓe ＜Ｓe+1 ＜Ｅe ”に該当する場合は（Ｓ４３４−ＹＥＳ）、情報量圧縮部１３８は、処理後のｅ＋１番目のエレメントの構造における開始点の値を、現時点の処理直前前のｅ番目のエレメントの構造における開始点の値に変更する（Ｓ４３６）。
【０１０７】
該当しない場合や（Ｓ４３４−ＮＯ）、開始点に関するマージ処理（Ｓ４３６）が完了すると、情報量圧縮部１３８は、ｅ＋１番目のエレメントの終点Ｅe+1 がｅ番目のエレメントの開始点Ｓe と終点Ｅe の間に位置するか否かを判定する（Ｓ４４４）。“Ｓe ＜Ｅe+1 ＜Ｅe ”であるか否かを判定すればよい。
【０１０８】
該当する場合は（Ｓ４４４−ＹＥＳ）、情報量圧縮部１３８は、次のようにして処理後のｅ＋１番目のエレメントの構造PTOP_e+1（開始点，終点）を特定して、ｅ番目とｅ＋１番目のエレメントを１つに纏める（マージする）（Ｓ３３６）。具体的には、処理後のｅ＋１番目のエレメントの構造における終点の値を、現時点の処理直前前のｅ番目のエレメントの構造における終点の値に変更する。また、情報量圧縮部１３８は、ｅ番目のエレメントの開始点と終点の値を無効にする。
【０１０９】
該当しない場合や（Ｓ４４４−ＮＯ）、終点に関するマージ処理（Ｓ４４６）が完了すると、情報量圧縮部１３８は、オペレータｅに“１”を加えて（Ｓ４４８）、ステップＳ４３２に戻り、次エレメントの処理に移行する。
【０１１０】
たとえば、処理対象となるエレメントＳ１，Ｓ２に対して、Ｓ１の開始点のＸ座標をＳ１ｘ、終点のＸ座標をＥ１ｘとする。同様に、エレメントＳ２についても、開始点のＸ座標をＳ２ｘ、終点のＸ座標をＥ２ｘとする。そして、「Ｓ１ｘ＜Ｓ２ｘ＜Ｅ１ｘ」に該するか否かを、Ｓ１について、Ｓ２から残りのエレメント全てについて処理する。さらに、１つ目と残りのエレメント（２つ目，３っ目，…）のそれが終了したら、２つ目と残りのエレメント（３つ目，４つ目，…）をエレメントの残りがあるだけ繰り返す。このような処理を、全てのエレメントの組合せについて行なう。
【０１１１】
図８Ｂには、図５Ｂに示したＹ軸方向のボールド処理を行なった結果（図８Ｂ（１））に対してソート処理を行なう場合の例が示されている。図８Ｂ（２）では、２ライン目に着目して、ソート処理による中間文字パターンの変遷過程が示されている。図８Ｂ（３）では、全体についてソート処理後の中間文字パターンの一例が示されている。
【０１１２】
図８Ｃ（１）には、２つのエレメントについて、“Ｓe ＜Ｓe+1 ＜Ｅe ”にのみ該当する場合（Ｓ４３４−ＹＥＳ，Ｓ４４４−ＮＯ）における「ｙライン目のＸ軸方向のエレメント最適化処理」の前後の文字と中間文字パターンの一例が示されている。図８Ｃ（２）には、２つのエレメントについて、“Ｓe ＜Ｅe+1 ＜Ｅe ”にのみ該当する場合（Ｓ４３４−ＮＯ，Ｓ４４４−ＹＥＳ）における「ｙライン目のＸ軸方向のエレメント最適化処理」の前後の文字と中間文字パターンの一例が示されている。図８Ｃ（３）には、２つのエレメントについて、“Ｓe ＜Ｓe+1 ＜Ｅe ”に該当し（Ｓ４３４−ＹＥＳ）、かつ、“Ｓe ＜Ｅe+1 ＜Ｅe ”にも該当する場合（Ｓ４４４−ＹＥＳ）における「ｙライン目のＸ軸方向のエレメント最適化処理」の前後の文字と中間文字パターンの一例が示されている。図８Ｃ（４）には、２つのエレメントについて、“Ｓe ＜Ｓe+1 ＜Ｅe ”に該当せず（Ｓ４３４−ＮＯ）、かつ、“Ｓe ＜Ｅe+1 ＜Ｅe ”にも該当しない場合（Ｓ４４４−ＮＯ）における「ｙライン目のＸ軸方向のエレメント最適化処理」の前後の文字と中間文字パターンの一例が示されている。何れも、総エレメント数が少なくなるとともに、文字の出力状態はビットマップ上で論理和演算を行なう場合と等価になる。
【０１１３】
図８Ｄには、図５Ｂに示したＹ軸方向のボールド処理を行なった結果に対してソート処理と「ｙライン目のＸ軸方向のエレメント最適化処理」を全ラインについて行なった場合の例が示されている。
【０１１４】
［情報量圧縮処理の変形例］
図８Ｅは、第２実施形態における情報量圧縮部１３８によるＸ軸方向およびＹ軸方向の情報量圧縮処理の動作を説明するフローチャートである。図７Ａや図８Ａに示したものに対する変形例である。共通する処理については、図８Ｅの処理ステップ番号を、図８Ａで示した４００番台から５００番台に代えて示す。
【０１１５】
Ｙ軸方向情報量圧縮処理にて説明したように、「ｙライン目のエレメント最適化処理」ではソート処理が存在する点が「ｍラインのエレメント最適化処理」と異なり、また、「ｙライン目のＸ軸方向のエレメント最適化処理」と「ｍラインのエレメント最適化処理」とは似通った処理である。また、前記説明では、図３に示したＸ軸方向処理において、同じラインに複数のエレメントが属する場合には開始点の値が小さいものを先に処理していることを前提としていたが、そうでない場合には、ソート処理を適用すればよい。この変形例は、これらの点に着目して、図３のステップＳ１５６および図４のステップＳ２６４の詳細手順を共通にするものである。
【０１１６】
ステップＳ１５６やステップＳ２６４で情報量圧縮処理に移行してきたときには、情報量圧縮部１３８は先ず、「ｙライン目のエレメント最適化処理」に該当するか否か、つまり、ステップＳ２６４からの移行であるか否かを判定する（Ｓ５０２）。該当する場合には（Ｓ５０２−ＹＥＳ）、総エレメント数ＥｍをＹ軸方向のボールド処理が完了した後の処理対象ラインの総エレメント数Ｅｍ_Yに設定し（Ｓ５０４）、ソート処理から開始する。ソート処理が完了すると、情報量圧縮部１３８は、「ｙライン目のＸ軸方向のエレメント最適化処理」を行なう。
【０１１７】
一方、ステップＳ２６４からの移行でない場合には（Ｓ５０２−ＮＯ）、情報量圧縮部１３８は、総エレメント数ＥｍをＸ軸方向のボールド処理を行なう前の処理対象ラインの総エレメント数Ｅｍ_Xに設定する（Ｓ５０６）。そして、図３に示したＸ軸方向処理において、同じラインに複数のエレメントが属する場合には開始点の値が小さいものを先に処理しているか否か、つまりソート処理が必要か否かを判定する（Ｓ５０８）。ソート処理が必要な場合には（Ｓ５０８−ＹＥＳ）、ソート処理から開始する。ソート処理が完了すると、情報量圧縮部１３８は、「ｍラインのエレメント最適化処理」を行なう。一方、ソート処理が必要でない場合には（Ｓ５０８−ＮＯ）、ソート処理を飛ばして、「ｍラインのエレメント最適化処理」を行なう。
【０１１８】
＜第３実施形態＞
［装置構成］
図９は、第３実施形態の文字出力装置の構成を示す図である。図９では、図１に示した第１実施形態の文字出力装置１Ａに対する変形例で示しているが、第３実施形態の仕組みは、図６に示した第２実施形態の文字出力装置１Ｂに対しても同様に適用し得る。
【０１１９】
第３実施形態の文字出力装置１Ｃは、第１実施形態の文字出力装置１Ａや第２実施形態の文字出力装置１Ｂをベースに、ビットマップ文字パターンの位置を移動させて論理和演算を施しビットマップ文字のボールド文字パターンを生成する仕組み（以下ビットマップ文字パターンを利用したボールド処理と称する）を採り入れている点に特徴がある。
【０１２０】
ボールド処理の内容に応じて、第１・第２実施形態で採用している中間文字パターンを利用したボールド処理とビットマップ文字パターンを利用したボールド処理を切り替えるのである。
【０１２１】
ここで「ボールド処理の内容に応じて…ボールド処理を切り替える」とは、文字サイズや、ボールド処理がＸ軸方向のみ（つまりＹ軸方向へのボールド修飾を含まない）であるか否かや、ボールド修飾量（Ｘ軸方向の修飾量BxやＹ軸方向の修飾量By）に基づき、ボールド処理を切り替えることを意味する。
【０１２２】
ボールド処理内容に適した手法で修飾処理を切り替えることで、ビットマップ文字パターンを利用したボールド修飾との差がなく、また、文字サイズ、修飾方向、および修飾量の大小に関わらず処理負荷の少ない（つまり高速な）ボールド処理を実現するのである。
【０１２３】
このような対処のために、第３実施形態の文字出力装置１Ｃは、ビットマップ文字パターン生成部２２０、ビットマップ文字パターン修飾部２３０、および字出力部２４０を具備するビットマップ文字パターン処理部５と、切替設定値設定部３１０と、切替設定値格納部３２０と、修飾処理切替部３４０を備える。
【０１２４】
ビットマップ文字パターン生成部２２０は、ボールド体の書体を持たない場合においてボールド文字を生成する際に、文字アウトライン情報格納部１１０に格納されている文字アウトライン情報に基づいてビットマップ文字パターンを生成する。すなわち、ビットマップ文字パターン生成部２２０は、文字コードで指定された文字のアウトライン情報を文字アウトライン情報格納部１１０から取得する。
【０１２５】
そして、ビットマップ文字パターン生成部２２０は、文字アウトライン情報を取得後に、指定された文字サイズや変形態様に従って文字アウトラインを拡縮・変形を施した後にビットマップ文字パターンを生成する。
【０１２６】
この機能の実現のため、図示しないが、詳細には、ビットマップ文字パターン生成部２２０は、文字コード取得部と、文字アウトライン情報取得部と、文字変形部と、ビットマップ文字パターン特定部を有する。
【０１２７】
ビットマップ文字パターン修飾部２３０は、ビットマップ文字パターン生成部２２０で生成されたビットマップ文字パターンに対して、指定された修飾方向および修飾量のボールド処理を行ない、ボールド修飾後のビットマップ文字パターンを生成し、文字出力部２４０に渡す。
【０１２８】
この機能の実現のため、図示しないが、詳細には、ビットマップ文字パターン修飾部２３０は、修飾量取得部と修飾部を有する。ボールド修飾に当たっては、たとえば特許文献１に記載の仕組みと同様に、ビットマップ文字パターンの位置を移動させて論理和演算を施しビットマップ文字のボールド文字パターンを生成する。
【０１２９】
文字出力部２４０には、図示しない制御部からボールド処理の有無の情報が供給される。文字出力部２４０は、ビットマップ文字パターン生成部２２０で生成されたビットマップ文字パターンBPまたはビットマップ文字パターン修飾部２３０で生成されたボールド処理済みのビットマップ文字パターンBP_Mに基づいて文字を出力する。詳しくは、文字出力部２４０は、ボールド処理がないときにはビットマップ文字パターン生成部２２０からのビットマップ文字パターンBPを参照し、ボールド処理があるときにはビットマップ文字パターン修飾部２３０からのビットマップ文字パターンBP_Mを参照する。
【０１３０】
なお、ビットマップ文字パターン処理部５は、参考文献１に記載の仕組みと同様のものでよく、ビットマップ文字パターン生成部２２０、ビットマップ文字パターン修飾部２３０、文字出力部２４０の詳細については説明を割愛する。
【０１３１】
切替設定値設定部３１０は、中間文字パターンを利用したボールド処理とビットマップ文字パターンを利用したボールド処理を切り替える際の切替設定値（判定指標値）をユーザより受け付けて設定する。切替設定値格納部３２０は、切替設定値設定部３１０が設定した切替設定値やデフォルト（予め決められている固定のもの）の切替設定値を記憶媒体に格納しておく。つまり、切替設定値設定部３１０は、ユーザ操作により受け付けた切替設定値を切替設定値格納部３２０に記憶する。切替設定値は、切替設定値設定部３１０を介して受け付けることで値の変更に対処する。
【０１３２】
修飾処理切替部３４０には、図示しない制御部からボールド処理の有無の情報やボールド処理内容（文字サイズ、修飾量、方向）の情報が供給される。修飾処理切替部３４０は、中間文字パターン処理部３やビットマップ文字パターン処理部５に対して、切替えに応じて、不要な方の機能を停止させる制御信号を供給する。
【０１３３】
修飾処理切替部３４０は、出力する文字に応じて、中間文字パターン処理部３からの出力とビットマップ文字パターン処理部５からの出力を切り替える。具体的には、修飾処理切替部３４０は、ボールド処理内容と切替設定値格納部３２０に格納されている切替設定値を参照して、中間文字パターンを利用したボールド処理とビットマップ文字パターンを利用したボールド処理を切り替える。
【０１３４】
中間文字パターンを利用したボールド処理を選択するときには、中間文字パターン処理部３側のみを機能させ、ビットマップ文字パターン処理部５側の機能を停止させておくのがよい。逆に、ビットマップ文字パターンを利用したボールド処理を選択するときには、ビットマップ文字パターン処理部５側のみを機能させ、中間文字パターン処理部３側の機能を停止させておくのがよい。何れも、消費電力の低減のためである。
【０１３５】
ビットマップ文字パターンを利用したボールド処理と他の手法によるボールド処理での文字状態の差および処理負荷（処理速度）の関係において、ビットマップ文字パターンを利用したボールド処理を含む従前の各仕組みでは、それぞれに難点がある。そのため、文字状態の差および処理負荷の何れかの観点でさらなる改善がされた新たなボールド処理手法の開発が求められている。新たなボールド処理手法があれば、使用用途に合わせたボールド処理手法の選択の幅が広がる。そういった意味では、第１・第２実施形態で説明したボールド処理手法は、その要求に応えている。
【０１３６】
たとえば、第３実施形態の文字出力装置１Ｃは、ビットマップ文字パターンを利用してボールド処理を行なう従前の仕組みの他に、中間文字パターンを利用してボールド処理を行なう第１・第２実施形態で提案してる新たな仕組みが存在するので、使用用途に合わせたボールド修飾処理手法の選択の幅が広がる。
【０１３７】
ここで、修飾処理切替部３４０は、文字サイズ、ボールド処理がＸ軸方向のみであるか否か、ボールド修飾量（Ｘ軸方向の修飾量BxやＹ軸方向の修飾量By）の関係から、ビットマップ文字パターンを利用したボールド修飾との差がなく、また、文字サイズ、修飾方向、および修飾量の大小に関わらず高速処理となるように、ボールド処理を切り替える。
【０１３８】
たとえば、ビットマップ文字パターン処理部５によるボールド処理は、ビットマップ文字パターンの位置を移動させて論理和演算を施しビットマップ文字のボールド文字パターンを生成する。この手法は、文字サイズが大きい場合やボールド修飾量が多い場合には処理が膨大になり、ボールド文字パターン（ボールド処理されたビットマップ文字パターン）の生成に時間が掛かる難点がある。
【０１３９】
特許文献２の仕組みでは、文字アウトラインに対してボールド修飾を実施することで処理を高速に行なうようにしているが、ビットマップ文字パターンを利用した文字出力との差分が発生する難点がある。
【０１４０】
一方、中間文字パターン処理部３によるボールド処理は、中間文字パターンを利用するもの、文字の出力状態はビットマップ文字パターンを利用した文字出力との差分が発生しない。また、中間文字パターンの生成手法は文字サイズやボールド修飾量の影響を受けないので、文字サイズが大きい場合やボールド修飾量が多い場合でも処理が膨大になることはない。反面、中間文字パターンの生成処理や総エレメント数の情報量圧縮処理がオーバーヘッドになり得るし、総エレメント数の情報量圧縮処理を割愛すると重ね打ちによる無駄が発生し得る。
【０１４１】
Ｘ軸方向のボールド処理では、修飾量が少ない場合にはエレメントの重なりの発生頻度は少ないと考えられるので、情報量圧縮処理を割愛することで処理が低速になることは避けられると考えてよいし、情報量圧縮処理を適用していても、実際にその処理をする頻度は少ないので、処理が低速になることは避けられると考えてよい。
【０１４２】
一方、Ｙ軸方向のボールド処理がある場合には（Ｘ軸方向とＸ軸方向の双方がある場合とＹ軸方向のみの場合）、修飾量が少ない場合でも他のラインに修飾量の分だけエレメントを複製して追加するため、重なりの発生頻度が高くなる。総エレメント数の情報量圧縮処理による重打ち解消の効果と情報量圧縮処理のオーバーヘッドの関係次第ではあるが、総じて処理は低速になる傾向がある。
【０１４３】
以上のような観点に基づけば、次のようなことが言える。ボールド処理がないときには、ビットマップ文字パターン処理部５からの出力を使用するのが好ましい。ボールド処理がないにも関わらず中間文字パターン処理部３からの出力を使用すると、中間文字パターンを生成する分のオーバーヘッドにより処理が遅くなるからである。
【０１４４】
ボールド処理があるときには、文字サイズ・修飾方向（特にＸ軸方向のみか否か）・修飾量に応じて、できるだけ高速な処理となる方を選択するのが好ましい。中間文字パターン処理部３からの出力とビットマップ文字パターン処理部５からの出力では、文字の出力状態に差がなく、性能の優劣は主に処理負荷（処理速度）で決まるからである。
【０１４５】
たとえば、修飾量に関わらず文字サイズが小さい場合には、ビットマップ文字パターン処理部５からの出力を使用することが考えられる。逆に、文字サイズに関わらず修飾量が少ない場合には、ビットマップ文字パターン処理部５からの出力を使用することも考えられる。
【０１４６】
文字サイズが大きく、かつ、修飾量が少ない場合には、ビットマップ文字パターン処理部５からの出力を使用することも考えられる。換言すると、文字サイズが大きく、かつ、修飾量が多い場合には、中間文字パターン処理部３からの出力を使用することが考えられる。
【０１４７】
さらに、文字サイズや修飾量に関わらず、Ｘ軸方向のみのボールド処理の場合は中間文字パターン処理部３からの出力を使用することが考えられる。もちろん、Ｘ軸方向のみのボールド処理であるか否かと、文字サイズや修飾量を組み合わせて、さらに詳細に切り分けてもよい。たとえば、文字サイズが大きい場合でも、Ｘ軸方向のみのボールド処理でないときには、ビットマップ文字パターン処理部５からのからの出力を使用することが考えられる。
【０１４８】
［処理方法：第１例］
図１０は、第３実施形態の文字出力装置１Ｃにおける第１例のボールド処理を説明するフローチャートである。
【０１４９】
修飾処理切替部３４０は、ボールド処理があるか否かを判定する（Ｓ６１０）。ボールド修飾が指定されていなければ（Ｓ６１０−ＮＯ）、修飾処理切替部３４０は、ビットマップ文字パターン処理部５からの出力を使用する。この場合、修飾処理切替部３４０は、中間文字パターン処理部３側の機能を停止させ、ビットマップ文字パターン処理部５側のみを機能させる。ビットマップ文字パターン処理部５は、ビットマップ文字パターン生成部２２０にてビットマップ文字パターンを生成し（Ｓ６２０）、そのビットマップ文字パターンを文字出力部２４０にて処理して文字を出力する（Ｓ６２８）。
【０１５０】
ボールド修飾が指定されているときには（Ｓ６１０−ＹＥＳ）、修飾処理切替部３４０はさらに、修飾内容と切替設定値格納部３２０に格納されている切替設定値を比較して、中間文字パターンを利用したボールド処理とビットマップ文字パターンを利用したボールド処理を切り分ける。
【０１５１】
たとえば、修飾処理切替部３４０は、修飾内容と切替設定値格納部３２０に格納されている文字サイズ切替設定値を比較する（Ｓ６１２）。文字サイズが文字サイズ切替設定値以下の場合は（Ｓ６１２−ＮＯ）、修飾処理切替部３４０は、ビットマップ文字パターン処理部５からの出力を使用する。この場合、修飾処理切替部３４０は、中間文字パターン処理部３側の機能を停止させ、ビットマップ文字パターン処理部５側のみを機能させる。
【０１５２】
ビットマップ文字パターン処理部５は、ビットマップ文字パターン生成部２２０にてビットマップ文字パターンを生成し（Ｓ６２２）、そのビットマップ文字パターンに対してビットマップ文字パターン修飾部２３０にてボールド処理し（Ｓ６２４）、そのボールド処理されたビットマップ文字パターンを文字出力部２４０にて処理して文字を出力する（Ｓ６２８）。
【０１５３】
文字サイズが文字サイズ切替設定値を超える場合は（Ｓ６１２−ＹＥＳ）、修飾処理切替部３４０はさらに、ボールド修飾量と切替設定値格納部３２０に格納されている修飾切替設定値を比較して（Ｓ６１６）、中間文字パターンを利用したボールド処理とビットマップ文字パターンを利用したボールド処理を切り分ける。
【０１５４】
たとえば、ボールド修飾量がボールド修飾切替設定値以下の場合は（Ｓ６１６−ＮＯ）、修飾処理切替部３４０は、ビットマップ文字パターン処理部５からの出力を使用する。この場合、修飾処理切替部３４０は、中間文字パターン処理部３側の機能を停止させ、ビットマップ文字パターン処理部５側のみを機能させる。
【０１５５】
ビットマップ文字パターン処理部５は、ビットマップ文字パターン生成部２２０にてビットマップ文字パターンを生成し（Ｓ６２２）、そのビットマップ文字パターンに対してビットマップ文字パターン修飾部２３０にてボールド処理し（Ｓ６２４）、そのボールド処理されたビットマップ文字パターンを文字出力部２４０にて処理して文字を出力する（Ｓ６２８）。
【０１５６】
ボールド修飾量がボールド修飾切替設定値を超える場合は（Ｓ６１６−ＹＥＳ）、修飾処理切替部３４０は、中間文字パターン処理部３からの出力を使用する。この場合、修飾処理切替部３４０は、ビットマップ文字パターン処理部５側の機能を停止させ、中間文字パターン処理部３側のみを機能させる。中間文字パターン処理部３は、中間文字パターン生成部１２０にて中間文字パターンを生成し（Ｓ６３２）、その中間文字パターンに対して中間文字パターン修飾部１３０にてボールド処理し（Ｓ６３４）、そのボールド処理された中間文字パターンを文字出力部１４０にて処理して文字を出力する（Ｓ６３８）。
【０１５７】
図示した例は、文字サイズでの切分けの方を優先して、修飾量に関わらず文字サイズが文字サイズ切替設定値以下の場合には、ビットマップ文字パターン処理部５からの出力を使用する例である。図示しないが、ステップＳ６１２とステップＳ６１６の処理を入れ替えて、修飾量での切分けの方を優先して、文字サイズに関わらず修飾量がボールド修飾切替設定値以下の場合には、ビットマップ文字パターン処理部５からの出力を使用するようにしてもよい。
【０１５８】
図示しないが、ステップＳ６１２の処理を割愛して、文字サイズのみでの切り分けを行なってもよい。この場合、予め決められた文字サイズよりも大きな文字に対してボールド修飾を行なう場合には中間文字パターン処理部３を機能させ、予め決められた文字サイズよりも小さな文字に対してボールド修飾を行なう場合にはビットマップ文字パターン処理部５を機能させるのがよい。
【０１５９】
図示しないが、ステップＳ６１６の処理を割愛して、修飾量のみでの切り分けを行なってもよい。この場合、ボールド修飾量が予め決められた値よりも多い場合には中間文字パターン処理部３を機能させ、ボールド修飾量が予め決められた値よりも少ない場合にはビットマップ文字パターン処理部５を機能させるのがよい。
【０１６０】
［処理方法：第２例］
図１０Ａは、第３実施形態の文字出力装置１Ｃにおける第２例のボールド処理を説明するフローチャートである。第２例は、第１例に対して、ボールド修飾の方向も処理の切替えの判定指標にするように変更したものである。
【０１６１】
図示した例では、文字サイズに関する判定ステップ（Ｓ６１２）と修飾量に関する判定ステップ（Ｓ６１６）の間に、ボールド修飾の方向に関する判定ステップ（Ｓ６１４）を追加している。
【０１６２】
文字サイズが文字サイズ切替設定値を超える場合は（Ｓ６１２−ＹＥＳ）、修飾処理切替部３４０はさらに、ボールド修飾の方向がＸ軸方向のみであるか否かを判定し（Ｓ６１４）、中間文字パターンを利用したボールド処理とビットマップ文字パターンを利用したボールド処理を切り分ける。
【０１６３】
たとえば、Ｙ軸方向にボールド修飾がある場合は（Ｓ６１４−ＮＯ）、修飾処理切替部３４０は、ビットマップ文字パターン処理部５からの出力を使用する。この場合、修飾処理切替部３４０は、中間文字パターン処理部３側の機能を停止させ、ビットマップ文字パターン処理部５側のみを機能させる。
【０１６４】
ビットマップ文字パターン処理部５は、ビットマップ文字パターン生成部２２０にてビットマップ文字パターンを生成し（Ｓ６２２）、そのビットマップ文字パターンに対してビットマップ文字パターン修飾部２３０にてボールド処理し（Ｓ６２４）、そのボールド処理されたビットマップ文字パターンを文字出力部２４０にて処理して文字を出力する（Ｓ６２８）。
【０１６５】
ボールド修飾がＸ軸方向のみの場合は（Ｓ６１４−ＹＥＳ）、修飾処理切替部３４０はさらに、ボールド修飾量と切替設定値格納部３２０に格納されているボールド修飾切替設定値を比較して（Ｓ６１６）、中間文字パターンを利用したボールド処理とビットマップ文字パターンを利用したボールド処理を切り分ける。
【０１６６】
図示しないが、変形例として、ボールド修飾の方向に関する判定ステップは、文字サイズに関する判定ステップ（Ｓ６１２）の前や、修飾量に関する判定ステップ（Ｓ６１６）の後に入れてもよい。
【０１６７】
図示しないが、ステップＳ６１２とステップＳ６１６の処理を入れ替えたものに対して、その間にボールド修飾の方向に関する判定ステップを入れてもよい。図示しないが、ステップＳ６１２の処理を割愛したものに対して、ステップＳ６１６の前または後に、ボールド修飾の方向に関する判定ステップを入れてもよい。図示しないが、ステップＳ６１６の処理を割愛したものに対して、ステップＳ６１２の前または後に、ボールド修飾の方向に関する判定ステップを入れてもよい。
【０１６８】
図示しないが、ステップＳ６１６およびステップＳ６１６の処理を割愛し、ボールド修飾の方向に関する判定ステップのみとするようにしてもよい。何れの場合も、ボールド修飾の方向に関する判定ステップにおいては、ボールド修飾がＸ軸方向のみのときには中間文字パターン処理部３側を選択し、Ｙ軸方向のボールド修飾を含むときにはビットマップ文字パターン処理部５側を選択するのがよい。
【０１６９】
＜電子計算機による構成＞
図１１は、文字出力装置１の制御構成の他の構成例を示すブロック図である。ここでは、パーソナルコンピュータなどの電子計算機を利用して、ソフトウェアを実行するマイクロプロセッサなどから構築される文字出力装置１の制御構成のより現実的なハードウェア構成を示している。
【０１７０】
すなわち、本実施形態において、文字に対するボールド処理（太字化処理）に関わる制御処理を行なう文字出力装置１の制御構成の仕組みは、ハードウェア処理回路により構成することに限らず、その機能を実現するプログラムコードに基づき電子計算機（コンピュータ）を用いてソフトウェア的に実現される。よって、本実施形態に係る仕組みを、電子計算機（コンピュータ）を用いてソフトウェアで実現するために好適なプログラムあるいはこのプログラムを格納したコンピュータ読取可能な記憶媒体が発明として抽出される。ソフトウェアにより実行させる仕組みとすることで、ハードウェアの変更を伴うことなく、処理手順などが容易に変更されることとなる。
【０１７１】
前述の一連のボールド処理はハードウェアまたはソフトウェアの単独に限らずその両者の複合構成によっても実現され得る。ソフトウェアによる処理を実行する場合、処理手順を示したプログラムを、ハードウェアに組み込まれたコンピュータ内の記憶媒体に組み込んで（インストールして）実行させたり、各種処理が実行可能な汎用の電子計算機にプログラムを組み込んで実行させる。
【０１７２】
ボールド処理機能をコンピュータに実行させるプログラムは、ＣＤ−ＲＯＭなどの記録媒体を通じて配布される。また、このプログラムは、ＣＤ−ＲＯＭではなくＦＤに格納されてもよい。また、ＭＯドライブを設け、ＭＯに前記プログラムを格納してもよく、またフラッシュメモリなどの不揮発性の半導体メモリカードなど、その他の記録媒体にプログラムを格納してもよい。さらに、ソフトウェアを構成するプログラムは、記録媒体を介して提供されることに限らず、有線または無線などの通信網を介して提供されてもよい。たとえば、他のサーバなどからインターネットなどのネットワークを経由してプログラムをダウンロードして取得したり、更新したりしてもよい。さらに、ボールド処理を行なう機能を実現するプログラムコードを記述したファイルとしてプログラムが提供されるが、この場合、一括のプログラムファイルとして提供されることに限らず、コンピュータで構成されるシステムのハードウェア構成に応じて、個別のプログラムモジュールとして提供されてもよい。
【０１７３】
たとえば、コンピュータシステム９００は、ＣＰＵ（Central Processing Unit ）やマイクロプロセッサ（microprocessor）で構成された中央制御部９１０と、読出専用の記憶部であるＲＯＭ（Read Only Memory）、または随時読出し・書込みが可能なメモリであるＲＡＭ（Random Access Memory）などを具備する記憶部９１２と、操作部９１４と、図示を割愛したその他の周辺部材を有している。
【０１７４】
中央制御部９１０は、コンピュータが行なう演算と制御の機能を超小型の集積回路に集約させたＣＰＵを代表例とする電子計算機の中枢をなすものと同様のものである。ＲＯＭにはボールド処理機能用の制御プログラムなどが格納される。文字アウトライン情報格納部１１０や切替設定値格納部３２０の記憶部がその機能を備えるものとしてもよい。操作部９１４は、利用者による操作を受け付けるためのユーザインタフェースである。
【０１７５】
なお、コンピュータシステム９００の制御系としては、メモリカードなどの図示を割愛した外部記録媒体を挿脱可能に構成し、またインターネットなどの通信網との接続が可能に構成するとよい。このためには、制御系は、中央制御部９１０や記憶部９１２の他に、可搬型の記録媒体の情報を読み込むメモリ読出部９２０や外部との通信インタフェース手段としての通信Ｉ／Ｆ９２２を備えるようにするとよい。メモリ読出部９２０を備えることで外部記録媒体からプログラムのインストールや更新に対応する。通信Ｉ／Ｆ９２２を備えることで、通信網を介しプログラムのインストールや更新に対応する。基本的なボールド処理の仕組みは前記実施形態と同様である。
【０１７６】
なお、ここでは、文字出力装置１の制御構成をコンピュータにてソフトウェア上で実現する構成例で説明しているが、本実施形態のボールド処理を実現するための文字出力装置１の制御構成の各部（機能ブロックを含む）の具体的手段は、ハードウェア、ソフトウェア、通信手段、これらの組み合わせ、その他の手段を用いることができ、このこと自体は当業者において自明である。また、機能ブロック同士が複合して１つの機能ブロックに集約されてもよい。また、コンピュータにプログラム処理を実行させるソフトウェアは、組合せの態様に応じて分散してインストールされる。
【０１７７】
以上、本発明について実施形態を用いて説明したが、本発明の技術的範囲は前記実施形態に記載の範囲には限定されない。発明の要旨を逸脱しない範囲で前記実施形態に多様な変更または改良を加えることができ、そのような変更または改良を加えた形態も本発明の技術的範囲に含まれる。
【０１７８】
また、前記の実施形態は、クレーム（請求項）にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組合せの全てが発明の解決手段に必須であるとは限らない。前述した実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜の組合せにより種々の発明を抽出できる。実施形態に示される全構成要件から幾つかの構成要件が削除されても、効果が得られる限りにおいて、この幾つかの構成要件が削除された構成が発明として抽出され得る。
【０１７９】
たとえば、前記実施形態では、図２中に示すＸ軸方向とＹ軸方向の取り方をしている場合において、Ｘ軸方向へのボールド処理を先に行ない、その後にＹ軸方向へのボールド処理を行なう例で説明したが、何れを先に行なうかは任意でよい。
【０１８０】
前記実施形態では、文字の太さを変更する修飾処理の事例として、文字を太くするボールド処理において中間文字パターンを利用する例を説明したが、これは一例に過ぎない。中間文字パターンを利用して文字の太さを変更する修飾処理の適用はボールド処理に限らず、文字を細くする処理であってもよい。この場合のＹ軸方向の処理は、処理対象行の中間文字パターンを削除することで実現する。
【符号の説明】
【０１８１】
１…文字出力装置、３…中間文字パターン処理部、５…ビットマップ文字パターン処理部、１１０…文字アウトライン情報格納部、１２０…中間文字パターン生成部、１２２…文字コード取得部、１２４…文字アウトライン情報取得部、１２６…文字変形部、１２８…中間文字パターン特定部、１３０…中間文字パターン修飾部、１３２…修飾量取得部、１３４…Ｘ軸方向修飾部、１３６…Ｙ軸方向修飾部、１３８…情報量圧縮部、１４０…文字出力部、２２０…ビットマップ文字パターン生成部、２３０…ビットマップ文字パターン修飾部、２４０…文字出力部、３１０…切替設定値設定部、３２０…切替設定値格納部、３４０…修飾処理切替部
【図１】
2010218502.tif 000003
【図２】
2010218502.tif 000004
【図３】
2010218502.tif 000005
【図４】
2010218502.tif 000006
【図５】
2010218502.tif 000007
【図５Ａ】
2010218502.tif 000008
【図５Ｂ】
2010218502.tif 000009
【図６】
2010218502.tif 000010
【図７】
2010218502.tif 000011
【図７Ａ】
2010218502.tif 000012
【図７Ｂ】
2010218502.tif 000013
【図８】
2010218502.tif 000014
【図８Ａ】
2010218502.tif 000015
【図８Ｂ】
2010218502.tif 000016
【図８Ｃ】
2010218502.tif 000017
【図８Ｄ】
2010218502.tif 000018
【図８Ｅ】
2010218502.tif 000019
【図９】
2010218502.tif 000020
【図１０】
2010218502.tif 000021
【図１０Ａ】
2010218502.tif 000022
【図１１】
2010218502.tif 000023