(57)【要約】【課題】  プリンタに対応するフォントが格納されていない場合であっても、確実にテキストをプリンタに印刷させることのできるテキスト処理装置を提供する。【解決手段】  文字コード群と前記文字コード群の書式とを取得する入力手段と、前記書式に対応する字形データ群を取得し、前記字形データ群に基づいて前記文字コード群に対応する文字列を表す画像を生成する文字画像生成手段と、前記画像を表示対象とする構造化言語で記述された印刷制御データを生成する制御データ生成手段と、前記画像及び前記印刷制御データを出力する出力手段と、を備えることを特徴とするテキスト処理装置。【選択図】    図１
2006127202.tif 000002
【特許請求の範囲】
【請求項１】
文字コード群と前記文字コード群の書式とを取得する入力手段と、
前記書式に対応する字形データ群を取得し、前記字形データ群に基づいて前記文字コード群に対応する文字列を表す画像を生成する文字画像生成手段と、
前記画像を表示対象とする構造化言語で記述された印刷制御データを生成する制御データ生成手段と、
前記画像及び前記印刷制御データを出力する出力手段と、
を備えることを特徴とするテキスト処理装置。
【請求項２】
前記文字コード群を単語単位で分解する分解手段をさらに備え、
前記文字画像生成手段は、前記分解手段の出力に基づいて単語毎に前記画像を生成し、
前記制御データ生成手段は、前記分解手段の出力に基づいて単語毎に表示対象を構造化した前記印刷制御データを生成することを特徴とする請求項１に記載のテキスト処理装置。
【請求項３】
前記文字コード群を文字単位で分解する分解手段をさらに備え、
前記文字画像生成手段は、前記分解手段の出力に基づいて文字毎に前記画像を生成し、
前記制御データ生成手段は、前記分解手段の出力に基づいて文字毎に表示対象を構造化した前記印刷制御データを生成することを特徴とする請求項１に記載のテキスト処理装置。
【請求項４】
前記文字画像生成手段は、１ページに配置された全ての表示対象オブジェクトを表す前記画像をページ毎に生成し、
前記制御データ生成手段は、最小の構造単位がページである前記印刷制御データを生成することを特徴とする請求項１に記載のテキスト処理装置。
【請求項５】
前記文字画像生成手段は、１ページに配置された全ての文字列のみを表す前記画像をページ毎に生成することを特徴とする請求項１に記載のテキスト処理装置。
【請求項６】
前記入力手段は、構造化言語で記述された入力データから前記文字コード群と前記書式とを取得し、
前記制御データ生成手段は、前記入力データに基づいて前記印刷制御データを生成することを特徴とする請求項１〜５のいずれか一項に記載のテキスト処理装置。
【請求項７】
前記入力手段は、構造化言語で記述された入力データから前記文字コード群と前記書式とを取得し、
前記文字画像生成手段は、前記入力データの構造単位毎に前記画像を生成し、
前記制御データ生成手段は、前記入力データの構造単位毎に表示対象を構造化した前記印刷制御データを前記入力データに基づいて生成することを特徴とする請求項１に記載のテキスト処理装置。
【請求項８】
前記文字コード群の言語を判定する言語判定手段と、
前記文字画像生成手段が生成する前記画像がそれぞれ表す文字列単位を前記文字コード群の言語に応じて変更する変更手段と、
をさらに備えることを特徴とする請求項１〜７のいずれか一項に記載のテキスト処理装置。
【請求項９】
前記入力手段は、構造化言語で記述された入力データから前記文字コード群と前記書式とを取得し、
前記入力データを出力する第二出力手段と、
前記書式に対応する前記字形データ群が前記プリンタに格納されているか否かを判定し、前記書式に対応する前記字形データ群が前記プリンタに格納されていない場合、前記出力手段に前記画像及び前記印刷制御データを出力させ、前記前記書式に対応する前記字形データ群が前記プリンタに格納されている場合、前記第二出力手段に前記入力データを出力させるプリンタ判定手段と、
をさらに備えることを特徴とする請求項１〜８のいずれか一項に記載のテキスト処理装置。
【請求項１０】
文字コード群と前記文字コード群の書式とを取得する入力段階と、
前記書式に対応する字形データ群を取得し、前記字形データ群に基づいて前記文字コード群に対応する文字列を表す画像を生成する文字画像生成段階と、
前記画像を表示対象とする構造化言語で記述された印刷制御データを生成する制御データ生成段階と、
前記画像及び前記印刷制御データを出力する出力段階と、
を含むことを特徴とするテキスト処理方法。
【請求項１１】
文字コード群と前記文字コード群の書式とを取得する入力手段と、
前記書式に対応する字形データ群を取得し、前記字形データ群に基づいて前記文字コード群に対応する文字列を表す画像を生成する文字画像生成手段と、
前記画像を表示対象とする構造化言語で記述された印刷制御データを生成する制御データ生成手段と、
前記画像及び前記印刷制御データを出力する出力手段と、
してコンピュータを機能させることを特徴とするテキスト処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はテキスト処理装置、方法及びプログラムに関し、特にフォントの処理に関する。
【背景技術】
【０００２】
近年、Ｗ３ＣによってXHTML-printが規格化された。XHTML-printは、携帯電話機等のハードウェアリソースが貧弱な装置でプリンタに印刷を実行させるための規格である。XHTML-printでは、フォントをどの装置に格納すべきかや、使用可能なフォントを定義していない。したがって、対応するフォントがないプリンタにXHTML-printフォーマットの印刷対象データを印刷させると、「□」等の読解不能な記号が印刷されることになる。また、印刷対象データに対応する全フォントをプリンタに格納しようとした場合、特に漢字等の２バイト文字を使用する地域ではプリンタのメモリに大きな容量が必要になる。
【０００３】
【特許文献１】特開２００４−１９２５７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、上述の問題に鑑みて創作されたものであって、プリンタに対応するフォントが格納されていない場合であっても、確実にテキストをプリンタに印刷させることのできるテキスト処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
（１）  上記目的を達成するためのテキスト処理装置は、文字コード群と前記文字コード群の書式とを取得する入力手段と、前記書式に対応する字形データ群を取得し、前記字形データ群に基づいて前記文字コード群に対応する文字列を表す画像を生成する文字画像生成手段と、前記画像を表示対象とする構造化言語で記述された印刷制御データを生成する制御データ生成手段と、前記画像及び前記印刷制御データを出力する出力手段と、を備える。
本発明によると、文字コード群の、その書式に応じた文字列を表す画像を字形データ群に基づいて生成し、その画像を表示対象とする構造化言語で記述された印刷制御データとともにその画像を出力する。このため本発明によると、プリンタに文字コード群の書式に応じた字形データ群が格納されていない場合であっても、印刷制御データと画像を入力したプリンタに、確実にテキストを印刷させることができる。
【０００６】
（２）  前記テキスト処理装置は、前記文字コード群を単語単位で分解する分解手段をさらに備えてもよい。また前記文字画像生成手段は、前記分解手段の出力に基づいて単語毎に前記画像を生成してもよい。また前記制御データ生成手段は、前記分解手段の出力に基づいて単語毎に表示対象を構造化した前記印刷制御データを生成してもよい。
本発明によると、単語単位で文字列を表す画像を生成して出力するため、一度にメモリに展開する必要のある画像のサイズが小さくなる。したがって本発明によると、テキスト処理装置のメモリ容量が小さい場合であっても、プリンタに確実にテキストを印刷させることができる。また複数のレイヤに文字列や画像が配置され、各レイヤに配置されたオブジェクトが重なっている場合でも、レイヤの上下関係が忠実に印刷結果として反映されるようにテキストをプリンタに印刷させることができる。
【０００７】
（３）  前記テキスト処理装置は、前記文字コード群を文字単位で分解する分解手段をさらに備えてもよい。また前記文字画像生成手段は、前記分解手段の出力に基づいて文字毎に前記画像を生成してもよい。また前記制御データ生成手段は、前記分解手段の出力に基づいて文字毎に表示対象を構造化した前記印刷制御データを生成してもよい。
本発明によると、文字単位で文字列を表す画像を生成して出力するため、一度にメモリに展開する必要のある画像のサイズが小さくなる。したがって本発明によると、テキスト処理装置のメモリ容量が小さい場合であっても、プリンタに確実にテキストを印刷させることができる。また複数のレイヤにテキスト列や画像が配置され、各レイヤに配置されたオブジェクトが重なっている場合でも、レイヤの上下関係が忠実に印刷結果として反映されるようにテキストをプリンタに印刷させることができる。
【０００８】
（４）  前記文字画像生成手段は、１ページに配置された全ての表示対象オブジェクトを表す前記画像をページ毎に生成してもよい。また前記制御データ生成手段は、最小の構造単位がページである前記印刷制御データを生成してもよい。
本発明によると、プリンタで展開すべき画像数を１ページについて１つにできるため、プリンタのハードウェアリソースの使用量を低減することができる。
【０００９】
（５）  前記文字画像生成手段は、１ページに配置された全ての文字列のみを表す前記画像をページ毎に生成してもよい。
本発明によると、プリンタで展開すべき画像数を１ページの全文字列について１つにできるため、プリンタのハードウェアリソースの使用量を低減することができる。また本発明によると、文字列については文字列のみを表す画像を生成して出力するため、表示対象オブジェクトとして画像が含まれていても、文字列のみを表す画像と、表示対象オブジェクトとして元から画像である画像とを、別々のフォーマットで出力することができる。したがって本発明によると、表示対象オブジェクトに応じて出力フォーマットを選択することによって、画質劣化を抑制しながら出力データサイズを低減することができる。具体的には例えば、表示対象オブジェクトとして元から画像である画像には、不可逆圧縮により高い圧縮率が得られるフォーマットを選択し、図形文字列のみを表す画像には、画質劣化のない可逆圧縮のフォーマットを選択することができる。
【００１０】
（６）  前記入力手段は、構造化言語で記述された入力データから前記文字コード群と前記書式とを取得してもよい。また前記制御データ生成手段は、前記入力データに基づいて前記印刷制御データを生成してもよい。
本発明によると、構造化言語で記述された入力データに対応する字形データ群がプリンタに格納されていない場合であっても、確実に入力データに含まれるテキストをプリンタに印刷させることができる。
【００１１】
（７）  前記入力手段は、構造化言語で記述された入力データから前記文字コード群と前記書式とを取得してもよい。また前記文字画像生成手段は、前記入力データの構造単位毎に前記画像を生成してもよい。前記制御データ生成手段は、前記入力データの構造単位毎に表示対象を構造化した前記印刷制御データを前記入力データに基づいて生成してもよい。
本発明によると、入力データの構造単位毎に画像を生成するため、一度にメモリに展開する必要のある画像のサイズが小さくなる。したがって本発明によると、テキスト処理装置のメモリ容量が小さい場合であっても、プリンタに確実にテキストを印刷させることができる。また複数のレイヤに文字列や画像が配置され、各レイヤに配置されたオブジェクトが重なっている場合でも、レイヤの上下関係が忠実に印刷結果として反映されるようにテキストをプリンタに印刷させることができる。また本発明によると、文字毎又は単語毎に画像を出力する場合に比べ、プリンタに入力される画像数を低減できるため、プリンタのメモリ容量が小さくても、プリンタにテキストを確実に印刷させることができる。また本発明によると、文字毎又は単語毎に画像を出力する場合に比べ、プリンタに入力される画像数を低減できるため、プリンタにテキストを高速に印刷させることができる。
【００１２】
（８）  前記テキスト処理装置は、前記文字コード群の言語を判定する言語判定手段と、前記文字画像生成手段が生成する前記画像がそれぞれ表す文字列単位を前記文字コード群の言語に応じて変更する変更手段と、をさらに備えてもよい。
日本語や中国語のように単語間に空白を挿入せずに文を記述する言語では、文のどこで改行されても文が解読不能になることはない。これに対し、英語やドイツ語のように単語間に空白を挿入して文を記述する言語では、単語の途中で改行されると文が解読不能になる。また、構造化言語で一つの構造単位の表示対象とされた複数の画像は、その構造単位に指定された領域内に印刷される。しかし、同一の構造単位に属している複数の画像が同一行又は同一列に印刷される保障はない。したがって、単語間に空白が挿入される言語の場合、文字単位の画像が構造化言語で記述された印刷制御データの表示対象になると、印刷結果が解読不能になる。本発明によると、画像が表す文字列単位を言語に応じて変更するため、印刷された文字列が改行により解読不能になることを防止することができる。
【００１３】
（９）  前記入力手段は、構造化言語で記述された入力データから前記文字コード群と前記書式とを取得してもよい。前記テキスト処理装置は、前記入力データを前記プリンタに出力する第二出力手段と、前記書式に対応する前記字形データ群が前記プリンタに格納されているか否かを判定し、前記書式に対応する前記字形データ群が前記プリンタに格納されていない場合、前記出力手段に前記画像及び前記印刷制御データを出力させ、前記書式に対応する前記字形データ群が前記プリンタに格納されている場合、前記第二出力手段に前記入力データを出力させるプリンタ判定手段と、をさらに備えてもよい。
本発明によると、文字コード群の書式に対応する字形データ群がプリンタに格納されている場合には、構造化言語で記述された入力データを出力するため、処理量を低減して高速化することができる。
【００１４】
（１０）  上記目的を達成するための本発明によるテキスト処理方法は、文字コード群と前記文字コード群の書式とを取得する入力段階と、前記書式に対応する字形データ群を取得し、前記字形データ群に基づいて前記文字コード群に対応する文字列を表す画像を生成する文字画像生成段階と、前記画像を表示対象とする構造化言語で記述された印刷制御データを生成する制御データ生成段階と、前記画像及び前記印刷制御データを出力する出力段階と、を含む。
本発明によると、プリンタに文字コード群の書式に応じた字形データ群が格納されていない場合であっても、印刷制御データと画像を入力したプリンタに、確実にテキストを印刷させることができる。
【００１５】
（１１）  上記目的を達成するための本発明によるテキスト処理プログラムは、文字コード群と前記文字コード群の書式とを取得する入力手段と、前記書式に対応する字形データ群を取得し、前記字形データ群に基づいて前記文字コード群に対応する文字列を表す画像を生成する文字画像生成手段と、前記画像を表示対象とする構造化言語で記述された印刷制御データを生成する制御データ生成手段と、前記画像及び前記印刷制御データを出力する出力手段と、してコンピュータを機能させる。
本発明によると、プリンタに文字コード群の書式に応じた字形データ群が格納されていない場合であっても、印刷制御データと画像を入力したプリンタに、確実にテキストを印刷させることができる。
【００１６】
尚、請求項に記載された方法の各動作の順序は、技術上の阻害要因がない限り、記載順に限定されるものではなく、どのような順番で実行されてもよく、また同時に実行されてもよい。
尚、本発明に備わる複数の手段の各機能は、構成自体で機能が特定されるハードウェア資源、プログラムにより機能が特定されるハードウェア資源、又はそれらの組み合わせにより実現される。また、これら複数の手段の各機能は、各々が物理的に互いに独立したハードウェア資源で実現されるものに限定されない。
【発明を実施するための最良の形態】
【００１７】
以下、複数の実施例に基づいて本発明の実施の形態を説明する。各実施例において同一の符号が付された構成要素は、その符号が付された他の実施例の構成要素と対応する。
図１は、後述する複数の実施例に共通する概要を説明するための模式図である。
後述する複数の実施例では、入力された書式付テキスト１０に対応するフォントがプリンタ２に格納されていない場合に、その書式付テキスト１０を文字画像１６に変換し、文字画像１６と、文字画像１６を表示対象とする構造化言語で記述された印刷制御データ１４とをプリンタ２に出力する、テキスト処理装置としての携帯電話機１について説明する。尚、テキスト処理装置として携帯電話機を例示するが、本発明は、ＰＤＡ、ノート型パソコン、デスクトップ型パソコン等の携帯電話機以外の情報処理装置にも適用することができる。
【００１８】
携帯電話機１は、ｗｅｂサーバからxhtmlファイルをダウンロードするなどして印刷対象データを取得する。ダウンロードしたxhtmlファイルの表示対象である書式付テキスト１０のフォントがプリンタ２に格納されていない場合に、ダウンロードしたxhtmlファイル等の印刷対象データをそのままプリンタ２に出力すると、書式付テキスト１０は解読不能な形態で印刷される。そこで以下の実施例では、このような場合には、携帯電話機１に格納されているフォントデータベース１２を用いて携帯電話機１が書式付テキスト１０を表す文字画像１６を生成し、生成した文字画像１６が表示対象になるxhtml-printファイルを生成してプリンタ２に出力する。プリンタ２は、入力されたxhtml-printファイルを解析し、文字画像１６を携帯電話機１から取得して印刷データを生成し、印刷物１８を出力する。
尚、印刷対象データのフォーマットは、xhtmlファイルで説明するが、ＸＭＬファイル等の他の構造化言語で記述されたものでもよいし、HTMLファイル等の他のマークアップ言語で記述されたものでもよいし、リッチテキストファイルのようにマークアップ言語以外で記述されたものでもよい。また、書式付テキストを文字画像に変換する単位は、以下の実施例に示す単語単位等の他、どのような単位であってもよく、例えば段落単位、行単位、文単位でもよい。具体的には例えばリッチテキストファイルの行単位に書式付テキストを文字画像に変換してもよい。
【００１９】
（第一実施例）
本発明の第一実施例では、携帯電話機１は単語単位又は文字単位で文字画像を生成し、文字コードの代わりに単語単位又は文字単位の文字画像をプリンタに出力する。
図２は、携帯電話機１及びプリンタ２のハードウェア構成を示すブロック図である。
はじめに携帯電話機１について説明する。
通信部２４は、無線公衆回線を通じて送話データ、受話データ、テキスト、画像等を他の携帯電話機、ウェブサーバ等と送受信する。
通話部２６は、マイク、スピーカ、音声処理回路等を備え、マイクから入力される音声に基づいて送話データを出力し、通信部２４から出力される受話データに基づいてスピーカから音声を出力する。
操作部２２は、電源スイッチ、テンキー、ジョグダイヤル等の各種のスイッチを備え、発信先電話番号を入力したり、文字を入力するために用いられる。
表示部２０は、ＬＣＤ、グラフィックコントローラ等を備え、ウェブサーバからダウンロードしたテキスト及び画像を画面表示したり、テンキーを用いて入力された文字を画面表示する。
【００２０】
制御部３４は、テキスト処理プログラムを実行するコンピュータシステムである。制御部３４は、ワークメモリ２８、ＣＰＵ３０及びフラッシュメモリ３２を備える。フラッシュメモリ３２にはＣＰＵ３０によって実行されるテキスト処理プログラム、ウェブブラウザ、電子メールソフト、フォントデータベース等が格納されている。これらのプログラムやデータは、所定のサーバからのネットワークを介したダウンロード、リムーバブルメモリ４０からの読み出し等によってフラッシュメモリ３２に格納してもよい。
【００２１】
インタフェース部３６は、有線又は無線を介して他の情報処理装置と通信し、テキスト処理プログラムによって生成される印刷制御データとその表示対象の文字画像とをプリンタ２に送信する。有線通信規格としてはＵＳＢ等の汎用性のある規格が望ましい。無線通信規格としてはBluetooth、IrDA等の汎用性のある規格が望ましい。
リムーバブルメモリコントローラ３８は、リムーバブルメモリ４０を接続するためのスロットを備え、テキスト処理プログラムによって生成される印刷制御データとその表示対象の文字画像等をリムーバブルメモリ４０に書き込む。
【００２２】
次にプリンタ２について説明する。
リムーバブルメモリコントローラ３８は、リムーバブルメモリ４０を接続するためのスロットを備え、テキスト処理プログラムによって生成された印刷制御データとその表示対象である文字画像とをリムーバブルメモリ４０から読み出す。
インタフェース部５０は、有線又は無線を介して他の情報処理装置と通信し、印刷対象データを他の情報処理装置から受信する。印刷対象データには、ｘｔｍｌ-printフォーマットで記述された印刷制御データと、印刷制御データの表示対象である文字画像とが含まれる。
【００２３】
制御部４８は、印刷制御プログラムを実行するコンピュータシステムである。制御部４８は、フラッシュメモリ４２、ＣＰＵ４４及びワークメモリ４６を備える。フラッシュメモリ４２にはＣＰＵ４４によって実行される印刷制御プログラムとフォントデータベースが格納されている。
画像処理部５８は、制御部４８が生成するビットマップ画像に基づいて印刷データを作成するＤＳＰである。具体的には例えば画像処理部５８は、色空間変換、解像度変換、二値化、インタレース処理等を制御部４８と協働して実行する。
【００２４】
プリントエンジン６０は、画像処理部５８から出力される印刷データに基づいて印刷を実行する。プリントエンジン６０は、印字ヘッドを搭載するキャリッジ、キャリッジを用紙の幅方向に往復移動させる駆動機構、用紙を縦方向に移動させる送紙機構などで構成される。尚、プリントエンジン６０にはレーザ方式等の他の印刷方式を適用してもよい。
操作部５４は、電源スイッチ、強制排紙ボタン、設定ボタン等の各種のスイッチを備える。
表示部５６は、ＬＥＤインジケータ、ＬＣＤ等を備え、プリンタ２のステータスや操作メニューを表示する。
【００２５】
図３は、携帯電話機１及びプリンタ２のソフトウェア構成を示すブロック図である。
はじめに携帯電話機１で実行されるテキスト処理プログラム６６の構成について説明する。
テキスト処理プログラム６６は、ウェブブラウザ６２等の他のアプリケーションプログラムから出力される入力データとしての印刷対象データを加工し、プリンタ２にxhtml-printフォーマットの印刷制御データとその表示対象である文字画像とを出力する。
【００２６】
解析モジュール６８は、印刷対象データをウェブブラウザ６２等の他のアプリケーションプログラムから取得し、その印刷対象データを解析し、表示対象であるテキストの言語を判定するプログラム部品である。解析モジュール６８は、制御部３４を請求項に記載された入力手段及び言語判定手段として機能させる。
【００２７】
分解モジュール７０は、表示対象であるテキストを表す文字コードを単語又は文字の単位に分解し、分解した単語又は文字毎に生成される文字画像のファイル名を解析モジュール６８及び文字画像生成モジュール７２に出力するプログラム部品である。分解モジュール７０は、制御部３４を請求項に記載された分解手段として機能させる。
【００２８】
変更モジュール７４は、表示対象データであるテキストの言語に応じて分解モジュール７０に単語、文字のいずれの単位で文字コードを分解させるかを設定するプログラム部品である。変更モジュール７４は、制御部３４を請求項に記載された変更手段として機能させる。
【００２９】
文字画像生成モジュール７２は、文字コード群に指定されたフォントを参照してフォントデータベース６４から文字コード群に対応する字形データ群を取得し、文字コード群に指定された書式に対応する文字画像を単語毎又は文字毎に生成するプログラム部品である。フォントデータベース６４には、フォント毎に全文字コードに対応する字形データが記録されている。文字画像生成モジュール７２は、制御部３４を請求項に記載された文字画像生成手段として機能させる。
【００３０】
制御情報生成モジュール７６は、分解モジュール７０によって生成された文字画像のファイル名を解析モジュール６８から取得し、これらに基づいてxhtml-printフォーマットの印刷制御データを編集するプログラム部品である。制御情報生成モジュール７６は、制御部３４を請求項に記載された制御データ生成手段として機能させる。
【００３１】
出力モジュール７８は、文字画像を文字画像生成モジュール７２から取得し、印刷制御データを制御情報生成モジュール７６又は解析モジュール６８から取得し、表示対象である本画像を解析モジュール６８から取得してこれらを印刷制御プログラム８２に出力するプログラム部品である。尚、テキスト処理プログラム６６にはじめから画像として入力された画像を、テキスト処理プログラム６６によって生成される文字画像と区別するために本画像というものとする。出力モジュール７８は、制御部３４を請求項に記載された出力手段及び第二出力手段として機能させる。
【００３２】
プリンタ判定モジュール８０は、プリンタ２に格納されたフォントデータベース８４に格納されているフォントを判定し、文字コード群に指定されたフォントがプリンタ２に格納されている場合には、ウェブブラウザ等の他のアプリケーションプログラムから出力されたテキストをそのまま解析モジュール６８から出力モジュール７８に出力させるプログラム部品である。プリンタ判定モジュール８０は、制御部３４を請求項に記載されたプリンタ判定手段として機能させる。
【００３３】
次にプリンタ２で実行される印刷制御プログラム８２の構成について説明する。
解析モジュール８８は、テキスト処理プログラム６６からxhtml-printフォーマットの印刷対象データを取得してそれを解析し、表示対象の文字画像をテキスト処理プログラム６６から取得してビットマップ形式の印刷対象データを生成するプログラム部品である。
印刷モジュール８６は、ビットマップ形式の印刷対象データに基づいて印刷データを生成し、プリントエンジン６０を制御して印刷を実行させるプログラム部品である。
フォントデータベース８４には、フォント毎に文字コード群に対応する字形データ群が記録されている。フォントデータベース８４は、フォントの有無の問い合わせに対して回答する機能を有する。
【００３４】
図４は、ウェブブラウザ６２から出力される印刷制御データであるxhtmlファイルの内容を例示する図である。
xhtmlフォーマットでは、表示対象が木構造に構造化して記述される。以下、表示対象を定義する構造化単位をブロックというものとする。「body」セクションには、「page」ブロック９０が存在している。「page」ブロック９０には、「comment」ブロック９２と「image_area」ブロック９４が存在している。「comment」ブロック９２の表示対象は、「Tomy Blair has been challenged to put the UK's decision on a US request for back-up from British troops in Iraq to a vote of MPs. 」というテキストである。「comment」ブロック９２の表示対象には、スタイルシート等により特定の表示領域とフォント（Arial Black）が表示対象の書式として設定されている。「image_area」ブロック９４の表示対象は、ファイル名が「troops01.jpg」である画像と、「2004.10.21」というテキストである。「image_area」ブロック９４の表示対象には、スタイルシート等により特定の表示領域とフォント（Century）が表示対象の書式として設定されている。本実施例では、プリンタ２には「Arial Black」のフォントは格納されておらず、「Century」のフォントは格納されているものとする。すなわち本実施例では、フォントに「Arial Black」が指定されたテキストは文字画像に変換すべき表示対象であり、フォントに「Century」が指定されたテキストは文字画像に変換する必要のない表示対象であるとする。
【００３５】
図５及び図６は本発明の第一実施例によるテキスト処理プログラムの処理の流れを示すフローチャートである。
はじめに制御部３４はウェブブラウザ６２を介して受け付けられる印刷要求を待つ（Ｓ１００）。
印刷要求が受け付けられると、制御部３４はウェブブラウザ６２から取得する印刷制御データ（xhtmlファイル）を解析し、表示対象のテキストに指定されているフォントを判定する（Ｓ１０２）。
【００３６】
次に制御部３４は、各ブロックに指定されている全フォントがプリンタ２のフォントデータベース８４に全て格納されているか否かをプリンタ２に問い合わせる（Ｓ１０４）。
フォントが全てプリンタ２に格納されていれば、プリンタ２は印刷対象データをそのまま正しく印刷できるため、制御部３４は、ウェブブラウザ６２から取得した印刷制御データとその表示対象とをプリンタ２に出力する（Ｓ１０６）。この処理によって、テキストを不必要に画像に変換する処理をなくすことができるため、高速出力が可能になる。
少なくとも１種類でもプリンタ２に格納されていないフォントが表示対象のテキストに指定されている場合、制御部３４はステップＳ１０８以後の処理に進み、プリンタ２に格納されていないフォントが指定されているテキストを文字画像に置換する。
【００３７】
制御部３４は、印刷制御データのブロックを最終ブロックまで順次解析し、各ブロックの表示対象が本画像であるかテキストであるかを判定する（Ｓ１０８、Ｓ１１０）。ブロックの表示対象が本画像である場合、本画像に対しても、印刷制御データの当該ブロックに対しても何もすることなく、制御部３４はＳ１０８の処理に戻る。
ブロックの表示対象がテキストである場合、当該ブロックに指定されたフォントがプリンタ２のフォントデータベース８４に格納されているか否かをプリンタ２に問い合わせる（Ｓ１１４）。ブロックに指定されたフォントがプリンタ２に格納されている場合、印刷制御データの当該ブロックに対して何もすることなく、制御部３４はステップＳ１０８の処理に戻る。この処理により、不必要にテキストを文字画像に変換することをブロック単位でも防止できるため、出力を高速化でききる。
【００３８】
ブロックに指定されたフォントがプリンタ２に格納されていない場合、制御部３４は当該ブロックの表示対象テキストの言語が英語、ドイツ語のようにスペースで単語間を区切る分かち書き言語か、日本語、中国語のように単語間にスペースを挿入しない言語かを当該ブロックの属性情報に基づいて判定する（Ｓ１２２）。分かち書き言語の場合と、そうでない場合とで文字画像の単位を変更することにより、プリンタ２によってブロック内に自動配列される複数の文字画像が解読不能な状態で印刷されることを防止できる。尚、本実施例では、文字コードの分解単位を言語に応じて自動判定しているが、文字コードの分解単位を固定しておいてもよいし、ユーザに選択させてもよい。
【００３９】
ブロックの表示対象テキストが分かち書き言語である場合、制御部３４は当該表示対象テキストの最終文字までＳ１２６及びＳ１２８の処理を繰り返す（Ｓ１２４）。尚、長文の場合、プリンタ２で処理する文字画像数が多くなり、プリンタ２のメモリ容量が足りなくなるおそれがあるため、繰り返しの上限回数を設定してもよい。
Ｓ１２６では、制御部３４はスペースの文字コードを区切として単語単位に文字コードを分解する。
Ｓ１２８では、制御部３４は単語単位に文字画像のファイル名を設定し、印刷制御データの処理中のブロックを編集して、設定したファイル名を書き込み、当該ブロックの表示対象をテキストから文字画像に変更する。文字画像のファイル名には、例えば単語そのものを用いる（例えば「has.png」）。尚、制御部３４は、この時点では文字画像を生成せず、印刷制御データの編集が全て終了してから全ての文字画像を連続生成する（後述のＳ１１８参照）。
【００４０】
ブロックの表示対象テキストの言語が分かち書き言語でない場合、制御部３４は当該表示対象テキストの最終文字までＳ１３２及びＳ１３４の処理を繰り返す（Ｓ１３０）。
Ｓ１３２では、制御部３４は文字コードを一定長さで区切って文字単位に文字コードを分解する。
Ｓ１３４では、制御部３４は文字単位に文字画像のファイル名を設定し、印刷制御データの処理中のブロックを編集して、設定したファイル名を書き込み、当該ブロックの表示対象をテキストから文字画像に変更する。文字画像のファイル名には、例えばフォントを識別可能な文字列と文字画像が表す文字とを用いる（例えば「ab_T.png」。「ab_」はフォント「Areal Black」を特定している。）。尚、制御部３４は、この時点では文字画像を生成せず、印刷制御データの編集が全て終了してから全ての文字画像を連続生成する（後述のＳ１１８参照）。
【００４１】
全ブロックについて上述の処理が終了すると、編集された印刷制御データは図７又は図８のようになる。図７は表示対象テキストが分かち書き言語であった場合の編集結果を示し、図８は表示対象テキストが分かち書き言語でなかった場合の編集結果を示している。ただし、冗長な説明を避けるために図７の表示対象テキストと図８の表示対象テキストを同一にして例示している。
【００４２】
単語単位で文字画像を生成した場合、図７に示すように、対応するフォントがプリンタ２に格納されていなかったブロック（「comment_area」ブロック９２）については、そのブロックの表示対象に単語単位で文字画像が指定され、表示対象の文字画像を指定する情報として単語単位に文字画像のファイル名（「tomy.png」など）が記述される。対応するフォントがプリンタ２に格納されていたブロック（「image_area」ブロック９４）については編集されない。
【００４３】
文字単位で文字画像を生成した場合、図８に示すように、対応するフォントがプリンタ２に格納されていなかったブロック（「comment_area」ブロック９２）については、そのブロックの表示対象に文字単位で文字画像が指定され、表示対象の文字画像を指定する情報として文字単位に文字画像のファイル名（「ab_o.png」など）が記述される。対応するフォントがプリンタ２に格納されていなかったブロック（「image_area」ブロック９４）については編集されない。
【００４４】
文字の間隔は次のようにして設定することができる。第一の方法は、各文字画像を生成するとき、文字の左右にパディングを割り当て、文字間の余白を含む文字画像を生成する方法である。第一の方法は、単語単位で文字画像を生成する場合にも、文字単位で文字画像を生成する場合にも適用できる。第二の方法は、文字単位で生成される各文字画像の配置を相対指定して印刷制御データに記述する方法である。第三の方法は、文字間の空白を表す画像を生成し、文字単位で生成される文字画像の間に逐一空白画像を挿入する方法である。ユーザによって意図的に挿入されたスペースに対しては、そのスペースに対応する文字コードからスペースを表す画像を生成してもよいし（図８の「ab_space.png」参照）、文字画像間の配置間隔を指定してもよい。
【００４５】
全ブロックについて上述の処理が終了すると、制御部３４は編集済の印刷制御データをプリンタ２に出力する（Ｓ１１６）。印刷制御データを取得したプリンタ２は、印刷制御データを解析し、表示対象がファイル名で指定されている場合には、そのファイルを携帯電話機１に要求する。
【００４６】
次に制御部３４は、対応するフォントがプリンタ２に格納されていなかったブロックについてフォントデータベース６４から対応するフォントの字形データ群を取得して文字画像を順次生成する（Ｓ１１８）。この処理のためには、Ｓ１２４又はＳ１３２で単語毎又は文字毎に分解した文字コードをリスト等で一時保存しておくことが望ましい。各文字画像には、Ｓ１２８又はＳ１３４で設定されたファイル名が付与される。文字画像は、可逆圧縮されたフォーマット（例えばPNGフォーマット、ロスレスJPEGフォーマット等）で生成することが望ましい。不可逆圧縮のＪＰＥＧフォーマット等で文字画像を生成すると、高い周波数成分の情報欠損が起こるため、文字の輪郭がぼやけるからである。
【００４７】
次に制御部３４は、プリンタ２の要求に応じて文字画像及び本画像を順次プリンタ２に出力する（Ｓ１２０）。図９は単語単位に文字画像を生成した場合に出力される文字画像（tomy.png等）及び本画像（troops01.jpg）を示している。図１０は、文字単位に文字画像を生成した場合にプリンタ２に出力される文字画像（「ab_T.ping」等）及び本画像（troops01.jpg）を示している。尚、文字画像、本画像及び印刷制御データは、プリンタ２に有線通信又は無線通信により出力してもよいし、リムーバブルメモリ４０に出力し、リムーバブルメモリ４０を介してプリンタ２に入力してもよい。また、文字画像の生成及び出力は、プリンタ２の要求に応じて逐次実行してもよいし、プリンタ２の要求に関わらず順次実行し、出力可能状態になった文字画像から順次プリンタ２に出力してもよい。また、文字単位で文字画像を生成する場合には、既に生成・出力済の文字画像の生成・出力をせずに生成・出力済の文字画像を再利用することによりハードウェアリソースの負担を低減してもよい。さらに、１バイトで文字コードが割り当てられている文字種が少ない言語の場合、指定されたフォントの全文字について文字画像を生成しても、それほどメモリ容量を消費しないため、制御部３４が指定されたフォントの全文字についてフォントデータベース６４を参照して文字画像を連続生成し、プリンタ２の要求に応じて、若しくは連続生成と平行して、文字画像をプリンタ２に出力してもよい。
【００４８】
本発明の第一実施例によると、単語単位又は文字単位で文字画像を生成して出力するため、一度にワークメモリ２８に展開する必要のある画像のサイズが小さくなる。したがって本発明の第一実施例によると、携帯電話機１のメモリ容量が小さい場合であっても、プリンタ２に確実にテキストを印刷させることができる。また本発明の第一実施例によると、テキスト処理プログラム６６による編集前後で印刷制御データの各ブロックのレイヤの上下関係が崩れないため、複数のレイヤにテキストや画像が配置され、各レイヤに配置されたオブジェクトが重なっている場合でも、レイヤの上下関係が忠実に印刷結果として反映されるようにテキストをプリンタに印刷させることができる。
【００４９】
（第二実施例）
本発明の第二実施例では、携帯電話機１はページ毎に本画像とテキストを表す１つの統合画像を生成し、１ページの全表示対象が１つの統合画像である印刷制御データをプリンタに出力する。
図１１及び図１２は本発明の第二実施例によるテキスト処理プログラムの処理の流れを示すフローチャートである。本実施例では、他のアプリケーションプログラム（ウェブブラウザ６２）から取得した印刷制御データに基づいて全表示対象を１ページに割り付けてページ毎に１つの統合画像を生成するため、表示対象の割付機能がテキスト処理プログラム６６に必要になる。以下、表示対象の割り付け処理について説明し、第一実施例と同一であるＳ１００からＳ１１２までの処理については説明を省略する。
【００５０】
処理中のブロックの表示対象が本画像である場合、制御部３４は印刷制御データに記述された表示領域に対応する印刷ページの領域に当該本画像を割り付ける（Ｓ２００）。
処理中のブロックの表示対象がテキストである場合、以下に説明するＳ２０６からＳ２３８の処理を実行することにより、単語単位又は文字単位にテキストを印刷ページに割り付ける。
【００５１】
はじめに制御部３４はテキストを割り付ける領域を初期化する（Ｓ２０６）。具体的には例えば、テキストを割り付ける領域の始端座標（ｘ、ｙ）を処理中のブロックに設定されている表示領域の始端座標（ｘn、ｙn）に設定する。
次に制御部３４は処理中のブロックの表示対象テキストの言語が分かち書き言語か否かを当該ブロックの属性情報に基づいて判定する（Ｓ２０８）。ブロックの表示対象テキストが分かち書き言語である場合、制御部３４は当該表示対象テキストの最終文字までＳ２１０からＳ２２６の処理を繰り返し、単語単位にテキストを印刷ページに割り付ける。ブロックの表示対象テキストが分かち書き言語でない場合、制御部３４は当該表示対象テキストの最終文字までＳ２２８からＳ２３８の処理を繰り返し、文字単位にテキストを印刷ページに割り付ける。
【００５２】
表示対象テキストが分かち書き言語である場合、制御部３４は、スペースの文字コードを区切として単語単位に文字コードを分解する（Ｓ２１０）。
次に制御部３４は、フォントデータベース６４を参照して分解した単語の幅を特定し、その単語を割り付ける領域の終端が処理中のブロックに指定された表示領域内に収まるか否かを判定する（Ｓ２１２）。具体的には制御部３４は、（ｘ＋単語幅）−ｘn＜Ｗであるか否かを判定する。ｘは単語を割り付ける始端のｘ座標である。Ｗは処理中のブロックに指定された表示領域の幅である。
【００５３】
処理中の単語を割り付ける領域の終端が処理中のブロックに指定された表示領域内に収まらない場合、制御部３４は処理中の単語を割り付ける位置を次行に設定する（Ｓ２１４）。具体的には制御部３４は、ｘ＝ｘn、ｙ＝ｙ＋改行幅に設定する。ｙは処理中の単語を割り付ける始端のｙ座標である。処理中の単語を割り付ける領域の終端が処理中のブロックに指定された表示領域内に収まる場合、制御部３４はこの処理をスキップする。
次に制御部３４は、フォントデータベース６４から取得した字形データに基づいて印刷ページに処理中の単語を表す図形文字を割り付ける（Ｓ２１６）。
【００５４】
次に制御部３４は、次に処理する単語を割り付ける始端のｘ座標を設定する（Ｓ２１８）。具体的には制御部３４は、ｘ＝ｘ＋単語幅に設定する。単語幅は直前に割り付けた単語の幅である。
次に制御部３４は、処理中のブロックに割り付けるべきテキストが残っているか、すなわち処理中のブロックの最終文字まで割付を終了したかを判定する（Ｓ２２０）。処理中のブロックの最終文字まで割付が終了すれば、制御部３４はＳ１０８の処理に進み、次ブロックの処理を開始する。
【００５５】
次に制御部３４は、次に処理する単語を次行に割り付けるべきか、直前の単語と同じ行に割り付けるべきかを判定する（Ｓ２２２，Ｓ２２４）。具体的には制御部３４は、ｘ＝ｘ＋スペース幅に設定した後にｘ−ｘn＞Ｗであるかを判定する。
次に処理する単語を次行に割り付ける場合、制御部３４は次の単語を割り付ける位置を次行に設定した後、Ｓ２１０の処理に進む（Ｓ２２６）。具体的には制御部３４は、ｘ＝ｘn、ｙ＝ｙ＋改行幅に設定する。次に処理する単語を直前の単語と同じ行に割り付ける場合、制御部３４はこの改行処理をスキップしてＳ２１０の処理に進む。
【００５６】
以上、単語単位にテキストを印刷ページに割り付ける処理を説明した。次に文字単位にテキストを印刷ページに割り付ける処理を説明する。
はじめに制御部３４は、文字コードを一定長さで区切って文字単位に文字コードを分解する（Ｓ２２８）。
次に制御部３４は、フォントデータベース６４を参照して分解した文字の幅を特定し、その文字を割り付ける領域の終端が処理中のブロックに指定された表示領域内に収まるか否かを判定する（Ｓ２３０）。具体的には制御部３４は、（ｘ＋文字幅）−ｘn＜Ｗであるか否かを判定する。
【００５７】
処理中の文字を割り付ける領域の終端が処理中のブロックに指定された表示領域内に収まらない場合、制御部３４は処理中の単語を割り付ける位置を次行に設定する（Ｓ２３２）。具体的には制御部３４は、ｘ＝ｘn、ｙ＝ｙ＋改行幅に設定する。処理中の文字を割り付ける終端座標が処理中のブロックに指定された表示領域内に収まる場合、制御部３４はこの処理をスキップする。
【００５８】
次に制御部３４は、フォントデータベース６４から取得した字形データに基づいて印刷ページに処理中の文字を表す図形文字を割り付ける（Ｓ２３４）。
次に制御部３４は、次に処理する単語を割り付ける始端のｘ座標を設定する（Ｓ２３６）。具体的には制御部３４は、ｘ＝ｘ＋文字幅に設定する。単語幅は直前に割り付けた単語の幅である。
【００５９】
次に制御部３４は、処理中のブロックに割り付けるべきテキストが残っているか、すなわち処理中のブロックの最終文字まで割付を終了したか否かを判定する（Ｓ２３８）。処理中のブロックの最終文字まで割付が終了すれば、制御部３４はＳ１０８の処理に進み、次ブロックの処理を開始する。処理中のブロックに割り付けるべきテキストが残っていれば、制御部３４は、ステップＳ２２８の処理に進み、次の文字の割付処理を開始する。
【００６０】
全ブロックについて上述の処理が終了すると、制御部３４は他のアプリケーション（ウェブブラウザ６２）から取得した印刷制御データ（xhtmlファイル）を編集し、編集後の印刷制御データ（xhtml-printファイル）を出力する（Ｓ２０２）。このとき、制御部３４は印刷制御データの表示対象である統合画像のファイル名をページ毎に設定する。
【００６１】
図１３は制御部３４によって編集されたxhtml-printファイルの内容を例示する図である。図１３に示すように、「page」ブロック９０からは「comment_area」ブロック９２及び「image_area」ブロック９４が削除され、「page」ブロック９０の表示対象が「img_page1.jpg」というファイル名の統合画像になっている。すなわち、制御部３４によって印刷制御データの表示対象は１ページについて１つの統合画像に変更されている。統合画像の表示領域は「page」ブロック９０にもともと設定されていた表示領域と一致している。
【００６２】
制御部３４は、印刷制御データを出力した後、全テキストが割り付けられた印刷ページの画像（統合画像）と本画像を出力する（Ｓ２０４）。統合画像は１ページ分の内容を表す画像になるためデータサイズが大きくなる。このため統合画像のフォーマットは、圧縮率（圧縮前データサイズ／圧縮後データサイズ）を大きくできる不可逆圧縮のフォーマットであるＪＰＥＧ等のフォーマットが望ましい。
【００６３】
図１４は制御部３４によって生成された統合画像を例示する図である。統合画像「img_page1.jpg」には、ウェブブラウザ６２から取得した表示対象のテキスト９６、１００と本画像９８とが合成されている。尚、「img_page1.jpg」は、１ページ（例えばＡ４サイズ１ページ）全体を表す画像であるが、制御部３４は、オブジェクトが全く存在しないバンド（幅がページと同一で高さがページより低い領域）を生成せずに、１ページより小さいサイズの統合画像を生成してもよい。
【００６４】
本発明の第二実施例によると、プリンタで展開すべき画像数を１ページついて１つにできるため、プリンタのハードウェアリソースの使用量を低減することができる。この結果、プリンタの印刷処理を高速化したり、メモリ容量の小さいプリンタであっても確実に印刷対象データを印刷させることができる。
【００６５】
（第三実施例）
本発明の第三実施例では、携帯電話機１はページ単位で文字のみを表す１つの文字レイヤ画像を生成し、１ページの表示対象が１つの文字レイヤ画像と本画像である印刷制御データをプリンタに出力する。
図１５は本発明の第三実施例によるテキスト処理プログラムの処理の流れを示すフローチャートである。図１２に示した処理は第三実施例によるテキスト処理プログラムの処理と同一である。本実施例では、他のアプリケーションプログラム（ウェブブラウザ６２）から取得した印刷制御データに基づいて表示対象の全文字列を１ページに割り付けてページ毎に１つの文字レイヤ画像を生成するため、文字列の割付機能がテキスト処理プログラムに必要になる。以下、本画像と文字レイヤ画像を表示対象とする印刷制御データの生成処理について説明し、第一実施例と同一であるＳ１００からＳ１１２までの処理と、第二実施例と同一であるＳ２０６からＳ２３８までの処理については説明を省略する。
【００６６】
１ページについて最終ブロックまでテキストの割り付け処理が終了すると、制御部３４は他のアプリケーション（ウェブブラウザ６２）から取得した印刷制御データ（xhtmlファイル）を編集し、編集後の印刷制御データ（xhtml-printファイル）を出力する（Ｓ３００）。このとき、制御部３４は印刷制御データの表示対象である文字レイヤ画像のファイル名をページ毎に設定する。
【００６７】
図１６は制御部３４によって編集されたxhtml-printファイルの内容を例示する図である。図１６に示すように、「page」ブロック９０からは「comment_area」ブロック９２（図４参照）が削除され、「page」ブロック９０の構造化レベルに「img_text.png」というファイル名の文字レイヤ画像が表示対象として追加されている。「image_area」ブロック９４からは「２００４．１０．２１」という表示対象テキスト（図７参照）が削除されている。「２００４．１０．２１」という表示対象テキストは、文字列の割り付け処理によって文字レイヤ画像に合成されている。すなわち、「comment_area」ブロック９２の表示対象テキストと「image_area」ブロック９４の表示対象テキストが１つの文字レイヤ画像によって置換されている。尚、「page」ブロック９０の表示領域と「image_area」ブロック９４の表示領域についてはもとからそれらに設定された表示領域と同一である。
制御部３４は、印刷制御データを出力した後、全文字画像が割り付けられた印刷ページの文字レイヤ画像と本画像とを出力する（Ｓ３０２）。
【００６８】
図１７は制御部３４によって生成された文字レイヤ画像及び本画像を例示する図である。文字レイヤ画像「img_text.png」には、ウェブブラウザ６２から取得した表示対象のテキスト９６、１００が合成されている。尚、「img_text.png」は１ページ（例えばＡ４サイズ１ページ）全体を表す画像であるが、制御部３４は、文字画像が全く存在しないバンドを生成せずに１ページより小さいサイズの文字レイヤ画像を生成してもよい。文字レイヤ画像が小さい場合には、文字が鮮明に印刷されるように、不可逆圧縮のフォーマット（例えばＰＮＧフォーマット）で文字レイヤ画像を生成することが望ましい。
【００６９】
本発明の第三実施例によると、プリンタで展開すべき画像数を１ページの全図形文字列について１つにできるため、プリンタのハードウェアリソースの使用量を低減することができる。尚、文字画像が存在するバンド毎に文字レイヤ画像を生成し、１ページについて複数の文字レイヤ画像を生成してもよい。
【００７０】
（第四実施例）
本発明の第四実施例では、携帯電話機１はブロック単位でテキストを表す文字画像を生成し、文字コードの代わりにブロック単位の文字画像を出力する。
図１８及び図１９は本発明の第四実施例によるテキスト処理プログラムの処理の流れを示すフローチャートである。本実施例では、他のアプリケーションプログラム（ウェブブラウザ６２）から取得した印刷制御データに基づいてブロック毎に表示対象テキストを割り付けてブロック毎に文字画像を生成するため、テキストの割付機能がテキスト処理プログラム６６に必要になる。以下、ブロック毎の割り付け処理について説明し、第一実施例と同一であるＳ１００からＳ１１４までの処理については説明を省略する。
【００７１】
処理中のブロックの表示対象がテキストであって、当該ブロックに指定されているフォントがプリンタ２に格納されていない場合、当該ブロックに文字画像のファイル名を設定し、当該ブロックの表示対象をそのファイル名の文字画像に設定する。文字画像のファイル名は、例えば当該ブロックのブロック名を用いて「img_comment.png」のように設定する。
【００７２】
次に制御部３４はテキストを割り付ける領域を初期化する（Ｓ４０８）。この処理は、第二実施例のＳ２０６の処理とほぼ同じであるが、処理中のブロックの表示領域内の相対参照でテキストの割り付け位置を設定する点において第二実施例のＳ２０６の処理と異なる。具体的には例えば、テキストを割り付ける領域の始端座標（ｘ、ｙ）を（０，０）に設定する。
次に制御部３４は第二実施例と同様に処理中のブロックのテキストが分かち書き言語であるか否かを判定し（Ｓ２０８）、単語単位又は文字単位に文字コードを分解する（Ｓ２１０、Ｓ２２８）。
【００７３】
以下、テキストが分かち書き言語である場合について説明する。
文字コードが単語単位に分解された後、制御部３４は、フォントデータベース６４を参照して処理中の単語の幅を特定し、処理中の単語を割り付ける領域の終端が処理中のブロックに指定された表示領域に対応する領域内に収まるか否かを判定する（Ｓ４１０）。この処理は座標がブロック内の相対指定であることを除けば、第二実施例のＳ２１２の処理と同一である。具体的には制御部３４はｘ＋単語幅＜Ｗであるか否かを判定する。
【００７４】
処理中の単語を割り付ける領域の終端が処理中のブロックに指定された表示領域に対応する領域内に収まらない場合、制御部３４は処理中の単語を割り付ける位置を次行に設定する（Ｓ４１２）。この処理は座標がブロック内の相対指定であることを除けば、第二実施例のＳ２１４の処理と同一である。具体的には制御部３４は、ｘ＝０、ｙ＝ｙ＋改行幅に設定する。処理中の単語を割り付ける領域の終端が処理中のブロックに指定された表示領域に対応する領域内に収まる場合、制御部３４はこの処理をスキップする。
【００７５】
次に制御部３４は第二実施例と同一のＳ２１６からＳ２２２の処理とＳ４１４、Ｓ４１６の処理を実行して処理中の単語をブロックに設定された表示領域に対応する領域内に割り付け、次に処理する単語の始端が処理中のブロックの領域内に収まるか否かを判定し、収まらなければ改行処理を実行する。Ｓ４１４、Ｓ４１６の処理は座標がブロック内の相対指定である点を除いて第二実施例のＳ２２４の処理と同一である。具体的には制御部３４はＳ４１４でｘ＞Ｗかどうかを判定し、Ｓ４１６でｘ＝０、ｙ＝ｙ＋改行幅に設定する。
【００７６】
以上テキストが分かち書き言語である場合について説明した。次にテキストが分かち書き言語でない場合について説明する。
文字コードが文字単位に分解された後、制御部３４は、フォントデータベース６４を参照して処理中の文字の幅を特定し、処理中の文字を割り付ける領域の終端が処理中のブロックに指定された表示領域に対応する領域内に収まるか否かを判定し（Ｓ４１８）、収まらなければ改行処理を実行する（Ｓ４２０）。この処理は座標がブロック内の相対指定である点を除いて第二実施例のＳ２２４の処理と同一である。具体的には制御部３４は、Ｓ４１８でｘ＋単語幅＜Ｗであるか否かを判定し、Ｓ４２０でｘ＝０、ｙ＝ｙ＋改行幅に設定する。
続いて制御部３４は第二実施例と同様にＳ２３４、Ｓ２３６、Ｓ２３８の処理を実行する。
【００７７】
全ブロックについて上述の処理が終了すると、制御部３４は編集済の印刷制御データを出力する。編集済の印刷制御データは図２０のようになる。対応するフォントがプリンタ２に格納されていなかったブロック（「comment_area」ブロック９２）については、そのブロックの表示対象にブロック全体のテキストを表す文字画像が指定され、表示対象の文字画像を指定する情報として文字画像のファイル名（「img_comment.png」など）が記述される。対応するフォントがプリンタ２に格納されていたブロック（「image_area」ブロック９４）については編集されない。
【００７８】
次に制御部３４は、対応するフォントがプリンタ２に格納されていなかったブロックについてフォントデータベース６４から対応するフォントの字形データ群を取得してブロック毎に文字画像を順次生成する（Ｓ４０４）。この処理のためにはＳ１２４又はＳ１３２で単語毎又は文字毎に分解した文字コードをリスト等で一時保存しておくことが望ましい。各文字画像にはＳ４００で設定されたファイル名が付与される。文字画像は、可逆圧縮されたフォーマット（例えばPNGフォーマット、ロスレスJPEGフォーマット等）で生成することが望ましい。
【００７９】
次に制御部３４は、プリンタ２の要求に応じて文字画像及び本画像を順次プリンタ２に出力する（Ｓ４０６）。
図２１はブロック単位に文字画像を生成した場合に出力される文字画像（「img_comment.png」）及び本画像（「troops01.jpg」）を例示している。
【００８０】
本発明の第四実施例によると、印刷制御データのブロック毎に文字画像を生成するため、携帯電話機１で一度にワークメモリ２８に展開する必要のある画像のサイズが小さくなる。したがって、本発明の第四実施例によると、ワークメモリ２８の容量が小さい場合であっても、プリンタ２に確実にテキストを印刷させることができる。また複数のレイヤにテキストや画像が配置され、各レイヤに配置されたオブジェクトが重なっている場合でも、レイヤの上下関係が忠実に印刷結果として反映されるようにテキストをプリンタ２に印刷させることができる。また本発明の第四実施例によると、文字毎又は単語毎に文字画像を出力する場合に比べ、プリンタ２に入力される画像数を低減できるため、プリンタ２のワークメモリ４６の容量が小さくても、プリンタ２にテキストを確実に印刷させることができる。また、本発明の第四実施例によると、文字毎又は画像毎に文字画像を出力する場合に比べ、プリンタ２に入力される画像数を低減できるため、プリンタ２にテキストを高速に印刷させることができる。
【図面の簡単な説明】
【００８１】
【図１】本発明の複数の実施例に共通する概要を説明するための模式図。
【図２】本発明の実施例に係るブロック図。
【図３】本発明の実施例に係るブロック図。
【図４】本発明の実施例に係る印刷制御データを例示する図。
【図５】本発明の第一実施例に係るフローチャート。
【図６】本発明の第一実施例に係るフローチャート。
【図７】本発明の第一実施例に係る印刷制御データを例示する図。
【図８】本発明の第一実施例に係る印刷制御データを例示する図。
【図９】本発明の第一実施例に係る本画像及び文字画像を示す図。
【図１０】本発明の第一実施例に係る本画像及び文字画像を示す図。
【図１１】本発明の第二実施例に係るフローチャート。
【図１２】本発明の第二実施例に係るフローチャート。
【図１３】本発明の第二実施例に係る印刷制御データを例示する図。
【図１４】本発明の第二実施例に係る統合画像を示す図。
【図１５】本発明の第三実施例に係るフローチャート。
【図１６】本発明の第三実施例に係る印刷制御データを例示する図。
【図１７】本発明の第三実施例に係る文字レイヤ画像及び本画像を示す図。
【図１８】本発明の第四実施例に係るフローチャート。
【図１９】本発明の第四実施例に係るフローチャート。
【図２０】本発明の第四実施例に係る印刷制御データを例示する図。
【図２１】本発明の第四実施例に係る文字画像及び本画像を示す図。
【符号の説明】
【００８２】
１  携帯電話機、２  プリンタ、１２  フォントデータベース、１４  印刷制御データ、１６  文字画像、６４  フォントデータベース、６６  テキスト処理プログラム、６８  解析モジュール（入力手段、言語判定手段）、７０  分解モジュール（分解手段）、７２  文字画像生成モジュール（文字画像生成手段）、７４  変更モジュール（変更手段）、７６  制御情報生成モジュール（制御データ生成手段）、７８  出力モジュール（出力手段、第二出力手段）、８０  プリンタ判定モジュール（プリンタ判定手段）、８４  フォントデータベース
【図１】
2006127202.tif 000003
【図２】
2006127202.tif 000004
【図３】
2006127202.tif 000005
【図４】
2006127202.tif 000006
【図５】
2006127202.tif 000007
【図６】
2006127202.tif 000008
【図７】
2006127202.tif 000009
【図８】
2006127202.tif 000010
【図９】
2006127202.tif 000011
【図１０】
2006127202.tif 000012
【図１１】
2006127202.tif 000013
【図１２】
2006127202.tif 000014
【図１３】
2006127202.tif 000015
【図１４】
2006127202.tif 000016
【図１５】
2006127202.tif 000017
【図１６】
2006127202.tif 000018
【図１７】
2006127202.tif 000019
【図１８】
2006127202.tif 000020
【図１９】
2006127202.tif 000021
【図２０】
2006127202.tif 000022
【図２１】
2006127202.tif 000023