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