(57)【要約】【課題】１ライン中に複数のフォントによる文字が混在する場合に、複数のフォント間における文字配置を調整し、ライン内の文字配置バランスを整えて出力することができる文字処理技術を提供する。【解決手段】出力対象となる各文字について、使用するフォントを選択し、選択したフォントのフォントデータを読出し、読み出したフォントデータに基づいて文字を出力する文字処理方法であって、選択したフォントについて文字配置に関するオフセットを決定する工程と、文字ごとに、該文字について選択したフォントの前記オフセットに基づいて、文字配置を決定する工程と、を備える。前記オフセットは、例えば前記選択したフォントのうちの１つを基準として決定する。【選択図】　図５
2004126311.tif 000002
【特許請求の範囲】
【請求項１】
出力対象となる各文字について、使用するフォントを選択し、選択したフォントのフォントデータを読出し、読み出したフォントデータに基づいて文字を出力する文字処理方法であって、
選択したフォントについて文字配置に関するオフセットを決定する第１工程と、
文字ごとに、該文字について選択したフォントの前記オフセットに基づいて、文字配置を決定する第２工程と、を備えることを特徴とする文字処理方法。
【請求項２】
前記オフセットが、前記選択したフォントのうちの１つを基準として決定されることを特徴とする請求項１記載の文字処理方法。
【請求項３】
前記オフセットが、出力する文字サイズに応じて決定されることを特徴とする請求項１又は２記載の文字処理方法。
【請求項４】
出力対象となる各文字がユニコードにより特定されている場合に、第１工程及び第２工程を実行することを特徴とする請求項１乃至３のいずれか１項に記載の文字処理方法。
【請求項５】
前記選択したフォントには、１バイト系文字に対応するフォントと２バイト系文字に対応するフォントの少なくとも２つが含まれていることを特徴とする請求項１乃至４のいずれか１項に記載の文字処理方法。
【請求項６】
出力対象となる各文字について、使用するフォントを選択し、選択したフォントのフォントデータを読出し、読み出したフォントデータに基づいて文字を出力する文字処理装置であって、
選択したフォントについて文字配置に関するオフセットを決定する第１手段と、
文字ごとに、該文字について選択したフォントの前記オフセットに基づいて、文字配置を決定する第２手段と、を備えることを特徴とする文字処理装置。
【請求項７】
請求項６記載の文字処理装置を備えることを特徴とする画像形成装置。
【請求項８】
請求項１乃至５のいずれか１項に記載の文字処理方法をコンピュータで実行させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、文字を適切に配置して出力するための文字処理技術に関し、特にユニコード（ＵＮＩＣＯＤＥ）などの標準的な文字コード体系を用いて文字を指定する場合に適した文字処理技術に関する。
【０００２】
【従来の技術】
文字データを取り扱う装置（コンピュータやプリンタなど）では、通常、各文字に文字コードを割り当て、該文字コードを用いて文字データを特定して処理する構成を採る。このような文字コード体系には、言語やプラットフォームに対応して種々のものが存在しており、通常、英語等の文字種類の少ない言語に対しては、文字を１バイトの文字コードで特定する体系（例えばＡＳＣＩＩコードなど；以下、「１バイト系」と呼ぶ。）が、日本語など文字種類の多い言語に対しては、文字を２バイトの文字コードで特定する体系（例えばＪＩＳコードなど；以下、「２バイト系」と呼ぶ。）が採用されている。
【０００３】
近年、世界中の文字を表現可能な文字コード体系としてユニコードが提案され、その利用が広まりつつある（非特許文献１参照）。ユニコードでは、言語やプラットフォームに係わらず、すべての文字に２バイトで表される独立した番号を付与しているため、複数の言語が混在する場合や複数のプラットフォームでデータを共有する場合であっても、文字コード体系を切り替えることなく対応することが可能となる。
【０００４】
【非特許文献１】ユニコード３．２（Ｕｎｉｃｏｄｅ３．２）、ユニコード・コンソーシアム（Ｔｈｅ　Ｕｎｉｃｏｄｅ　Ｃｏｎｓｏｒｔｉｕｍ）、［平成１４年９月１０日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｕｎｉｃｏｄｅ．ｏｒｇ／ｕｎｉｃｏｄｅ／ｒｅｐｏｒｔｓ／ｔｒ２８／＞
【０００５】
【発明が解決しようとする課題】
ユニコードに対応している文字処理装置では、受け付けたユニコードに基づいて文字を特定し、装置が利用可能な従来フォントの中から前記特定した文字が含まれるフォントを選択し、前記選択したフォントを用いて前記特定した文字を出力する構成を採る場合が多い。
【０００６】
このような構成では、ユニコードで各文字が指定されている文字列を出力する場合に、１ライン中に１バイト系のフォントと２バイト系のフォントとが混在する場合が起こりうる。
【０００７】
しかし、１バイト系文字のフォントと、２バイト系文字のフォントとでは、文字を出力する際の基準となる位置（ベースライン）が異なる場合が多く、そのまま出力しようとすると、図６（ｂ）に示すようにライン内の文字配置バランスが崩れ、違和感のある出力結果となってしまうという問題が生じる。
【０００８】
そこで、本発明では、１ライン中に複数のフォントによる文字が混在する場合に、複数のフォント間における文字配置を調整し、ライン内の文字配置バランスを整えて出力することができる技術を提供することを目的とする。
【０００９】
【課題を解決するための手段】
本発明の文字処理方法は、出力対象となる各文字について、使用するフォントを選択し、選択したフォントのフォントデータを読出し、読み出したフォントデータに基づいて文字を出力する文字処理方法であって、選択したフォントについて文字配置に関するオフセットを決定する第１工程と、文字ごとに、該文字について選択したフォントの前記オフセットに基づいて、文字配置を決定する第２工程と、を備えることを特徴とする。かかる構成によれば、複数のフォント間における文字配置を調整し、ライン内の文字配置バランスを整えて出力することができる。
【００１０】
好適には、前記オフセットが、前記選択したフォントのうちの１つを基準として決定されることを特徴とする。かかる構成によれば、出力する文字列の中身に応じて適切に文字配置バランスを調整することが可能となる。
【００１１】
好適には、前記オフセットが、出力する文字サイズに応じて決定されることを特徴とする。かかる構成によれば、文字サイズを変えて出力する場合にも適切に文字配置バランスを調整することが可能となる。
【００１２】
好適には、出力対象となる各文字がユニコードにより特定されている場合に、第１工程及び第２工程を実行することを特徴とする。かかる構成によれば、ユニコードによる文字が特定されている場合であっても、従来のような位置ずれを起こすことなく文字を出力するこができる。
【００１３】
好適には、前記選択したフォントには、１バイト系文字に対応するフォントと２バイト系文字に対応するフォントの少なくとも２つが含まれていることを特徴とする。かかる構成によれば、１バイト系文字に対応するフォント（主に欧文フォント）と２バイト系文字に対応するフォント（主に日本語フォント）が混在する場合であっても、従来のような位置ずれを起こすことなく文字を出力するこができる。
【００１４】
本発明の文字処理装置は、出力対象となる各文字について、使用するフォントを選択し、選択したフォントのフォントデータを読出し、読み出したフォントデータに基づいて文字を出力する文字処理装置であって、選択したフォントについて文字配置に関するオフセットを決定する第１手段と、文字ごとに、該文字について選択したフォントの前記オフセットに基づいて、文字配置を決定する第２手段と、を備えることを特徴とする。かかる構成によれば、複数のフォント間における文字配置を調整し、ライン内の文字配置バランスを整えて出力することができる。
【００１５】
本発明の画像形成装置は、本発明の文字処理装置を備えることを特徴とする。
【００１６】
本発明のプログラムは、本発明の文字処理方法の各工程をコンピュータ上で実行させることを特徴とする。本発明のプログラムは、ＣＤ−ＲＯＭ、磁気ディスク、半導体メモリなどの各種の記録媒体を通じてコンピュータにインストールまたはロードすることができる。
【００１７】
なお、本明細書において、「手段」とは、単に物理的手段を意味するものではなく、その「手段」が有する機能をソフトウェアによって実現する場合も含む。また、１つの「手段」が有する機能が２つ以上の物理的手段により実現されても、２つ以上の「手段」の機能が１つの物理的手段により実現されても良い。
【００１８】
【発明の実施の形態】
（第１の実施形態）
図面を参照して本発明の第１の実施形態を説明する。図１は、本実施形態のプリンタ１のハードウェア構成を表すブロック図である。
【００１９】
プリンタ１は、用紙をプリンタ内に供給する給紙機構１０、印字を行う印刷エンジン１１、及び用紙をプリンタ機外に排出する排紙機構１２等により構成される動力機構部２を備える。印刷エンジン１１は、紙送機構、キャリッジ機構、印刷ヘッドなどを含んで構成される。
【００２０】
これら動力機構部２を制御し印刷動作を行わせるのは、ＣＰＵ（プロセッサ）１３、ＲＯＭ１４、ＲＡＭ１５、ＬＣＤパネル及びＬＣＤコントローラ１６、通信インタフェース１７等からなるプリンタ制御部３である。ＣＰＵ１３は、内部バスを介して各手段１４〜１７にアクセス可能に構成されており、ホスト装置から通信インタフェース１７を介して送られてくる印刷ジョブに従い、動力機構部２を制御して実際に印刷動作を行なわせる。なお、動力機構部２が独立してＣＰＵを備えていてもよく、その場合は、動力機構部２のＣＰＵが、パラレルインタフェース等を介してＣＰＵ１３と通信を行い、印刷エンジン１１を制御して印刷動作を行わせることになる。
【００２１】
動力機構部２、プリンタ制御部３の構成・動作は原則として従来のプリンタ装置の構成・動作と同様である。ただし、本プリンタ１は、１ライン中に複数のフォントによる文字が混在する場合に、文字配置を調整して印刷する機能を備えている点で、従来の構成と異なっている。
【００２２】
図２に、プリンタ制御部３における機能構成図を示す。図に示すように、プリンタ制御部３は、受信手段２０、解析／文字処理／イメージ生成手段（以下、「解析手段」と呼ぶ。）２１、印刷制御手段２２、フォントデータ記憶手段２３、コード対応フォント記憶手段２４、オフセット記憶手段２５等を備えて構成される。上記の各手段は、ＲＯＭ１４又はＲＡＭ１５に格納されるアプリケーションプログラムをＣＰＵ１３が実行することにより機能的に実現される。なお、プリンタ制御部３は、上記の各手段のほか、一般的なプリンタが備える画像処理（サイズ変換処理、ノイズ除去処理など）手段などを備えることができる。
【００２３】
受信手段２０は、ホスト装置より、ネットワークを介して、例えばＸＨＴＭＬＴＭ−Ｐｒｉｎｔ形式やＰｏｓｔＳｃｒｉｐｔ形式で印刷ジョブ（印刷データ及び制御コマンド）を受信し、これを受信バッファに格納する。
【００２４】
解析手段２１は、受信バッファから印刷データを順番に読み出して解析し、後述するように必要に応じて文字配置を調整しながら、ラスタ形式の印刷イメージを１バンド分又は１ページ分生成し、イメージバッファに格納する。また、受信バッファから制御コマンドを順番に読み出し、これを解釈して、印刷制御手段２２等に対して所定の指示（印字要求、紙送り要求、給紙／排紙要求など）を出力する。
【００２５】
印刷制御手段２２は、解析手段２１から指示を受け取った場合、印刷エンジン１１の紙送機構等を制御して印刷開始に必要な状態を整える。そして、前記指示が印字を要求するものであった場合、所定単位分（例えば１パス分）の印刷イメージをイメージバッファから印刷エンジン１１に転送するともに、印刷エンジン１１を制御しながら印刷を実行する。
【００２６】
フォントデータ記憶手段２３は、複数のフォントについて、フォントデータを記憶している。フォントデータは、例えば、フォントヘッダ（フォントＩＤ、フォントサイズ、フォントスタイル、フォントウェイトなど）、該フォントに含まれる各文字についての文字ヘッダ（文字ＩＤ、文字幅、文字高など）及び文字イメージデータ（例えば、ビットイメージデータ、又はベクトルイメージデータ）等を含んで構成される。フォントデータ記憶手段２３は、フォントＩＤと文字ＩＤを検索キーとして、対応する文字のイメージデータ等を抽出できるデータ構造となっていれば足り、原則として従来のフォントデータと同様のデータ構造とすることができる。例えば、文字ＩＤとして従来の文字コードを用いてもよい。
【００２７】
なお、プリンタ１は、通信ネットワークを介してフォントデータをダウンロードしたり、所定の記憶媒体を介してフォントデータをインストールすることで、フォントデータ記憶手段２３を更新できる構成となっていることが望ましい。
【００２８】
コード対応フォント記憶手段２４は、ユニコードで特定される各文字と、該文字を出力する際に用いるフォントとの対応関係を記憶している。コード対応フォント記憶手段２４のデータ構造は、例えば図３に示すような、ユニコードと、フォントＩＤ及び文字ＩＤの組み合わせとを対応づけた表構造とすることができる。または、ユニコードと既存の文字コードとの変換テーブルと、既存の文字コードで特定される各文字と、該文字を出力する際に用いるフォントとの対応関係を記憶する構成としてもよい。
【００２９】
ここで、ユニコードで特定される所定文字について出力可能なフォントが複数ある場合、どのフォントで出力するかについてユーザが指定でき、かかる指定に応じてコード対応フォント記憶手段２４を更新できることが望ましい。この場合、ホスト装置において印刷ジョブ中に上記の指定情報を含め、プリンタ１において印刷ジョブから抽出した指定情報に基づいて対応関係を更新する構成や、プリンタに１おいてＬＣＤパネル等１６を介してユーザから直接指定を受け付けて対応関係を更新する構成などが考えられる。
【００３０】
オフセット記憶手段２５は、フォントデータ記憶手段２３に記憶される各フォントについて、文字配置に関するオフセットを記憶している。オフセットは、複数のフォントによる文字を１ラインに出力した場合にライン内の文字配置バランスが整うように予め設定されたフォント間の相対的なずれ量であり、例えば横書き出力の場合であれば、所定の文字サイズ（以下、「オフセット設定サイズ」と呼ぶ。）で出力した場合における縦方向（上下方向）のずれ量（ドット数）により表すことができる。オフセット記憶手段２５のデータ構造は、例えば図４に示すような、オフセットの基準となるフォントを行とし、オフセットを与えるフォントを列とした、マトリクス構造とすることができる。
【００３１】
（文字配置の調整）
以下、図５を参照して、文字配置を調整しながら文字データの印刷イメージを生成する場合の処理フローについて説明する。なお、各ステップは処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。
【００３２】
まず、解析手段２１は、受信バッファから印刷データを読み出して解析し、印刷データ中の文字データにユニコードによる文字の指定が含まれているかどうかを判断する（Ｓ１００）。ユニコードによる文字指定がある場合、１ライン中に複数のフォントによる文字が混在する可能性があるからである。
【００３３】
ユニコードによる文字の指定が含まれていない場合、文字データについて従来と同様に印刷イメージを生成する（Ｓ１０９）。
【００３４】
一方、ユニコードによる文字指定が含まれている場合は、ユニコードで指定される各文字について使用するフォントを選択する（Ｓ１０１）。具体的には、コード対応フォント記憶手段２４を参照して、ユニコードとの対応関係に基づき、各文字についてフォントＩＤ及び文字ＩＤを選択する。
【００３５】
次に、解析手段２１は、ライン（１行又は１列に出力する文字列）ごとに、該ライン中の各文字について選択した使用フォント（以下、「ライン使用フォント」と呼ぶ。）の数に基づいて、ライン内の文字配置調整を行うかどうかを判断する（Ｓ１０２）。
【００３６】
ライン使用フォントが１つの場合は、該ラインについて従来と同様に印刷イメージを生成し（Ｓ１１０）、次のラインの処理へ移行する。
【００３７】
一方、ライン使用フォントが複数ある場合は、該ラインについて、ライン使用フォントの中から基準となるフォントを決定する（Ｓ１０３）。ライン使用フォントのうちの１つを基準フォントとすることで、出力する文字列の中身に応じて適切にライン内の文字配置バランスを調整することが可能となる。
【００３８】
基準フォントの決定方法としては、例えば予め各フォントについて優先度を設定しておき、選択したフォントのうち優先度が最も高いフォントを基準フォントとする構成が考えられる。一方、ユーザが基準フォントを指定できる構成としてもよい。この場合、ホスト装置において印刷ジョブ中に上記の指定情報を含め、プリンタにおいて印刷ジョブから抽出した指定情報に基づいて基準フォントを決定する構成や、プリンタにおいてＬＣＤパネル等を介してユーザから直接指定を受け付けて基準フォントを決定する構成などが考えられる。
【００３９】
次に、解析手段２１は、オフセット記憶手段２５を参照して、前記決定した基準フォントに基づき、ライン使用フォントに対応するオフセットを読み出す（Ｓ１０４）。
【００４０】
次に、解析手段２１は、ライン使用フォントごとに、オフセット設定サイズと、印刷ジョブで指定された出力文字サイズ（又は、ＬＣＤパネル等で指定された出力文字サイズ）とに基づき、出力文字サイズに対応するオフセット（以下、「修正オフセット」と呼ぶ。）を求める（Ｓ１０５）。例えば、オフセット設定サイズが１０ポイント、出力文字サイズが２０ポイント、オフセットが１ドットの場合、修正オフセットは１×（２０／１０）＝２ドットとなる。
【００４１】
次に、解析手段２１は、対象とするライン中の各文字について順に、文字配置を調整しながら印刷イメージを生成する（Ｓ１０６〜Ｓ１０８）。
【００４２】
具体的には、まずフォントデータ記憶手段２３を参照し、処理対象となる文字について選択したフォントＩＤ及び文字ＩＤに基づき、該文字のフォントサイズ、文字イメージデータ等を読み出す（Ｓ１０６）。
【００４３】
次に、前記読み出した文字イメージデータについて、前記読み出したフォントサイズから、印刷ジョブ等で指定された出力文字サイズへ、サイズ変換する（Ｓ１０７）。サイズ変換は、文字イメージデータの形式（ビットイメージデータやベクトルイメージデータ）に応じて、従来と同様に行うことができる。
【００４４】
次に、サイズ変換後の文字イメージデータを、該文字について選択したフォントの修正オフセットに基づき文字配置を調整して（展開位置をずらして）、イメージバッファに格納する（Ｓ１０８）。
【００４５】
解析手段２１は、処理対象とするライン中の全文字についてＳ１０６〜Ｓ１０８までの工程を繰り返し行う。そして、該ラインについて印刷イメージの生成が終了した段階で、次のラインがある場合はＳ１０２に戻り、無い場合は次の印刷データ（又は文字データ以外のデータ）の処理へ移行する。
【００４６】
図６（ａ）に横書き出力に対して本発明を適用した場合の例を示す。図に示すように、かかる例では、１ライン中に１バイト系フォントによる「Ａ」「Ｂ」等の文字と、２バイト系フォントによる「あ」「い」等の文字が混在して出力されている。また、オフセットは縦方向（上下方向）のずれ量により表されており、１バイト系フォントの修正オフセットは０（すなわち、１バイト系フォント＝基準フォント）、２バイト系フォントの修正オフセットは−２ドットとなっている（図において上方向を＋方向とする）。図６（ａ）からわかるように、本発明を適用して文字データを出力した場合、従来のようにオフセットを考慮せずに出力した場合に比べて（図６（ｂ）参照）、複数のフォント間における文字配置がオフセットに基づいて上下方向に調整され、ライン内の文字配置バランスが整って出力されていることがわかる。
【００４７】
このように、本実施形態では、ライン内の文字配置バランスが整うように予め設定されたフォント間の相対的なずれ量、すなわち文字配置に関するオフセットを記憶しておき、かかるオフセットに基づいて文字の配置を調整しながら出力する構成としているため、例えばユニコード等の標準的な文字コード体系で文字が指定された結果、１ライン中に複数のフォントによる文字が混在するような場合でも、フォント間の位置ずれを解消して、ライン内の文字配置バランスを良好に保って出力することが可能となる。
【００４８】
（その他）
本発明は上記実施形態に限定されることなく、種々に変形して適用することが可能である。
【００４９】
例えば、上記実施形態では、使用フォントを選択し、基準フォントを決定し、そして使用フォントそれぞれについて対応するオフセットを求めた上で、ユニコードにより指定された各文字について順に、文字配置を調整しながら印刷イメージを生成する構成としているが、基準フォントを固定とするか、最初の文字について使用するフォントを基準フォントとする等の構成を採用することで、ユニコードにより指定された各文字について順に、使用フォントを選択し、対応するオフセットを求め、文字配置を調整しながら印刷イメージを生成する構成とすることもできる。
【００５０】
また例えば、基準フォントからの相対的な位置ずれをオフセットとする代わりに、ライン内に絶対位置を定め、かかる絶対位置からの位置ずれをオフセットとして用いる構成としてもよい（図６（ｃ）参照）。この場合も上記同様、ユニコードにより指定された各文字について順に、使用フォントを選択し、対応するオフセットを求め、文字配置を調整しながら印刷イメージを生成する構成とすることができる。
【００５１】
また例えば、上記実施形態では、ユニコードによる文字指定の有無に基づき、１ライン中に複数のフォントによる文字が混在するかどうかを判断する構成としているが、本発明はこのような構成に限られるものではない。例えば、ユニコード以外の標準的な文字コードに基づいて上記判断を行う構成としてもよく、またはプリンタ１において上記判断を行う代わりに、ホスト装置等から混在することを示す情報を受け付けた場合にＳ１０１以降の処理を適用する構成としてもよい。
【００５２】
また例えば、上記実施形態では、ラインごとに文字位置調整を行うかどうかを判断する構成としているが、印刷ジョブやページごとにかかる判断を行う構成としてもよい。同様に、上記実施形態では、ラインごとに基準フォントを決定する構成としているが、印刷ジョブやページごとに基準フォントを決定する構成としてもよい。
【００５３】
最後に、本発明の文字処理技術は、例えばインクジェットプリンタ、レーザプリンタ、ラベルプリンタ等の一般的にプリンタと呼ばれる機器のほか、画像形成機能を備えた種々の情報処理装置（コピー機、ファックス、ハンディターミナルなど）に対しても適用できる。また、プリンタ以外の装置、例えばパソコンや文字表示装置等において文字を出力する場合にも適用可能である。この場合、上記実施形態における印刷データや印刷イメージは、出力データや出力イメージとして把握されることになる。
【００５４】
【発明の効果】
本発明によれば、１ライン中に複数のフォントによる文字が混在する場合に、複数のフォント間における文字配置を調整し、ライン内の文字配置バランスを整えて出力することができる。
【図面の簡単な説明】
【図１】第１実施形態におけるプリンタのハードウェア構成を示すブロック図である。
【図２】第１実施形態におけるプリンタ制御部の機能構成図を示すブロック図である。
【図３】コード対応フォント記憶手段のデータ構造を説明するための図である。
【図４】オフセット記憶手段のデータ構造を説明するための図である。
【図５】文字配置を調整しながら印刷イメージを生成する処理の流れを示すフローチャートである。
【図６】本発明を適用した場合の出力例を説明するための図である。
【符号の説明】
１　プリンタ、２　動力機構部、３　プリンタ制御部、１０　給紙機構、１１印刷エンジン、１２　排紙機構、１３　ＣＰＵ、１４　ＲＯＭ、１５　ＲＡＭ、１６　ＬＣＤパネル及びＬＣＤコントローラ、１７　通信インタフェース、２０　受信手段、２１　解析／文字処理／イメージ生成手段、２２　印刷制御手段、２３　フォントデータ記憶手段、２４　コード対応フォント記憶手段、２５　オフセット記憶手段
【図１】
2004126311.tif 000003
【図２】
2004126311.tif 000004
【図３】
2004126311.tif 000005
【図４】
2004126311.tif 000006
【図５】
2004126311.tif 000007
【図６】
2004126311.tif 000008