(57)【特許請求の範囲】
【請求項１】
複数の文字を含むテキストを処理する装置であって、
前記テキストのためのフォントとして、あるフォントが指定された前記テキストを取得する取得手段と、
前記テキストを描画する際に用いられるフォントと、前記あるフォントとを比較する比較手段と、
前記あるフォントとは異なるフォントが用いられて描画される文字を、前記比較の結果に基づいて、前記テキストの中から特定し、前記特定された文字のためのフォントとして、前記異なるフォントを、前記あるフォントの代わりに指定する指定手段と、
を有することを特徴とする装置。
【請求項２】
前記指定手段は、前記比較の結果が、前記テキストの一部の文字を描画する際に用いられる前記フォントが前記あるフォントと異なることを示す場合に、前記一部の文字のためのフォントとして、前記異なるフォントを、前記あるフォントの代わりに指定することを特徴とする請求項１に記載の装置。
【請求項３】
前記指定手段は、
前記比較の結果が、前記テキストの一部の文字を描画する際に用いられる前記フォントが前記あるフォントと異なり、且つ、前記テキストの残りの部分の文字を描画する際に用いられたフォントが前記あるフォントと同じであることを示す場合に、
前記一部の文字のためのフォントとして、前記テキストの一部の文字を描画する際に用いられる前記フォントを、前記あるフォントの代わりに指定し、
前記残りの部分の文字のためのフォントとして、前記あるフォントを指定することを特徴とする請求項１に記載の装置。
【請求項４】
前記テキストに対して取り消し線または下線による装飾が施されている場合に、前記装飾を描画するための情報を記憶する記憶手段をさらに有し、
前記記憶された情報は、前記指定手段による前記指定が行われた後の前記テキストを描画する際に用いられることを特徴とする請求項３に記載の装置。
【請求項５】
前記情報は、前記取り消し線または下線の、始点および終点の座標、または、線の太さのうちの少なくとも１つの情報を含むことを特徴とする請求項４に記載の装置。
【請求項６】
前記テキストを描画する際に用いられる前記フォントは、前記テキストをディスプレイに表示させるための描画に用いられたフォントと同じフォントであることを特徴とする請求項１乃至５の何れか１項に記載の装置。
【請求項７】
前記テキストを描画する際に用いられるフォントとは、前記テキストの描画のために第１の描画手段が用いたフォントであることを特徴とする請求項１乃至６の何れか１項に記載の装置。
【請求項８】
前記比較手段は、第１の描画手段が前記テキストを描画した結果を取得し、前記取得された結果から、前記テキストを描画する際に用いられる前記フォントを特定し、
前記指定手段は、前記あるフォントで前記テキストを描画できない場合に前記あるフォントの代わりに前記特定されるフォントと異なるフォントで前記テキストを描画する第２の描画手段に、前記指定手段による前記指定が行われた後の前記テキストを出力することを特徴とする請求項１乃至７の何れか１項に記載の装置。
【請求項９】
前記第１の描画手段は、テキストに指定されたフォントで描画できない当該テキストの一部の文字のみを、当該指定されたフォントの代わりに、当該指定されたフォントとは異なるフォントを用いて描画し、
前記第２の描画手段は、テキストに指定されたフォントで描画できない当該テキストの一部の文字を含む当該テキストの全体を、当該指定されたフォントの代わりに、当該指定されたフォントとは異なるフォントを用いて描画することを特徴とする請求項８に記載の装置。
【請求項１０】
複数の文字を含むテキストを処理する方法であって、
前記テキストのためのフォントとして、あるフォントが指定された前記テキストを取得する取得工程と、
前記テキストを描画する際に用いられるフォントと、前記あるフォントとを比較する比較工程と、
前記あるフォントとは異なるフォントが用いられて描画される文字を、前記比較の結果に基づいて、前記テキストの中から特定し、前記特定された文字ためのフォントとして、前記異なるフォントを、前記あるフォントの代わりに指定する指定工程と、
を有することを特徴とする方法。
【請求項１１】
前記指定工程は、前記比較の結果が前記テキストの一部の文字を描画する際に用いられる前記フォントが前記あるフォントと異なることを示す場合に、前記一部の文字のためのフォントとして、前記異なるフォントを、前記あるフォントの代わりに指定することを特徴とする請求項１０に記載の方法。
【請求項１２】
前記指定工程は、
前記比較の結果が、前記テキストの一部の文字を描画する際に用いられる前記フォントが前記あるフォントと異なり、且つ、前記テキストの残りの部分の文字を描画する際に用いられたフォントが前記あるフォントと同じであることを示す場合に、
前記一部の文字のためのフォントとして、前記テキストの一部の文字を描画する際に用いられる前記フォントを、前記あるフォントの代わりに指定し、
前記残りの部分の文字のためのフォントとして、前記あるフォントを指定することを特徴とする請求項１０に記載の方法。
【請求項１３】
前記テキストに対して取り消し線または下線による装飾が施されている場合に、前記装飾を描画するための情報を記憶する記憶工程をさらに有し、
前記記憶された情報は、前記指定工程による前記指定が行われた後の前記テキストを描画する際に用いられることを特徴とする請求項１２に記載の方法。
【請求項１４】
前記情報は、前記取り消し線または下線の、始点および終点の座標、または、線の太さのうちの少なくとも１つの情報を含むことを特徴とする請求項１３に記載の方法。
【請求項１５】
前記テキストを描画する際に用いられる前記フォントは、前記テキストをディスプレイに表示させるための描画に用いられたフォントと同じフォントであることを特徴とする請求項１０乃至１４の何れか１項に記載の方法。
【請求項１６】
前記テキストを描画する際に用いられるフォントとは、前記テキストの描画のために第１の描画手段が用いたフォントであることを特徴とする請求項１０乃至１５の何れか１項に記載の方法。
【請求項１７】
前記比較工程は、第１の描画手段が前記テキストを描画した結果を取得し、前記取得された結果から、前記テキストを描画する際に用いられる前記フォントを特定し、
前記指定工程は、前記あるフォントで前記テキストを描画できない場合に前記あるフォントの代わりに前記特定されるフォントと異なるフォントで前記テキストを描画する第２の描画手段に、前記指定工程による前記指定が行われた後の前記テキストを出力することを特徴とする請求項１０乃至１６の何れか１項に記載の方法。
【請求項１８】
前記第１の描画手段は、テキストに指定されたフォントで描画できない当該テキストの一部の文字のみを、当該指定されたフォントの代わりに、当該指定されたフォントとは異なるフォントを用いて描画し、
前記第２の描画手段は、テキストに指定されたフォントで描画できない当該テキストの一部の文字を含む当該テキストの全体を、当該指定されたフォントの代わりに、当該指定されたフォントとは異なるフォントを用いて描画することを特徴とする請求項１７に記載の方法。
【請求項１９】
請求項１０乃至１８の何れか１項に記載の各工程をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書アプリケーションにおいて、表示時と出力時に異なるフォント描画システムを利用した際に、表示時と出力時のフォントを同一の描画結果とする装置に関する。
【背景技術】
【０００２】
従来、フォント描画システムにおいて、１つのフォントを指定した文字列に対して、出力命令を行う場合、指定したフォントが出力する環境に存在しない時、自動的に出力する環境に存在するフォントに代替して出力する機能が存在する（特許文献１）。
【０００３】
また、フォント置き換え機能を有する複数の印刷データ生成部をページ毎に切り替えて使用して印刷データを出力するプリンタドライバにおいて、フォント置き換えに用いる物理フォントを全印刷データ生成部で統一可能な技術が存在する（特許文献２）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平６−３２５０３５号公報
【特許文献２】特開２００２−２５９１０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、フォント指定が一つしかできないテキスト文字列で指定フォントにない文字を別のフォントで代替表示するシステムにおいて、別のフォント描画システムにデータ出力する際に、表示と出力の描画結果が異なってしまうといった課題が発生する。
【０００６】
本発明は、上記の課題を解決するためになされたもので、本発明の目的は上記の状況において、表示と出力の描画結果を同一の結果にさせる仕組みを提供することである。
【課題を解決するための手段】
【０００７】
上記課題を解決するために本発明の装置は、複数の文字を含むテキストを処理する装置であって、前記テキストのためのフォントとして、あるフォントが指定された前記テキストを取得する取得手段と、前記テキストを描画する際に用いられるフォントと、前記あるフォントとを比較する比較手段と、前記あるフォントとは異なるフォントが用いられて描画される文字を、前記比較の結果に基づいて、前記テキストの中から特定し、前記特定された文字のためのフォントとして、前記異なるフォントを、前記あるフォントの代わりに指定する指定手段と、を有することを特徴とする。
【発明の効果】
【０００８】
本発明を適用することによって、表示と出力で異なるフォント描画システムを用いた場合でも、同一の描画結果を得ることができる。
【図面の簡単な説明】
【０００９】
【図１】文書アプリケーションを構成するシステム構成を示したブロック図
【図２】文書アプリケーションのソフトウェアの構成を示したブロック図
【図３】文書アプリケーションの文書表示部がディスプレイに表示する画面の一例を示した図
【図４】文書アプリケーションの出力データ生成部で作成したデータを別アプリケーションでディスプレイに表示する画面の一例を示した図
【図５】出力時のテキスト描画処理の手順を示したフローチャート
【図６】出力側描画処理の手順を示したフローチャート
【図７】文書表示部の描画結果と出力データ生成部の描画結果が異なる状態を示した図
【図８】出力データ生成部が文書表示部の描画結果と同一の描画結果を得る手段を示した図
【図９】入力されたテキスト文字列と表示された描画結果をフォント毎に分割したテキスト文字列のデータ構造を示した図
【図１０】文書表示部の取り消し線の描画結果と出力データ生成部の取り消し線の描画結果が異なる状態を示した図
【図１１】出力データ生成部が文書表示部の描画結果と同一の取り消し線の描画結果を得る手段を示した図
【図１２】テキストエディタ画面の一例を示した図
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【００１１】
図１は、本発明の実施に好適な、文書アプリケーションを有する文書処理装置として機能するＰＣ（パーソナルコンピュータ）を示したブロック図である。ＰＣ１００は、文書の内容を表示するディスプレイ１０１、文書編集を行う際に文字やフォントの入力値として利用されるキーボード／マウス１０２を備える。さらに、ＰＣ１００は、文書アプリケーション２００及び文書を保存する場所としてハードディスク１０３、ＲＡＭ１０４、ＣＤ−ＲＯＭ１０５を備え、プログラム実行を行うＣＰＵ１０６を備える。また、文書ファイル及び、文書ファイルを保存する場所はＰＣ内に限らず、ネットワークで接続されたＰＣ外の場所でも良い。
【００１２】
図２は、本発明の実施の形態の、文書アプリケーション２００のソフトウェアの構成を示したブロック図である。文書アプリケーション２００では、文書情報管理部２０３が文書ファイルデータベース２０６から文書ファイルを取得し、文書表示部２０１がディスプレイ１０１を通じて文書ファイルの内容を表示する。表示した内容を変更する場合、ユーザはキーボード／マウス１０２を通じて入力を行い、入力した値を文書編集部２０２が取得し、文書情報管理部２０３を通じて文書ファイルに反映させる。また、文書ファイルを印刷や別形式のデータとして出力する際には出力データ生成部２０４でデータの生成を行う。また、文書表示部２０１と出力データ生成部２０４は、文書内のテキストに対してそれぞれがフォント描画システムを持ち、描画に利用するフォントセットについてはフォントセットデータベース２０５から取得する。文書表示部２０１で利用するフォントセットと出力データ生成部２０４で利用するフォントセットは同一であることが前提である。ただし、異なるフォントセットである場合は、それぞれのフォントセットで共通するフォントのみ利用する仕組みとする。
【００１３】
図３は、文書表示部２０１がディスプレイ１０１に表示する画面の一例を示した図である。文書情報管理部２０３が文書ファイルデータベース２０６から取得した文書ファイルを文書表示ウィンドウ３０１に表示する。
【００１４】
図４は、出力データ生成部２０４で作成したデータの出力結果の一例を示した図である。出力データ生成結果４０１は、元の文書以外の形式となるため、別のアプリケーションで表示した結果や印刷結果などを示す。
【００１５】
次に、図１〜４、及び図５、図６のフローチャートを用いて、出力時のテキスト描画処理の手順を説明する。図５の出力時のテキスト描画処理は、アプリケーションで表示していたテキストをＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）にエクスポートする際に実行される。なお、図５、図６のフローに関わるプログラムは、ハードディスク１０３に記憶されており、ＲＡＭ１０４に読み出されＣＰＵ１０６によって実行される。
【００１６】
文書情報管理部２０３は、文書ファイルデータベース２０６から文書ファイルを取得し、文書表示部２０１に文書情報を渡す（Ｓ５０１）。次に、文書情報管理部２０３は文書表示部２０１がディスプレイ１０１のために描画したテキスト情報を取得する（Ｓ５０２）。この時、文書表示部２０１はディスプレイに表示は行わない。次に、文書情報管理部２０３は文書ファイルと、文書表示部２０１から取得したテキスト情報を比較し、表示される文字列に表示側フォント描画システムの代替フォントが存在するか判定する（Ｓ５０３）。
【００１７】
例えば、文書ファイルには、フォント選択命令「Ａｒｉａｌ」／文字列（文字コード）「ＡＢＣあいう１２３」が指定されたテキストが存在する。文書表示部２０１から取得したテキスト情報には、「ＡＢＣ」、「１２３」はフォント「Ａｒｉａｌ」で描画し、「あいう」はフォント「メイリオ」で描画したことを示すテキスト情報が存在する。文字ごとにフォントを比較し、この例では、「あいう」の部分のフォントが異なっているので代替されたと判定できる。
【００１８】
フォントの代替が行われていない時、文書情報管理部２０３はテキスト情報を出力データ生成部２０４に渡し、出力データ生成部２０４は出力データの生成を行う（Ｓ５０５）。フォントの代替が行われたとき、文書表示部２０１の描画結果と、出力データ生成部の描画結果を一致させるための処理を行う。まず、文書情報管理部２０３は、テキストに文字装飾がされているかを確認する（Ｓ５０４）。文字装飾がされている場合、線描画情報を取得する（Ｓ５０６）。この時線描画情報は文字装飾の下線・取り消し線を指し、線の太さ、高さ、始点、終点を取得する。テスト全体に下線・取り消し線を引くための情報であれば、これらの取得情報でなくてもよい。次に、文書情報管理部２０３は、テキストをフォント毎に複数のテキストに分割をし（Ｓ５０７）、出力データ生成部２０４に渡し、出力側描画処理を行う（Ｓ６００）。
【００１９】
テキストの分割処理では、例えば、前述の例で「あいう」の部分が代替されていたので、「あいう」の部分に代替フォントが指定できるように「ＡＢＣ」、「あいう」、「１２３」の３つに分割する。なお、分割の際、「ＡＢＣ」の部分のフォント選択命令は「Ａｒｉａｌ」、「あいう」の部分のフォント選択命令は「メイリオ」、「１２３」の部分のフォント選択命令は「Ａｒｉａｌ」とする。
【００２０】
出力データ生成部２０４は、分割されたテキストに対し、１つずつ描画処理を行う（Ｓ６０１）。この際、テキストの装飾情報を除外する（Ｓ６０２）。このとき除外する装飾情報は、下線や取り消し線を指す。除外せずにフォント毎に線情報を描画した場合、フォント毎に下線や取り消し線の太さと高さが異なるため、テキスト全体で１本の線にならず、ずれてしまう。次に、出力データ生成部２０４は、出力データ生成部２０４の持つフォント描画システムによってテキストの描画を行う（Ｓ６０３）。分割されたテキスト全ての描画が完了したとき、テキスト全体に対し線描画情報の描画を行う（Ｓ６０４）。
【実施例１】
【００２１】
本発明の図２〜１０に基づいて説明する。
【００２２】
本発明の第１の実施形態として、文書アプリケーションが図３，４のように、１つのテキストを１つのオブジェクトとして挿入することができるアプリケーションを例として説明する。文書には複数のテキストを挿入することが可能であるが、１つのテキストに対し、１つのフォントを指定することができる。
【００２３】
フォント「Ａｒｉａｌ」／文字列「ＡＢＣあいう１２３」が指定されたテキストが存在する文書ファイルを、別形式のファイルに出力するケースを例に挙げて説明する。文書ファイルは表示用フォント描画システムによってテキストを表示し、別形式のファイルは出力用フォント描画システムによってテキストを出力する。
【００２４】
まず、文書表示部２０１のフォント描画システムではテキスト内に指定したフォントでは表示できない文字が存在する場合、表示できない文字に対して代替フォント「メイリオ」で描画するシステムとする。一方、出力データ生成部２０４のもつフォント描画システムではテキスト内に指定したフォントでは表示できない文字が存在する場合、全ての文字列を代替フォント「ゴシック」で描画するシステムとする。本システムを用いずに、それぞれがフォント「Ａｒｉａｌ」／文字列「ＡＢＣあいう１２３」のテキストを描画する場合を考える。文書表示部２０１のフォント描画システムでは、フォント「Ａｒｉａｌ」は日本語の文字に対応していないため、「ＡＢＣ」、「１２３」はフォント「Ａｒｉａｌ」で描画し、「あいう」は代替フォント「メイリオ」で描画する。しかし、出力データ生成部２０４のもつフォント描画システムでは、「ＡＢＣあいう１２３」全てが代替フォント「ゴシック」で描画する。このように、本システムを用いない場合、それぞれの描画結果が異なってしまうケースが存在する。（図７）
本システムを用いた場合の、フォント「Ａｒｉａｌ」／文字列「ＡＢＣあいう１２３」のテキストの出力データ生成処理の説明を行う。まず、文書情報管理部２０３は出力データ生成部２０４にテキストを渡す前に、文書表示部２０１にテキストを渡し、文書表示部２０１の持つ表示用フォント描画システムによる描画結果のテキストを取得し、フォントが代替されているかを判定する。判定手段としては、表示用フォント描画システムから、描画結果として用いられたフォントと文字列のセットを取得し、描画時に使用したフォントが「Ａｒｉａｌ」でない場合、フォントが代替されたと判断できる。また、表示されている文字列を取得し、１文字ずつフォントを見て、「Ａｒｉａｌ」でないフォントが用いられている文字がある場合も、フォントが代替されたと判断できる。また、文書表示部２０１で使用しているフォント描画システムから、代替フォントとして使用されるフォントを取得し、そのフォントが使用されている場合はフォントが代替されていると判定できるが、手段はこれらの方法に限らなくて良い。
【００２５】
次に、文書表示部２０１から取得した描画結果を、フォント毎にテキスト分割を行う。文書表示部２０１から取得した描画結果をフォント毎に分割した場合、フォント「Ａｒｉａｌ」／文字列「ＡＢＣ」、フォント「メイリオ」／文字列「あいう」、フォント「Ａｒｉａｌ」／文字列「１２３」の３つのテキストに分割することができる。（図９）
次に、分割したテキストを１つずつ出力データ生成部２０４に渡す。これによって、文書表示部２０１で描画した結果と同一の描画結果を得ることができる。（図８）
また、テキストに下線や取り消し線が用いられている場合、出力データ生成部２０４では、それぞれのテキストがそれぞれのフォントに応じた下線と取り消し線が引かれてしまい、分割前のテキストと線の位置がずれてしまう。（図１０）そこで、文書情報管理部２０３では、分割前の下線と取り消し線の始点と終点の座標及び線の太さを線描画情報として記録しておく。出力データ生成部２０４では、テキストごとに下線と取り消し線を引かず、テキスト描画後に、文書情報管理部２０３が記録していた線描画情報を取得し、描画を行う。これによって下線・取り消し線の位置がずれることなく、表示と出力データを同一の描画結果にすることができる。（図１１）
【実施例２】
【００２６】
本発明の図２、図５〜１１に基づいて説明する。
【００２７】
本発明の第２の実施形態として、文書アプリケーションが図１２のように、１つの文書に対して、１つのフォントを指定するアプリケーションを例として説明する。文書内に指定したフォントが対応していない文字が存在する場合は、その文字は図１２のアプリケーションの持つフォント描画システムによって代替フォントが用いられるものとする。この場合、代替フォントが適用される範囲が文字単位でも文書単位でもよい。出力に用いるアプリケーションは前述にある図４のようなアプリケーションとする。
【００２８】
図１２のような文書アプリケーションから、出力データを生成する際には、一般的にテキスト全体または行単位で出力データ生成部２０４にテキストを渡される。本発明では、文書表示部２０１で表示されているテキストを、フォント単位で取得し、フォント単位で出力データ生成部２０４に渡す。そのため、１つの文書に対し、１つのフォントが割り当てられるような文書アプリケーションで代替フォントが用いられている場合でも、表示と出力で同一の描画結果を得ることができる。
【符号の説明】
【００２９】
２０１  文書表示部
２０３  文書情報管理部
２０４  出力データ生成部
２０５  フォントセットデータベース
３０１  文書表示ウィンドウ
【図１】
0005645481.tif 000002
【図２】
0005645481.tif 000003
【図３】
0005645481.tif 000004
【図４】
0005645481.tif 000005
【図５】
0005645481.tif 000006
【図６】
0005645481.tif 000007
【図７】
0005645481.tif 000008
【図８】
0005645481.tif 000009
【図９】
0005645481.tif 000010
【図１０】
0005645481.tif 000011
【図１１】
0005645481.tif 000012
【図１２】
0005645481.tif 000013