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