(57)【要約】      （修正有）【課題】本文よりも小さな文字の文（小文字文）が、本文よりも大きく表示されないように制御することにより、ユーザが文の重要度を正しく認識できるようにする。【解決手段】部分領域表示モードにおいて、小文字文の文字領域を表示する場合、表示対象の小文字文の文字領域の幅が、画像データ内の本文の文字領域の幅のうちの最も大きい幅よりも小さいか否か判定し、該判定において小さいと判定した場合は、前記本文の文字領域の幅のうちの最も大きい幅が前記表示手段の表示領域の幅に収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の小文字文の文字領域を表示する。【選択図】図２０
2015106289.tif 000002
【特許請求の範囲】
【請求項１】
画像データ内の文字領域の幅に基づいて決定される表示倍率を用いて各文字領域を表示する部分領域表示モードで、前記画像データの各文字領域を表示手段に表示するように制御する制御手段を有する表示装置であって、
前記制御手段は、前記部分領域表示モードにおいて、本文の文字領域を表示対象として表示する場合、当該表示対象の本文の文字領域の幅が前記表示手段の表示領域の幅に収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の本文の文字領域を表示するように制御し、
前記制御手段は、更に、前記部分領域表示モードにおいて、本文よりも小さいサイズの文字で構成される小文字文の文字領域を表示対象として表示する場合、当該表示対象の小文字文の文字領域の幅が、前記画像データ内の本文の文字領域の幅のうちの最も大きい幅よりも小さいか否か判定し、該判定において小さいと判定した場合は、前記本文の文字領域の幅のうちの最も大きい幅が前記表示手段の表示領域の幅に収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の小文字文の文字領域を表示するように制御し、該判定において小さくないと判定した場合は、前記小文字文の文字領域の幅が前記表示手段の表示領域の幅に収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の小文字文の文字領域を表示するように制御することを特徴とする表示装置。
【請求項２】
前記制御手段は、更に、前記部分領域表示モードにおいて、本文よりも大きいサイズの文字で構成される大文字文の文字領域を表示対象として表示する場合、当該表示対象の大文字文の文字領域の幅が、前記画像データ内の本文の文字領域の幅のうちの最も小さい幅よりも大きいか否か判定し、該判定において大きいと判定した場合は、前記本文の文字領域の幅のうちの最も小さい幅が前記表示手段の表示領域の幅に収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の大文字文の文字領域を表示するように制御し、該判定において大きくないと判定した場合は、前記大文字文の文字領域の幅が前記表示手段の表示領域の幅に収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の大文字文の文字領域を表示するように制御することを特徴とする請求項１に記載の表示装置。
【請求項３】
前記制御手段は、更に、前記部分領域表示モードにおいて、縦書きの本文の文字領域を表示対象として表示する場合、当該表示対象の本文の文字領域の高さが前記表示手段の表示領域の高さに収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の本文の文字領域を表示するように制御することを特徴とする請求項１に記載の表示装置。
【請求項４】
前記制御手段は、更に、前記部分領域表示モードにおいて、本文よりも小さいサイズの縦書きの文字で構成される小文字文の文字領域を表示対象として表示する場合、当該表示対象の小文字文の文字領域の高さが、前記画像データ内の本文の文字領域の高さのうちの最も大きい高さよりも小さいか否か判定し、該判定において小さいと判定した場合は、前記本文の文字領域の高さのうちの最も大きい高さが前記表示手段の表示領域の高さに収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の小文字文の文字領域を表示するように制御し、該判定において小さくないと判定した場合は、前記小文字文の文字領域の高さが前記表示手段の表示領域の高さに収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の小文字文の文字領域を表示するように制御することを特徴とする請求項１に記載の表示装置。
【請求項５】
前記制御手段は、更に、前記部分領域表示モードにおいて、本文よりも大きいサイズの縦書きの文字で構成される大文字文の文字領域を表示対象として表示する場合、当該表示対象の大文字文の文字領域の高さが、前記画像データ内の本文の文字領域の高さのうちの最も小さい高さよりも大きいか否か判定し、該判定において大きいと判定した場合は、前記本文の文字領域の高さのうちの最も小さい高さが前記表示手段の表示領域の高さに収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の大文字文の文字領域を表示するように制御し、該判定において大きくないと判定した場合は、前記大文字文の文字領域の高さが前記表示手段の表示領域の高さに収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の大文字文の文字領域を表示するように制御することを特徴とする請求項１に記載の表示装置。
【請求項６】
前記制御手段は、前記画像データのページ全体を表示するページ表示モードがユーザにより指定された場合、前記画像データのページ全体が前記表示手段の表示領域に収まるように表示倍率を決定して、当該決定された表示倍率で前記画像データのページ全体を表示するように制御することを特徴とする請求項１乃至５のいずれか１項に記載の表示装置。
【請求項７】
画像データに対して領域分割処理を実行することによって文字領域の情報を求める領域分割手段と、前記領域分割手段で求めた本文の文字領域の幅のうちの最も大きい幅を求める文字領域情報集計手段と、前記画像データと前記文字領域の情報と前記本文の文字領域の幅のうちの最も大きい幅の情報とを含むアプリケーション画像データを生成する生成手段とを有するデータ生成装置から、当該生成されたアプリケーション画像データを受信する受信手段を更に有し、
前記制御手段は、前記受信手段で受信した前記アプリケーション画像データに含まれる情報に基づいて、前記部分領域表示モードにおいて使用される前記表示倍率を決定して、前記画像データの各文字領域を前記表示手段に表示するように制御することを特徴とする請求項１乃至６のいずれか１項に記載の表示装置。
【請求項８】
画像データ内の文字領域の幅に基づいて決定される表示倍率を用いて各文字領域を表示する部分領域表示モードで、前記画像データの各文字領域を表示手段に表示するように制御する表示方法であって、
表示装置の制御手段が、前記部分領域表示モードにおいて、本文の文字領域を表示対象として表示する場合、当該表示対象の本文の文字領域の幅が前記表示手段の表示領域の幅に収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の本文の文字領域を表示するように制御する工程と、
前記制御手段が、更に、前記部分領域表示モードにおいて、本文よりも小さいサイズの文字で構成される小文字文の文字領域を表示対象として表示する場合、当該表示対象の小文字文の文字領域の幅が、前記画像データ内の本文の文字領域の幅のうちの最も大きい幅よりも小さいか否か判定し、該判定において小さいと判定した場合は、前記本文の文字領域の幅のうちの最も大きい幅が前記表示手段の表示領域の幅に収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の小文字文の文字領域を表示するように制御し、該判定において小さくないと判定した場合は、前記小文字文の文字領域の幅が前記表示手段の表示領域の幅に収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の小文字文の文字領域を表示するように制御する工程と、
を有することを特徴とする表示方法。
【請求項９】
コンピュータを、
画像データ内の文字領域の幅に基づいて決定される表示倍率を用いて各文字領域を表示する部分領域表示モードで、前記画像データの各文字領域を表示手段に表示するように制御する制御手段、として機能させるためのコンピュータプログラムであって、
前記制御手段は、前記部分領域表示モードにおいて、本文の文字領域を表示対象として表示する場合、当該表示対象の本文の文字領域の幅が前記表示手段の表示領域の幅に収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の本文の文字領域を表示するように制御し、
前記制御手段は、更に、前記部分領域表示モードにおいて、本文よりも小さいサイズの文字で構成される小文字文の文字領域を表示対象として表示する場合、当該表示対象の小文字文の文字領域の幅が、前記画像データ内の本文の文字領域の幅のうちの最も大きい幅よりも小さいか否か判定し、該判定において小さいと判定した場合は、前記本文の文字領域の幅のうちの最も大きい幅が前記表示手段の表示領域の幅に収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の小文字文の文字領域を表示するように制御し、該判定において小さくないと判定した場合は、前記小文字文の文字領域の幅が前記表示手段の表示領域の幅に収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の小文字文の文字領域を表示するように制御することを特徴とするコンピュータプログラム。
【請求項１０】
請求項９に記載のコンピュータプログラムを格納した、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データ内の部分領域を拡大して表示する表示装置および表示方法に関する。
【背景技術】
【０００２】
従来、スマートフォンやタブレットなど比較的小さな表示装置によって、ページ画像を表示する際に、ページ画像の一部を拡大して逐次表示することが行われている。ページ画像は、テキスト・見出し・図・写真・表などの複数の部分領域から構成されており、ユーザは、これらの部分領域を順番に閲覧していく。したがって、ユーザは、文書を読み進めるために順次、ページ内の所望の部分領域（所望の範囲）が表示画面に表示されるように、ページ画像の表示位置の移動（スクロール）や拡大縮小の操作を繰り返す必要がある。
【０００３】
スマートフォンやタブレットは、タッチスクリーンを備え、スワイプ操作やフリック操作による縦・横・斜めの任意の方向への表示位置の移動や、ピンチアウトおよびピンチイン操作による拡大縮小を行うことができる。
【０００４】
また、特許文献１には、次の技術が開示されている。ページ画像を解析して部分領域を抽出すると共にその読み順を決定する。そして、一次元的な移動指示（前方および後方の移動指示）によって、部分領域を読み順にしたがって順に表示する。このとき、部分領域が文字属性である場合には、行方向の幅が表示画面幅に合うように表示倍率を決定する。これにより、前述の従来技術における操作の煩雑さ（縦横斜め方向のスワイプによる二次元的なスクロールと、ピンチアウト・ピンチインによる拡大縮小を行って部分領域の表示位置とサイズを調整する煩雑さ）が低減される。また、特許文献１では、前方・後方の一次元的な操作でページ画像内の部分領域を順に閲覧することができるため、片手でも操作しやすい。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−２５６５２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ページ画像を解析することにより抽出される文字属性の部分領域は、文書内の本文を構成するテキスト領域や、注釈やキャプションなどのテキスト領域である。注釈やキャプションは、本文よりも小さな文字サイズで記載された文である場合が多い。なお、以下では、本文より小さい文字サイズで記載された文章を「小文字文」と呼称することとする。特許文献１では、各テキスト領域の行方向の幅が表示画面幅に合うように表示倍率が決定されるので、小文字文の部分領域の幅が本文領域の幅に比べてかなり小さい場合、小文字文の領域の方が本文領域よりも表示倍率が大きくなってしまう。これにより、本文よりも小文字文の方が大きな文字として表示されてしまう場合がある。一般的な文書に含まれる文章の文字サイズは、その文章の重要度を示唆するものであるが、本文よりも小文字文の方が大きく表示されてしまうと、閲覧するユーザに各文章の重要性を誤解させてしまう場合があった。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の表示装置は、画像データ内の文字領域の幅に基づいて決定される表示倍率を用いて各文字領域を表示する部分領域表示モードで、前記画像データの各文字領域を表示手段に表示するように制御する制御手段を有する表示装置であって、前記制御手段は、前記部分領域表示モードにおいて、本文の文字領域を表示対象として表示する場合、当該表示対象の本文の文字領域の幅が前記表示手段の表示領域の幅に収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の本文の文字領域を表示するように制御し、前記制御手段は、更に、前記部分領域表示モードにおいて、本文よりも小さいサイズの文字で構成される小文字文の文字領域を表示対象として表示する場合、当該表示対象の小文字文の文字領域の幅が、前記画像データ内の本文の文字領域の幅のうちの最も大きい幅よりも小さいか否か判定し、該判定において小さいと判定した場合は、前記本文の文字領域の幅のうちの最も大きい幅が前記表示手段の表示領域の幅に収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の小文字文の文字領域を表示するように制御し、該判定において小さくないと判定した場合は、前記小文字文の文字領域の幅が前記表示手段の表示領域の幅に収まるように表示倍率を決定して、当該決定された表示倍率で当該表示対象の小文字文の文字領域を表示するように制御することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、本文よりも小さな文字の文（小文字文）が、本文よりも大きく表示されないように制御することにより、ユーザが文の重要度を正しく認識できるようになる。
【図面の簡単な説明】
【０００９】
【図１】本実施形態に係る画像処理システムの構成を示すブロック図
【図２】ＭＦＰ１００の構成例を示すブロック図
【図３】アプリケーション画像データの生成処理の手順を示すフローチャート
【図４】ＭＦＰ１００の画像読取装置２００を使用した場合のビットマップ画像データ作成処理の手順を示したフローチャート
【図５】ＰＣ１０１が各種アプリケーションを実行して作成したドキュメントからビットマップ画像データを作成する処理の手順を示したフローチャート
【図６】ビットマップ画像データを複数の部分領域に分割した結果の一例を示す図
【図７】部分領域情報のデータ構成例を示す図
【図８】文字認識処理の手順を示したフローチャート
【図９】文字属性部分領域情報集計処理の手順を示したフローチャート
【図１０】文字属性部分領域情報の例を示す図
【図１１】文書構造情報のデータ構成を示す図
【図１２】携帯情報端末１０７の構成例を示すブロック図
【図１３】ＣＰＵ１２０５が実行するアプリケーションプログラムの構成概念を示すブロック図
【図１４】ジェスチャイベントの名称と、各イベントが発生したときにジェスチャイベント処理部１３０２へ送信する情報を示した概念図
【図１５】タッチＵＩ１２０４の初期表示処理の手順を示したフローチャート
【図１６】携帯情報端末１０７のタッチＵＩ１２０４の表示例を示す画面図
【図１７】モード切替処理の手順を示したフローチャート
【図１８】携帯情報端末１０７のタッチＵＩ１２０４の表示例を示す画面図
【図１９】部分領域表示範囲決定処理の手順を示したフローチャート
【図２０】部分領域表示範囲決定処理の手順を示したフローチャート
【図２１】次選択処理の手順を示すフローチャート
【図２２】前選択処理の手順を示すフローチャート
【図２３】携帯情報端末１０７のタッチＵＩ１２０４の表示例を示す画面図
【図２４】携帯情報端末１０７のタッチＵＩ１２０４の表示例を示す画面図
【図２５】自動変倍処理の手順を示すフローチャート
【図２６】携帯情報端末１０７のタッチＵＩ１２０４の表示例を示す画面図
【図２７】携帯情報端末１０７のタッチＵＩ１２０４の表示例を示す画面図
【図２８】移動範囲制限処理の手順を示すフローチャート
【発明を実施するための形態】
【００１０】
［実施例１］
図１は、本実施形態に係る画像処理システムの構成を示すブロック図である。
【００１１】
図１において、オフィス内に構築されたＬＡＮ１０２には、複数種類の機能（複写機能、印刷機能、送信機能等）を実現する複合機であるＭＦＰ１００と、クライアントＰＣ１０１が接続されている。更に、ＬＡＮ１０２には、プロキシサーバ１０３と、文書管理サーバ１０６、文書管理サーバ１０６のためのデータベース１０５、携帯情報端末１０７、サーバ１０８が、無線または有線で接続されている。また、ＬＡＮ１０２は、プロキシサーバ１０３を介してネットワーク１０４に接続されている。クライアントＰＣ１０１は、例えば、印刷データをＭＦＰ１００へ送信することで、その印刷データに基づく印刷物をＭＦＰ１００で印刷することが可能である。なお、図１の構成は一例であり、同様の構成要素を有する複数のオフィスがネットワーク１０４上に接続されていても良い。
【００１２】
クライアントＰＣ１０１、プロキシサーバ１０３、サーバ１０８の各種端末はそれぞれ、汎用コンピュータに搭載される標準的な構成要素（例えば、ＣＰＵ、ＲＡＭ、ＲＯＭ、ハードディスク、ネットワークＩ／Ｆ、ディスプレイ、キーボード、マウス等）を有している。また、ネットワーク１０４は、典型的にはインターネットやＬＡＮやＷＡＮや電話回線、専用デジタル回線、ＡＴＭやフレームリレー回線、通信衛星回線、ケーブルテレビ回線、データ放送用無線回線等のいずれかで実現されている。もちろん、それらの組み合わせにより実現されるいわゆる通信ネットワークであっても良いことは言うまでもなく、データの送受信が可能であれば良い。
【００１３】
図２は、図１におけるＭＦＰ１００の構成例を示すブロック図である。図２において、ＭＦＰ１００は、画像読取部２００、記憶装置２０１、印刷装置２０２、入力装置２０３、ネットワークＩ／Ｆ２０４、データ処理装置２０５、表示装置２０９で構成される。画像読取部２００は、図示しないＡｕｔｏ  Ｄｏｃｕｍｅｎｔ  Ｆｅｅｄｅｒ（以降「ＡＤＦ」）を有し、束状、或いは１枚の原稿の画像を光源で照射し、反射画像をレンズで固体撮像素子上に結像する。固体撮像素子は所定解像度（例えば６００ｄｐｉ）および所定輝度レベル（例えば８ビット）の画像読み取り信号を生成し、該画像読み取り信号に基づきラスターデータから成るビットマップ画像データが構成される。
【００１４】
記憶装置２０１は、ＨＤＤなどの、読み出しと書き込みが可能な不揮発メモリである。画像読み取り装置２００からのデータや、クライアントＰＣ１０１からプリンタドライバを経由して出力されるＰＤＬデータをレンダリングして得たデータなど、様々なデータを保存する機能を有する。印刷装置２０２は、記録信号を記録紙上に印刷するものである。これには感光体ドラムや感光体ベルトなどを用いた電子写真印刷方式や、微小ノズルアレイからインクを吐出して記録紙上に直接画像を印字するインクジェット方式などがあるが、どの方式でもかまわない。入力装置２０３は、タッチパネルやキーボード、マウス等から成る入力装置である。ユーザは、入力装置２０３を通じて、ＭＦＰ１００を操作することができる。ネットワークＩ／Ｆ２０４は、ＬＡＮ１０２を介して、別体の外部機器と、各種データの送信あるいは受信を行う。
【００１５】
データ処理装置２０５は、ＭＦＰ１００全体を制御して、本発明に関するデータ処理を実現するものである。データ処理装置２０５は、ＣＰＵ２０６、ＲＯＭ２０７、ＲＡＭ２０８を有する。ＲＯＭ２０７には、データ処理プログラムが格納されており、ＣＰＵ２０６は当該プログラムを読み出してＲＡＭ２０８に記憶することにより、これを実行することができる。これによりデータ処理装置２０５のデータ処理機能を実現するものである。表示装置２０９は、入力装置２０３を通じて成された操作入力の状態を表示することができる。
【００１６】
ＭＦＰ１００は、複写機能を実行する際には、画像読み取り装置２００で得たビットマップ画像データを、データ処理装置２０５によってスキャン画像処理（後述）して記録信号に変換し、印刷装置２０２で画像形成（印刷出力）する。複数枚複写の場合には、１頁分の記録信号を一旦記憶装置２０１に記憶保持した後、印刷装置２０２に順次出力して記録紙上に記録画像を形成する。また、ＭＦＰ１００は、クライアントＰＣ１０１（もしくは他の汎用ＰＣ）からプリンタドライバを利用して出力されてくるＰＤＬデータを、ＬＡＮ１０２とネットワークＩ／Ｆ２０４を介して受信する。そして、当該受信したＰＤＬデータに基づく画像を、印刷装置２０２によって記録し得る。すなわち、クライアントＰＣ１０１からプリンタドライバを経由して出力されるＰＤＬデータは、ＬＡＮ１０７からネットワークＩ／Ｆ２０４を経てデータ処理装置２０５に入力される。そして、データ処理装置２０５でＰＤＬデータを解釈・処理することで記録可能な記録信号に変換された後、印刷装置２０２に出力して記録紙上に記録画像を形成する。あるいは、データ処理装置２０５でＰＤＬデータを解釈・処理することでビットマップ画像データに変換された後、記憶装置２０１に保存する。データ処理装置２０５は、さらに、ビットマップ画像データ（スキャン画像またはＰＤＬデータをレンダリングして得た画像）を携帯端末で表示するのに適した所定フォーマットのデータに変換する機能を有する画像変換装置である。データ処理装置１１５はＣＰＵを含み、メモリに格納されたプログラムを実行することにより後述するフローチャートの処理を実行する各処理部として機能する。なお、データ処理装置１１５は、後述するフローチャートの処理の一部または全部を、ＣＰＵではなく、ＡＳＩＣ等の電子回路で実現するように構成しても構わない。
【００１７】
図３を用いて、データ処理装置が、ビットマップ画像データを、携帯情報端末１０７で表示するのに適した所定のフォーマットのデータ（以降「アプリケーション画像データ」と呼称）に変換する処理を説明するためのフローチャートである。本フローチャートは、データ処理装置２０５において、ＲＯＭ２０７に格納されているデータ処理プログラムを、ＣＰＵ２０６が実行することにより実現される。尚、ビットマップ画像データは、ＭＦＰ１００の画像読取部２００により文書をスキャンすることにより得るか、クライアントＰＣ１０１がアプリケーションソフトを実行することで作成されたドキュメントを、ＭＦＰ１００内部でレンダリングして生成して得たものである。
【００１８】
まず、ステップＳ３０１において、データ処理装置２０５は、処理対象として入力されたビットマップ画像データを属性毎の部分領域（属性毎のオブジェクト）に分割する部分領域分割処理を行う。この処理により、各部分領域に関する情報として、部分領域情報を得ることができる。部分領域分割処理と部分領域情報の詳細は後述する。部分領域分割処理後の各部分領域は、文字、写真、グラフィック（図面、線画、ライン）、表のいずれかの属性に分類される。
【００１９】
ステップＳ３０２において、データ処理装置２０５は、部分領域全てについて、ステップＳ３０２からステップＳ３０４の処理を行ったかを判定する。ＹＥＳの場合には、ステップＳ３０５へ遷移する。ＮＯの場合には、ステップＳ３０１で分割した部分領域のうち未処理の部分領域の１つを処理対象の部分領域としてステップＳ３０３へ遷移する。すなわち、データ処理装置２０５は、ステップＳ３０２〜ステップＳ３０４の処理を、ステップＳ３０１で得た部分領域の数だけ繰り返す。
【００２０】
ステップＳ３０３において、データ処理装置２０５は、処理対象の部分領域について、属性を判定する。属性が文字である場合には、ステップＳ３０４へ遷移する。属性が文字以外（グラフィック、写真、表）である場合には、ステップＳ３０２へ遷移する。
【００２１】
ステップＳ３０４において、データ処理装置２０５は、属性が文字と判定された部分領域について、文字認識処理を行う。文字解析処理の詳細は後述するが、この処理の結果、当該部分領域に含まれる文字の文字コードと文字サイズとを得ることができる。
【００２２】
次に、ステップＳ３０５において、データ処理装置２０５は、ステップＳ３０１で得た部分領域とステップＳ３０４で得た文字サイズとに基づいて、文字属性部分領域情報集計処理を行う。この処理により、属性が文字である部分領域に関する情報（文字属性部分領域情報）を得ることができる。文字属性部分領域情報集計処理と文字属性部分領域情報の詳細については後述する。以上の処理により、ビットマップ画像データ、部分領域情報、文字属性部分領域情報が得られる。ステップＳ３０６において、データ処理装置２０５は、これらの情報（ビットマップ画像データ、部分領域情報、文字属性部分領域情報）を統合し、アプリケーション画像データを生成する。アプリケーション画像データの詳細は後述する。ステップＳ３０７において、データ処理装置２０５は、生成したアプリケーション画像データを携帯情報端末１０７に送信する。
【００２３】
以上、図３を用いてビットマップ画像データからアプリケーション画像データを生成する処理の概要を説明した。以降では、上述の各処理ステップの詳細を順に説明していく。
【００２４】
図４と図５を用いて、Ｓ３０１で処理対象として入力されるビットマップ画像データがどのように作成されたものかについて説明する。図４は、ＭＦＰ１００の画像読取部２００を使用した場合のビットマップ画像データ生成処理の手順を示したフローチャートである。また、図５は、クライアントＰＣ１０１が各種アプリケーションを実行して作成したドキュメントからビットマップ画像データを生成する処理の手順を示したフローチャートである。これらのフローチャートは、データ処理装置２０５において、ＲＯＭ２０７に格納されているデータ処理プログラムを、ＣＰＵ２０６が実行することにより実現される。
【００２５】
ＭＦＰ１００の画像読取部（スキャナ）２００を使用した場合、まず、図４のステップＳ４０１において、データ処理装置２０５は、画像読み取り部２００に原稿を読み込ませて画像を得る。次に、ステップＳ４０２において、データ処理装置２０５は、Ｓ４０１で得られた画像データに対して、画像読取部２００の特性に依存するスキャナ画像処理を行うことにより、ビットマップ画像データを生成する。ここで言うスキャナ画像処理とは、例えば、色処理やフィルタ処理を指す。
【００２６】
一方、クライアントＰＣ１０１のアプリケーションから得られるデータに基づいて処理対象のビットマップ画像を生成する場合は以下のようになる。まず、図５のステップＳ５０１において、データ処理装置２０５は、ネットワークＩ／Ｆ２０４を介して、ＰＣ１０１よりプリントデータを受信する。プリントデータは、ＰＣ１０１が、アプリケーションを実行して作成したドキュメントを、プリンタドライバにより変換して得たものである。なお、プリントデータとはＰＤＬを意味し、例えば、ＬＩＰＳ（商標）、ＰｏｓｔＳｃｒｉｐｔ（商標）等のページ記述言語を指す。次に、ステップＳ５０２において、データ処理装置２０５内のインタープリタは、受信したＰＤＬを解釈してディスプレイリストを生成する。さらに、ステップＳ５０３において、データ処理装置２０５内のレンダラが、当該生成されたディスプレイリストをレンダリングすることによりビットマップ画像データを生成する。
【００２７】
尚、画像読取部２００により読み取った原稿が複数枚であったり、プリントデータに変換するドキュメントが複数ページから成る場合には、生成したビットマップ画像データ内には、複数のページ画像データ（以降単に「ページ」と呼称）が含まれる。
【００２８】
次に、図６と図７を用いて、図３のステップＳ３０１の部分領域分割処理で得られるデータの詳細を説明する。図６は、部分領域分割処理によって、ビットマップ画像データを複数の部分領域に分割した結果の一例を示す図である。また、図７は、部分領域分割したときに得る部分領域情報のデータ構成例を示す図である。
【００２９】
処理対象のビットマップ画像データ（例として図６の左）に対して部分領域分割処理を行うと、図６右のように属性ごとの矩形ブロックに分割される。前述したように、矩形ブロックの属性としては、文字、写真、グラフィック（図面、線画、ライン）、表がある。部分領域分割処理の一手法としては、例えば以下のような手法がある。まず、ＲＡＭに格納されたビットマップ画像データを白黒に２値化し、該２値画像において黒画素輪郭で囲まれる画素塊を抽出する。更に、このように抽出された黒画素塊の大きさを評価し、大きさが所定値以上の黒画素塊については内部に文字を含むもの（表領域など）である可能性があるので、その黒画素塊の内部にある白画素塊に対する輪郭追跡を行う。白画素塊に対する大きさ評価、内部黒画素塊の追跡というように、内部の画素塊が所定値以上である限り、再帰的に内部画素塊の抽出し輪郭追跡を行う。画素塊の大きさは、例えば画素塊の面積によって評価される。このようにして得られた画素塊に外接する矩形ブロックを生成し、矩形ブロックの大きさや形状に基づき属性を判定する。例えば、縦横比が１に近く、かつ大きさが一定の範囲（文字として通常使用されるサイズ）の矩形ブロックは、文字矩形ブロックの可能性がある文字相当ブロックとする。また、近接する文字相当ブロックが規則正しく整列しているときに、これら文字相当ブロックを纏めた新たな矩形ブロックを生成し、この新たな矩形ブロックを文字領域矩形ブロックとする。また、一定の大きさ以上でかつ四角形の白画素塊を整列よく内包する黒画素塊を表ブロック、また、扁平な画素塊をグラフィック矩形ブロック、それ以外の不定形の画素塊を写真矩形ブロックとする。
【００３０】
このようにして生成された矩形ブロックのそれぞれについて、図７に示すように、属性毎の部分領域情報を生成し、一時データとしてＲＡＭ２０８に記憶する。部分領域情報には、ブロック情報と入力ファイル情報を含む。ブロック情報には各ブロックの属性、ページ上の位置（座標Ｘおよび座標Ｙ）、幅Ｗ、高さＨが含まれる。属性は１〜４の数値で与えられ、１は文字矩形ブロック、２は写真矩形ブロック、３はグラフィック矩形ブロック、４は表矩形ブロックを示す。座標Ｘ、座標Ｙは入力画像における各矩形ブロックの始点のＸ座標とＹ座標（矩形ブロックの左上端点の座標）である。幅Ｗ、高さＨは矩形ブロックのＸ座標方向の幅、Ｙ座標方向の高さである。更に、入力ファイル情報として矩形ブロックの個数を示すブロック総数Ｎも保存しておく。
【００３１】
以上により得たブロック情報と、それが示すビットマップ画像データ上の各矩形ブロックとの組が、部分領域分割処理により得られる個々の各部分領域を構成する。
【００３２】
次に、図８のフローチャートを用いて、図３のステップＳ３０４の文字認識処理について詳細を説明する。
【００３３】
ステップＳ８０１において、データ処理装置２０５は、図７に示したブロック情報をもとに、処理対象の部分領域が、文字矩形ブロックであるか否かを判定する。文字矩形ブロックである場合には、ステップＳ８０２へ遷移し、文字矩形ブロックでない場合には、文字認識処理を終了する。
【００３４】
ステップＳ８０２〜ステップＳ８０７においては、データ処理装置２０５は、パターンマッチング等の手法を用いて文字認識処理を行い、対応する文字コードを得る。例えば、ステップＳ８０２において、データ処理装置２０５は、処理対象の部分領域に対し横書き・縦書きの判定（組み方向判定）を行うために、処理対象の部分領域内で、画素値に対する水平・垂直の射影を取る。ステップＳ８０３において、データ処理装置２０５は、ステップＳ８０２の射影の分散を評価する。水平射影の分散が大きい場合は横書き、垂直射影の分散が大きい場合は縦書きと判断する。ステップＳ８０４において、データ処理装置２０５は、ステップＳ８０３の評価結果に基づいて組み方向を判定し、文字行の切り出しを行い、その後、文字行から文字を切り出して文字画像を得る。文字行および文字への分解は、横書きならば水平方向の射影を利用して文字行を切り出し、切り出された文字行に対する垂直方向の射影から文字を切り出す。縦書きの文字領域に対しては、水平と垂直について逆の処理を行う。行や文字の切り出しに際して、文字のサイズも検出する。ステップＳ８０５において、データ処理装置２０５は、ステップＳ８０４で切り出された各文字について、文字画像から得られる特徴を数十次元の数値列に変換した観測特徴ベクトルを生成する。特徴ベクトルの抽出には種々の公知手法があり、例えば、文字をメッシュ状に分割し、各メッシュ内の文字線を方向別に線素としてカウントしたメッシュ数次元ベクトルを特徴ベクトルとする方法がある。ステップＳ８０６において、データ処理装置２０５は、ステップＳ８０５で得られた観測特徴ベクトルと、あらかじめフォントの種類ごとに求められている辞書特徴ベクトルとを比較し、観測特徴ベクトルと辞書特徴ベクトルとの距離を算出する。ステップＳ８０７において、データ処理装置２０５は、ステップＳ８０６で算出された距離を評価し、最も距離の近い文字を文字認識結果とし、文字コードを得る。ステップＳ８０８において、データ処理装置２０５は、ステップＳ８０７における距離評価の最短距離が所定値よりも大きいか否かを判定する（類似度を判定する）。類似度が小さい（最短距離が所定値よりも大きい）場合は、辞書特徴ベクトルにおいて形状が類似する他の文字に誤認識している可能性が高い。この場合は、ステップＳ８０７の認識結果を採用せず、処理を終了する。類似度が大きい（最短距離が所定値より小さい）場合は、ステップＳ８０７の認識結果を採用し、ステップＳ８０９へ遷移する。ステップＳ８０９において、データ処理装置２０５は、ステップＳ８０２で判定した組み方向と、ステップＳ８０４で検出した文字のサイズと、ステップＳ８０７で認識した文字コードとを文字認識結果としてＲＡＭ２０８に記録する。以上のようにして、属性が文字である部分領域に含まれる文字について、文字のサイズと文字コードとを得ることができる。
【００３５】
次に、図９と図１０を用いて、図３のステップＳ３０５の文字属性部分領域情報集計処理について詳細を説明する。図９は、文字属性部分領域情報集計処理の手順を示したフローチャートである。本フローチャートは、データ処理装置２０５において、ＲＯＭ２０７に格納されているデータ処理プログラムを、ＣＰＵ２０６が実行することにより実現される。図１０は、文字属性部分領域情報集計処理により得られる文字属性部分領域情報のデータ構成例を示す図である。
【００３６】
まず、ステップＳ９０１において、データ処理装置２０５は、次の処理を行い本文の文字サイズ（以降「本文文字サイズ」と呼称）を決定する。データ処理装置２０５は、ステップＳ８０７で記憶した文字認識結果（文字のサイズ）をＲＡＭ２０８より読み出す。そして、全ての文字属性の部分領域に含まれる文字の文字サイズに基づいて、文字サイズの最頻値を求める。求めた最頻値を本文文字サイズとする。
【００３７】
ステップＳ９０２において、データ処理装置２０５は、次の４つの変数を初期化する。第１の変数は、属性が文字でありかつ横書きの部分領域の矩形ブロックの行方向の長さの中から最大値を求めるための変数（以降「最大横書き行長」と呼称）である。第２の変数は、属性が文字でありかつ横書きの部分領域の矩形ブロックの行方向の長さの中から最小値を求めるための変数（以降「最小横書き行長」と呼称）である。第３の変数は、属性が文字でありかつ縦書きの部分領域の矩形ブロックの行方向の長さの中から最大値を求めるための変数（以降「最大縦書き行長」と呼称）である。第４の変数は、属性が文字でありかつ縦書きの部分領域の矩形ブロックの行方向の長さの中から最小値を求めるための変数（以降「最小縦書き行長」と呼称）である。
【００３８】
データ処理装置２０５は、ステップＳ９０３〜ステップＳ９１５の処理を、ステップ３０１で得た部分領域の数（ＲＡＭ２０８に記憶した入力ファイル情報のブロック総数Ｎに等しい）だけ繰り返す。
【００３９】
ステップＳ９０３において、データ処理装置２０５は、部分領域全てについて、ステップＳ９０３からステップＳ９１５の処理を行ったかを判定する。ＹＥＳの場合には、ステップ９１７へ遷移する。ＮＯの場合には、未処理の部分領域のうちの１つを処理対象にしてステップＳ９０４へ遷移する。
【００４０】
ステップＳ９０４において、データ処理装置２０５は、処理対象の部分領域について、属性を判定する。属性が文字である場合には、ステップＳ９０５へ遷移する。属性が文字以外（グラフィック、写真、表のいずれか）である場合には、ステップＳ９０３へ遷移する。
【００４１】
ステップＳ９０５において、データ処理装置２０５は、処理対象の部分領域に含まれる文字について文字サイズの最頻値を求めて、当該部分領域における文字のサイズ（以降「個別文字サイズ」と呼称）として決定する。
【００４２】
ステップＳ９０６において、データ処理装置２０５は、個別文字サイズと本文文字サイズとを比較して、処理対象の部分領域に含まれる文が本文であるかを判定する。すなわち、個別文字サイズと本文文字サイズが等しければ本文と判定する。ＹＥＳの場合には、ステップＳ９０７へ遷移する。ＮＯの場合には、ステップＳ９０３へ遷移する。
【００４３】
ステップＳ９０７において、データ処理装置２０５は、処理対象の部分領域に含まれる文字の組み方向を判定する。組み方向は、図３のステップＳ３０２（文字認識）の過程で得られている。組み方向が横である場合、ステップＳ９０８に遷移する。組み方向が縦である場合、ステップＳ９１２に遷移する。
【００４４】
ステップＳ９０８において、データ処理装置２０５は、処理対象の部分領域について、矩形ブロックの行方向の長さが最大横書き行長と成り得るかを判定する。すなわち、矩形ブロックの行方向の長さが現在の最大横書き行長よりも大きければ、当該行方向の長さが最大横書き行長となり得る。ＹＥＳの場合には、ステップＳ９０９へ遷移し、最大横書き行長を処理対象の部分領域の矩形ブロックの行方向の長さ（幅）で更新する。ＮＯの場合にはステップＳ９１０へ遷移する。
【００４５】
ステップＳ９１０において、データ処理装置２０５は、処理対象の部分領域について、矩形ブロックの行方向の長さが最小横書き行長と成り得るかを判定する。すなわち、矩形ブロックの行方向の長さが現在の最小横書き行長よりも小さければ、当該行方向の長さが最小横書き行長となり得る。ＹＥＳの場合には、ステップＳ９１１へ遷移し、最小横書き行長を処理対象の部分領域の矩形ブロックの行方向の長さ（幅）で更新する。ＮＯの場合にはステップＳ９１６へ遷移する。
【００４６】
一方、ステップＳ９１２において、データ処理装置２０５は、処理対象の部分領域について、矩形ブロックの行方向の長さが最大縦書き行長と成り得るかを判定する。すなわち、矩形ブロックの行方向の長さが現在の最大縦書き行長よりも大きければ、当該行方向の長さが最大縦書き行長となり得る。ＹＥＳの場合には、ステップＳ９１３へ遷移し、最大縦書き行長を処理対象の部分領域の矩形ブロックの行方向の長さ（高さ）で更新する。ＮＯの場合にはステップＳ９１４へ遷移する。
【００４７】
ステップＳ９１４において、データ処理装置２０５は、処理対象の部分領域について、矩形ブロックの行方向の長さが最小縦書き行長と成り得るかを判定する。すなわち、矩形ブロックの行方向の長さが現在の最小縦書き行長よりも小さければ、当該行方向の長さが最小縦書き行長となり得る。ＹＥＳの場合には、ステップＳ９１５へ遷移し、最小縦書き行長を処理対象の部分領域の矩形ブロックの行方向の長さ（高さ）で更新する。ＮＯの場合にはステップＳ９１６へ遷移する。
【００４８】
ステップＳ９１６において、データ処理装置２０５は、ステップＳ３０４で取得した、処理対象の部分領域に含まれる文字コードを解析して、リンク情報を生成する。リンク情報とは、例えば、ＵＲＬやＥ−Ｍａｉｌアドレス、電話番号である。当該文字コードより生成可能な文字列について、これらリンク情報のフォーマット規定に基づいて解析処理を行い、リンク情報と成り得る文字列部分を抽出する。フォーマット規定とは、ＵＲＬであればＲＦＣ１７３８であり、Ｅ−ＭａｉｌアドレスであればＲＦＣ５３２１，５３２２に基づく。また、電話番号であれば、予め電話番号の正規表現パターンを記憶しておき、これに基づいて解析すればよい。
【００４９】
ステップＳ９１７において、データ処理装置２０５は、以上の処理により求めた本文文字サイズ、個別文字サイズ、最大横書き行長、最小横書き行長、最大縦書き行長、最小縦書き行長、リンク情報をまとめて、図１０のような文字属性部分領域情報として、ＲＡＭ２０８に一時データとして記憶する。以上により、属性が文字である部分領域について、文字属性部分領域情報を得ることができる。
【００５０】
次に、アプリケーション画像データの詳細（フォーマット）について説明する。アプリケーション画像データは、ビットマップ画像データと、図３のステップＳ３０１〜Ｓ３０５の処理により得た情報を統合して得た文書構造情報の２つの部分から成る。そして図１１は、文書構造情報の一例を示した図である。本実施例では、文書構造情報のフォーマットとして、Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ（以下、「ＸＭＬ」）形式を用いて説明する。
【００５１】
文書構造情報には、例えば次のタグで情報を記述することができる。“ｄｏｃ”タグは一つのドキュメントを示す。“ｐａｇｅ”タグは一つのページを示す。“ａｒｅａ”タグは一つの部分領域を示す。
【００５２】
“ｄｏｃ”タグの属性として、“ＣＳ”，  “ＬＨｍａｘ”，  “ＬＨｍｉｎ”，“ＬＶｍａｘ”，  “ＬＶｍｉｎ”を記述することができる。これらは文字属性部分領域情報から得たものであり、それぞれ順に、本文文字サイズ、最大横書き行長、最小横書き行長、最大縦書き行長、最小縦書き行長である。
【００５３】
“ａｒｅａ”タグの属性として次を記述することができる。“ｘ”，  “ｙ”，  “ｗ”，  “ｈ”は、部分領域の部分領域情報から得たものであり、それぞれ順に、ページ上の位置の座標ＸおよびＹ、幅Ｗ，高さＨである。“ｔｙｐｅ”は、部分領域の属性を示し、部分領域情報から得たものである。“ｃｓ”は、文字属性部分領域情報から得た個別文字サイズである。“ｄｉｒ”は、文字属性部分領域情報から得た組み方向である（横ならば値を“ｈ”、縦ならば値を“ｖ”とする）。“ｌｉｎｋ”は、文字属性部分領域情報から得たリンク情報である。
【００５４】
なお、本実施例ではアプリケーション画像データをＸＭＬ形式で表記しているが、文書の意味や構造を記述・保持できる画像フォーマットであれば良く、これに限定されるものではない。
【００５５】
以上ここまでにおいて、アプリケーション画像データの構成と、これを生成する方法について説明した。以降では、当該アプリケーション画像データを表示する方法について説明していく。
【００５６】
図１２は、携帯情報端末１０７の構成例を示すブロック図である。携帯情報端末１０７は、メインボード１２００、ＬＣＤ１２０１、タッチパネル１２０２、ボタンデバイス１２０３から構成される。また、ＬＣＤ１２０１とタッチパネル１２０２をまとめてタッチＵＩ１２０４と呼称する。尚、本実施例では、タッチＵＩ１２０４の（ＬＣＤ１２０１の）表示領域のサイズ（ピクセル数）について、幅を「ＤＷ」、高さを「ＤＨ」と記載する。
【００５７】
メインボード１２００の主な構成要素は以下である。ＣＰＵ１２０５、無線ＬＡＮモジュール１２０６、電源コントローラ１２０７、ディスプレイコントローラ（ＤＩＳＰＣ）１２０８、パネルコントローラ（ＰＡＮＥＬＣ）１２０９、ＲＯＭ１２１０、ＲＡＭ１２１１、二次電池１２１２、タイマー１２１３。そして、１２０５〜１２１３の各モジュールは、バス（不図示）によって接続されている。
【００５８】
ＣＰＵ１２０５は、この携帯情報端末１０７全体を制御するためのコントローラである。ＣＰＵ１２０５は、バスに接続されている各モジュールを制御する。ＣＰＵ１２０５は、ＲＯＭ１２１０に格納されているブートプログラムによりＯＳ（オペレーティングシステム）を起動する。このＯＳの上で、同じくＲＯＭ１２１０に格納されているアプリケーションプログラムを実行する。このアプリケーションプログラムは、アプリケーション画像データの内容を閲覧するプログラムである。
【００５９】
ＲＡＭ１２１１は、ＣＰＵ１２０５のメインメモリやワークエリア、ＬＣＤ１２０１に表示するビデオイメージ用エリア、アプリケーション画像データの保存領域として機能する。
【００６０】
ディスプレイコントローラ（ＤＩＳＰＣ）１２０８は、ＣＰＵ１２０５の要求に応じて、ＲＡＭ１２１１に展開されたビデオイメージ出力を高速に切り替えるとともに、ＬＣＤ１２０１に同期信号を出力する。結果として、ＲＡＭ１２１１のビデオイメージが、ＤＩＳＰＣ１９０８の同期信号に同期してＬＣＤ１２０１に出力され、ＬＣＤ１２０１上にイメージが表示される。
【００６１】
パネルコントローラ（ＰＡＮＥＬＣ）１２０９は、ＣＰＵ１２０５の要求に応じて、タッチパネル１２０２およびボタンデバイス１２０３を制御する。その制御によって、タッチパネル１２０２へのタッチ（指またはスタイラスペンなどの指示物がタッチパネル１２０２に接近または接触すること）位置や、押下されたボタンデバイス１２０３のキーコードなどが、ＣＰＵ１２０５に通知される。タッチ位置は、タッチパネル１２０２の横方向の絶対位置を示す座標値（以下、「Ｘ座標」）と、縦方向の絶対位置を示す座標値（以下、「Ｙ座標」）から成る。タッチパネル１２０２は複数箇所の押下を検知することが可能で、その場合ＣＰＵ１２０５にはタッチ入力位置数分の押下位置情報が通知される。
【００６２】
無線ＬＡＮモジュール１２０６は、ＣＰＵ１２０５の制御に基づいて、前記ＬＡＮ１０２に接続された無線アクセスポイント（不図示）上の無線ＬＡＮモジュールとの無線通信を確立し、携帯情報端末１０７との通信を仲介する。無線ＬＡＮモジュール１２０６には、例えばＩＥＥＥ８０２．１１ｂなどがある。
【００６３】
電源コントローラ１２０７は、外部電源（不図示）と接続され電力の供給を受ける。これによって、電源コントローラ１２０７に接続された二次電池１２１２を充電しながら、且つ、携帯情報端末１０７全体に電力を供給する。電源コントローラ１２０７により外部電源から電力が供給されないときは、二次電池１２１２が電力を携帯情報端末１０７全体に供給する。
【００６４】
タイマー１２１３は、ＣＰＵ１２０５の制御に基づいて、ジェスチャイベント発生部１３０１（後述）へのタイマー割込を発生させる。
【００６５】
次に、携帯情報端末１０７のＣＰＵ１２０５が実行するアプリケーションプログラムについて説明する。図１３は、ＣＰＵ１２０５が実行するアプリケーションプログラムの構成概念を示すブロック図である。
【００６６】
ジェスチャイベント発生部１３０１は、タッチパネル１２０２で検知したユーザのタッチ入力を、パネルコントローラ１９０９を介して受け付けて、後述する各種ジェスチャイベントを発生させる。ジェスチャイベント発生部１３０１は、発生させたジェスチャイベントを、ジェスチャイベント処理部１３０２へ送信する。
【００６７】
ジェスチャイベント処理部１３０２は、ジェスチャイベント発生部１３０１が発生させたジェスチャイベントを受信して、各ジェスチャイベントと、アプリケーション画像データに記述された文書構造に応じた処理を実行する。ジェスチャイベント処理部１３０２は、表示モード処理部１３０３と表示位置移動処理部１３０４と拡大・縮小処理部１３０５から成る。
【００６８】
表示モード処理部１３０３は、アプリケーション画像データをタッチＵＩ１２０４に表示する際の表示モード（後述）の切り替えや、表示する部分領域の選択を行う。表示位置移動処理部１３０４は、ユーザによるタッチパネル１２０２上のスワイプ操作に応答して表示位置の移動処理を行う。拡大・縮小処理部１３０５は、ユーザによるタッチパネル１２０２へのダブルタップ操作やピンチアウト・ピンチイン操作に応じて、タッチＵＩ１２０４上の表示内容を拡大・縮小して更新させる。
【００６９】
次に、ジェスチャイベント発生部１３０１が発生させるジェスチャイベントについて説明する。図１４は、ジェスチャイベントの名称と、各イベントが発生したときにジェスチャイベント発生部１３０１がジェスチャイベント処理部１３０２へ送信する情報を示した概念図である。
【００７０】
（ａ）は、タッチ押下イベントであり、タッチパネル１２０２へのタッチ入力位置の座標値とタッチ座標数を送信する。タッチ座標とは、最新のタッチ位置を示すＸ座標とＹ座標の組で表される座標値である。また、タッチ座標数とは、タッチ位置の数を示している。なお、タッチ座標は、タッチパネル１２０２へユーザの指が触れたとき、指が移動したとき、指が離れたときに、タイマー１２１３からの割り込みが発生し、更新する。
【００７１】
（ｂ）は、スワイプイベントであり、最新のタッチ座標の座標値と、最新と直前の座標値の差分から計算した移動距離を送信する。ここで、スワイプとは、指先をタッチパネル１２０２に接触させたまま、１方向に移動（滑らすような）動作のことをいう。
【００７２】
（ｃ）は、ピンチインイベントであり、ユーザが同時にタッチした２本の指に対応する最新の２点のタッチ座標の中心座標値、及び、２点のタッチ座標を結ぶ直線の縮小距離から計算したピンチインの縮小率を送信する。ここで、ピンチインとは、ユーザが２つの指先をタッチパネル１２０２に接触させたまま、互いに近づける（つまむような）動作のことをいう。
【００７３】
（ｄ）は、ピンチアウトイベントであり、ユーザが同時にタッチした２本の指に対応する最新の２点のタッチ座標の中心座標値、及び、２点のタッチ座標を結ぶ直線の拡大距離から計算したピンチアウトの拡大率を送信する。ここで、ピンチアウトとは、２つの指先をタッチパネル１２０２に接触させたまま、互いに遠ざける（指を広げるような）動作のことをいう。
【００７４】
（ｅ）は、２点スワイプイベントであり、ユーザが同時にタッチした２本の指に対応する最新の２点のタッチ座標の座標値、及び、２点のタッチ座標の最新と直前の座標値の差分から計算した移動距離を送信する。２点スワイプイベントは、２点のタッチ座標が同じ方向に移動している場合に発生させる。
【００７５】
（ｆ）は、ローテートイベントであり、ユーザが同時にタッチした２本の指に対応する最新の２点のタッチ座標の座標値から計算した回転の中心座標値、及び、２点のタッチ座標の最新と直前の座標値から計算した回転角度を送信する。ここで、ローテートとは、２つの指先をタッチパネル１２０２に接触させたまま、２つの指先をタッチパネル１２０２に対して回転させる動作のことを言う。
【００７６】
（ｇ）は、フリックイベントであり、最新のタッチ座標の座標値、及び、最新と直前の座標値から計算した指の移動速度を送信する。ここで、フリックとは、スワイプ中に指を離す（指をはじくような）動作のことを言う。
【００７７】
（ｈ）は、タッチ解除イベントであり、タッチパネル１２０２からユーザの指が離れたときの最新のタッチ座標の座標値、及び、座標数を送信する。
【００７８】
（ｉ）は、ダブルタップイベントであり、最新のタッチ座標の座標値を送信する。ここで、ダブルタップとは、タッチパネル１２０２へ指を接触させる動作と、これより所定の時間内に指を離す操作を一組の動作（後述のシングルタップイベント）とし、これを所定の時間内に連続して２回実施する動作のことを言う。
【００７９】
（ｊ）は、シングルタップイベントであり、最新のタッチ座標の座標値が送信される。ここで、シングルタップとは、前述のとおり、タッチパネル１２０２へ指を接触させる動作から、所定の時間内に指を離す動作のことを言う。
【００８０】
（ｋ）は、ロングタップイベントであり、最新のタッチ座標の座標値が送信される。ここで、ロングタップとは、タッチパネル１２０２へ指を接触させる動作から、所定の時間以上経過した後に、タッチパネルから指を離す動作のことを言う。
【００８１】
（ｌ）は、タッチアンドホールドイベントであり、最新のタッチ座標の座標値が送信される。ここで、タッチアンドホールドイベントとは、タッチパネル１２０２にユーザの指が触れてから一度も移動することなく所定の時間以上経過させる動作を言う。
【００８２】
なお、ここでは、ユーザのタッチ入力の例として指を使った場合を示すが、タッチ入力はスタイラスペンなどによる入力でも良い。
【００８３】
次に、アプリケーション画像データの内容を、タッチＵＩ１２０４に表示する処理の詳細を説明する。
【００８４】
図１５および図１６を用いて、アプリケーション画像データの内容の初期表示処理を説明する。図１５は、アプリケーション画像データの内容の初期表示処理の手順を示したフローチャートである。本フローチャートは、ＣＰＵ１２０５がアプリケーションプログラムを実行して表示モード処理部１３０３として機能することにより実現される。表示モード処理部１３０３は、アプリケーション画像データを、無線ＬＡＮモジュール１２０６を介して外部装置（ここではＭＦＰ１００）から受信すると、本処理を開始する。
【００８５】
まず、ステップＳ１５０１において、表示モード処理部１３０３は、受信したアプリケーション画像データをＲＡＭ１２１１に記憶する。
【００８６】
ステップＳ１５０２において、表示モード処理部１３０３は、ＲＡＭ１２１１に保存したアプリケーション画像データの構文を解析し、先頭ページを読み込む。そして、ステップＳ１５０３において、表示モード処理部１３０３は、後述のとおり表示倍率を決定し、ビットマップ画像データに含まれる先頭ページの画像データを変倍して表示画像を生成する。そして、ＲＡＭ１２１１のビデオイメージエリアに当該表示画像を書き込み、ディスプレイコントローラ１２０８を介して、タッチＵＩ１２０４に表示内容を更新させる。（尚、以下の説明では、前述の表示画像の生成からタッチＵＩ１２０４に表示内容を更新させるまでの処理を、単に「タッチＵＩ１２０４に表示内容を更新させる」のように記載する。）
図１６は、携帯情報端末１０７のタッチＵＩ１２０４の表示例を示す画面図である。表示モード処理部１３０３がステップＳ１５０３を実行し終えると、タッチＵＩ１２０４には図１６（ａ）に示すように、ビットマップ画像データの先頭ページ（ページ１６００）の内容が表示される。
【００８７】
このとき、表示モード処理部１３０３は、タッチＵＩ１２０４の表示領域の幅ないし高さに合わせてページ全体が表示されるように、ページの表示倍率を決定する。ここで、ページの幅および高さ（いずれもピクセル数）を「ＰＷ」および「ＰＨ」と記載すれば、表示倍率Ｒは次の式により決定する。
【００８８】
Ｒ＝ＭＩＮ（（ＤＷ−ｍｗ＊２）／ＰＷ，  （ＤＨ−ｍｈ＊２）／ＰＨ）
なお、関数ＭＩＮ（ａ，ｂ）は、変数（ａ，ｂ）から最小値を選ぶ関数である。また、ｍｗやｍｈは、ページを表示した場合における、表示領域の左右端部および上下端部からマージンである。上記式により、ページの画像の幅および高さが、表示領域の幅および高さの範囲に含まれてかつ、最大限大きくなるようページの表示倍率を決定する。そして、表示モード処理部１３０３は、上記表示倍率に変倍したときのページが、タッチＵＩ１２０４の中央に表示されるように、タッチＵＩ１２０４上の座標において、ページの表示位置の始点を決定する。このように、タッチＵＩ１２０４においてページ全体を表示する表示制御方法を、本実施例では「ページ表示モード」を呼ぶこととする。
【００８９】
また、図１６（ａ）において、モード切替ボタン１６０１は、表示モードを、「ページ表示モード」と「部分領域表示モード」の間で切り替えるためのボタンである。「部分領域表示モード」とは、現在表示中のページに含まれる部分領域を順番に拡大表示するモードである。表示モード処理部１３０３は、モード切替ボタン１６０１がユーザにより指示されるのに応じて、後述するモード切替処理を実行する。
【００９０】
「次へボタン」１６０２は、部分領域表示モードにおいて、現在表示中の部分領域を、その次の順番の部分領域に切り換えて表示するためのものである。表示モード処理部１３０３は、「次へボタン」１６０２への指示に応じて、後述する次選択処理を実行する。
【００９１】
「前へボタン」１６０３は、部分領域表示モードにおいて、現在表示中の部分領域を、その前の順番の部分領域に切り換えて表示するためのものである。表示モード処理部１３０３は、「前へボタン」１６０３への指示に応じて、後述する前選択処理を実行する。
【００９２】
ここで、図１６（ｂ）を用いて、ページ１６００に含まれる各部分領域について説明する。部分領域１６０４は、属性が文字の部分領域であり、文章におけるタイトル文が含まれている。このタイトル文は１８ｐｔの文字サイズで記載されたものである。
【００９３】
部分領域１６０５，１６０７，１６１２は、属性が文字の部分領域であり、文章における本文が含まれている。これらの本文は１０．５ｐｔの文字サイズで記載されたものである。
【００９４】
部分領域１６０８は、属性が文字の部分領域であり、文章における重要ポイントを示す文である。この重要文は、本文よりもやや大きな文字サイズ（１４ｐｔ）で記載されたものである。
【００９５】
部分領域１６１１は、属性が文字の部分領域であり、文章における注釈が含まれている。この注釈文（小文字文）は８ｐｔで記載されたものである。
【００９６】
部分領域１６１３は、属性が文字の部分領域であり、リンク情報（ＵＲＬ）を含んでいる。この文は８ｐｔで入力されたものである。
【００９７】
部分領域１６０６は、属性が写真の部分領域である。部分領域１６０９は、属性が表の部分領域である。部分領域１６１０は、属性がグラフィックの部分領域である。
【００９８】
尚、図１６（ｂ）の各部分領域を囲む破線は、説明をわかり易くするために描いたものであり、実際にはページ１６００上には存在しない。
【００９９】
次に、図１６〜１８を用いて、モード切替処理について説明する。図１７は、モード切替処理の手順を示したフローチャートである。本フローチャートは、ＣＰＵ１２０５がアプリケーションプログラムを実行して表示モード処理部１３０３として機能することにより実現される。表示モード処理部１３０３は、タッチＵＩ１２０４を介して、ユーザによるモード切替ボタン１６０１へのシングルタップ操作を検知すると、本処理を開始する。また、図１８は、携帯情報端末１０７のタッチＵＩ１２０４の表示例を示す画面図である。
【０１００】
まず、ステップＳ１７０１において、表示モード処理部１３０３は、モード切替ボタンが指示された時点における、携帯情報端末１０７に設定中の表示モードを判定する。携帯情報端末１０７は、ページ全体を表示するのに適したページ表示モード（前述）と、図１８に示すように、ページ内の各部分領域を順番に拡大表示するのに適した部分領域表示モードとの２つの表示モードを有する。アプリケーション画像データを携帯情報端末１０７が受信した直後は、ページ表示モードが設定されている。部分領域表示モードは、図１８に示すように、ページ内の各部分領域が大きく表示されるように、ページの表示倍率と表示位置を制御する表示モードである。部分領域表示モードにおける、属性が文字，写真，表，グラフィクスである各部分領域の表示例を、それぞれ図１８（ａ），図１８（ｂ），図１８（ｃ），図１８（ｄ）に示す。また、本実施例では、図１８に示すように、拡大表示対象の部分領域（ここでは部分領域１６０５、部分領域１６０６、部分領域１６０９、部分領域１６１０）以外の領域を半透明グレーがかかって見えるように、半透明マスク１８０１をページの上に重ねて表示する。このような半透明マスクを重ねて表示することにより、表示対象の部分領域以外が暗く表示されるので、表示対象の部分領域が強調表示され、ユーザは表示対象になっている部分領域を認識しやすくなる。ステップＳ１７０１において、表示モード処理部１３０３は、現在の表示モードが、部分領域表示モードであると判定した場合はステップＳ１７０２へ遷移し、ページ表示モードであると判定した場合はステップＳ１７０４へ遷移する。
【０１０１】
ステップＳ１７０２において、表示モード処理部１３０３は、図１８の半透明マスク１８０１を非表示設定にして、ページ表示モードへの切り替えを行う。ステップＳ１７０３において、表示モード処理部１３０３は、前述したページ表示モードの表示方法にしたがって、タッチＵＩ１２０４の表示領域の幅と高さに収まるようにページの表示倍率と表示位置を決定する。
【０１０２】
ステップＳ１７０４において、表示モード処理部１３０３は、表示モードを部分領域表示モードへ切り替え、ステップＳ１７０５において、ページ内の先頭の部分領域の情報を読み込む。これは、文書構造情報のＸＭＬの中で最初に登場する“ａｒｅａ”タグの情報を読み込むことであり、これにより当該部分領域のページ上の位置、幅、高さ、属性などの情報を取得する。
【０１０３】
ステップＳ１７０６において、表示モード処理部１３０３は、後述する部分領域表示範囲決定処理を実行する。ステップＳ１７０６の部分領域表示範囲決定処理では、ステップＳ１７０５で読み込んだ部分領域の属性に応じて、ページの表示倍率および表示位置と、半透明マスクの表示位置とを決定する。ステップＳ１７０７において、表示モード処理部１３０３は、以上の処理により決定したページの表示倍率や表示位置に基づき、タッチＵＩ１２０４の表示内容を更新する。
【０１０４】
次に、図１９と図２０を用いて、図１７のステップＳ１７０６に示した部分領域表示範囲決定処理の詳細を説明する。図１９および図２０のフローチャートは、ＣＰＵ１２０５がアプリケーションプログラムを実行して表示モード処理部１３０３として機能することにより実現される。図１９および図２０の処理により、表示モード処理部１３０３は、処理対象の部分領域を表示するためのページの表示倍率と表示位置を、部分領域の属性に応じて決定する。文字属性の部分領域（テキスト領域）に対しては、該部分領域に含まれる文章が、本文、小文字文（本文よりも小さな文字サイズで記載された注釈などの文章）、大文字文（本文よりも大きな文字サイズで記載されたタイトルなどの文章）のいずれであるかに基づいて決定する。
【０１０５】
ステップＳ１９０１において、表示モード処理部１３０３は、読み込んだ部分領域の属性を判定する。属性が表である場合には、ステップＳ１９０２へ遷移し、属性が写真またはグラフィックである場合には、ステップＳ１９０８へ遷移し、属性が文字である場合には、図２０のステップＳ２００１へ遷移する。
【０１０６】
まず、処理対象の部分領域の属性が表である場合のページの表示倍率と表示位置を決定する手順について説明する。ステップＳ１９０２において、表示モード処理部１３０３は、表のヘッダ（表の見出し項目が記載されている先頭行または先頭列）の位置を検出する。ヘッダ位置は、例えば、先頭行（一番上の行）と先頭列（一番左の列）の表罫線の太さ、表の各セルの背景色、表内の文字列などによって判断することができる。
【０１０７】
ステップＳ１９０３において、表示モード処理部１３０３は、ステップＳ１９０２で取得したヘッダ位置より、先頭行と先頭列のいずれを優先して表示するかを判定する。ヘッダ位置が先頭列のみである場合は、ステップＳ１９０４へ遷移する。ヘッダ位置が先頭行のみである場合は、ステップＳ１９０５へ遷移する。なお、本実施形態では、表のヘッダが先頭行と先頭列の両方に記載されている場合や表のヘッダ位置が判定できなかった場合は、先頭行を優先して表示するようにＳ１９０５に遷移するものとするが、これに限るものではない。例えば、表の高さと幅とを比較して、高さの方が長い場合は先頭列を優先して表示するようにＳ１９０４に遷移し、幅の方が長い場合は先頭行を優先して表示するようにＳ１９０５に遷移するように構成してもよい。また、列方向のセル数と行方向のセル数を比較して、セル数の多い方が優先されるように構成してもよい。
【０１０８】
ステップＳ１９０４において、表示モード処理部１３０３は、当該部分領域の高さがタッチＵＩ１２０４の高さに収まるように、ページの表示倍率を決定する（すなわち、先頭列全てが表示されるように表示倍率を決定する）。ここで、部分領域の高さ（ピクセル数）を「ＯＨ」とした場合、表示倍率Ｒは次の式により決定する。
Ｒ＝（ＤＨ−ｍｈ＊２）／ＯＨ
ここで、ＤＨはタッチＵＩ１２０４の高さであり、ｍｈは部分領域を表示する場合における表示領域の上下端それぞれからのマージンである。
【０１０９】
また、ステップ１９０５において、表示モード処理部１３０３は、当該部分領域の幅がタッチＵＩ１２０４の幅に収まるように、ページの表示倍率を決定する（すなわち、先頭行全てが表示されるように表示倍率を決定する）。ここで、部分領域の幅（ピクセル数）を「ＯＷ」とした場合、表示倍率は次の式により決定する。
Ｒ＝（ＤＷ−ｍｗ＊２）／ＯＷ
ここで、ＤＷはタッチＵＩ１２０４の幅であり、ｍｗは部分領域を表示する場合における表示領域の左右端それぞれからのマージンである。
【０１１０】
ステップ１９０６において、表示モード処理部１３０３は、ステップＳ１９０４またはステップＳ１９０５で決定した表示倍率でページを表示した場合に、タッチＵＩ１２０４に当該処理対象の部分領域の全体を表示できるかを判定する。部分領域全体を表示できない（部分領域のサイズがタッチＵＩの表示領域のサイズより大きい）と判定した場合には、ステップＳ１９０７へ遷移する。一方、部分領域全体を表示できる（部分領域のサイズがタッチＵＩの表示領域のサイズ以下である）と判定した場合には、ステップＳ１９０９へ遷移する。
【０１１１】
ステップＳ１９０７において、表示モード処理部１３０３は、表示位置の始点をタッチＵＩ１２０４の左上端と決定する。これは、表のヘッダは一番上の行や一番左の列に存在することが一般的であることによる。一方、ステップＳ１９０９において、表示モード処理部１３０３は、部分領域全体がタッチＵＩ１２０４の画面内に収まるので、当該部分領域の中央がタッチＵＩ１２０４の中央に合うように表示位置の始点を決定する。
【０１１２】
次に、ステップＳ１９０１において、処理対象の部分領域の属性が写真またはグラフィックであると判定された場合のページ表示倍率と表示位置を決定する手順について説明する。ステップＳ１９０８において、表示モード処理部１３０３は、処理対象の部分領域全体がタッチＵＩ１２０４の表示領域のサイズに収まるように、表示倍率を決定する。すなわち、次の式により表示倍率Ｒを決定する。
Ｒ＝ＭＩＮ（（ＤＷ−ｍｗ＊２）／ＯＷ，  （ＤＨ−ｍｈ＊２）／ＯＨ）
ここで、ＯＷは部分領域の幅、ＯＨは部分領域の高さ、ＤＷはタッチＵＩの幅、ＤＨはタッチＵＩの高さ、ｍｗは部分領域を表示する場合における表示領域の左右端それぞれからのマージン、ｍｈは部分領域を表示する場合における表示領域の上下端それぞれからのマージンである。
【０１１３】
次に、ステップＳ１９０１において、処理対象の部分領域の属性が文字であると判定された場合のページの表示倍率と表示位置を決定する手順について説明する。まず、図２０のステップＳ２００１において、表示モード処理部１３０３は、処理対象の部分領域の個別文字サイズを本文文字サイズと比較することにより、当該部分領域が本文であるか小文字文であるか大文字文であるかを判定する。なお、個別文字サイズは、文書構造情報から読み出して取得することができる。また、本文文字サイズも文書構造情報から読み出して取得する。そして、本文文字サイズと個別文字サイズを比較して、個別文字サイズ＝本文文字サイズならば、処理対象の部分領域は本文であると判定しステップＳ２０１３へ遷移する。個別文字サイズ＜本文文字サイズならば、処理対象の部分領域は小文字文であると判定し、ステップＳ２００２へ遷移する。個別文字サイズ＞本文文字サイズならば、処理対象の部分領域は大文字文であると判定し、ステップＳ２００８へ遷移する。
【０１１４】
小文字文である場合、ステップＳ２００２において、表示モード処理部１３０３は、文書構造情報を参照して、処置対象の部分領域がリンク情報を含むか否かを判定する。これは文書構造譲情報参照することにより判定することができる（処理対象の部分領域に該当する“ａｒｅａ”タグに“ｌｉｎｋ”属性が存在すれば、リンク情報を含むと判定する）。リンク情報を含むと判定した場合には、ステップＳ２０１３へ遷移する（本文と同様に、当該処理対象の部分領域の行方向の長さを基準に表示倍率を決定することになる）。リンク情報を含まないと判定した場合は、ステップＳ２００３へ遷移する。
【０１１５】
ステップＳ２００３において、表示モード処理部１３０３は、処理対象の部分領域に含まれる文字の組み方向を判定する。組み方向は、文書構造情報より得ることができる（処理対象の部分領域に該当する“ｄｉｒ”属性を参照する）。組み方向が横である場合、ステップＳ２００４へ遷移する。組み方向が縦である場合、ステップＳ２００６へ遷移する。
【０１１６】
Ｓ２００３で組み方向が横であると判定された場合、ステップＳ２００４において、表示モード処理部１３０３は、最大横書き行長と当該処理対象の部分領域の幅とを比較する。最大横書き行長は文書構造情報より得ることができる（“ｐａｇｅ”タグの“ＬＨｍａｘ”を参照する）。最大横書き行長＞処理対象の部分領域の幅であれば、ステップＳ２００５へ遷移する。最大横書き行長＞処理対象の部分領域の幅でなければ、ステップＳ２０１３へ遷移する。
【０１１７】
ステップＳ２００５において、表示モード処理部１３０３は、最大横書き行長がタッチＵＩ１２０４の表示領域に合うように、ページの表示倍率を決定する。すなわち、最大横書き行長を「ＬＨＭＡＸ」とした場合、表示倍率Ｒは、次の式“Ｒ＝（ＤＷ−ｍｗ＊２）／ＬＨＭＡＸ”により決定する。
【０１１８】
Ｓ２００３で組み方向が縦であると判定された場合、ステップＳ２００６において、表示モード処理部１３０３は、最大縦書き行長と当該処理対象の部分領域の高さとを比較する。最大縦書き行長は文書構造情報より得ることができる（“ｐａｇｅ”タグの“ＬＶｍａｘ”を参照する）。最大縦書き行長＞処理対象の部分領域の高さであれば、ステップＳ２００７へ遷移する。最大縦書き行長＞処理対象の部分領域の高さでなければ、ステップＳ２０１３へ遷移する。
【０１１９】
ステップＳ２００７において、表示モード処理部１３０３は、最大縦書き行長がタッチＵＩ１２０４の表示領域に合うように、ページの表示倍率を決定する。最大縦書き行長を「ＬＶＭＡＸ」とした場合、表示倍率Ｒは、次の式“Ｒ＝（ＤＨ−ｍｈ＊２）／ＬＶＭＡＸ”により決定する。
【０１２０】
ステップＳ２００５またはステップＳ２００７では、最大横書き行長または最大縦書き行長に基づいて表示倍率を決定するので、小文字文である処理対象の部分領域は、本文の部分領域のうち、最も小さな表示倍率で表示される本文の部分領域と同じ表示倍率で表示されることになる。同じ表示倍率であれば、小文字文の文字サイズの方が本文の文字サイズよりも小さく表示されることになる。すなわち、小文字文の文字サイズが本文の文字サイズよりも大きく表示されないように制御できる。
【０１２１】
ステップＳ２００１で大文字文と判定された場合、ステップＳ２００８において、表示モード処理部１３０３は、処理対象の部分領域に含まれる文字の組み方向を判定する。組み方向が横である場合、ステップＳ２００９に遷移し、組み方向が縦である場合、ステップＳ２０１１に遷移する。
【０１２２】
Ｓ２００８で組み方向が横であると判定された場合、ステップＳ２００９において、表示モード処理部１３０３は、最小横書き行長と当該処理対象の部分領域の幅とを比較する。最小横書き行長は文書構造情報より得ることができる（“ｐａｇｅ”タグの“ＬＨｍｉｎ”を参照する）。最小横書き行長＜処理対象の部分領域の幅であれば、ステップＳ２０１０へ遷移する。最小横書き行長＜処理対象の部分領域の幅でなければ、ステップＳ２０１３へ遷移する。
【０１２３】
ステップＳ２０１０において、表示モード処理部１３０３は、最小横書き行長がタッチＵＩ１２０４の表示領域に合うように、ページの表示倍率を決定する。すなわち、最小横書き行長を「ＬＨＭＩＮ」とした場合、表示倍率Ｒは、次の式“Ｒ＝（ＤＷ−ｍｗ＊２）／ＬＨＭＩＮ”により決定する。
【０１２４】
Ｓ２００８で組み方向が縦であると判定された場合、ステップＳ２０１１において、表示モード処理部１３０３は、最小縦書き行長と当該処理対象の部分領域の高さとを比較する。最小縦書き行長は文書構造情報より得ることができる（“ｐａｇｅ”タグの“ＬＶｍｉｎ”を参照する）。最小縦書き行長＜処理対象の部分領域の高さであれば、ステップＳ２０１２へ遷移する。最小縦書き行長＜処理対象の部分領域の高さでなければ、ステップＳ２０１３へ遷移する。
【０１２５】
ステップＳ２０１２において、表示モード処理部１３０３は、最小縦書き行長がタッチＵＩ１２０４の表示領域に合うように、ページの表示倍率を決定する。すなわち、最小縦書き行長を「ＬＶＭＩＮ」とした場合、表示倍率Ｒは、次の式“Ｒ＝（ＤＨ−ｍｈ＊２／ＬＶＭＩＮ”により決定する。
【０１２６】
ステップＳ２０１０またはステップＳ２０１２では、最小横書き行長または最小多々書き行長に基づいて表示倍率を決定するので、大文字文である処理対象の部分領域は、本文の部分領域のうち、最も大きな表示倍率で表示される本文の部分領域と同じ表示倍率で表示されることになる。同じ表示倍率であれば、大文字文の文字サイズの方が本文の文字サイズよりも大きく表示されることになる。すなわち、大文字文の文字サイズが本文の文字サイズよりも小さく表示されないように制御できる。
【０１２７】
ステップＳ２０１３において、表示モード処理部１３０３は、処理対象の部分領域表示倍率が既に決定されているか否かを判定する。すなわち、ステップＳ２００５、Ｓ２００７、Ｓ２０１０、Ｓ２０１２のいずれかの処理を実行している場合には、表示倍率が既に決定されていると判定する。表示倍率が決定済みと判定した場合には、ステップＳ２０１４へ遷移し、表示倍率が未決定であると判定した場合には、ステップＳ２０１７へ遷移する。
【０１２８】
ステップＳ２０１４において、表示モード処理部１３０３は、処理対象の部分領域に含まれる文字の組み方向を判定する。
【０１２９】
Ｓ２０１４で組み方向が横であると判定された場合、ステップＳ２０１５へ遷移し、表示モード処理部１３０３は、処理対象の部分領域の幅がタッチＵＩ１２０４の表示領域の幅に合うように、ページの表示倍率を決定する。ここで、表示倍率Ｒは、次の式“Ｒ＝（ＤＷ−ｍｗ＊２）／ＯＷ”により決定する。
【０１３０】
Ｓ２０１４で組み方向が縦であると判定された場合、ステップＳ２０１６へ遷移し、表示モード処理部１３０３は、処理対象の部分領域の高さがタッチＵＩ１２０４の表示領域の高さに合うように、ページの表示倍率を決定する。ここで、表示倍率Ｒは、次の式“Ｒ＝（ＤＨ−ｍｈ＊２）／ＯＨ”により決定する。
【０１３１】
ステップＳ２０１７において、表示モード処理部１３０３は、Ｓ２００５、Ｓ２００７、Ｓ２０１０、Ｓ２０１２、Ｓ２０１５、Ｓ２０１６のいずれかで決定した表示倍率で表示した場合に、タッチＵＩ１２０４に当該処理対象の部分領域の全体を表示できるかを判定する。部分領域全体を表示できない（部分領域のサイズがタッチＵＩの表示領域のサイズより大きい）と判定した場合には、ステップＳ２０１８へ遷移する。一方、部分領域全体を表示できる（部分領域のサイズがタッチＵＩの表示領域のサイズ以下である）と判定した場合には、ステップＳ２０２１へ遷移する。
【０１３２】
ステップＳ２０１８において、表示モード処理部１３０３は、処理対象の部分領域に含まれる文字の組み方向を判定する。組
Ｓ２０１８で組み方向が横であると判定した場合は、ステップＳ２０１９へ遷移し、表示モード処理部１３０３は、表示位置の始点をタッチＵＩ１２０４の左上端と決定する。
【０１３３】
Ｓ２０１８で組み方向が縦であると判定した場合は、ステップＳ２０２０へ遷移し、表示モード処理部１３０３は、表示位置の始点をタッチＵＩ１２０４の右上端と決定する。
【０１３４】
ステップＳ２０２１において、表示モード処理部１３０３は、当該処理対象の部分領域全体がタッチＵＩ１２０４の画面内に収まるので、当該部分領域の中央がタッチＵＩ１２０４の中央に合うように表示位置の始点を決定する。
【０１３５】
以上のように、部分領域表示範囲決定処理により、部分領域表示モードにおけるページの表示範囲（表示倍率と表示位置）を決定することができる。小文字文の部分領域の表示倍率は、小文字文の文字サイズが本文よりも小さく表示されるように決定される。また大文字文の部分領域の表示倍率は、大文字文の文字サイズが本文よりも大きく表示されるように決定される。そして本文の部分領域の表示倍率は、行方向の長さが表示領域の幅または高さに合うように決定される。なお、部分領域表示範囲決定処理により決定された表示倍率は、後述の処理のためにＲＡＭ１２１１に記憶される。
【０１３６】
次に、図２１を用いて、次選択処理の詳細について説明する。図２１のフローチャートは、ＣＰＵ１２０５がアプリケーションプログラムを実行して表示モード処理部１３０３として機能することにより実現される。表示モード処理部１３０３は、タッチＵＩ１２０４を介して、ユーザによる「次へボタン」１６０２へのシングルタップ操作を検知すると、本処理を開始する。
【０１３７】
ステップＳ２１０１において、表示モード処理部１３０３は、「次へボタン」１６０２がタップされた時点で設定されている表示モードを判定する。現在の表示モードが部分領域表示モードである場合には、ステップＳ２１０２へ遷移し、現在の表示モードがページ表示モードである場合にはステップＳ２１０６へ遷移する。
【０１３８】
ステップＳ２１０２において、表示モード処理部１３０３は、次の順番の部分領域の情報を読み込む。これは、文書構造情報のＸＭＬの中で、現在表示中の部分領域に該当する“ａｒｅａ”タグの次に記述されている“ａｒｅａ”タグの情報を読み込むことであり、これにより次の部分領域のページ上の位置や幅、高さ、属性などの情報を取得することができる。
【０１３９】
ステップＳ２１０３において、表示モード処理部１３０３は、ボタンがタップされた時点で表示されていた部分領域が、当該ページにおける末尾（最後）の部分領域であるか否かを判定する。この判定は、ステップＳ２１０２で次の部分領域の情報を読み込めなかったかどうかに基づいて行えばよい。すなわち、ステップＳ２１０２で次の部分領域の情報が読み込めた場合、「次へボタン」１６０２がタップされた時点で表示されていた部分領域は末尾の部分領域ではなかったと判定し、当該読み込んだ部分領域を処理対象としてステップＳ１７０６へ遷移して、図１９〜２０に示した部分領域表示範囲決定処理が行われる。そして、ステップＳ２１０４では、部分領域表示範囲決定処理で決定されたページの表示倍率と表示位置に基づいて、タッチＵＩ１２０４の表示内容が更新される。
【０１４０】
一方、ステップＳ２１０２で次の部分領域が読み込めずに、ステップＳ２１０３において、当該表示されていた部分領域は末尾の部分領域であったと判定された場合、ステップＳ２１０５へ遷移する。ステップＳ２１０５において、表示モード処理部１３０３は、部分領域表示モードを終了して半透明マスク１８０１を非表示にして、ページ表示モードへと切り替える。
【０１４１】
ステップＳ２１０６において、表示モード処理部１３０３は、表示モードがページ表示モードであるので、ＲＡＭ１２１１に保存したアプリケーション画像データの文書構造情報を参照し、次のページ（“ｐａｇｅ”タグ）の情報を読み込む。
【０１４２】
ステップＳ２１０７において、表示モード処理部１３０３は、ステップＳ２１０６で次のページが読み込めたか否かを判定する。ステップＳ２１０６で次のページが読み込めた場合は、ステップＳ２１０８へ遷移する。一方、「次へボタン」１６０２がタップされた時点で表示されていた最終ページの情報であり、Ｓ２１０６で次に読み込み可能なページの情報が無かった場合は、ステップＳ２１０８へ遷移する。ステップＳ２１０８において、表示モード処理部１３０３は、文書構造情報から先頭ページの情報を読み込む。
【０１４３】
次に、ステップＳ２１０９において、表示モード処理部１３０３は、前述したとおり、タッチＵＩ１２０４の幅および高さに基づいて、処理対象のページ全体が表示されるようにページの表示倍率とページの始点とを決定することにより、ページの表示範囲を決定する。そして、ステップＳ２１０４へ遷移して、決定したページの表示倍率と表示位置に基づいてタッチＵＩ１２０４の表示内容が更新される。
【０１４４】
次に、図２２を用いて、前選択処理の詳細について説明する。図２２のフローチャートは、ＣＰＵ１２０５がアプリケーションプログラムを実行して表示モード処理部１３０３として機能することにより実現される。表示モード処理部１３０３は、タッチＵＩ１２０４を介して、ユーザによる「前へボタン」１６０３へのシングルタップ操作を検知すると、本処理を開始する。
【０１４５】
前選択処理は、図２１を用いて説明した次選択処理と処理内容の類似点が多いため、ここでは差異点であるステップＳ２２０１〜Ｓ２２０３についてのみ説明する。
【０１４６】
ステップＳ２２０１において、表示モード処理部１３０３は、前の順番の部分領域の情報を読み込む。これは、文書構造情報のＸＭＬの中で、現在表示中の部分領域に該当する“ａｒｅａ”タグの前に記述されている“ａｒｅａ”タグの情報を読み込むことであり、これにより前の部分領域のページ上の位置や幅、高さ、属性などの情報を取得することができる。
【０１４７】
ステップＳ２２０２において、表示モード処理部１３０３は、表示モードがページ表示モードであるので、ＲＡＭ１２１１に保存したアプリケーション画像データの文書構造情報を参照し、前のページ（“ｐａｇｅ”タグ）の情報を読み込む。
【０１４８】
ステップＳ２２０３において、表示モード処理部１３０３は、文書構造情報から最終ページの情報を読み込む。
【０１４９】
ここで、図１６、図２３、図２４を用いて、属性が文字である部分領域について、部分領域表示モードにおけるタッチＵＩ１２０４の表示の様子を、従来技術による表示形態と比較しながら説明する。尚、属性が写真、表、グラフィクスである部分領域の表示の様子は図１８（ｂ）および図１８（ｃ）、図１８（ｄ）に示したとおりである。
【０１５０】
ページ１６００の例では、部分領域１６０５、１６０７、１６１２が本文領域（文字サイズが本文文字サイズ）となる。この場合、最大横書き行長は部分領域１６０５の幅であり、最小横書き行長は部分領域１６１２の幅である。また、部分領域１６１１は小文字文の領域であり、部分領域１６０４と１６０８は大文字文の領域である。
【０１５１】
まず、従来技術（特許文献１）のように、各テキスト領域の行方向の幅が表示画面幅に合うように表示倍率を決定した場合の表示例について説明する。小文字文である部分領域１６１１は、図２３（ａ）のように表示される。また、大文字文である部分領域１６０８は、図２３（ｂ）のように表示される。また、本文である部分領域１６０５，１６１２は、図２３（ｃ）および図２３（ｄ）のように表示される。図２３の表示例を見れば分かるように、従来技術によれば、小文字文が本文と同等あるいはそれよりも大きく表示されたり、大文字文が本文と同等あるいはそれよりも小さく表示される場合があった。したがって、小文字文や大文字文について、本文に対する重要性の関係が分かりにくくなってしまっていた。
【０１５２】
次に、本発明による部分領域の表示例について説明する。本発明の部分領域表示範囲決定処理によって決定された表示倍率で、小文字文である部分領域１６１１を表示した場合、図２４（ａ）のように表示される。また、本発明の部分領域表示範囲決定処理によって決定された表示倍率で、大文字文である部分領域１６０８を表示した場合、図２４（ｂ）のように表示される。なお、本発明の部分領域表示範囲決定処理によって決定された表示倍率で、本文である部分領域１６０５，１６１２を表示した場合は、従来技術と同様に、図２３（ｃ）および図２３（ｄ）のように表示される。これらの例を比較すれば分かるように、本発明によれば、小文字文の部分領域１６１１は本文よりも小さく表示される。また、大文字文の部分領域１６０８は本文よりも大きく表示される。したがって、本発明によれば、部分領域表示モードにおいても、小文字文や大文字文について、本文に対する重要性を把握しやすい。
【０１５３】
なお、図２４（ｃ）は、本発明の部分領域表示範囲決定処理に基づいて、小文字文である部分領域１６１３を表示した場合の表示例である。部分領域１６１３は小文字文だが、リンク情報を含んでいるため、この部分領域の幅がタッチＵＩ１２０４の幅に合うように表示し、本文よりも小さく表示する制御を行わない。ここで、ＵＲＬのリンク情報を含んでいるならば、当該部分領域のＵＲＬ部分に対するシングルタップ指示を検知して、他のＷｅｂ閲覧用のブラウザ画面（不図示）に遷移して当該ＵＲＬのＷｅｂサイトの内容を表示するよう構成する。この際、ユーザが、当該ＵＲＬがアクセスするのに妥当なサイトを示しているかを、ＵＲＬアドレスに基づいて確認しやすくさせるためにこのように制御する。
【０１５４】
次に、上述したような部分表示モードで表示した表示内容に対して、ユーザによる自動変倍指示を検知した場合の自動変倍処理について図２５を用いて説明する。図２５のフローチャートは、ＣＰＵ１２０５がアプリケーションプログラムを実行して拡大・縮小処理部１３０５として機能することにより実現される。拡大・縮小処理部１３０５は、部分表示モードにおいて、タッチＵＩ１２０４を介して、ユーザによる部分領域表示部分へのダブルタップ操作を検知すると、本処理を開始する。
【０１５５】
ステップＳ２５０１において、拡大・縮小処理部１３０５は、処理対象の部分領域の個別文字サイズを評価する。これはステップＳ２００１と同様の処理である。文字サイズが本文または大文字文であると判定した場合には、ステップＳ２５０２へ遷移する。文字サイズが小文字文であると判定した場合には、ステップＳ２５０５へ遷移する。
【０１５６】
ステップＳ２５０２において、拡大・縮小処理部１３０５は、現在の表示が、既に自動拡大した状態であるか否かを判定する。この判定は、後述のフラグ情報をＲＡＭ１２１１より読み出してその値に基づき行われる。現在の表示が既に自動拡大した状態であると判定した場合は、ステップＳ２５０４へ遷移する。現在の表示がまだ自動拡大されていない状態であると判定した場合は、ステップＳ２５０３へ遷移する。
【０１５７】
ステップＳ２５０３において、拡大・縮小処理部１３０５は、自動拡大する表示倍率を決定する。例えば、自動拡大する表示倍率は、元の表示倍率を単純にＮ倍（Ｎ＝２，３，…）することにより決定してもよい。あるいは、予め決定しておいた可読に適した表示文字サイズになるように、本文文字サイズに基づいて表示倍率を求めてもよい。また、Ｓ２５０３で、自動拡大した状態であることを示すフラグ情報をＹＥＳに変更してＲＡＭ１２１１に記憶しておく。
【０１５８】
ステップＳ２５０４において、拡大・縮小処理部１３０５は、表示倍率を自動拡大する以前の状態に戻す。すなわち、前述の部分領域表示範囲決定処理においてＲＡＭ１２１１に記憶した表示倍率を読み出してこれを用いる。また、Ｓ２５０４で、前記フラグ情報をＮＯに変更してＲＡＭ１２１１に記憶しておく。
【０１５９】
一方、Ｓ２５０１で小文字文であると判定された場合には、ステップＳ２５０５において、拡大・縮小処理部１３０５は、前述の部分領域表示範囲決定処理において最大横書き行長または最大縦書き行長を用いて表示倍率を決定したか否かを判定する。すなわち、図２０のステップＳ２００５またはステップＳ２００７で表示倍率を決定したものかを判定する。ＹＥＳと判定する場合には、ステップＳ２５０６へ遷移する。ＮＯと判定する場合には、ステップＳ２５０２へ遷移する。
【０１６０】
ステップＳ２５０６において、拡大・縮小処理部１３０５は、現在の部分領域の表示が、既に自動拡大した状態であるか否かを判定する。これはステップＳ２５０２と同様に、自動拡大した状態かどうかを示すフラグ情報に基づいて判定する。現在の表示が既に自動拡大した状態であると判定した場合には、ステップＳ２５０４へ遷移する。現在の表示がまだ自動拡大されていない状態であると判定した場合には、ステップＳ２５０７へ遷移する。
【０１６１】
ステップＳ２５０７において、拡大・縮小処理部１３０５は、処理対象の部分領域に含まれる文字の組み方向を判定する。組み方向が横である場合、ステップＳ２５０８へ遷移する。組み方向が縦である場合、ステップＳ２５０９へ遷移する。
【０１６２】
ステップＳ２５０８において、拡大・縮小処理部１３０５は、処理対象の部分領域の幅がタッチＵＩ１２０４の表示領域の幅に合うように、ページの表示倍率を決定する。これは、図２０のステップＳ２０１５と同様の処理である。また、Ｓ２５０８で、自動拡大した状態であることを示すフラグ情報をＹＥＳに変更してＲＡＭ１２１１に記憶しておく。
【０１６３】
ステップＳ２５０９において、拡大・縮小処理部１３０５は、処理対象の部分領域の高さがタッチＵＩ１２０４の表示領域の高さに合うように、ページの表示倍率を決定する。これは、図２０のステップＳ２０１６と同様の処理である。また、Ｓ２５０９で、自動拡大した状態であることを示すフラグ情報をＹＥＳに変更してＲＡＭ１２１１に記憶しておく。
【０１６４】
ステップＳ２５１０において、拡大・縮小処理部１３０５は、ダブルタップ位置の座標を取得し、当該座標に該当するページ上の位置を取得する。そして、Ｓ２５０３，Ｓ２５０４，Ｓ２５０８，Ｓ２５０９のいずれかで決定した表示倍率でページを変倍した場合に、前記ページ上の位置がダブルタップ位置の座標となるよう、ページの表示位置の始点を決定する。
【０１６５】
最後に、ステップＳ２５１１において、拡大・縮小処理部１３０５は、当該決定した表示倍率と表示位置とに基づいて、タッチＵＩ１２０４の表示内容を更新する。
【０１６６】
以上説明したように、部分領域表示モードにおいてダブルタップ操作を検知すると、自動的に表示倍率を決定して拡大・縮小の処理を行う。小文字文であることを理解しつつも、大きく表示して内容を確認したい場合に便利である。
【０１６７】
なお、自動変倍処理の前後における表示例は以下のようになる。すなわち、図２４（ａ）の小文字文である部分領域１６１１がダブルタップされると、図２３（ａ）のように拡大表示する。そして、当該拡大表示された図２３（ａ）の部分領域１６１１がダブルタップされると、図２４（ａ）の表示に戻る。また、図２３（ｃ）の本文である部分領域１６０５がダブルタップされると、図２６のように拡大表示する。そして、当該拡大表示された図２６の部分領域１６０５がダブルタップされると、図２３（ｃ）の表示に戻る。
【０１６８】
なお、「モード切替ボタン」１６０１と「次へボタン」１６０２、「前へボタン」１６０３の表示位置は、図１８（ａ）、図１８（ｂ）、図１８（ｃ）に示したように、タッチＵＩ１２０４の中央下端／左下端／右下端のいずれかに設定変更できるように構成してもよい。片手で操作する際に、自分のきき手や手の大きさに合わせて変更することができる。
【０１６９】
最大横書き行長や最大縦書き行長に基づいて表示倍率を決定した小文字である部分領域は、図２４（ａ）に示したように、タッチＵＩ１２０４の中央に表示される。しかし、表示モード処理部１３０３は、「次へボタン」１６０１などのボタン群の表示位置設定を考慮して、上記小文字である部分領域の水平方向の表示位置は、上記ボタン群に合わせて変更するようにしてもよい。このようにした場合の表示例を図２７に示す。すなわち、図２７（ａ）のように、ボタン群が中央下部に表示されている場合は、小文字である部分領域も水平方向の中央に表示する。また、図２７（ｂ）のように、ボタン群が左下部に表示されている場合は、小文字である部分領域も水平方向の左に表示する。また、図２７（ｃ）のように、ボタン群が右下部に表示されている場合は、小文字である部分領域も水平方向の右に表示する。このようにボタンの近くに部分領域を表示することで、ユーザは、ボタン群を操作している手で上記小文字である部分領域に対してダブルタップ操作しやすくなるので、片手での操作をより良好に成すことができる。
【０１７０】
次に、部分領域表示モードにおいて、属性が文字である部分領域の表示内容に対するスワイプ操作に応じて表示位置を移動させる際の、移動範囲制限処理について図２８を用いて説明する。図２８のフローチャートは、ＣＰＵ１２０５がアプリケーションプログラムを実行することで、表示位置移動処理部１３０４として機能することにより実現される。表示位置移動処理部１３０４は、部分領域表示モードにおいて、タッチＵＩ１２０４を介して、属性が文字である部分領域の表示部分に対して、ユーザによるスワイプ操作を検知すると、本処理を開始する。
【０１７１】
ステップＳ２８０１において、表示位置移動処理部１３０４は、制御矩形を、表示中の部分領域と同じ位置に設定する。制御矩形の位置は、ページ上の位置と幅と高さで規定される。ここで制御矩形とは、ページ上の部分領域を囲む矩形であるが、Ｓ２８０２〜Ｓ２８０５において、小文字の部分領域の表示倍率の決定方法に応じて、その幅と高さを最大横書き行長や最大縦書き行長で補正される。
【０１７２】
ステップＳ２８０２において、表示位置移動処理部１３０４は、前述の部分領域表示範囲決定処理において最大横書き行長または最大縦書き行長を用いて表示倍率を決定したか否かを判定する。ＹＥＳと判定する場合には、ステップＳ２８０３へ遷移する。ＮＯと判定する場合には、ステップＳ２８０６へ遷移する。
【０１７３】
ステップＳ２８０３において、表示位置移動処理部１３０４は、処理対象の部分領域に含まれる文字の組み方向を判定する。組み方向が横である場合、ステップＳ２８０４へ遷移し、表示位置移動処理部１３０４は、制御矩形の幅を最大横書き行長に変更する。一方、組み方向が縦である場合、ステップＳ２８０５へ遷移し、表示位置移動処理部１３０４は、制御矩形の高さを最大縦書き行長に変更する。
【０１７４】
ステップＳ２８０６において、表示位置移動処理部１３０４は、処理対象の部分領域に含まれる文字の組み方向を判定する。組み方向が横である場合、ステップＳ２８０７へ遷移する。組み方向が縦である場合、ステップＳ２８０９へ遷移する。
【０１７５】
ステップＳ２８０７において、表示位置移動処理部１３０４は、現在のページの表示倍率と表示位置を基に、スワイプ操作によって、制御矩形の左右端のどちらかが、タッチＵＩ１２０４の表示領域外に移動したかを判定する。ＹＥＳと判定する場合には、ステップＳ２８０８へ遷移する。ＮＯと判定する場合には、ステップＳ２８１１へ遷移する。
【０１７６】
ステップＳ２８０８において、表示位置移動処理部１３０４は、ページの表示位置の始点のＸ座標を補正して、表示領域の外に移動された制御矩形の左端または右端を表示領域の端に戻すように移動させる。
【０１７７】
ステップＳ２８０９において、表示位置移動処理部１３０４は、現在のページの表示倍率と表示位置を基に、スワイプ操作によって、制御矩形の上下端のどちらかが、タッチＵＩ１２０４の表示領域外に移動したかを判定する。ＹＥＳと判定する場合には、ステップＳ２８１０へ遷移する。ＮＯと判定する場合には、ステップＳ２８１１へ遷移する。
【０１７８】
ステップＳ２８１０において、表示位置移動処理部１３０４は、ページの表示位置の始点のＹ座標を補正して、表示領域の外に移動された制御矩形の上端または下端を表示領域の端に戻すように移動させる。
【０１７９】
以上の処理により、部分領域表示モードにおいてスワイプ操作で部分領域の移動（スクロール）が指示された場合でも、横書きならば横方向にずれて表示されないようにし、縦書きならば縦方向にずれて表示されないようにする。最大横書き行長や最大縦書き行長に基づいて表示倍率を決定した場合（表示領域に対して小さく表示）にも、部分領域が横方向／縦方向にずれないよう制御できる。これにより、部分領域表示モードでは、部分領域のスクロールを一方向に制限できるので、片手でも操作しやすくなる。
【０１８０】
以上述べたように、本実施例によれば、ページ画像を解析して得た部分領域を、一元的な操作で順に表示していく際に、部分領域に含まれる小文字文が、本文よりも大きく表示されないように制御するので、ユーザは本文の部分領域を読んでいるのか小文字文の部分領域を読んでいるのかを把握しやすくなり、ユーザは文の重要度を正しく認識できようになる。
【０１８１】
尚、上述した実施例では、本文文字サイズを、ビットマップ画像データ全体に含まれる文字属性の部分領域に含まれる文字を対象に最頻値を求めて決定したが、ビットマップ画像データに含まれるページ毎に決定するように構成してもよい。すなわち、ページごとに含まれる文字属性の部分領域に含まれる文字を対象に最頻値を求めて、ページ毎に本文文字サイズを決定してもよい。
【０１８２】
また、本実施例において、ページの表示倍率を算出する際に、マージン（ｍｗおよびｍｈ）を考慮した。これは、ページや部分領域の表示部分とタッチＵＩ１２０４との境界を見易くするためであり、通常数ピクセルに固定的に設定すればよい。しかし、ｍｖ＝０、ｍｈ＝０として計算し、タッチＵＩ１２０４の表示領域で部分領域が最大限大きく表示されるようにしてもよい。
【０１８３】
また、最大横書き行長や最大縦書き行長は、文書の構造によっては、本文の部分領域の長さの平均値に対して極端に長くなる場合がある。また、最小横書き行長や最小縦書き行長は、本文の部分領域の長さの平均値に対して極端に短くなる場合がある。こうした際には、小文字文や大文字文が極端に小さく／大きく表示されてしまうため、予め閾値を設けて上下限を規定してもよい。あるいは、区間別にヒストグラムを求めて、中央値から連続した区間で初めて頻度が０になる区間の直前の区間の値を最大横書き行長や最大縦書き行長、最小横書き行長や最小縦書き行長としてもよい。
【０１８４】
［その他の実施例］
本発明は、複数の機器（例えばホストコンピュータ、インターフェース機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。また本発明の目的は、前述の実施例の機能を実現するプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータが記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体およびプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１８５】
また、本発明には、プログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれる。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた場合についても、本発明は適用される。その場合、書き込まれたプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される。
【０１８６】
また、上述した実施形態では、コンピュータがプログラムを実行することにより、各処理部として機能するものとしたが、処理の一部または全部を専用の電子回路（ハードウェア）で構成するようにしても構わない。
【図１】
2015106289.tif 000003
【図２】
2015106289.tif 000004
【図３】
2015106289.tif 000005
【図４】
2015106289.tif 000006
【図５】
2015106289.tif 000007
【図６】
2015106289.tif 000008
【図７】
2015106289.tif 000009
【図８】
2015106289.tif 000010
【図９】
2015106289.tif 000011
【図１０】
2015106289.tif 000012
【図１１】
2015106289.tif 000013
【図１２】
2015106289.tif 000014
【図１３】
2015106289.tif 000015
【図１４】
2015106289.tif 000016
【図１５】
2015106289.tif 000017
【図１６】
2015106289.tif 000018
【図１７】
2015106289.tif 000019
【図１８】
2015106289.tif 000020
【図１９】
2015106289.tif 000021
【図２０】
2015106289.tif 000022
【図２１】
2015106289.tif 000023
【図２２】
2015106289.tif 000024
【図２３】
2015106289.tif 000025
【図２４】
2015106289.tif 000026
【図２５】
2015106289.tif 000027
【図２６】
2015106289.tif 000028
【図２７】
2015106289.tif 000029
【図２８】
2015106289.tif 000030