(57)【特許請求の範囲】
【請求項１】
文書を撮像して得られる文書画像をリフロー形式で表示領域に表示させるために前記文書画像のレイアウトを変更する変更部と、レイアウト変更後の文書画像をリフロー形式で前記表示領域に表示させる表示処理を行う表示制御部とを備え、
前記変更部は、前記文書画像を構成する要素毎に、レイアウト変更後の文書画像全体のなかでの位置を示す座標値を求め、
前記表示制御部は、
前記座標値のうち、画像のスクロールの方向と平行な座標軸の座標値に、前記スクロールの量に応じたオフセット値を加算する加算処理を行い、
前記加算処理後の座標値を、前記表示領域と前記要素との位置関係を示す表示用座標として前記表示処理を行い、
前記変更部は、さらに、前記文書画像に対する変倍処理の指示が入力されると、前記変倍処理の表示倍率に応じて前記文書画像のレイアウトを変更するようになっており、
前記表示制御部は、さらに、
前記変倍処理の前に前記表示領域に表示させている要素のなかからいずれか一つの要素を選択する選択処理を行い、
前記選択処理にて選択した要素について、前記変倍処理の前の前記表示用座標のうちの前記スクロールの方向と平行な座標軸の座標値と、前記変倍処理の後の前記表示用座標のうちの前記スクロールの方向と平行な座標軸の座標値との差が所定範囲に収まるように、前記変倍処理の後の前記座標値に加算される前記オフセット値を調整するようになっている表示制御装置。
【請求項２】
前記表示領域はタッチパネルにおける表示領域であり、
前記タッチパネルにおいて互いに離れた２箇所以上の領域がタッチされることで前記変倍処理の指示が入力されるようになっており、
前記選択処理は、前記文書画像の各要素のうち、前記変倍処理の指示における前記タッチパネルのタッチ箇所の平均座標値に対応する位置からのユークリッド距離が最も小さい要素を選択する処理である請求項１に記載の表示制御装置。
【請求項３】
前記表示制御部は、前記平均座標値に対応する位置が前記文書画像のなかのいずれかの要素を囲う外接矩形の内側である場合、前記平均座標値に対応する位置からのユークリッド距離の最も小さい要素が前記外接矩形に囲われる要素でなくても、前記外接矩形に囲われる要素を前記選択処理において選択する請求項２に記載の表示制御装置。
【請求項４】
前記要素には少なくとも図または表が含まれており、
前記変更部は、前記図または表に関しては、設定されている表示倍率とは関係なく、前記図または表が前記スクロールの方向と直交する方向において前記表示領域に収まるように変倍し、当該変倍した前記図または表について前記座標値を求めるようになっている請求項１から３のいずれか１項に記載の表示制御装置。
【請求項５】
前記変更部は、レイアウト変更前の文書画像に図または表が示されている場合、前記レイアウト変更後の文書画像には前記図または表の代わりに前記図または表のサムネイルを配置させ、
前記表示制御部は、前記表示領域に表示させているサムネイルがユーザに選択されると、前記サムネイルに対応する前記図または表を前記表示領域に表示させるようになっている請求項１から４のいずれか１項に記載の表示制御装置。
【請求項６】
前記文書画像と、前記文書画像を構成する要素の並び順を示す並び順情報とを対応付けて記憶する記憶部を備え、
前記変更部は、前記並び順情報に示される並び順に従って前記文書画像のレイアウトを変更する請求項１から５のいずれか１項に記載の表示制御装置。
【請求項７】
前記文書を撮像することによって前記文書画像を生成する画像入力部を備えた請求項１から６のいずれか１項に記載の表示制御装置。
【請求項８】
表示部と、文書を撮像して得られる文書画像をリフロー形式で前記表示部の表示領域に表示させるために前記文書画像のレイアウトを変更する変更部と、レイアウト変更後の文書画像をリフロー形式で前記表示領域に表示させる表示処理を行う表示制御部とを備え、
前記変更部は、前記文書画像を構成する要素毎に、レイアウト変更後の文書画像全体のなかでの位置を示す座標値を求め、
前記表示制御部は、
前記座標値のうち、画像のスクロールの方向と平行な座標軸の座標値に、前記スクロールの量に応じたオフセット値を加算する加算処理を行い、
前記加算処理後の座標値を、前記表示領域と前記要素との位置関係を示す表示用座標として前記表示処理を行い、
前記変更部は、さらに、前記文書画像に対する変倍処理の指示が入力されると、前記変倍処理の表示倍率に応じて前記文書画像のレイアウトを変更するようになっており、
前記表示制御部は、さらに、
前記変倍処理の前に前記表示領域に表示させている要素のなかからいずれか一つの要素を選択する選択処理を行い、
前記選択処理にて選択した要素について、前記変倍処理の前の前記表示用座標のうちの前記スクロールの方向と平行な座標軸の座標値と、前記変倍処理の後の前記表示用座標のうちの前記スクロールの方向と平行な座標軸の座標値との差が所定範囲に収まるように、前記変倍処理の後の前記座標値に加算される前記オフセット値を調整するようになっている表示装置。
【請求項９】
コンピュータを、請求項１〜７のいずれか１項に記載の表示制御装置の各部として機能させるプログラム。
【請求項１０】
請求項９に記載のプログラムを記憶したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書画像を表示部に表示させる表示制御装置に関する。
【背景技術】
【０００２】
スキャナ等の撮像手段に文書を読み取らせて生成される文書画像として、ＰＤＦ（Portable Document Format）ファイルの画像やＴＩＦＦ（Tagged Image File Format）ファイルの画像が知られている。撮像手段を用いて生成される文書画像は、通常、フィックス型と呼ばれる形式になっている。フィックス型とは、文書のレイアウト（１行当たりの文字数や１頁当たりの行数等）が固定の形式である。それゆえ、フィックス型の文書画像を、スマートフォンやタブレット等の小型表示装置で表示すると、表示装置の垂直方向および水平方向共に文書画像が表示領域（コンテンツ表示領域）に収まりきらないことが多く、垂直方向のみならず水平方向にも文書画像をスクロールさせる必要があり、操作が煩雑になる。
【０００３】
また、フィックス型の文書画像の表示倍率を表示領域の広さに応じて調整すれば（縮小表示すれば）、スクロールを行わずに１頁分の文書全体を表示させることが可能になる。しかし、この場合、表示される文字のサイズが小さくなり、文字の可読性が低下してしまう問題がある。
【０００４】
そこで、撮像手段にて生成される文書画像についても、フィックス型ではなく、テキストデータから構成される画像ファイルのようにリフロー型として表示させることが望ましい。リフロー型とは、文書のレイアウトが固定ではなく、表示領域の広さに応じてレイアウトが再構成される形式であり（各文字を再配置する）、例えばＨＴＭＬ（Hyper Text Markup Language）ファイルが挙げられる。また、最近では、小型表示装置（スマートフォンやタブレット）向けに提供される電子書籍もリフロー型として作成されていることが多い。
【０００５】
リフロー型の画像ファイルでは、例えば文書が横書きの場合、可読性が保たれる程度に文字サイズが維持されつつ、文書の１行の長さが表示領域の水平方向の長さ以下になるように、１行当たりの文字数を調整するようになっている。これにより、適切な文字サイズを維持しつつ、水平方向のスクロールを行なわずに垂直方向のスクロールだけで文書全体が表示されるようになる。それゆえ、リフロー型によれば、フィックス型よりも、操作の煩雑度が低いという利点を有する。
【０００６】
そこで、近年、撮像手段にて生成される文書画像をリフロー型として表示させるための技術が提案されている。例えば、特許文献１には、文書画像から文字を抽出して、文字の並び順に従って各文字を配列し直す事により、表示領域の横幅と同じ横幅を持つ文書画像を生成して表示させる文字画像表示装置が提案されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１２−１０８７５０号公報（２０１２年６月７日公開）
【特許文献２】特許第５１５３８５７号（２０１３年２月２７日公報発行）
【特許文献３】特開２００９−１９４７４０号（２００９年８月２７日公開）
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１の技術では、文書画像を生成するとともに、文書画像の文字の並び順を座標値で表した位置座標リストを生成する。続いて、位置座標リストに基づいて、文書画像から各文字を切り出し、各文字を配列し直すことで再配列文書画像を生成し、この再配列文書画像を表示装置に表示させるようになっている。
【０００９】
ここで、前記の位置座標リストは、スキャンされた際の文書画像上での各文字の座標（各文字の並び順）を示したものであるが、表示領域に対する位置関係を示した表示用座標ではない。したがって、特許文献１の技術によれば、最初にファイルを開いた際に各文字について表示用座標を求めるだけではなく、スクロールの度に各文字について表示用座標を求めなければならず、演算手段等のハードウェアにかかる処理負荷が多いという問題が生じていた。
【００１０】
本発明は、以上の問題に鑑みてなされたものであり、撮像手段にて生成される文書画像をリフロー型として表示部に表示させる装置において、処理負荷を抑制することを目的とする。
【課題を解決するための手段】
【００１１】
上記の課題を解決するために、本発明の一態様の表示制御装置は、文書を撮像して得られる文書画像をリフロー形式で表示領域に表示させるために前記文書画像のレイアウトを変更する変更部と、レイアウト変更後の文書画像をリフロー形式で前記表示領域に表示させる表示処理を行う表示制御部とを備え、前記変更部は、前記文書画像を構成する要素毎に、レイアウト変更後の文書画像全体のなかでの位置を示す座標値を求め、前記表示制御部は、前記座標値のうち、画像のスクロールの方向と平行な座標軸の座標値に、前記スクロールの量に応じたオフセット値を加算する加算処理を行い、前記加算処理後の座標値を、前記表示領域と前記要素との位置関係を示す表示用座標として前記表示処理を行うことを特徴とする。
【発明の効果】
【００１２】
本発明の一態様によれば、従来構成よりも処理負荷を抑制できる効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態の携帯端末の機能ブロック図である。
【図２】図１に示した携帯端末の外観構成を模式的に示した図である。
【図３Ａ】文字および図表（図または表）から構成される文書画像の一例を示した図であり、図４に示す参照リストに適合した段落分けがされている文書画像を示した図である。
【図３Ｂ】図３Ａと同じ文書画像を示した図であり、図５に示す参照リストに適合した段落分けがされている文書画像を示した図である。
【図４】参照リストの一例を模式的に示した図である。
【図５】図４とは異なる参照リストの例を模式的に示した図である。
【図６】図４の参照リストを用いる場合のレイアウト変更部の処理手順を示すフローチャートである。
【図７】図５の参照リストを用いる場合のレイアウト変更部の処理手順を示すフローチャートである。
【図８】描画座標に基づいて文書画像を表示する場合の表示例を模式的に示した図である。
【図９】図８のように描画座標が求められた場合の携帯端末のコンテンツ表示領域の様子を示した図である。
【図１０】オフセット値を変化させるとコンテンツ表示領域に描画される範囲が変化する様子を示した説明図である。
【図１１】タッチ操作によるスクロール指示を説明するための図である。
【図１２】表示倍率の変更方法を示した第１の説明図である。
【図１３】表示倍率の変更方法を示した第２の説明図である。
【図１４】表示倍率の変更方法を示した第３の説明図である。
【図１５】ズーム指示により表示倍率を拡大する際、表示倍率の前後でオフセット値を一定とした場合の描画座標と、コンテンツ表示領域に描画されている範囲とを示した図である。
【図１６】参照リストのｉ番目の要素（「あ」を示す文字）がコンテンツ表示領域上に描画された際の当該要素の外接矩形の中心座標を示す図である。
【図１７】複数のタッチ箇所の平均座標値が文字を囲む外接矩形（最小矩形）の内側に位置する様子を示した図である。
【図１８】ユークリッド距離を求めるための式に含まれる重み付け係数を説明するための図である。
【図１９】表示倍率を変更する前後で要素の上端を揃える様子を示す説明図である。
【図２０】表示倍率を変更する前後で要素の下端を揃える様子を示す説明図である。
【図２１】コンテンツ表示領域の一部にメニュー領域をオーバレイ表示させた携帯端末の例を示した図である。
【図２２】図４および図５とは異なる参照リストの例を示す図である。
【図２３】図２２の参照リストを用いる場合のレイアウト変更部の処理手順を示すフローチャートである。
【図２４】実施形態８の参照リスト作成部を示すブロック図である。
【図２５】行頭禁則の文字の例と行末禁則の文字の例を示す図である。
【図２６】横書きの文字列の例を示す図である。
【図２７】文書画像の例を示す図である。
【図２８】図２７の文書画像であって、行に分類した文書画像を示す図である。
【図２９】（ａ）は、２段組の横書きの文書の例、（ｂ）は、２段組の縦書きの文書の例を示す図である。
【図３０】（ａ）〜（ｆ）は、２つの行の行間距離を説明する図である。
【図３１】（ａ）は、行に分類した文書画像の例、（ｂ）は、（ａ）をさらに行ブロックに分類した文書画像の例を示す図である。
【図３２】行と行ブロックとに分類した文書画像の例を示す図である。
【図３３】レイアウト解析処理部の構成を示すブロック図である。
【図３４】（ａ）は、行ブロックに分類した文書画像の例、（ｂ）は、（ａ）をさらに段組に分類した文書画像の例、（ｃ）は、（ｂ）をさらにカラムに分類した文書画像の例を示す図である。
【図３５】２段組構成の文書画像の例を示す図である。
【図３６】行、行ブロック、段（カラム）、及び段組に分類した文書画像の例を示す図である。
【図３７】行順序リストの例を示す図である。
【図３８】行ブロック、カラム、及び段組についての情報を示す図である。
【図３９】文書構造ツリーの構造の例を示す図である。
【図４０】図３３に示される段落解析処理部における改行判定処理の概要を示すイメージ図である。
【図４１】図３３に示される段落解析処理部の処理手順を示すフローチャートである。
【図４２】行ＩＤバッファの更新処理の概要を示すイメージ図である。
【図４３】初期化された文書構造ツリーの例を示す図である。
【図４４】更新された行順序リストの例を示す図である。
【図４５】行順序リストに従って生成された文書構造ツリーの構造の例を示す図である。
【図４６】横書きの文書画像の一例を示す模式図である。
【図４７】変倍処理によってレイアウトを変更した場合にインデントの位置がずれてしまった様子を示す説明図である。
【図４８】変倍処理によってレイアウトを変更した場合であってもインデントの位置が適切になっている様子を示す説明図である。
【図４９】表示部の短辺方向を垂直方向とし、表示部の長辺方向を水平方向として文書画像を表示させた場合の携帯端末の外観構成を模式的に示した図である。
【発明を実施するための形態】
【００１４】
〔実施の形態１〕
本発明の一実施形態について以下説明する。図１は、本実施形態に係る携帯端末１０の構成を示す機能ブロック図である。図２は、本実施形態に係る携帯端末１０の外観構成を示す模式図である。
【００１５】
（携帯端末１０の全体構成）
携帯端末（表示制御装置、表示装置）１０は、図２に示すように、小型の表示部を備えたスマートフォンである。携帯端末１０は、図１に示すように、制御部１１、記憶部１２、通信部１３、タッチパネル１４、アクセス部１５を備えている。
【００１６】
制御部１１は、携帯端末１０の各ハードウェアの動作を制御するブロックであり、例えば、ＣＰＵ（Central Processing Unit）を備えるマイクロコンピュータやマイクロプロセッサによって実現される。制御部１１は、記憶部１２に記憶されている各種情報および各種制御を実施するためのプログラムを取り出して演算処理や判定処理を行い、これらの処理結果に基づいて携帯端末１０の各ハードウェアに信号や情報を送って、各ハードウェアの動作を制御する。制御部１１の詳細については後に述べる。
【００１７】
記憶部１２は、制御部１１が実行する各種アプリケーションプログラム、ＯＳ（Operating System）プログラム、制御プログラム、これらプログラムを実行するときに読み出す各種データ（設定値、テーブル等）を記憶する記憶領域である。記憶部１２としては、従来から公知の種々の記憶手段、例えば、リードオンリーメモリ、ランダムアクセスメモリ、フラッシュメモリ、ＥＰＲＯＭ（Erasable Programmable ROM）、ＥＥＰＲＯＭ（登録商標）（Electrically EPROM）などを用いることができる。また、制御部１１に取り扱われている各種データや処理中のデータは、記憶部１２のワーキングメモリに一時的に記憶される。
【００１８】
通信部１３は、外部装置との間でデータ通信を行う通信インターフェイスである。本実施形態の通信部１３は、ＵＳＢ（Universal Serial Bus）１．１またはＵＳＢ２．０の規格に基づいて、シリアル転送／パラレル転送、無線データ通信を行うようになっている。通信部１３は、ユーザからの入力指示に従って、複合機、画像入力装置（スキャナ専用機）、またはサーバ装置との間で画像データの送受信を行う。
【００１９】
タッチパネル１４は、画像を表示する表示部１４ａと、ユーザのタッチ操作に応じた入力信号を生成する入力部１４ｂとが一体化されている装置である。タッチパネル１４としては、周知のタッチパネルを用いることができる。つまり、表示部１４ａはＬＣＤ（Liquid Crystal Display）などで構成され、入力部１４ｂは表示部１４ａと一体化された静電容量センサなどで構成される。
【００２０】
ユーザがタッチパネル１４に対してタッチ操作を行うと、タッチ操作に応じた入力指示が表示画像に反映されることになる。例えば、タップ操作が行われるとタップされたアイコンやファイルに応じた画像が表示されるようになっている。タッチ操作に応じた入力指示の具体例については後で詳述する。
【００２１】
また、本実施形態では、図２に示すようにタッチパネル１４（表示部１４ａ）に文書画像が表示されるようになっている。ここで、表示部１４ａの表示領域全体のうち、文書画像を表示させるために確保されている表示領域をコンテンツ表示領域と称す（図２を参照）。コンテンツ表示領域は、表示領域全体を占めていてもよいし、表示領域全体のうちの一部であってもよい。図２は、コンテンツ表示領域が表示領域全体のうちの一部である形態を示したものであり、コンテンツ表示領域以外の領域が余白になっている。なお、表示部１４ａには、ツールバー等が表示されていてもよいし、スクロールバーが表示されていてもよい。或いは、図９に示すように、ユーザに選択させる機能が列挙されているメニュー領域が表示されてもよい。
【００２２】
なお、ユーザの視認性からすれば、通常、コンテンツ表示領域と、それ以外の領域（メニュー領域など）とは、互いに重複しないように設定されることが望ましい。但し、メニュー領域については、必ずしも常時表示されている必要がないことから、ユーザにとってメニューが必要な場合のみ（ユーザのタッチ操作に応じてメニューを呼び出す信号が入力された場合）、図２１に示す例のようにコンテンツ表示領域上にメニュー領域をオーバレイ表示するようになっていてもよい。つまり、図２１の例では、メニュー領域を半透明表示とすることにより、コンテンツ表示領域のうちメニュー領域に重畳されている部分も視認可能とし、メニュー表示前のコンテンツも表示され続けるようにしている。あるいは、前述のようにメニューを呼び出す信号が入力された場合にのみ、図９に示す例のように、コンテンツ表示領域を変形して余白を拡大し、拡大された余白の一部にメニュー領域を一時的に設けるようにしても良い。また、図９の例において、メニュー領域の表示を終了する指示信号を入力した場合、メニュー領域を表示領域から除外し、コンテンツ表示領域を、メニュー領域を呼び出す前の形状（大きさ）になるように再度変形するように設定されていてもよい。
【００２３】
アクセス部１５は、携帯端末１０に挿入されるリムーバブルメディアにアクセスし、当該リムーバブルメディアに対する情報の読み書きを行う装置である。
【００２４】
つぎに、制御部１１について詳細に説明する。制御部１１は、図１に示すように、少なくとも、レイアウト変更部１１１および表示制御部１１２を含む。
【００２５】
レイアウト変更部１１１は、ユーザに指定（選択）された文書ファイルの文書画像をリフロー形式で表示させるためにレイアウト変更処理を行うブロックである。つまり、レイアウト変更部１１１は、入力部１４ｂからユーザのタッチ操作に応じた入力信号を受け付け、この入力信号に示される入力指示が文書ファイルを開く指示である場合（文書ファイルのアイコンをタップ操作したような場合）、当該文書ファイルを記憶部１２から読み出してレイアウト変更処理を行うのである。
【００２６】
レイアウト変更処理（再配置処理）は、本来はフィックス型である文書画像を、表示部１４ａのコンテンツ表示領域においてはリフロー形式で表示可能になるように、当該文書画像の各要素の配置を変更する処理を指す。具体的には、レイアウト変更処理は、コンテンツ表示領域においてリフロー形式で表示可能になるように当該文書画像の各要素の配置座標を求める処理を指す。
【００２７】
配置座標とは、文書画像全体（表示部にて表示されている最中の部分のみならず表示部からはみ出している部分も含む）のなかでの各要素（文字、図表）の位置を示した座標である。つまり、配置座標とは、文書画像全体のなかの所定位置を原点とした場合の各要素の座標を示したものである。
【００２８】
リフロー形式とは、表示部１４ａの水平方向および垂直方向のうちのいずれかの方向のみのスクロールで文書画像を表示させる形式である。すなわち、図８に示すように、水平方向および垂直方向のうち、スクロール可能な方向と異なる方向（図８では水平方向）については、文書画像の長さがコンテンツ表示領域の長さ以下になるように（文書画像の画素数がコンテンツ表示領域の画素数以下になるように）、レイアウト変更処理が行われるのである。
【００２９】
また、レイアウト変更部１１１は、文書画像の各要素（文字、表等）の並び順を示した参照リスト（図４）に基づいて、レイアウト変更処理を行うようになっている。この参照リストの内容、および、レイアウト変更処理の内容は、後に詳述する。
【００３０】
表示制御部１１２は、タッチパネル１４の表示制御を行う。つまり、表示制御部１１２は、記憶部１２に記憶されている各種アプリケーションまたはＯＳ（Operating System）に基づいて各種画像をタッチパネル１４に表示させる。
【００３１】
また、表示制御部１１２は、タッチパネル１４の入力部１４ｂから、ユーザのタッチ操作に応じた入力信号を受け付け、入力指示に応じた表示制御を行う。すなわち、表示制御部１１２は、文書ファイルを表示させる指示を示す入力信号を入力部１４ｂから受け付けると（文書ファイルのアイコンをタップ操作したような場合）、当該文書ファイルの文書画像をタッチパネル１４に表示させる。
【００３２】
また、本実施形態の表示制御部１１２は、レイアウト変更部１１１にて求められた配置座標に基づいて、文書画像の各要素（文字等）の描画座標（表示用座標）を求め、この描画座標に基づいて文書画像を表示部１４ａに表示させるようになっている。ここで、描画座標とは、文書画像の各要素と表示部１４ａのコンテンツ表示領域との位置関係を示す座標である（つまり、描画座標とは、図１０の（ｂ）に示すようにコンテンツ表示領域上の基準位置（左上隅部）を原点（０，０）とした平面座標上での各要素の座標値を示したものである）。表示制御部１１２における処理の詳細については後に詳述する。
【００３３】
なお、本実施形態は、図２に示すように、略長方形の表示部１４ａの長辺方向を表示部１４ａの垂直方向とし、表示部１４ａの短辺方向を表示部１４ａの水平方向として、左横書きの文書画像を表示部１４ａに表示する例を説明するものである（左横書の文書とは、各行の左側が先頭側になって右側が末尾側となる横書き文書を指す）。すなわち、本実施形態では、図２に示すように、表示中の左横書の文書画像における横方向（左右方向）と表示部１４ａの水平方向とが一致し、表示中の左横書の文書画像における縦方向（上下方向）と表示部１４ａの垂直方向とが一致する。そこで、本実施形態では、図２に示すように、短辺方向を水平方向として長辺方向を垂直方向とした略長方形の表示部１４ａに左横書の文書画像を表示させる場合において、当該左横書の文書画像の右側から左側に向けた方向を左方向とし、その逆方向を右方向とし、当該左横書きの文書画像の上側から下側に向けた方向を下方向とし、その逆方向を上方向とする（なお、図２に示す上下左右の各方向は、短辺方向を水平方向として長辺方向を垂直方向とした略長方形の表示部１４ａに縦書きの文書画像を表示させる場合において、当該縦書きの文書画像における上下左右の各方向とも一致することになる）。
【００３４】
また、本実施形態において、図４等に示される横幅は水平方向の長さを意味し、高さは垂直方向の長さを意味する。また、本実施形態において、前述した配置座標の原点（０，０）は、図１０の（ａ）に示すように、横書文書画像全体のなかの左上隅部に設定され、前述した描画座標の原点（０，０）は、図１０の（ｂ）に示すように、表示部１４ａにおけるコンテンツ表示領域の左上隅部（基準位置）に設定される。
【００３５】
（入力指示の具体例）
つぎに、タッチ操作に応じた入力指示の具体例を説明する。タッチパネル１４に対して利用者がタッチ操作を行うと、タッチ操作に応じた入力信号が入力部１４ｂから制御部１１に伝達される。そして、制御部１１の各部は、この入力信号から、タッチ点数（タッチ箇所の数）、タッチ座標等を導き、タッチ操作に応じた入力指示の内容を識別する。具体的には、以下の通りである。
【００３６】
例えば、制御部１１は、コンテンツ表示領域上にて１点のタッチを検出した場合、画像のスクロール指示（スクロール操作）の開始であると識別する。また、制御部１１は、スクロール指示が開始されてから１点のタッチがコンテンツ表示領域上で検出され続けている間はスクロール指示が継続されていると識別し、コンテンツ表示領域上で検出されるタッチ点数が１点以外に変化した場合はスクロール指示が終了したと識別する。
【００３７】
また、制御部１１は、コンテンツ表示領域上にて２点以上の同時タッチを検出した場合、画像のズーム指示（ズーム操作）の開始であると識別する。また、制御部１１は、ズーム指示が開始されてから、ズーム指示開始時に検出したタッチ点数と同じ点数のタッチがコンテンツ表示領域上で検出され続けている間はズーム指示が継続されていると識別し、コンテンツ表示領域上で検出されるタッチ点数が異なる点数に変化した場合はズーム指示が終了したと識別する。なお、２点タッチの場合、２点の間隔を広げる動きで画像拡大となり、２点の間隔を狭める動きで画像縮小となる。３点タッチの場合、３点を頂点とした三角形を広げる動きで画像拡大となり、三角形を狭める動きで画像縮小となる。
【００３８】
また、スクロール指示が行われている最中にタッチの検出点数が２点以上に変わった場合、制御部１１は、スクロール指示の終了とズーム指示の開始とを同時に識別するようになっていてもよい。同様に、ズーム指示が行われている最中にタッチの検出点数が１点に変わった場合、制御部１１は、ズーム指示の終了とスクロール指示の開始とを同時に識別するようになっていてもよい。或いは、ズーム指示が行われている最中に、タッチ点数がズーム指示開始時のタッチの点数とは異なる２点以上の点数に変化した場合、制御部１１は、新たに検出された点数を基準としたズーム操作を開始するようになっていてもよい。
【００３９】
（文書ファイルについて）
続いて、携帯端末１０にて扱われる文書ファイル（文書画像のデータ）について説明する。文書ファイルは、ＣＣＤ（Charge Coupled Device）センサ、またはＣＭＯＳ（Complementary Metal-Oxide Semiconductor）センサ等の撮像手段が文書原稿を撮影して得られるデジタル画像をファイル化したものである。文書ファイルは、テキストデータを有しない撮影画像であり、例えばＰＤＦファイルやＴＩＦＦファイルが挙げられる。
【００４０】
携帯端末１０は、アクセス部１５を介してリムーバブルメディアから文書ファイルを取得して記憶部１２に保存してもよいし、通信部１３を介して複合機や画像入力装置から文書ファイルを受信し、記憶部１２に保存してもよい。
【００４１】
なお、携帯端末１０にて扱われる文書ファイルは、カラー画像データであってもよいし、白黒の画像データであってもよい。
【００４２】
（参照リストについて）
つぎに、レイアウト変更部１１１によるレイアウト変更処理にて使用される参照リストについて図３Ａおよび図４を参照して説明する。図３Ａは、文字および図表から構成される文書画像（横書き文書）の一例を示したものであり、図４は、図３Ａの文書画像に対応する参照リストの一例を示したものである。
【００４３】
参照リストは、文書画像を構成する要素（文字および図表）ごとに、夫々の要素の情報を示したリストである。
【００４４】
個々の要素に関する情報には、文書中における要素の並び順を示したリスト番号と、文書中における要素の範囲を示す範囲情報と、要素の種類（文字、図表）を示す要素種別と、要素が属する段落を特定する情報とが含まれる。
【００４５】
図４の参照リストでは、リスト番号の小さい順（つまり要素の並び順）に各要素に関する情報が示されている。また、図４の参照リストでは、範囲情報として、各要素のみを含む矩形の左上位置のＸ座標およびＹ座標と、矩形の横幅および高さとを含む。矩形の幅および高さの代わりに、矩形の右下位置のＸ座標およびＹ座標であってもよい。
【００４６】
また、図４の参照リストでは、要素種別として、文字、図表（図または表）に加えて改行を持つ。この「改行」は、要素種別であるだけではなく、要素が属する段落を特定する情報としても機能することになる。つまり、リスト番号の順に各要素の情報を参照していく場合、改行が参照されてから次に改行が参照するまで（まだ一度も改行が参照されていない場合は参照リストの先頭から最初に改行が参照されるまで）の間に参照された文字ないし図表を同一の段落に属していると判定できる。たとえば、リスト番号７において最初に改行が参照されるため、リスト番号１から６が１つの段落（図３Ａにおける段落Ｒ１）となり、次にリスト番号４１において改行が参照されるため、リスト番号８から４０が１つの段落（図３Ａにおける段落Ｒ２）となる。同様にして、全ての文字および図表の属する段落を判別できる。
【００４７】
さらに、図３Ａに示す文書画像のように同一段落内において文字列と文字列とに挟まれる図表が存在する場合、レイアウト変更を行うと、文字と図表との位置関係が変わり、可読性が低下するおそれがある。そこで、レイアウト変更前の文書画像において同一段落内において文字列と文字列とに挟まれる図表が存在する場合、この段落内において、レイアウト変更前の文字と図表との並び順に関係なく、レイアウト変更後には文字と図表とが別々に配置されるように、各文字および図表にリスト番号を割り振る。例えば、図４のリスト番号３９８の図表は、図３Ａに示すように、段落Ｒ７に含まれており、リスト番号３９８の図表の後の４行にわたる文字列までが同一段落（段落Ｒ７）となるが、図４の参照リストでは、まず段落Ｒ７の先頭の文字から段落Ｒ７に含まれる文字列の末尾にあたるリスト番号３９７の文字までの順にリスト番号が割り振られ、図表には、リスト番号３９７の次のリスト番号３９８が割り振られる。
【００４８】
但し、リスト番号の割り振り手法は、以上の図４の参照リストのような形態に限定されるものではない。例えば、同一段落内に文字列と図表とが共に含まれている場合、図２２に示す参照リストのように、図表と文字との境界となる位置に「改行」の要素を挿入することにより、同一段落内での図表と文字との位置関係（順序）をレイアウト変更の前後で固定させるようになっていてもよい。なお、同一段落内に複数の図表が存在する場合、図表と図表との境界の位置にも「改行」の要素を挿入することで、複数の要素がスクロールの方向と直交した方向に並ぶことなく表示することができる。
【００４９】
また、図５に示す参照リストのように、要素ごとに、属する段落を識別する段落ＩＤを記述してもよい。図５は、図４とは異なる参照リストの例を模式的に示した図である。この参照リストにおいては、リスト番号の順に各要素の情報を参照していく場合、段落ＩＤが変化した際にその前後の要素間で段落が変更されたと判定できる。なお、同一段落内において文字列と文字列とに挟まれる図表が存在する場合、図５においては、この段落内において図表からなる小段落が含まれるように扱う。つまり、図３Ｂおよび図５に示すように、文字列および図表からなる段落は段落７になり、このうち、図表については段落７に属する小段落７−２として扱われる。なお、同一段落内に複数の図表が存在する場合、個々の図表をそれぞれ異なる小段落としても良い。
【００５０】
また、本実施の形態では、記憶部１２においては、単に文書ファイルが保存されているだけではなく、保存されている文書ファイルの文書画像に対応する参照リストも当該文書ファイルに紐付けされて保存されているものとする。
【００５１】
参照リストは、文書ファイルが生成される複合機やスキャナにおいて、当該文書ファイルから作成され、当該文書ファイルに紐付けされることになる。そして、互いに紐付けされた文書ファイルと参照リストとの組み合わせは、通信部１３を介して携帯端末１０に送信されたり、リムーバブルメディアを介して携帯端末１０に入力される。
【００５２】
但し、携帯端末１０が参照リスト作成部を備えてもよく、この場合、携帯端末１０は複合機やスキャナから文書ファイルのみを受信し、参照リスト作成部は、この文書ファイルを参照して参照リストを作成するようになっていてもよい。なお、参照リスト作成部については実施形態８にて説明する。
【００５３】
（レイアウト変更部１１１について）
以下、レイアウト変更部１１１の処理について詳細に説明する。なお、本実施形態では、文字列の文字の配列方向が表示画面の水平方向と一致する横書き（左横書き）の文書画像に対して処理を行う場合を説明する。なお、横書き（左横書き）の文書画像では、一つの文字列に属する文字の並び順は左から右へ向かう順であり、複数の文字列の並び順は原則として上から下へ向かう順である。
【００５４】
すなわち、図８に示すように、水平方向および垂直方向のうち、スクロール可能な方向と直交する方向（図８では水平方向）については、文書画像の長さがコンテンツ表示領域の長さ以下になるように、レイアウト変更処理が行われるのである。
【００５５】
図６は、図４の参照リストを用いる場合のレイアウト変更部１１１の処理手順を示すフローチャートである。レイアウト変更部１１１は、図４の参照リストを参照し、Ｎ個の各要素のうち並び順の小さい要素から順に注目要素として扱っていく。
【００５６】
レイアウト変更部１１１は、図４の参照リストに基づいて、注目要素の要素種別を判定する（Ｓ１０１）。そして、図６に示すように、レイアウト変更部１１１は、注目要素が文字または図表であると判断する場合（Ｓ１０１）、注目要素の１つ前の要素の要素種別を示す履歴要素種別と、注目要素の要素種別との比較を行う（Ｓ１０２）。なお、履歴要素種別は記憶部１２に記憶されている。ここで、レイアウト変更部１１１は、履歴要素種別が文字または図表であり、かつ、注目要素の要素種別が履歴要素種別と異なる場合（Ｓ１０２にてＮＯ）、段落変更処理（Ｓ１０３）、要素切り出し処理（Ｓ１０４）、要素変倍処理（Ｓ１０５）、配置処理（Ｓ１０６）、履歴要素種別更新処理（Ｓ１０７）を順に実行する。これに対し、レイアウト変更部１１１は、履歴要素種別が「改行」である場合、もしくは、履歴要素種別と注目要素の要素種別とが同一である場合（Ｓ１０２にてＮＯ）、段落変更処理（Ｓ１０３）を実行せずに、要素切り出し処理（Ｓ１０４）、要素変倍処理（Ｓ１０５）、配置処理（Ｓ１０６）、履歴要素種別更新処理（Ｓ１０７）を順に実行する。また、レイアウト変更部１１１は、Ｓ１０１において注目要素が改行であると判断する場合、段落変更処理（Ｓ１０８）、履歴要素種別更新処理（Ｓ１０７）を順に実行する。レイアウト変更部１１１は、Ｎ個の全ての要素を順に注目要素として扱い、各注目要素に対して図６の処理を行う。なお、履歴要素種別は、参照リストの先頭（すなわちｒ＝１）が参照される前に、「改行」に初期化されており、図６の履歴要素種別更新処理（Ｓ１０７）において、注目要素の要素種別を新たな値として更新する。
【００５７】
以下、図６の要素切り出し処理、要素変倍処理、配置処理、段落変更処理の各々の処理内容を順に説明する。前述したレイアウト変更処理とは、要素切り出し処理、要素変倍処理、配置処理、段落変更処理からなるのである。
【００５８】
図６の要素切り出し処理（Ｓ１０４）は、参照リストに示される注目要素の範囲に基づいて、文書画像のデータから注目要素の切り出し（抽出）を行う処理である。
【００５９】
図６の要素変倍処理（Ｓ１０５）は、切り出した注目要素を、現在指定されている表示倍率に応じて拡大もしくは縮小を行う処理である。たとえば、表示倍率が２００％である場合、切り出された各要素の水平および垂直方向のサイズが２倍になるように拡大処理が実行される。表示倍率が５０％となっている場合、切り出された各要素の水平および垂直方向のサイズが１／２倍になるように縮小処理が実行される。
【００６０】
但し、図表は、文字に比べてサイズが大きいため、携帯端末１０（スマートフォン）のように表示部１４ａの画素数が少ない場合（高さおよび幅が小さい場合）、リフロー表示する際のスクロールの方向と直交する方向の長さがコンテンツ表示領域よりも長くなりがちである。このような場合、図表の長さ（スクロールの方向と直交する方向の長さ）をコンテンツ表示領域に収めるようにするための方法として、指定されている表示倍率と関係なく、図表の長さ（スクロールの方向と直交する方向の長さ）をコンテンツ表示領域の長さ（スクロールの方向と直交する方向の長さ）以下になるように縮小する。また、図表の長さがコンテンツ表示領域の長さよりも短い場合、指定されている表示倍率と関係なく、図表の長さがコンテンツ領域の長さを超えない程度に図表を拡大してもよい（表示倍率を指定値から変更する）。なお、以上の手法は、たとえば各要素の要素種別を参照リストから参照して「図表」である場合に表示倍率を変更することで実行できる。或いは、注目要素の切り取り時の横幅（スクロールの方向と直交する方向の長さ）がコンテンツ表示領域のスクロールの方向と直交する方向の長さに所定係数（たとえば０．５）を乗じたものよりも大きい場合に倍率を変更するようにすれば、図表のみならず非常に大きな文字などにも対応できる。
【００６１】
つぎに、図６に示されている配置処理（Ｓ１０６）を説明する。変倍処理された注目要素の横幅をＳＷ、縦の長さをＳＨとするとき、配置座標（Ｐｘ，Ｐｙ）を左上として要素の配置を行う場合、その右下座標は（Ｐｘ＋ＳＷ−１，Ｐｙ＋ＳＨ−１）となる。配置座標は、最初にＰｘ＝ＩｎｄｅｎｔＸ１，Ｐｙ＝０として初期化されている。
【００６２】
注目要素が下記の式（１）を満たす場合、スクロール方向と直交する方向においてコンテンツ領域をはみ出さずに注目要素を配置することができ、注目要素に対する配置座標を（Ｐｘ，Ｐｙ）として確定する。
Ｐｘ＋ＳＷ≦ＤＷ・・・・・・  式（１）
ただし、ＤＷは、コンテンツ表示領域におけるスクロールの方向と直交する方向の長さ（横書きの場合は横幅）の大きさを示す。
【００６３】
注目要素が式（１）を満たさないとき、コンテンツ表示領域をはみ出すとして、以下に説明する方法により行の折り返し処理を実行する（注目要素の属する行を、注目要素の直前の要素（並び順が注目要素の直前の要素）の属する行の下の行にする）。
【００６４】
注目要素の直前の要素を含む行の下端座標をＹ＝ＬｉｎｅＭａｘＹとするとき、注目要素の配置座標をＰｘ＝ＩｎｄｅｎｔＸ２、Ｐｙ＝ＬｉｎｅＭａｘＹ＋ＬｉｎｅＳｐａｃｅＹ２と更新した上で、式（１）を満たすか否か判定し、満たす場合は配置座標を（Ｐｘ，Ｐｙ）として確定する。
【００６５】
ただし、ＩｎｄｅｎｔＸ１、ＩｎｄｅｎｔＸ２は、インデントの大きさを示すゼロ以上の係数であり、正の値をとるとき、行の先頭文字が右側にシフトされた形で要素が配置される。ＩｎｄｅｎｔＸ１、ＩｎｄｅｎｔＸ２の値は、特に限定されるものではないが、ＩｎｄｅｎｔＸ１が段落の先頭位置を示す値に設定されるのに対し、ＩｎｄｅｎｔＸ２は段落の２行目以降の各行の先頭位置に適用される点で異なる。それゆえ、ＩｎｄｅｎｔＸ２は、ＩｎｄｅｎｔＸ１よりも小さい値が好ましく、ゼロであることが望ましいが、特にそれに限定するのでなく、たとえば双方ともゼロとして行頭のインデントを持たないレイアウトとしても構わない。ＬｉｎｅＳｐａｃｅＹ２は、行間距離の大きさを示す係数であり、値が大きくなるほど行間距離が大きくなる。ＬｉｎｅＳｐａｃｅＹ２の値は、特に限定されるものではないが、コンテンツ領域の縦の長さの５％というように表示部１４ａのサイズに応じて設定されてもよいし、ＳＨに所定係数α（たとえばα＝１．５）を乗じた値とすることで、注目要素を基準として行の高さのα倍を行間距離とすることができる。以上のようにすることにより、注目要素とその直前の要素とが水平方向に並ばないように配置座標を変更することができ、行を折り返すことができる。
【００６６】
注目要素の配置座標（Ｐｘ，Ｐｙ）が確定すると、注目要素の配置座標（Ｐｘ，Ｐｙ）、ＳＷおよびＳＨを記憶部１２に記憶させる。なお、変倍後の横幅および縦の長さの代わりに変倍率Ｒを記憶させても良い。
【００６７】
注目要素の配置座標を記憶すると、次の注目要素の配置座標の初期値を（Ｐｘ＋ＳＷ＋ＣｈａｒａＳｐａｃｅＸ−１，Ｐｙ）として更新する。但し、ＣｈａｒａＳｐａｃｅＸは文字同士の字間距離を示す所定係数である。ＣｈａｒａＳｐａｃｅＸの値は、特に限定されるものではなく、たとえばコンテンツ表示領域の横幅の１％というように表示部１４ａのサイズに応じて設定されてもよい。或いは、ＣｈａｒａＳｐａｃｅＸの値は、直前に参照された注目要素の横幅ＳＷに所定係数β（たとえばβ＝０．１）を乗じた値としてもよい。この場合、直前の注目要素の大きさに応じた字間距離を設定することができる。
【００６８】
つぎに、図６の段落変更処理（Ｓ１０３、Ｓ１０８）について説明する。段落変更処理では、注目要素の直前の要素が含まれる行の下端座標をＹ＝ＬｉｎｅＭａｘＹとすると、注目要素の配置座標をＰｘ＝ＩｎｄｅｎｔＸ１，Ｐｙ＝ＬｉｎｅＭａｘＹ＋ＬｉｎｅＳｐａｃｅＹ１として確定する。
【００６９】
なお、ＬｉｎｅＳｐａｃｅＹ１は、行間距離の大きさを示す係数であり、値が大きくなるほど行間距離が大きくなる。ＬｉｎｅＳｐａｃｅＹ１の値は、特に限定されず、ＬｉｎｅＳｐａｃｅＹ２と同様の方法で設定できる。但し、ＬｉｎｅＳｐａｃｅＹ１は、異なる段落間の行間距離を示すのに対し、ＬｉｎｅＳｐａｃｅＹ２は、同一の段落内における行間の距離を示す点で異なる。それゆえ、ＬｉｎｅＳｐａｃｅＹ１の値としては、ＬｉｎｅＳｐａｃｅＹ２より大きな値が設定される方が望ましい。
【００７０】
レイアウト変更部１１１は、注目要素に対して以上の処理を行って注目要素の配置座標を確定すると、履歴要素種別更新処理（Ｓ１０７）を行った上で、次の注目要素に対して以上の処理を繰り返す。
【００７１】
なお、図４の参照リストではなく、図２２に示す参照リスト（同一段落内であっても文字要素と図表要素との境界に改行要素を挿入した参照リスト）を使用する場合、レイアウト変更部１１１は、図２３のフローに示す手順で処理を実行する。ここで、図２３の要素切り出し処理（Ｓ１０４）、要素変倍処理（Ｓ１０５）、配置処理（Ｓ１０６）、段落変更処理（Ｓ１０８）は、図６の素切り出し処理（Ｓ１０４）、要素変倍処理（Ｓ１０５）、配置処理（Ｓ１０６）、段落変更処理（Ｓ１０８）と同一であるため、その説明を省略する。すなわち、図２２に示す参照リストを使用する場合の図２３の処理フローにおいては、要素が変更される場合は必ず改行されるようになっているため、図６のＳ１０２，Ｓ１０３，Ｓ１０７が省略されることになる。
【００７２】
つぎに、図４の参照リストではなく、図５の参照リストを用いる場合のレイアウト変更部１１１の処理について以下説明する。図７は、図５の参照リストを用いる場合のレイアウト変更部１１１の処理手順を示すフローチャートである。
【００７３】
レイアウト変更部１１１は、図５の参照リストを参照し、Ｎ個の各要素のうち並び順の小さい要素から順に注目要素として扱っていく。そして、図７に示すように、レイアウト変更部１１１は、注目要素について、要素切り出し処理（Ｓ１０４）、要素変倍処理（Ｓ１０５）を順に実行する。図７の要素切り出し処理（Ｓ１０４）、要素変倍処理（Ｓ１０５）の内容は、図６の要素切り出し処理（Ｓ１０４）、要素変倍処理（Ｓ１０５）と同一であるため、その説明を省略する。続いて、レイアウト変更部１１１は、図５に示す参照リストに示されている段落ＩＤを参照して、注目要素が、注目要素の直前の要素と同じ段落であるかどうかを判定する（Ｓ１１０）。
【００７４】
注目要素が直前の要素と異なる段落である場合、すなわち判定処理が偽である場合（Ｓ１１０にてＮＯ）、図７に示すように、段落変更処理（Ｓ１０８）、配置処理（Ｓ１０６）を順に実行する。なお、図７の段落変更処理（Ｓ１０８）、配置処理（Ｓ１０６）の内容は、図６の段落変更処理（Ｓ１０８）、配置処理（Ｓ１０６）と同一であるため、その説明を省略する。なお、注目要素が、直前の要素を含む段落内の、図表を含む小段落である場合は、直前の要素と異なる段落であるとみなすことで、文字列と図表との間、もしくは図表と図表との間を改行することができる。また、図示しないが、上記小段落が、複数の図表を含んでいる場合、上記小段落内の図表を参照するごとに段落変更処理を実行するようにしても良い（すなわち小段落内の図表を参照するときは、Ｓ１１０は常にＮＯに固定されるようにしても良い）。
【００７５】
これに対し、注目要素が直前の要素と同じ段落である場合、すなわち判定処理が真である場合（Ｓ１１０にてＹＥＳ）、段落変更処理（Ｓ１０８）をスキップして配置処理（Ｓ１０６）を行う。また、図示されていないが、注目要素のリスト番号が１の場合も（つまり最初の注目要素の場合）、段落変更処理（Ｓ１０８）をスキップして配置処理（Ｓ１０６）を行う。
【００７６】
（表示制御部１１２について）
つぎに、表示制御部１１２の処理内容を説明する。表示制御部１１２は、文書画像を構成する要素ごとに、レイアウト変更部１１１にて求められた配置座標から、コンテンツ表示領域に対する位置関係を示した描画座標を算出する。具体的には、各要素の配置座標を（Ｐｘ，Ｐｙ）とするとき、描画座標（Ｏｘ，Ｏｙ）は以下の式（２）および式（３）から求めることができる。
Ｏｘ  ＝  Ｐｘ  ＋  ＯｆｆｓｅｔＸ    ・・・・・・式（２）
Ｏｙ  ＝  Ｐｙ  ＋  ＯｆｆｓｅｔＹ    ・・・・・・式（３）
ＯｆｆｓｅｔＸ，ＯｆｆｓｅｔＹはオフセット値であり、全ての要素について同一の値を用いる。
【００７７】
ここで、文書画像が横書きの場合（文書の行方向と表示画面の水平方向とが一致する場合）、全ての要素において、ＯｆｆｓｅｔＸを０で固定し、ＯｆｆｓｅｔＹをスクロールの度に変更する。文書画像が縦書きの場合（文書の行方向と表示画面の垂直方向とが一致する場合）、ＯｆｆｓｅｔＹを０で固定し、ＯｆｆｓｅｔＸをスクロールの度に変更する。
【００７８】
図８は、描画座標に基づいて文書画像を表示する場合の表示例を示す。文書画像の先頭の要素について、配置座標のＹ座標値は０であるが（図１０の（ａ））、描画座標のＹ座標値はＯｆｆｓｅｔＹに変更される（図８）。また、配置座標が（０，−ＯｆｆｓｅｔＹ）であった位置が描画座標では（０，０）になり、この位置がコンテンツ表示領域の原点となる。
【００７９】
図８に示すように、コンテンツ表示領域の横幅をＤＷ、縦の長さをＤＨとし、コンテンツ表示領域の左上を原点（０，０）、右下を（ＤＷ−１，ＤＨ−１）とする。そして、各要素について、式（２）および式（３）で得られた描画座標（Ｏｘ，Ｏｙ）を左上とし、横幅ＳＷ、縦の長さＳＨで描画したときの矩形範囲の一部ないし全部がコンテンツ領域に重複する場合、当該要素に対する描画処理を行う（当該要素を表示させる）。
【００８０】
図９は、図８のように描画座標が求められた場合の携帯端末１０のコンテンツ表示領域の様子を示した図である。図８の要素１（「こ」）や要素５（「で」）は、コンテンツ表示領域に重複しないため表示されない。これに対し、図８の要素２（「の」）や要素４（「落」）は、一部がコンテンツ表示領域と重複しており、重複箇所が表示される。また、図８の要素３（「第」）は、全体がコンテンツ領域と重複しているため表示される。
【００８１】
また、表示制御部１１２は、入力部１４ｂからの信号によってスクロール指示（スクロール操作）を検出すると、スクロール指示に応じてオフセット値を変更することにより、文書画像をスクロールさせるようになっている。以下では、この点を説明する。
【００８２】
図１０は、オフセット値を変化させるとコンテンツ表示領域に描画される範囲が変化する様子を説明するための図である。図１０では、ＤＷ＝１０００，ＤＨ＝１５００としている。
【００８３】
図１０の（ａ）は、レイアウト変更部１１１にて求められた配置座標に基づいて各要素が配置される文書画像を示す。図１０の（ｂ）は、図１０の（ａ）に示す文書画像のうち、ＯｆｆｓｅｔＹ＝−２００とした場合にコンテンツ表示領域に描画される範囲を示す。図１０の（ｃ）は、図１０の（ａ）に示す文書画像のうち、ＯｆｆｓｅｔＹ＝−４００とした場合にコンテンツ表示領域に描画される範囲を示す。なお、図１０の（ｂ）および（ｃ）において、網掛けされている範囲がコンテンツ表示領域（画像が表示される領域）である。すなわち、ＯｆｆｓｅｔＹを０以下の値とする場合、ＯｆｆｓｅｔＹの値が減少するほど（絶対値が大きくなるほど）、文書画像のうちの表示範囲が下側にシフトし、ＯｆｆｓｅｔＹの値が増加するほど（絶対値が小さくなるほど）、文書画像のうちの表示範囲が上側にシフトする。それゆえ、スクロール指示（タッチ操作）に応じてオフセット値を調整すれば、スクロール指示に追随させて文書画像をスクロールさせることができる。
【００８４】
つぎに、スクロール指示（スクロール操作）に応じてオフセット値を変更して画像をスクロールさせる処理を詳細に説明する。図１１は、タッチ操作によるスクロール指示を説明するための図である。スクロール指示開始時（時刻ｔ＝０）におけるタッチ検出位置を点Ａ０、時刻ｔ＝Ｔ１におけるタッチ検出位置を点Ａとするとき、表示制御部１１２は、点Ａ０から点Ａへの変位量（距離）に応じてオフセット値を変更する。
【００８５】
例えば、横書きの文書画像の場合において、点Ａ０のＹ座標をａｙ０、点ＡのＹ座標をａｙとし、時刻ｔにおけるオフセット値をＯｆｆｓｅｔＹ（ｔ）としたとき、表示制御部１１２は、時刻ｔ＝Ｔのオフセット値ＯｆｆｓｅｔＹ（Ｔ）を、式（４）によって求める。
ＯｆｆｓｅｔＹ（Ｔ）＝ＯｆｆｓｅｔＹ（０）−ｆ（ａｙ−ａｙ０）・・・式（４）
関数ｆ（ｘ）は、ｘに正の相関を持ち、ｆ（０）＝０となる奇関数である。たとえばｆ（ｘ）＝ｘを挙げることができる。
【００８６】
図１１の場合、ａｙ＜ａｙ０であるため、ＯｆｆｓｅｔＹ（Ｔ）＞ＯｆｆｓｅｔＹ（０）となり、上方向に文書画像がスクロールされる。
【００８７】
同様にして、時刻ｔ＝Ｔ２におけるタッチ検出位置Ａ’のＹ座標をａｙ’とすると、ａｙ’＜ａｙであるため、点Ａ’の方が、点Ａよりも、点Ａ０との間の垂直方向距離（Ｙ座標の差）が大きく、ＯｆｆｓｅｔＹ（Ｔ２）＞ＯｆｆｓｅｔＹ（Ｔ１）となり、より上方向にスクロールされることになる。なお、ＯｆｆｓｅｔＹの算出は、タッチ操作におけるＹ方向の変位量を用いて行われるが、タッチ操作におけるＸ方向の変位量や符号は無関係である。
【００８８】
さらに、時刻ｔ＝Ｔ３におけるタッチ検出位置Ａ’’のＹ座標をａｙ’’とすると、ａｙ’’＞ａｙ０であることから、ＯｆｆｓｅｔＹ（０）＞ＯｆｆｓｅｔＹ（Ｔ３）となり、タッチ開始位置から下側へ向けた方向に画像がスクロールされることになる。
【００８９】
つまり、本実施形態によれば、各要素の配置座標（Ｐｘ，Ｐｙ）のうち、画像のスクロールの方向と平行な座標軸の座標値（横書きの場合はＰｙ）に対してスクロールの量に応じたオフセット値（各要素に共通の値）を加算する加算処理を行うことによって各要素の描画座標（Ｏｘ，Ｏｙ）を求める形態である。この形態では、文書画像がスクロールされる場合、各要素において、スクロール方向と平行な座標軸の座標値に加算されるオフセット値（各要素に共通値）を変更するだけで描画座標（Ｏｘ，Ｏｙ）を更新できる。それゆえ、スクロールの度に、各要素のｘ座標値およびｙ座標値の両方を再演算していた従来構成よりも処理負荷を抑制できる効果を奏する。
【００９０】
〔実施形態２〕
実施形態２では、ユーザに文書ファイルが指定されてレイアウト変更部１１１および表示制御部１１２の処理によって文書画像がタッチパネル１４に表示された後、ユーザがズーム指示（ズーム操作）を行った場合の表示倍率の変更処理について説明する。
【００９１】
なお、実施形態１で説明したように、制御部１１は、コンテンツ表示領域上にて２点以上の同時タッチを検出した場合、画像のズーム指示（ズーム操作）の開始であると識別するようになっている。また、制御部１１は、ズーム指示が開始されてから、ズーム指示開始時に検出したタッチ点数と同じ点数のタッチがコンテンツ表示領域上で検出され続けている間はズーム指示が継続されていると識別し、コンテンツ表示領域上で検出されるタッチ点数が異なる点数に変化した場合はズーム指示が終了したと識別するようになっている。また、２点タッチの場合、２点の間隔を広げる動きで画像拡大となり、２点の間隔を狭める動きで画像縮小となる（３点タッチの場合、３点を頂点とした三角形を広げる動きで画像拡大となり、三角形を狭める動きで画像縮小となる）。
【００９２】
ズーム指示開始時（時刻ｔ＝０）におけるタッチ検出点数をＮとし、第ｉ番目（ｉ＝１，２，…，Ｎ）のタッチ検出位置を点Ａｉ０とし、最終検出時（ｔ＝Ｔ）における第ｉ番目のタッチ検出位置を点Ａｉとするとき（タッチ検出点数がＮ以外になるとズーム指示が終了する）、Ｎ個のタッチ検出位置の変位を用いたよく知られた方法により表示倍率を変更することができる。
【００９３】
たとえば、Ｎ個のタッチ検出位置から得られる評価値を各時刻で算出し、時刻ｔ＝０における評価値と、時刻ｔ＝Ｔにおける評価値との差異により表示倍率を変更する方法が挙げられる。より具体的に説明すると、表示制御部１１２は、Ｎ個のタッチ位置の平均座標値に相当する点Ｍを求め、点Ｍと各点Ａとの距離の総和を評価値Ｅとして、下記の式（５Ａ）を用いて表示倍率を求めることができる。
【００９４】
Ｚｏｏｍ（Ｔ）＝Ｚｏｏｍ（０）＋ｇ（Ｅ（Ｔ）−Ｅ（０））・・・式（５Ａ）
Ｚｏｏｍ（ｔ）は時刻ｔにおける表示倍率を示し（Ｚｏｏｍ（ｔ）＝１．０のとき表示倍率１００％とする）、Ｅ（ｔ）は時刻ｔにおける評価値を示すものとする。
関数ｇ（ｘ）は、ｘに正の相関を持ち、ｇ（０）＝０となる奇関数である。たとえば、ｇ（ｘ）＝ｃ・ｘが挙げられる。
ｃは、所定係数である。たとえば、ｃは、コンテンツ表示領域の水平方向の画素数と垂直方向の画素数のうち小さい方の逆数に１６を乗じた数とすることができる。このようにｃを設定する場合、評価値Ｅ（Ｔ）が、評価値Ｅ（０）よりも、コンテンツ表示領域の短辺の長さ（水平方向の長さ）の１／１６だけ大きくなると表示倍率を１００％増加させることができる。
【００９５】
図１２、図１３および図１４は、表示倍率の変更方法を説明するための図である。図１２は、ズーム操作開始時（時刻ｔ＝０、タッチ検出点数Ｎ＝２）のタッチ位置を示したものである。図１３は、ズーム操作開始時よりタッチ位置を互いに遠ざけた場合（時刻ｔ＝Ｔ）の様子を示したものである。図１３の状態の場合、時刻ｔ＝０の場合に比べて各タッチ位置と点Ｍとの距離が大きくなり、評価値が大きくなるために表示倍率が大きくなる。これに対し、図１４は、ズーム操作開始時よりタッチ位置を互いに近づけた場合（時刻ｔ＝Ｔ’）の様子を示したものである。図１４の状態の場合、時刻ｔ＝０の場合に比べて各タッチ位置と点Ｍとの距離が小さくなり、評価値が小さくなるために表示倍率が小さくなる。
【００９６】
以上のようにタッチパネル１４に対するタッチ操作がズーム指示である場合、制御部１１は、入力部１４ｂからの入力信号に基づいて検出したタッチ点数、タッチ位置を参照して、式（５Ａ）により表示倍率を求める。
【００９７】
このようにして表示倍率が求められると、レイアウト変更部１１１は、算出された表示倍率を用いてレイアウト変更処理を再度行って配置座標を求める。これは、表示倍率の変化に応じて各要素の配置座標も変える必要があるからである。すなわち、レイアウト変更部１１１は、図６、図７、または図２３の処理を実行することになるが、算出された表示倍率は要素変倍処理（Ｓ１０５）において用いられる。続いて、表示制御部１１２は、レイアウト変更部１１１にて求められた配置座標から描画座標を求め、描画座標に基づいて文書画像を表示部１４ａに表示させる。このようにして、更新された表示倍率で文書画像が表示されるのである。
【００９８】
以上示した本実施形態によれば、表示倍率を変更する場合（変倍処理を行う場合）、各要素の表示位置（描画座標）を決定する前に、文書画像全体のうちの各要素の座標（配置座標）を求めるようになっているため、インデントの位置がずれるといった事態（例えば図４７の符号５００）が起こり難いというメリットがある。
【００９９】
これに対し、先行技術によれば、表示倍率を変更する場合（変倍処理を行う場合）、先ず文書画像の中で表示される文字の位置を設定するようになっているため、図４７の符号５００に示すようにインデントの位置がずれるといった事態が発生し易い。例えば、表示倍率変更前において、図４６に示す文書画像全体のうち、最上段を含まない範囲が表示されており、表示範囲の先頭位置（最上段の左隅）に符号６５０の「文」という文字が配されている場合を想定する。先行技術によれば、この場合に表示倍率を変更すると、先ず、表示倍率変更前に表示範囲の先頭位置に配されていた文字（符号６５０）の表示位置を決定するようになっている。具体的には、表示倍率変更前に表示範囲の先頭位置に配されていた文字を、表示倍率変更後も表示範囲の先頭位置に配置する。そして、符号６５０の文字の位置を基準として、符号６５０の文字の前後の各文字の配置が順次決定されていく。それゆえ、本来は各段落のインデントの位置が図４８のようになるべきところ、先行技術によれば図４７の符号５００のようにインデントの位置がずれるといった事態が起こり得る。
【０１００】
〔実施形態３〕
ズーム指示により表示倍率を変更した場合、この変更に応じてオフセット値を調整しなければ、表示倍率変更前に表示されていた要素が表示倍率変更後には表示部１４ａからはみ出してしまい、表示倍率変更前に表示部１４ａからはみ出していた要素が表示倍率変更後には表示部１４ａに表示される場合がある。この場合、ユーザからすれば、文書画像全体のうち、意図せぬ範囲が突然表示されることになるという問題が生じる。
【０１０１】
この問題を、図１５を用いてより詳細に説明する。図１５は、ズーム指示により拡大表示させる場合（表示倍率を高くする場合）、表示倍率の変更の前後でオフセット値を一定とした場合の描画座標と、コンテンツ表示領域に描画されている範囲とを示した図である。図１５の（ａ）は、拡大前（表示倍率変更前）の描画座標および描画範囲であり、図１５の（ｂ）は、拡大後（表示倍率変更後）の描画座標および描画範囲である。コンテンツ領域の横幅はＤＷ＝１０００，コンテンツ領域の縦の長さはＤＨ＝１５００であり、拡大前および拡大後のいずれもＯｆｆｓｅｔＹ＝−１５００である。なお、図１５において網掛け部分がコンテンツ表示領域である。図１５に示す例では、拡大前では、図１５の（ａ）に示すように、第２章の第３段落の先頭がコンテンツ表示領域の左上に位置している。オフセット値をそのままにして拡大処理を行うと、図１５の（ｂ）に示すように、拡大前にコンテンツ表示領域に含まれていた範囲が全く含まれない状態になる。
【０１０２】
そこで、本実施形態では、表示制御部１１２は、ズーム指示が入力された場合、ユーザに注目されている要素をコンテンツ表示領域に残しつつ拡大または縮小できるようにオフセット値を調整する。以下では、ズーム指示がなされたときのオフセット値の調整手法を述べる。
【０１０３】
タッチパネル１４を用いてズーム指示を入力する場合、ユーザは、自身が注目している部分を中心としてタッチ操作を行う傾向にある。そのため、ズーム操作時における複数のタッチ位置の平均座標値に対応する地点から最も近い位置にある要素を、ユーザが注目している要素とみなすことができる。それゆえ、前記の平均座標値の位置からの距離が最も近い要素を選択し、この要素が拡大縮小後も表示されるようにオフセット値を調整すればよいと考えることができる。
【０１０４】
しかし、単純な距離を算出する場合、次に示す不具合が生じることもある。段落最終行は前後の行よりも短くなることが多いが、ユーザが段落最終行に注目していて前記の平均座標値の位置が段落最終行の余白箇所に位置することになる場合、その行末の要素よりも前後の行に含まれる要素の方が前記の平均座標値の位置から近くなることがあり、ユーザが実際に注目している要素が選択されにくくなる。
【０１０５】
これに対し、ズーム指示開始時にコンテンツ表示領域に表示されている各要素について、式（５Ｂ）に示す重み付きユークリッド距離を算出することで、行の方向（縦書き、横書き）に適した距離を得ることができるようになり、前記の不具合が抑制される。
【０１０６】
Ｄｉｓｔ（ｉ）＝ｋｘ×{ｇｘ−ｍｘ（ｉ）}２＋ｋｙ×｛ｇｙ−ｍｙ（ｉ）｝２
・・・・・・式（５Ｂ）
式（５Ｂ）において、（ｇｘ，ｇｙ）は、時刻ｔ＝０（ズーム指示開始時）に検出された複数点のタッチ位置の平均座標値である（例えば、図１２の点Ｍの座標値である）。式（５Ｂ）において、（ｍｘ（ｉ），ｍｙ（ｉ））は、図１６に示すように、参照リストにおけるｉ番目の要素が時刻ｔ＝０においてコンテンツ表示領域上に描画された際の当該要素の外接矩形の中心座標である。
式（５Ｂ）において、ｋｘおよびｋｙは正の所定係数である。たとえば、図１８のように、円の中心点Ｐ０と、円周上の各点Ｐｉ（ｉ＝１，２，…，８）とを設定し、点Ｐｉ毎に、中心点Ｐ０とのユークリッド距離（Ｄｉｓｔ（ｉ））を算出する場合を想定する。この場合においてｋｘ＝ｋｙとすると、Ｄｉｓｔ（ｉ）は単純なユークリッド距離（もしくはそれに定数を乗じた値）となり、いずれの点Ｐｉについても、Ｄｉｓｔ（ｉ）は同じ値となる。また、ｋｘ＞ｋｙとすると、垂直方向よりも水平方向の距離（中心点Ｐ０との座標値の差分の２乗値）に対する重みが大きくなるため、水平方向の距離がゼロとなる点Ｐ１および点Ｐ５は最もＤｉｓｔ（ｉ）が小さく、水平方向の距離が大きい点ＰｉほどＤｉｓｔ（ｉ）が大きくなり、垂直方向の距離がゼロとなる点Ｐ３および点Ｐ７でＤｉｓｔ（ｉ）が最大となる。一方、ｋｘ＜ｋｙのとき、垂直方向よりも水平方向の距離に対する重みが小さくなるため、点Ｐ３および点Ｐ７は最もＤｉｓｔ（ｉ）が小さく、垂直方向の距離が大きい点ＰｉほどＤｉｓｔ（ｉ）が大きくなり、点Ｐ１および点Ｐ５でＤｉｓｔ（ｉ）が最大となる。
【０１０７】
式（５Ｂ）を用いて各要素のＤｉｓｔ（ｉ）を求める際、表示制御部１１２は、文書画像が横書きである場合はｋｘ≦ｋｙ（たとえばｋｘ＝１，ｋｙ＝４）とし、文書画像が縦書きである場合ｋｘ≧ｋｙ（たとえばｋｘ＝４，ｋｙ＝１）と設定する。
【０１０８】
これにより、横書きの場合においては、タッチ位置の左または右に行が存在すれば、前記行に含まれる要素は、前記行と垂直方向に並ぶ異なる行に含まれる要素よりも、Ｄｉｓｔ（ｉ）が小さくなりやすくなる。また、縦書きの場合においては、タッチ位置の上または下に行が存在すれば、前記行に含まれる要素は、前記行と水平方向に並ぶ異なる行に含まれる要素よりも、Ｄｉｓｔ（ｉ）が小さくなりやすくなる。
【０１０９】
なお、Ｄｉｓｔ（ｉ）が最小値をとるような要素が複数存在する場合、所定のルールに従って、最も近い要素を１つに決定しても良い。最も近い要素を選択するための所定のルールとして、たとえば当該複数の要素のうち、対応する参照リストのリスト番号が最も近い要素、すなわち最も早く参照される要素としても良いし、対応するリスト番号の順に並べた場合に中央に位置する要素としても良い。
【０１１０】
したがって、段落最終行の余白のような箇所が複数点のタッチ位置の平均座標値の位置になった場合、平均座標値に対応する位置が最終行の末尾の要素から多少離れた位置であれば末尾の要素が選択され、平均座標値に対応する位置が最終行の末尾の要素から大きく離れた位置であれば前後の行の要素が選択されるようになる。それゆえ、段落最終行の余白のような箇所が複数点のタッチ位置の平均座標値になった場合であっても、ユーザが実際に注目している要素が選択されにくくなるという不具合を抑制できる。
【０１１１】
以上のようにして、表示制御部１１２は、複数点のタッチ位置の平均座標値の位置から最も近い第ｊ番目の要素を選択した後、第ｊ番目の要素の時刻ｔにおける配置座標を（Ｐｘｊ（ｔ），Ｐｙｊ（ｔ））とすると、時刻ｔ＝Ｔにおけるオフセット値を、式（６）を用いて求める。
【０１１２】
ＯｆｆｓｅｔＸ（Ｔ）＝ＯｆｆｓｅｔＸ（０）
ＯｆｆｓｅｔＹ（Ｔ）＝ＯｆｆｓｅｔＹ（０）＋Ｐｙｊ（０）−Ｐｙｊ（Ｔ）
・・・・・・式（６）
ＯｆｆｓｅｔＸ（ｔ）は、時刻ｔにおけるＸ成分のオフセット値を示し、ＯｆｆｓｅｔＹ（ｔ）は、時刻ｔにおけるＹ成分のオフセット値を示す。なお、式（６）は、横書きの文書画像用のものであり、Ｘ成分のオフセット値は調整されず（０で一定）、Ｙ成分のオフセット値が調整される。
【０１１３】
以上の通り、表示制御部１１２は、ズーム指示を入力した場合、式（５Ｂ）を用いて各要素のＤｉｓｔ（ｉ）を求めて、最もＤｉｓｔ（ｉ）の小さい要素を選択し、この要素の配置座標を用いて式（６）からオフセット値を求めるようになっている。
【０１１４】
これにより、ズーム後の第ｊ番目の要素のＹ座標値（Ｐｙｊ（Ｔ）+ＯｆｆｓｅｔＹ（Ｔ））を、ズーム前の第ｊ番目の要素のＹ座標値（Ｐｙｊ（０）+ＯｆｆｓｅｔＹ（０））と等しくすることができるため、ズーム指示により表示倍率が変更されても、変更の前後で同じＹ座標値で第ｊ番目の要素をタッチパネル１４に表示させることができる。
【０１１５】
〔実施形態４〕
実施形態３の式（６）によれば、選択された第ｊ番目の要素（以下要素ｊと称す）のズーム前の描画座標のＹ座標値とズーム後の描画座標のＹ座標値との差をΔＹとすると、ΔＹ＝０になる。しかし、ΔＹ＝０になるようにオフセット値を調整する必要はなく、ΔＹが所定範囲に収まっていればよい。
【０１１６】
ここで、所定範囲は、要素ｊの表示倍率変更前の高さをＳＨ１、要素ｊの表示倍率変更後の高さをＳＨ２とするとき、−｜ＳＨ１−ＳＨ２｜以上かつ｜ＳＨ１−ＳＨ２｜以下に設定される。所定範囲をこのように設定することにより、表示倍率を変更する前後で要素ｊの下端を揃えるようにオフセット値を調整したり（図２０参照）、表示倍率を変更する前後で要素ｊの上端を揃えるようにオフセット値を調整し（図１９参照）、或いは表示倍率を変更する前後でスクロールの方向において要素ｊの中心を揃えるようにオフセット値を調整できる（このとき、表示倍率を変更する前後で、スクロールの方向と直交する方向における要素ｊの位置の違いは考慮しないものとする。）。
【０１１７】
なお、要素ｊの上端を揃えるためには式（６）を用いてオフセット値を調整すればよく、要素ｊの下端を揃えるためには以下に示す式（７）を用いてオフセット値を調整すればよい。
【０１１８】
ＯｆｆｓｅｔＸ（Ｔ）＝ＯｆｆｓｅｔＸ（０）
ＯｆｆｓｅｔＹ（Ｔ）＝ＯｆｆｓｅｔＹ（０）＋（Ｐｙｊ（０）＋ＳＨ１）−（Ｐｙｊ（Ｔ）＋ＳＨ２）・・・・・・式（７）
もちろん、表示倍率変更前後で要素ｊの上端、下端、またはスクロールの方向の中心を揃えるようにオフセット値を調整する必要はなく、所定範囲内に収まるようになっていればよい。
【０１１９】
〔実施形態５〕
また、実施形態３では、表示制御部１１２は、式（５Ｂ）によって求めたＤｉｓｔ（ｉ）に基づいて、複数点のタッチ位置の平均座標から最も近い要素を選択するようになっているが、常にＤｉｓｔ（ｉ）に基づいて要素を選択するとなると、複数のタッチ位置の平均座標が文字を囲む最小矩形内に入っているにも拘わらず、隣接する文字の方が近いとみなされることもまれにある。
【０１２０】
図１７は、英単語「Ｗｉｌｌ」を構成する各アルファベットがそれぞれ要素として認識されており、レイアウト変更部１１１によるレイアウト変更処理によって各要素が順に再配置された後の様子を示している。図１７において、平均座標は、要素９１（Ｗの文字）を囲む最小矩形内に含まれている一方で、要素９１の中心座標よりも、要素９２（ｉの文字）の中心座標の方が近くなっている。それゆえ、表示制御部１１２は、複数のタッチ位置の平均座標から最も近い要素を要素９２と判定する可能性がある。
【０１２１】
このことを抑制するために、表示制御部１１２は、文字を囲む最小矩形内に平均座標（ｇｘ，ｇｙ）が位置している場合、ユークリッド距離（Ｄｉｓｔ（ｉ））は関係なく、その文字を平均座標から最も近い要素として選択するようになっていてもよい。
【０１２２】
〔実施形態６〕
また、携帯端末１０は、文書を撮影して文書画像を生成する撮影装置を備えていてもよい。この場合、携帯端末１０は、画像を入力する画像入力装置としても機能することになる。
【０１２３】
そして、携帯端末１０において、撮影装置から得られた文書画像に基づいて参照リストを生成し、この参照リストおよび文書画像を用いて配置座標および描画座標を求め、これら座標を用いてリフロー表示を行う。
【０１２４】
ここで、表示制御部１１２は、リフロー表示される文書画像を閲覧したユーザに対して、可読性の適否を示す適否判定結果を入力することを促すガイド画像を表示部１４ａに表示させてもよい。ここで、表示制御部１１２は、「適」を示す判定結果をユーザが入力部１４ｂを介して入力した場合、文書画像データや参照リストを記憶部１２に保存し、「不適」を示す判定結果をユーザが入力部１４ｂを介して入力した場合、表示処理を中断して文書画像データや参照リストを消去して、処理を再実行してもよい（撮影、参照リスト生成、リフロー表示を再実行する）。これにより、撮像に失敗した場合の手間を減らすことができる。
【０１２５】
また、同じ文書画像データに対してリフロー表示を再度行いたい場合は、一度取得した文書画像データおよび参照リストを記憶部１２に保存しておくことで参照リストの生成処理を省略することができる。
【０１２６】
〔実施形態７〕
以上にて述べた各実施形態では、横書きの文書画像を例にして説明しているが、縦書きの文書画像に対しても勿論本発明の実施形態を適用可能である。
【０１２７】
但し、本実施形態において、横書き文書画像では、左上を原点とし、左から右方向をｘ軸（表示部の水平方向）の正方向、上から下方向をｙ軸（表示部の垂直方向）の正方向として配置座標や描画座標を設定しているが、縦書き文書画像では、右上を原点とし、右から左方向をｘ軸（表示部の水平方向）の正方向、上から下方向をｙ軸（表示部の垂直方向）の正方向として配置座標や描画座標を設定することになる。
【０１２８】
それゆえ、縦書きの場合、以上にて述べた式（１）を下記の式（１）’に置き換えて使用することになる。具体的には、Ｓ１０６の配置処理において、配置座標（Ｐｘ，Ｐｙ）を右上として要素の配置を行う場合、その左下座標は（Ｐｘ＋ＳＷ−１，Ｐｙ＋ＳＨ−１）となる。配置座標は、最初にＰｘ＝０、Ｐｙ＝ＩｎｄｅｎｔＹ１として初期化される。そして、注目要素が下記の式（１）’を満たす場合、スクロール方向（水平方向）と直交する方向においてコンテンツ領域をはみ出さずに注目要素を配置することができ、注目要素に対する配置座標を（Ｐｘ，Ｐｙ）として確定する。
Ｐｙ＋ＳＨ≦ＤＨ  ・・・・・・  式（１）’
また、縦書きの場合、以上にて述べた式（４）を下記の式（４）’に置き換えて使用することになる。具体的には、スクロール指示開始時（時刻ｔ＝０）のタッチ検出位置を点Ａ０、時刻ｔ＝Ｔ１におけるタッチ検出位置を点Ａとし、点Ａ０のＸ座標をａｘ０、点ＡのＸ座標をａｘとし、時刻ｔにおけるオフセット値をＯｆｆｓｅｔＸ（ｔ）とするとき、表示制御部１１２は、時刻ｔ＝Ｔのオフセット値ＯｆｆｓｅｔＸ（Ｔ）を、式（４）’によって求める。
ＯｆｆｓｅｔＸ（Ｔ）＝ＯｆｆｓｅｔＸ（０）−ｆ（ａｘ−ａｘ０）・・・式（４）’
また、縦書きの場合、以上にて述べた式（６）を下記の式（６）’に置き換えて使用する。
ＯｆｆｓｅｔＸ（Ｔ）＝ＯｆｆｓｅｔＸ（０）＋Ｐｘｊ（０）−Ｐｘｊ（Ｔ）
ＯｆｆｓｅｔＹ（Ｔ）＝ＯｆｆｓｅｔＹ（０）・・・・・・式（６）’
さらに、縦書きの場合、以上にて述べた式（７）を下記の式（７）’に置き換えて使用する。
ＯｆｆｓｅｔＸ（Ｔ）＝ＯｆｆｓｅｔＸ（０）＋（Ｐｘｊ（０）＋ＳＷ１）−（Ｐｘｊ（Ｔ）＋ＳＷ２）
ＯｆｆｓｅｔＹ（Ｔ）＝ＯｆｆｓｅｔＹ（０）
・・・・・・式（７）’
但し、要素ｊの表示倍率変更前の横幅をＳＷ１、要素ｊの表示倍率変更後の横幅をＳＷ２としている。
【０１２９】
〔実施形態８〕
実施形態８は、携帯端末１０の制御部１１が参照リスト作成部を備える形態である。参照リスト作成部は、複合機やスキャナから受信した文書ファイルの文書画像に基づいて、当該文書画像に対応する参照リスト（例えば図４）を作成するブロックである。
【０１３０】
なお、参照リスト作成部による参照リストの作成方法であるが、文書画像に基づいて図４、図５または図２２のリストを作成できる手法であれば、いかなる手法でも構わないが、本実施形態では、本願出願人による先行出願である特願２０１４−０１８７５１号の実施の形態１にて述べられている手法を利用する。以下、特願２０１４−０１８７５１号の実施の形態１にて述べられている手法を詳細に説明する。
【０１３１】
図２４は、参照リスト作成部２２の構成を示すブロック図である。参照リスト作成部２２は、携帯端末１０の制御部１１に設けられている（図１では図示せず）。参照リスト作成部２２は、複合機、スキャナ等から携帯端末１０が複合機、スキャナ等の外部装置から受信した文書画像を入力し、この文書画像に基づいて、この文書画像に対応する参照リストを作成するブロックである。
【０１３２】
参照リスト作成部２２は、行解析処理部３１と、行ブロック解析処理部３４と、レイアウト解析処理部３５と、リスト生成部３６とを備える。以下では、文書を構成する個々の文字、図表等を纏めて要素と呼ぶ。
【０１３３】
行解析処理部３１は、入力された文書画像から各要素を抽出して、文字から構成される文字列の行と、図表から成る図表行とに分類する。更に、文書の横書き、縦書きといった記述方向を示す文書第１方向を解析する。
【０１３４】
行ブロック解析処理部３４は、行解析処理部３１で抽出された行を、少なくとも１つ以上有する行ブロックに統合する処理を行う。
【０１３５】
レイアウト解析処理部３５は、行ブロック解析処理部３４で分類された行ブロック同士の位置関係から、段組構成を解析して文書全体の行の順序付けを行い、行の前後関係から改行位置を検出することで、文書を１つ以上の段落に分類し、段落毎に行の情報を格納した文書構造ツリーを生成する。詳細は後述する。文書構造ツリーの各段落は、文字列の行の順序の情報と、図表の順序の情報をそれぞれ分けて格納することで、図表の配置を段落内で修正できるようにする。
【０１３６】
リスト生成部３６は、レイアウト解析処理部３５で生成された文書構造ツリーに従って、入力文書画像の文字、図、表の各要素を順序通り参照するための命令と、段落の開始及び終了を宣言するための命令とを示した参照リストを生成する。参照リストのフォーマットは特に固定されておらず、例えばＣＳＶ（Comma-Separated Values）形式のテキストデータとして生成したものをファイル出力してもよい。
【０１３７】
以下、参照リスト作成部２２の各処理部について詳述する。
【０１３８】
[１．行解析処理部］
＜１−１．行解析処理部の構成＞
行解析処理部３１は、入力された文書画像データ（入力文書画像）から各要素画像を抽出し、文字（文字画像）から成る行（文字列行）と、図（図画像）又は表（表画像）から成る行（図表行）とに分類する。行解析処理部３１は、文字列抽出処理部３２及び図表抽出処理部３３を備えて構成される。行解析処理部３１は、更に、文書の横書き又は縦書きといった記述方向を示す文書第１方向を解析する。
【０１３９】
＜１−２．文字列抽出処理部＞
文字列抽出処理部３２は、入力画像データから個々の文字を検出し切り出し処理を行うと共に、文字が複数並べられて構成される文字列を抽出する処理を行う。個々の文字の検出手段は多数提案されており、例えば、特許文献２（特許第５１５３８５７号）では、文書画像中の文字構成要素の領域、及び文字からなる文字列領域を検出する方法が提案されている。
【０１４０】
特許文献２に記載の方法では、文書画像から前景画素を検出し、前景画素から特に文字を構成していると思われる画素の集合を囲む最小外接矩形を文字構成要素として抽出する。更に、上下左右の各方向における近隣の各文字構成要素の矩形同士の距離から文字列として連続する文字構成要素の関係にあるかを判定し、その連続する矩形の連続数から、文字列領域を特定する。このとき、左右方向における連続数が上下方向における連続数を上回る場合は横書きの文字列領域として、上下方向における連続数が左右方向における連続数を上回る場合は縦書きの文字列領域として、文字列の持つ方向（文字列の方向、記述方向）を同時に取得する。
【０１４１】
本実施の形態では、一例として、特許文献２に記載の方法を利用して文字及び文字列を抽出するものとする。なお、文字及び文字列の抽出方法は、特許文献２に記載の方法に限らずほかの方法を用いることができる。例えば、光学式文字読取装置（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅｃｏｇｎｉｔｉｏｎ；以下ＯＣＲ）で個々の文字や、文字列を検出してもよい。
【０１４２】
＜１−３．図表抽出処理部＞
図表抽出処理部３３は、入力画像データから図（図領域）及び表（表領域）を検出し、切り出し処理を行うものである。図領域の検出手段は多数提案されており、例えば、特許文献３（特開２００９−１９４７４０号）で挙げられる方法により図領域を特定することができる。特許文献３に記載の方法では、入力された画像の所定領域毎に画素値の出現頻度（即ち、ヒストグラム）を求めた場合に、図領域の一つである写真領域上の各画素では濃度変化が広範囲に及ぶヒストグラムが得られることを利用して、ヒストグラムのエントロピー（平均情報量）を算出し、エントロピーが高い領域を抽出することで精度よく写真領域を抽出することが可能となる。
【０１４３】
また、表領域の検出手段も多数提案されており、本実施の形態では既知の方法により表領域を検出する。例えば、特許文献２では、文書画像データからラインとなる可能性のある候補画素を抽出し、前記候補画素が水平方向もしくは垂直方向に所定画素数以上連続する場合に前記連続する候補画素の集合をラインとして抽出し、前記抽出された水平方向及び垂直方向のラインの位置関係から、各ラインが表を構成する罫線であるか単一のラインであるかを判定し、同一の表を構成するラインの集合について、それら全てを囲む最小外接矩形を表領域として抽出する方法を挙げている。この方法を用いることができる。
【０１４４】
なお、文字列抽出処理部３２で抽出した文字が、図表抽出処理部３３で抽出した図又は表として抽出した範囲と重複する場合、該抽出した文字をキャンセルする。特に、抽出された表には文字が含まれる可能性が高いが、表のサイズを表示領域の幅に合わせるためには表を構成する各列の幅を調整する必要がある。結果として、調整後の列幅に合わせて、表内の文字列は折り返し表示されて、かえって可読性を低下させる原因となるため、本実施の形態では、表として抽出された領域については、文字も含めたまま図表として切り取って表示することとする。
【０１４５】
＜１−４．行ＩＤの設定＞
行解析処理部３１は、さらに、以上のようにして抽出された文字列行、もしくは図表行に対して、その行であることを識別する重複しない番号として行ＩＤ（Identification）を設定する。１つの行ＩＤについて、その行ＩＤを有する行が２つ以上存在しなければ、必ずしも文書の順序に従って行ＩＤを割り振る必要は無い。行ＩＤの設定方法として、行ＩＤが「０」の場合を存在しない行であるとして無効行とし、例えば、各ページの文書画像において、読み取った原稿の左上を原点（０，０）とし、原点に対して、右方向をＸ座標、下方向をＹ座標となる座標系を採用し、行の範囲を表わす最も左上のＹ座標が小さい順に行ＩＤを１から連番で割り振る方法が挙げられる。なお、Ｙ座標が同じ行同士はＸ座標が小さい方の行を優先する。この方法を用いる場合、段組構成により必ずしも文書の読み順序通りに行ＩＤが割り振られる訳ではないが、横書き文書であれば行が上にあるほど順序が先である可能性が高いため、比較的文書の順序を反映した行ＩＤの割り振り方になると言える。行ＩＤの設定方法はこれに限らず、自由に選択することができる。
【０１４６】
＜１−５．文書第１方向及び文書第２方向の決定＞
行解析処理部３１は、１ページの文書画像における全ての行について、文字列行か図表行かの分類が終わると、文字列の方向から、文書全体の方向を示す文書第１方向を決定する。文書第１方向は、横書きのとき水平となり、縦書きのとき垂直となる。文書第１方向は、取得した全ての文字列の持つ方向を分類し、その比率により決定する。文書第１方向を決定するための比率の算出方法の簡単な例として、単純に横書きもしくは縦書きの文字列の数をカウントして、その数の比率を算出する方法が挙げられる。この方法の場合、例えば横書きの行数と縦書きの行数を比較して、多い方の方向を文書第１方向として決定（設定）する。文書第１方向の決定は上記の方法に限らず様々な方法を採用することができる。
【０１４７】
なお、算出した比率が所定閾値（例えば、０．７）以下である場合、文書には縦書きの行と横書きの行とが無視できない比率で混在しており文書全体の方向を一意に判別できないとして、以降の処理を中断することができる。
【０１４８】
さらに、上記の方法によって文書第１方向を決定すると、文書第１方向に直交する方向として文書第２方向を決定（設定）する。すなわち、文書第１方向が水平（横書き）の場合、文書第２方向は垂直、文書第１方向が垂直（縦書き）の場合、文書第２方向は水平となる。
【０１４９】
また、複数のページを入力とする場合、先に全てのページにおいて行の抽出を行い、一部のページ又は全部のページの行の情報から、全てのページで同一の文書第１方向を決定してもよい。前記一部のページの選択方法として、例えば、表紙や扉、挿絵や写真、付録、後付け等、本文とは異なるレイアウトが含まれている可能性が高いとして、事前に先頭ページと最終ページを除いてもよい。
【０１５０】
＜１−６．記号（約物）の統合処理＞
なお、個々の文字の切り出しにおいて、以下に示すような記号（約物）の統合処理を追加することができる。記号には、例えば行頭に来ることが禁止とされる（行頭禁則）ものや、行末に来ることが禁止とされる（行末禁則）ものがあり、図２５に示すような文字がその一部として挙げられる。切り出した個々の文字を表示した際、行の折り返しによりこれらのルールが守られず可読性が低下する場合がある。そこで、行頭禁則の記号については、１つ前の文字と統合し、行末禁則の記号については、１つ後の文字と統合することで、単独で行頭もしくは行末に来ることがなくなる。
【０１５１】
各文字が、前記したルールを持つ記号であるかの判定方法は公知の方法を使用することができる。例えば、ＯＣＲ処理を利用して文字種を照合してもよいし、文字の大きさや、文字を構成する画素の特徴から判別してもよい。例えば句読点の場合、図２６のように横書きなら行の下半分のみで構成され、また行の高さ（矢印で示された範囲）に比べて半分程度の幅を持つ場合、その文字が句読点である可能性が高いとして、１つ前の文字と統合してもよい。図２６では横書きの例を示したが、縦書きの場合も同様に統合を行うことができる。半角英小文字と区別するため、行を構成する他の文字の高さや幅の傾向から和文、英文の判定を加え、和文の場合のみ句読点と判定するようにする等の処理を追加してもよい。例えば、和文ではひらがな、カタカナ及び漢字等の全角文字が文章の大半を占めており、行の上半分もしくは下半分のみで構成される文字が少なくなる傾向がある。また、半角文字に比べて、全角文字では行の高さに対して文字の横幅が半分より大きい文字の種類が多い。従って、（１）行を上下に分割する水平方向の直線をまたぎ、（２）文字の横幅が行の高さに所定係数（例えば０．６）を乗算した値以上である、文字数をカウントし、行を構成する文字数に対して前記（１）及び（２）を満たす文字数の割合が所定閾値（例えば０．５）以上である場合に、その行が和文であるとして判定する処理を適用することができる。和文、英文の判定方法はこの方法に限らず、他の方法により判定してもよい。また、縦書きの文書である場合は自動的に和文とみなしてもよい。ここで、句読点と、「ァ」等小さい和字との区別がつかない可能性もあるが、これらの小さい和字も行頭禁則であるため句読点と同様に統合しても問題無い。そのため、厳密に句読点専用の処理とする必要はない。また、全角文字でも、「Ｉ」や「１」等、余白を除けば横幅が小さな文字があり、さらに「＿」（アンダーライン）や、上付き文字、下付き文字等、上半分もしくは下半分のみで構成される文字が含まれる場合もある。逆に、半角英字でも、「Ｍ」や「Ｗ」等はフォントによって横幅が大きくなることもあるので、厳密に、和文と英文との判定を行うのが難しい場合がある。
【０１５２】
＜１−７．処理例＞
行解析処理部３１が実行する処理の具体例として、図２７に示す構造の文書画像（１ページ）に対して行解析処理を適用する場合について説明する。行解析処理部３１は、図２８に示すように、その行の要素を全て含んだ最小サイズの外接矩形の範囲を各行の領域として分離し、それぞれの行に、行ＩＤを、外接矩形の左上の垂直座標（Ｙ座標）位置の順で割り当てる。図２８に示す文書画像では、行ＩＤが１０５の行が図表の行であることを除いては、残りの行はいずれも横書きの文字列の行であり、縦書きの文字列の行は１つも含まれていない。そのため、行解析処理部３１は、この文書画像における文書第１方向は水平方向であると決定する。
【０１５３】
［２．行ブロック解析処理部］
＜２−１．行ブロック解析処理部の処理＞
行ブロック解析処理部３４は、行解析処理部３１で分類された行を、行を少なくとも１つ以上有する行ブロックに統合する処理を行う。行ブロック解析処理部３４は、行解析処理部３１で分類された文字列行を、少なくとも１つ以上の文字列行から成る文字列の行ブロックに統合し、重複しない行ブロックＩＤを持つ新規行ブロックとして記憶部１２に記憶（登録）する。図表行については、単一行で１つの行ブロックを構成するものとし、それぞれ重複しない行ブロックＩＤを持つ新規行ブロックとして登録する。
【０１５４】
文字列の行ブロック統合処理について以下で詳細に説明する。初めに、行解析処理部３１で分類された行のうち文字列行のグループから、注目行Ｌ１を選択する。続いて、注目行Ｌ１に関して、前方及び後方（定義は、後述の（２−５）章を参照）に連続する文字列行を探索する。具体的には、文字列行のグループの、注目行Ｌ１とは異なる文字列行から、注目行Ｌ１の前方もしくは後方に連続する文字列行を最大１つずつ選択する。注目行Ｌ１の連続行の候補となる文字列行は注目行Ｌ１を除く全ての文字列行であり、連続行の候補となる条件については後述する。全ての文字列行について、前方及び後方に連続する文字列行を選択すると、連続する文字列行同士の繋がりから、前方及び後方の両方において連続する文字列行がなくなるまで１つの行ブロックとして分類、統合し、未割り当ての行ブロックＩＤを持つ新規行ブロックとして記憶部１２に登録する。全ての文字列行がいずれかの行ブロックに登録されるまで処理を繰り返し、全ての文字列行についての登録が完了すると、行ブロック解析処理部３４は処理を終了する。
【０１５５】
＜２−２．連続行の候補の判定＞
注目行Ｌ１とは別に選択された文字列行Ｌ２が、注目行Ｌ１の連続行の候補であるか否かを判定する方法について説明する。行Ｌ２が行Ｌ１の連続行の候補である条件として、少なくとも下記２つの条件を満たすものとする。
条件１：一方の行の先頭から末尾までの範囲において、もう一方の行の先頭もしくは末尾のうち少なくとも一方が存在する。
条件２：２つの行の行間変位量ｌｉｎｅｓｐａｃｅ（Ｌ１，Ｌ２）が下記の式（８）を満たす。
ＴＨ＿ＭＩＮ＿ＬＳ≦ｌｉｎｅｓｐａｃｅ（Ｌ１，Ｌ２）≦ＴＨ＿ＭＡＸ＿ＬＳ  ・・・式（８）
（ＴＨ＿ＭＩＮ＿ＬＳ、ＴＨ＿ＭＡＸ＿ＬＳは、予め設定される閾値）
なお、条件１は、異なる段に属する行を連続行の候補として判定しないために用いる。条件２は、行間が広過ぎる又は狭過ぎる行を連続行の候補として判定しないために用いる。
【０１５６】
図２９の（ａ）は、２段組の横書きの文書の例、図２９の（ｂ）は、２段組の縦書きの文書の例である。条件１を満たすために、行Ｌ１と行Ｌ２とは、文書第１方向で一部もしくは全部が重複している必要がある。例えば、図２９の例の場合、行ａと行ｂ、行ｃと行ｄ、行ｅと行ｆ、行ｇと行ｈは、条件１を満たすため、これらの組合せは互いに連続行の候補となる。しかし、行ａと行ｄ、行ｅと行ｈ等の組合せでは条件１を満たさないため、これらの組合せは互いに連続行の候補とならない。
【０１５７】
条件２で示す行Ｌ１と行Ｌ２との行間変位量ｌｉｎｅｓｐａｃｅ（Ｌ１，Ｌ２）は、図３０に示すように、横書きであれば行Ｌ１と行Ｌ２とのうち下側にある方の行の上端座標と、もう一方の行の下端座標との差分値（図３０の（ａ）〜（ｃ）参照）、縦書きであれば行Ｌ１と行Ｌ２とのうち左にある方の行の右端座標ともう一方の行の左端座標との差分値（図３０の（ｄ）〜（ｆ）参照）である。行Ｌ１と行Ｌ２とが重複しないとき、行間変位量ｌｉｎｅｓｐａｃｅ（Ｌ１，Ｌ２）は２つの行の行間距離を示す。また、ＴＨ＿ＭＩＮ＿ＬＳ及びＴＨ＿ＭＡＸ＿ＬＳは、連続行同士の行間変位量として許容される差分値の最小値及び最大値を示す所定係数である。例えば、行Ｌ１の文字サイズに所定係数ｒ１（例えばｒ１＝０．１）を乗算したものを閾値ＴＨ＿ＭＩＮ＿ＬＳと設定し、所定係数ｒ２（ｒ２は正の数とする、例えばｒ２＝１．５等）を乗算したものを閾値ＴＨ＿ＭＡＸ＿ＬＳとして設定する。閾値ＴＨ＿ＭＩＮ＿ＬＳ及び閾値ＴＨ＿ＭＡＸ＿ＬＳは、他の方法により設定されてもよく、例えば行Ｌ１と行Ｌ２の文字サイズの平均値に所定係数を乗算したものとしてもよい。また閾値ＴＨ＿ＭＩＮ＿ＬＳを正値に設定することで、重複のある２つの行同士を連続行として認めないようにすることができる。逆に閾値ＴＨ＿ＭＩＮ＿ＬＳを負値に設定することで、図３０の（ｃ）及び（ｆ）のように、行Ｌ１と行Ｌ２とが多少重複する場合も許容することができる。なお、行間変位量ｌｉｎｅｓｐａｃｅ（Ｌ１，Ｌ２）は、行Ｌ１と行Ｌ２とが重複する場合は０を与えるように定義することもできる。これは、次のような事前処理の性能不足を補う場合に用いられる。原稿の読み取りを行う際、原稿の傾きを十分補正しきれずに、ごくわずかな傾きが残っている場合、最小外接矩形で文字列を囲むと、文字自体は重複していなくても矩形同士が重複する場合が存在する。
【０１５８】
＜２−３．条件の強化：インデントの範囲指定＞
また、連続行の候補を判定する条件を強化するために、上記条件１，２に加えて、別の条件を設定してもよい。例えば、次式（９）を満たすことを条件として追加することができる。
ｉｎｄｅｎｔ（Ｌ１,Ｌ２）≦ＴＨ＿ＩＮＤＥＮＴ  ・・・式（９）
ここで、ｉｎｄｅｎｔ（Ｌ１，Ｌ２）は行Ｌ１の開始位置の文書第１方向成分と行Ｌ２の開始位置の文書第１方向成分の差の大きさであり、すなわちインデントの大きさを意味する。また、閾値ＴＨ＿ＩＮＤＥＮＴは行の先頭のインデントとして許容される距離を示す所定係数である。閾値ＴＨ＿ＩＮＤＥＮＴは、例えば行Ｌ１の文字サイズに所定係数α（αは正の数とする、例えばα＝１．５等）を乗算した値を与え、α文字以内のインデントを許容することができる。閾値ＴＨ＿ＩＮＤＥＮＴは他の方法により設定してもよく、例えば行Ｌ１と行Ｌ２の文字サイズの平均値に所定係数αを乗算したものとしてもよい。
【０１５９】
＜２−４．条件の強化：行終了位置の差異の許容範囲指定＞
連続行の候補を判定する条件を強化する他の条件として、例えば次式（１０）を満たすことを条件として追加することで、行の終了位置がある程度近い行同士を連続行の候補とすることができる。
｜Ｌ１ＭＡＸ１−Ｌ２ＭＡＸ１｜≦ＴＨ＿ＤＩＦＦ＿ＥＮＤＰＯＳ  ・・・式（１０）
ここで、Ｌ１ＭＡＸ１は行Ｌ１の文書第１方向成分の最大値、Ｌ２ＭＡＸ１は行Ｌ２の文書第１方向成分の最大値である。例えば、文書第１方向が水平方向（横書き）である場合、Ｌ１ＭＡＸ１及びＬ２ＭＡＸ１は、行Ｌ１及び行Ｌ２の右端のＸ座標を指す。また、閾値ＴＨ＿ＤＩＦＦ＿ＥＮＤＰＯＳは行の終了位置の差として許容される距離を示す所定係数である。例えば行Ｌ１の文字サイズの平均値に所定係数β（βは正の数とする、例えばβ＝０．５等）を乗算したものを閾値ＴＨ＿ＤＩＦＦ＿ＥＮＤＰＯＳとすることで、β文字以内のインデントを許容することになる。
【０１６０】
＜２−５．前方又は後方の連続行の選択＞
行Ｌ１の連続行の候補として抽出された行から、行Ｌ１の前方で最も近い位置にある行、及び、後方で最も近い位置にある行を、それぞれ最大１つずつ選択する。なお、文書第１方向が水平方向（横書き）である場合、行Ｌ１より上にある行を前方の行、行Ｌ１より下にある行を後方の行とし、文書第１方向が垂直方向（縦書き）である場合、行Ｌ１より右にある行を前方の行、行Ｌ１より左にある行を後方の行とする。また、行の近さを表わす値として、例えば、前述の行間変位量ｌｉｎｅｓｐａｃｅ（Ｌ１，Ｌ２）を使用し、ｌｉｎｅｓｐａｃｅ（Ｌ１，Ｌ２）が小さい程、行が近いとみなすことができる。なお前方、後方とも、連続行は最大で１つずつであり、必ずしも連続行が存在する必要はない。
【０１６１】
＜２−６．行ブロックへの分類及び統合＞
以上のようにして、全ての文字列行について前方及び後方の連続行を選択すると、行ブロックへの分類、統合を行う。但し、複数の行から連続行として選択されるケースもあり得るため、相互に連続行であるとされていない行のペアについては、その間の連続関係を事前に解消しておく。例えば、文書画像が図３１の（ａ）である場合、前方の連続行として行Ｌ３を選択する行は、行Ｌ４と行Ｌ５との２つ存在するが、行Ｌ５は行Ｌ３の後方の連続行として選択されていない。そのため、行Ｌ３と行Ｌ５との間の連続関係は解消される。同様にして行Ｌ４と行Ｌ６との間の連続関係も解消される。このことにより、図３１の（ａ）に示すような例では、行Ｌ３及び行Ｌ４において注目行Ｌ１からの連続関係が断たれるため、注目行Ｌ１と同一の行ブロックとして分類できなくなるケースも起こり得る。しかし、図３１の（ｂ）に示すように複数の行ブロックとして分類することができ、後段のレイアウト解析処理部３５における段組解析処理部３７で、同一の段組、及びその段組を構成する同一の段（カラム）として統合できるため、この時点でブロックが分かれてしまっても、問題とはならない。
【０１６２】
行ブロックへの分類及び統合処理は、次のように行う。まず。行ブロックとして分類されていない文字列行のうち任意の行Ｌ１（注目行Ｌ１）について、まず、行Ｌ１を新規の行ブロックとして設定する。続いて、行Ｌ１から前後の連続行をたどり、行ブロックの範囲を拡大する。前方及び後方とも、連続行が無くなると、行ブロックの拡大を終了し、その行ブロックに含まれる先頭の行から順に行ＩＤを取得する。また、行ブロックの情報として、行ブロックに含まれる全ての行に外接する最小矩形の左上座標、幅及び高さ、並びに含まれる行数を取得する。以上のようにして得られた行の順序と各種情報とを持つ行ブロックを、既に登録済みの行ブロックと重複しないＩＤを持つ新規の行ブロックとして登録を行い、またその行ブロックに含まれる各行の所属行ブロックＩＤを更新する。このようにして行われる行ブロックへの分類及び統合処理を、全ての文字列行がいずれかの行ブロックに分類されるまで繰り返す。
【０１６３】
＜２−７．同一の行ブロックに分類できる（連続行の候補とできる）行の条件＞
なお、文書第１方向の文字列行は文書第１方向の文字列行とのみ、文書第２方向の文字列行は文書第２方向の文字列行とのみ、行ブロックを構成する。すなわち、１つの行ブロックに、文書第１方向の文字列行と文書第２方向の文字列行とが混在することは無い。従って、注目行Ｌ１の連続行の候補を探索する際、注目行Ｌ１の文字列方向と異なる方向の文字列行は連続行の候補としない。
【０１６４】
＜２−８．処理例＞
行ブロック解析処理部３４が実行する行ブロック解析処理を、具体例を用いて説明する。既に示した図２８のように文書画像から検出された複数の行に対して行ブロック解析処理を適用すると、文書画像は、図３２のように行ブロックとして分類される。図３２に示す例では、行ブロックＢ３は、章の見出しの行であり、行ブロックＢ４に比べて文字が大きい。このように文字のサイズが大きく異なる２つの行同士を連続行の候補として選択しないような、連続行の候補の判定の条件を追加することも有効な手段である。
【０１６５】
［３．レイアウト解析処理部］
＜３−１．レイアウト解析処理部の構成＞
図３３は、レイアウト解析処理部３５の詳細構成を示すブロック図である。レイアウト解析処理部３５は、前段の行ブロック解析処理部３４で分類された行ブロック同士の上下左右の位置関係から、行ブロック構成を解析し、文書画像中の文章（本文）の読み順を推定する処理を行うものであり、段組解析処理部３７、行順序付け処理部３８、段落解析処理部３９を備えて構成される。
【０１６６】
＜３−２．段組解析処理部＞
段組解析処理部３７は、複数の行ブロックの上下及び左右の位置関係から、段組及び段組を構成する各段（カラム）を分類する段組解析処理を実行する。文書は文書第２方向に段組が配置され、各段組構成内で文書第１方向にカラムが配置されているものとして、ページ内の行ブロックの集合を、適切に境界線を設定して行ブロックをまたぐことなく分割して初期段組とする。そして、同一の初期段組に含まれる行ブロックの集合を、適切に境界線を設定して行ブロックをまたぐことなく分割して、該初期段組を構成する初期カラムとする。
【０１６７】
境界線の設定方法は特に指定はなく、最も簡単な例として、初期段組の分類には文書第２方向と平行な直線を使用し、初期カラムの分類には文書第１方向と平行な直線を使用することが挙げられる。例えば、図３４の（ａ）のように横書きの文書画像から行ブロックの構造が解析された場合、図３４の（ｂ）のように行ブロックを初期段組に分類され、さらに初期段組は図３４の（ｃ）のようにそれぞれ初期カラムとして分類される。なお、図３４の（ｂ）及び（ｃ）では、段組間の境界線は実線で、カラム間の境界線は一点鎖線で示されている。
【０１６８】
＜３−３．段組の分割禁止（同一段組として許容される行ブロック間距離の算出）＞
本来は同一段組であるが、偶然、行ブロックを分割することができるために複数の段組に分かれてしまうようなケースもまれに存在する。こうしたケースに対応するため、例えば連続する２つの行ブロック間の距離を算出し、その距離が所定値（例えば行ブロックの平均行間距離の２倍）以下の２つのブロック間には境界線を引くことを禁止する条件を追加することができる。図３５は、行ブロックＢ１０，Ｂ１１，Ｂ１２を左側のカラム、行ブロックＢ２０，Ｂ２１を右側のカラムとした２段組構成の例を示す。行ブロックＢ１０と行ブロックＢ１１との間、行ブロックＢ２０と行ブロックＢ２１との間が空いているため、行ブロックＢ１０と行ブロックＢ２０から成る２段組構成、及び、行ブロックＢ１１とＢ１２と行ブロックＢ２１とから成る２段組構成として分割してしまう恐れもある。しかし、行ブロックＢ２０の平均行間距離（２０）に対して、行ブロックＢ２０と行ブロックＢ２１とのブロック間距離（３０）が所定値（２０×２＝４０）以下であるとして、行ブロックＢ２０と行ブロックＢ２１との間に境界線を引くことを禁止することで、これらの行ブロックが２つの異なる段組に分かれることを防ぐことができる。
【０１６９】
また、見出しによる広い行間に境界線が引かれてしまう場合に、以下のように行ブロックの分割を防ぐようにしてもよい。行ブロックが見出しであるかどうかの判定を行い、見出しである場合には、その行ブロックと、その直後の行ブロックとを分割禁止とする距離の所定値を変更する（例えば、所定係数１．５を乗算する）等の方法により、分割を防ぐことも可能である。行ブロックが見出しか否かの判定は、例えば、横書きの文書であれば、上又は下の行ブロックと比較して左右に所定値以上（第１閾値、例えば、各文字のサイズ（行の高さ）など）の余白が存在し、左の余白と右の余白の大きさの差が所定値以下（例えば、第１閾値×０．１など）である、つまり左詰めでなくセンタリングされており、また他の行ブロックより各文字のサイズ（行の高さ）が大きい場合に、その行ブロックが見出し行であるとして判定する方法が挙げられる。なお、他の条件と組み合わせて判定しても構わない。
【０１７０】
なお、上記のような平均行間距離を基準とした所定値でも適切に分割できないような場合、タッチパネル１４のタッチ操作（手動）でレイアウトを修正できるようになっていてもよい。
【０１７１】
＜３−４．位置関係以外の情報の活用＞
また、行ブロックの位置関係に加えて、行ブロックが持つ各種情報を利用して、段組及びカラムの分類（すなわち境界線の設定）を行うことができる。行ブロックが持つ各種情報の例として、行の長さや主要な文字のサイズ等が挙げられる。隣り合う行ブロック同士でこれらの情報が大きく異なる場合は同一の段組に分類することを避けるようにすることができるし、逆に位置が大きく離れた行ブロック同士でも、例えば同じカラム境界線を共有することができ、かつ類似する情報を持つ場合、同一段組として分類してもよい。
【０１７２】
＜３−５．行ブロックが０個もしくは１個しかない場合＞
なお、段組解析処理部３７に入力されたページ画像が、ただ１つの行ブロックを持つ場合、そのページ画像は１段構成の文書であるとして、境界線の設定は行わない。また、該ページ画像が、１つも行ブロックを持たない場合（すなわち白紙ページの場合）も境界線の設定は行わない。
【０１７３】
また、文書画像に文書第１方向の文字列行と文書第２方向の文字列行とが混在する場合は、文書第２方向の文字列行の行ブロックを図表行の行ブロックに置き換える。このことにより、文書第１方向に記述された文章の最中に、文書第２方向に記述された文章が混じることを防ぐことができる。
【０１７４】
＜３−６．処理例＞
段組解析処理部３７が実行する処理の具体例として、例えば既に示した図３２に示す文書画像から検出された複数の行ブロックに対して段組解析処理を適用する場合について説明する。段組解析処理部３７は、図３２に示す文書画像を、図３６に示す段組及びカラムに分類する。カラムＣ１及びカラムＣ２は、それぞれ１段構成の段組Ｇ１及び段組Ｇ２を成し、カラムＣ３及びカラムＣ４は２段組構成の段組Ｇ３における左右のカラムを成している。なお、図３６では、行（文字列行及び図表行）を直線、行ブロックを点線、カラムを一点鎖線で囲んでいる。
【０１７５】
＜３−７．行順序付け処理部＞
図３３に示される行順序付け処理部３８は、段組、カラム、行ブロック、及び行の位置関係から文書全体における行の順序を解析し、行順序リストを生成する処理を、以下の（１）〜（９）に従って行う。
（１）同じ行ブロックに属する行同士については、横書き文書であれば上から下、縦書き文書であれば右から左の順に優先順位を設定する。ここでは、上記のように既に、行ブロックに分類する際に、その行ブロックに含まれる行についての順序の情報も取得しているため、この情報を利用する。
（２）同じカラムに属する行ブロック同士については、横書き文書であれば上から下、縦書き文書であれば右から左の順に優先順位を設定する。
（３）連続する２つの行ブロック間では、優先順位の高い方の行ブロックの末尾の行の次に、優先順位の低い方の行ブロックの先頭の行が優先されるように設定する。
（４）同じ段組に属するカラム同士については、横書き文書であれば左から右、縦書き文書であれば上から下の順に優先順位を設定する。
（５）連続する２つのカラム間では、優先順位の高い方のカラムの末尾の行ブロックの次に、優先順位の低い方のカラムの先頭の行ブロックが優先されるように設定する。
（６）同じページに属する段組については、横書き文書であれば上から下、縦書き文書であれば右から左の順に優先順位を設定する。
（７）連続する２つの段組間では、優先順位の高い方の段組の末尾のカラムの次に、優先順位の低い方の段組の先頭のカラムが優先されるように設定する。
（８）同じ文書画像ファイルに属するページ同士については、ページ番号の小さい順に優先順位が高くなるよう設定する。
（９）連続する２つのページ間では、優先順位の高いページの末尾の段組の次に、優先順位の低い方のページの先頭の段組が優先されるように設定する。
【０１７６】
行順序付け処理部３８は、上記のルール（１）〜（９）に従って、ページの順序、段組の順序、カラムの順序、行ブロックの順序を決定し、それらにより行の順序付けを行う。順序付けされた行は、各行が属する行ブロック、カラム、段組及びページの順序を示す番号を保有すると共に、先頭から順に各行の行ＩＤを行順序リストに格納する。
行順序リストは、下記の規定（ａ）〜（ｃ）に従う形式であれば特に構造は問わない。
（ａ）上記順序付けルールに従って決定された順序通りに行を呼び出すことができる。
（ｂ）呼び出した行について、その座標情報や種類（文字列行か図表行か）等の各種情報を参照することができる。
（ｃ）呼び出した行について、段落情報（後述）を格納することができる。
【０１７７】
＜３−８．処理例＞
行順序付け処理部３８が、上記の規定に従って、図３６の構成の文書画像について行順序リストを生成した例を、図３７に示す。行順序リストは、決定された順序の先頭から順に、行のＩＤと、行の情報として、所属する行ブロックＩＤ、行の種別（文字列行であるか図表行であるか）、及び行の範囲を示す外接矩形の左上座標及び右下座標、の情報とを格納し、さらに行毎に段落情報を格納している。なお、図３７の例では、改行が発生するときに、その行から新たな段落が始まるとして、段落情報を改行の有無を有る（Ｙｅｓ）か無し（Ｎｏ）かの２通りで示しており、事前に「Ｎｏ」で初期化している。図３８のように行ブロックの情報やカラムの情報、段組の情報を別途作成し、相互参照により各行及び各行ブロックが所属するカラム、段組、ページを参照できるようにしておくことで、冗長の少ない行順序リストを構成することができる。もちろん、行順序リスト単独で各行に関する情報を全て抽出できるようにしてもよい。
【０１７８】
＜３−９．段落解析処理部＞
図３３に示される段落解析処理部３９は、各行の前後の位置関係等の情報から、その行の位置で改行が発生しているかどうかを判定し、文書画像中の各行を１つ以上の段落に分類する処理を行う。具体的には、行順序リストから複数の行を参照して段落の切れ目、すなわち改行位置を判定し（改行判定処理）、段落毎に行の順序を記述した文書構造ツリーを生成する（文書構造ツリー生成処理）。
【０１７９】
ところで、文書中の図表は、必ずしも段落の切れ目に配置されるとは限らず、例えばページの端に挿入される場合が多く、それにより文章が図表を挟んで前後に分かれることがある。この順序のまま行を呼び出し、行を構成する要素（文字、図表）を挿入していくと、図表の挿入によって不自然に途切れた文章が出力されてしまう。そこで、本実施の形態では、段落毎に、文字列行と図表行とが混在した順序ではなく、文字列行の順序と図表行の順序をそれぞれ別に保有する文書構造ツリーを生成する。図３９は、文書構造ツリーの構造を示す図である。それにより、文書画像を構成する文字列のみの順序を把握しながら、その段落に係る図表を、段落の先頭や末尾等にまとめて配置できるようにする。
【０１８０】
＜３−１０．改行判定処理＞
図４０は、段落解析処理部３９における、改行判定処理の概要を示すイメージ図である。改行判定処理は、判定の対象となる注目行と、注目行より前に順序づけられるＭ個の行と、注目行より後に順序づけられるＮ個の行と、のＭ＋Ｎ＋１個の行によって判定される。なお、図４０に示す例では、Ｍ＝Ｎ＝２としている。なお、改行判定の対象となる行、及びその前後の行は、いずれも文字列行である。本実施の形態では、Ｍ＋Ｎ＋１個の行ＩＤバッファＬ［０］，Ｌ［１］・・・，Ｌ［Ｍ＋Ｎ］を記憶部１２に備え、行順序リストで参照されるＭ＋Ｎ＋１個の行ＩＤをそれぞれ格納することで、注目行と、注目行の前後の行との比較を行う。
【０１８１】
以下、段落解析処理部３９の処理内容について詳細に説明する。図４１は、段落解析処理部３９の処理手順を示すフローチャートである。段落解析処理の開始にあたり、事前に初期化を済ませておく。具体的には、リスト参照番号をＬＮＯＷ＝１とし、行ＩＤバッファには全て無効行（０）を格納しておく。初期化が終わると、注目行にあたる行ＩＤバッファＬ［Ｍ］に、行ＩＤを選択して格納する（Ｓ１）。任意の行ＩＤバッファＬ［ｋ］（ｋ＝０，１，・・・，Ｍ＋Ｎ）の選択方法は以下の（１Ａ）〜（１Ｃ）の通り行われる。
（１Ａ）行順序リストにおいて、第ＬＮＯＷ番目から順に、文字列行を探索する。
（１Ｂ）最初に見つかった文字列行の行ＩＤを行ＩＤバッファＬ［ｋ］に格納し、そのときの行順序リストの位置（リスト番号）に１を加えた番号を新たなリスト参照番号ＬＮＯＷとして更新する。
（１Ｃ）文字列行が見つからないまま行順序リストの末尾まで探索が終了した場合、行ＩＤバッファＬ［ｋ］には無効行（０）を格納する。
【０１８２】
行Ｌ［Ｍ］の更新後、行Ｌ［Ｍ］が有効行（ゼロでない行ＩＤを持つ行）であるかどうかを判定し（Ｓ２）、有効行である場合（Ｓ２の判定がＹＥＳ）、Ｓ３に移る。一方、Ｌ［Ｍ］が無効行である場合（Ｓ２の判定がＮＯ）、入力した文書画像には文字列行が存在しない図表行のみの文書画像であるとして、文書構造ツリーの生成処理（後述）を実行する（Ｓ７）。
【０１８３】
次に、注目行より後の行に当たる行ＩＤバッファＬ［Ｍ＋１］，・・・，Ｌ［Ｍ＋Ｎ］に、行ＩＤを選択して格納する（Ｓ３）。各バッファにおける行ＩＤの選択方法は上記と同様であるため省略する。続いて、注目行Ｌ［Ｍ］の改行判定を実行する（Ｓ４）。改行判定は、改行判定対象となる注目行Ｌ［Ｍ］と、注目行より前に位置する行Ｌ［０］，・・・，Ｌ［Ｍ−１］及び注目行より後に位置する行Ｌ［Ｍ＋１］，・・・，Ｌ［Ｍ＋Ｎ］からなる複数の行を用いた公知の方法で行うことができる。簡単な例として、改行判定対象のインデントの有無を確認する方法がある。行Ｌ［Ｍ］の開始位置が、他の行に比べて文書第１方向に正値のずれが生じている場合に、行Ｌ［Ｍ］はインデントを持ち、行Ｌ［Ｍ］の位置で改行がなされているとみなすことができる。また、改行判定対象行Ｌ［Ｍ］の１つ前の行Ｌ［Ｍ−１］が、他の行に比べて短い場合、行Ｌ［Ｍ］の位置で改行がなされているとみなすことができる。例えば、図４０（Ｍ＝Ｎ＝２）のような横書きの文字列行が存在している場合、注目行Ｌ［２］の開始位置が、他の行に比べて右側（横書きの場合の正方向）にずれており、また１行前の行Ｌ［１］が他の行に比べて短いという特徴を持っており、これらの結果から、注目行Ｌ［２］は総合的に改行位置であるとして判定され易くなる。なお、文書編集者の好み等により段落の先頭行でインデントが付加されない場合もあり、また１つ前の段落の最終行が必ずしも短くなるとは限らないため注意する。
【０１８４】
他に改行位置であるかどうかの判定の例として、注目行の文字サイズが周辺の行に比べて大きく異なるかどうかを判定することで、見出し行のように文字サイズが大きくなっている行、また補足コメント等のように逆に文字サイズが小さくなっている行等で改行位置と判定することができる。また、周辺の連続する２つの行の行間距離に比べて、注目行とその１つ前の行との行間距離が大きくなっている場合に、１つ前の行で段落が終了している可能性が高くなる。上記挙げられた条件を例として、様々な条件を複合的に判定して、注目行における改行の有無を設定するのが好ましい。
【０１８５】
行Ｌ［Ｍ］の改行判定の結果は、行順序リストのＬ［Ｍ］に該当する行情報に段落情報として反映させる。段落情報は段落の切れ目が判るものであれば何でもよく、最も簡単な例として、改行の有無をＹｅｓあるいはＮｏの２通りで示すだけでもよい。
【０１８６】
改行判定対象行Ｌ［Ｍ］の改行判定が終了すると、注目行の次の行Ｌ［Ｍ＋１］が有効行であるかどうかを判定し（Ｓ５）、Ｌ［Ｍ＋１］が有効行である場合（Ｓ５の判定がＹＥＳ）、行ＩＤバッファの更新を行い、次の行についての改行判定を行う準備をする（Ｓ６）。行ＩＤバッファの更新は、具体的には、図４２に示すように、Ｌ［０］＝Ｌ［１］，・・・，Ｌ［Ｍ＋Ｎ−１］＝Ｌ［Ｍ＋Ｎ］としてバッファを１つずつずらすとともに、バッファＬ［Ｍ＋Ｎ］を新たに行順序リストから選択する。バッファＬ［Ｍ＋Ｎ］の選択方法は前述の方法と同様であるため省略する。バッファの更新後、Ｓ４に戻り、更新された注目行Ｌ［Ｍ］について、改行判定を行う。これを、Ｓ５で判定がＮＯとなるまで反復する。Ｓ５の判定がＮＯとなると、全ての文字列行について改行判定が終了したことになり、文書構造ツリーの生成処理を実行する（Ｓ７）。
【０１８７】
＜３−１１．文書構造ツリー生成処理＞
段落解析処理部３９による文書構造ツリー生成処理は、段落情報を考慮した行順序リストに格納された段落情報に従って実行される。但し、文書構造ツリーは事前に、図４３に示すような１つの空の段落（第０段落）を持つ状態に初期化されているものとする。初期段落番号をＰＮＯＷ＝０として、行順序リストの先頭から順に行の情報を参照し、段落情報から該行が段落開始行と判定された場合（段落情報がＹＥＳ）のみ、ＰＮＯＷ＝ＰＮＯＷ＋１として段落番号の更新を行い、また文書構造ツリーに空の段落（第ＰＮＯＷ段落）を新たに追加する。そして、該行が文字列行である場合、文書構造ツリーの第ＰＮＯＷ段落が持つ文字列ツリーの末尾に該行の行ＩＤを追加する。一方、該行が図表行である場合、文書構造ツリーの第ＰＮＯＷ段落が持つ図表ツリーの末尾に該行の行ＩＤを追加する。これを行順序リストの各行について反復し、末尾まで探索が終了すると、文書構造ツリーの生成処理を終了する。なお、文字列行の改行位置から次の改行位置までが１つの段落となるので、図表行が段落の分類から漏れるということはない。そのため、ひと固まりの文字列行の後に図表行があり、その後新しい段落が始まる（改行が発生する）場合は、その図表行は１つ前の段落に含まれることになる。
【０１８８】
＜３−１２．処理例＞
段落解析処理部３９が実行する処理の具体例として、図２８の構成の文書画像（図３７に示す初期の行順序リストを持つ）に段落解析処理部３９での処理を適用する場合について説明する。見出しに当たる行ＩＤ：１０１、行ＩＤ１０４、行ＩＤ：１２９の各行は、行の文字サイズや１つ前の行間距離等の条件から、改行位置と判定される。また行ＩＤ：１０６、行ＩＤ：１１２、行ＩＤ：１１９及び行ＩＤ：１３１の各行は、前後の複数の行に比べ、行の開始位置が文書第１方向において正方向にシフトしている。よってインデントが存在するとして、改行位置と判定される。行ＩＤ：１０２の行も、見出し行の行ＩＤ：１０１の次の行であることから、改行位置と判定することができる。従って、行ＩＤ：１０１、１０２、１０４、１０６、１１２、１２９、１３１、１１９の各行が改行位置として設定され、行順序リストの段落情報は、図４４のように更新される。
【０１８９】
例えば、行順序リストが図４４のように、段落情報として改行の有無（ＹｅｓもしくはＮｏ）が表されている場合、改行がある行から新しい段落が開始するとみなせるため、改行がある（Ｙｅｓ）場合に該行が段落開始行として判定することができる。また、段落が開始してから、次の改行位置が見つかるまでの行を同一の段落の範囲とみなす。更新された行順序リストの段落情報に従い、図２８の文書画像を段落毎に分類すると、図３Ａに示すように分類することができる。図３Ａにおいて、段落Ｒ７は、左下の３行の文字列行（行ＩＤ：１３１，１３３，１３５）から、右上の図表行（行ＩＤ：１０５）及び４行の文字列行（行ＩＤ：１１１，１１３，１１５，１１７）までを同一の段落の範囲としており、行ＩＤ：１３５と行ＩＤ：１１１との文字列行の間に改行位置は存在しないため、一続きの文章を構成することが可能となる。更に、この行順序リストに従って文書構造ツリーを生成すると、図４５に示すような文書構造ツリーを得ることができる。
【０１９０】
［４．リスト生成部］
リスト生成部３６は、図４４の行順序リストおよび図４５の文書構造ツリーに従って、各行を呼び出し、呼び出した行が文字列行である場合は対応する文字列行の先頭から順に文字を呼び出し、呼び出した行が図表行である場合は対応する図又は表を呼び出して、各要素の参照情報（要素を呼び出すための情報）を順に記述した参照リストを生成する。更に、要素が、改行位置が含まれる行の末尾の要素である場合、改行命令を挿入して参照リストを生成する。
【０１９１】
具体的には、リスト生成部３６は、図４５に示される文書構造ツリーに示される段落番号（Ｒ１〜Ｒ８）の順に各段落を注目段落としていく。リスト生成部３６は、注目段落において、各文字列行を行ＩＤ（図４４）の順に参照していき、参照している文字列行の先頭から順に要素の参照情報を参照リストに記述していく（つまり、参照している文字列行について全ての要素の記述を終えると、次の文字列行を参照する）。リスト生成部３６は、注目段落において、文字列行を全て参照した後、図表行の要素の参照情報を参照リストに記述していく。そして、全ての段落を注目段落として扱って処理し終えると、参照リストが完成することになる。作成される参照リストにおいては、各要素に対してリスト番号（図４参照）を対応付けることになるが、このリスト番号は参照リストに対して記述された順序を示した番号である。また、参照リストに記述される要素の参照情報は、図４に示すように、要素種別、左上座標、横幅および高さとなる。横幅および高さではなく、右下座標が記述されてもよい。なお、リスト生成部３６は、参照リストに対して参照情報を記述している要素が、段落を有する（段落情報がＹｅｓである）文字列行の末尾である場合、若しくは、図表である場合、次に記述する要素を「改行」とする。これにより、リスト生成部３６は、図４に示す参照リストを作成できるようになっている。
【０１９２】
また、リスト生成部３６は、図５に示す参照リストを作成するようになっていてもよい。この場合、リスト生成部３６は、各要素の参照情報として記述する段落ＩＤを、直前に参照情報を記述した要素の段落ＩＤと同じとする（初期値は１）。但し、リスト生成部３６は、段落を有する（段落情報がＹｅｓである）文字列行の末尾の要素の次の要素については、前の要素の段落ＩＤに１を加算した段落ＩＤを記述する。また、リスト生成部３６は、文字の次の図表については、当該文字の段落（図５の段落ＩＤ７）に属する小段落のＩＤ（図５の段落７−２）を記述し、図表の次の文字については、当該図表の小段落の属する段落の段落ＩＤに１を加算した段落ＩＤを記述することとなる。
【０１９３】
リスト生成部３６は、以上のようにして作成した参照リスト（図４または図５）を、当該参照リストに対応する文書ファイル（文書画像のデータ）と対応付けて記憶部１２に保存する。これにより、レイアウト変更部１１１は、参照リストを用いてレイアウト変更処理を行うことが可能になる。なお、参照リストは、例えばＣＳＶ形式のデータとして出力されるようになっている。
【０１９４】
以上のようにして作成された参照リストを用いてレイアウト変更処理を行うことにより、図３Ａに示すように段組構成を持つ文書画像についても適切な順序で各要素を再配置できることになる。これに対し、特許文献１等の先行技術によれば、横書きの場合、左から右へ順序付け且つ上から下へ順序づけられた位置座標リストを用いて再配置しているだけであるため、段組構成を持つ文書については適用が困難である。
【０１９５】
〔変形例〕
図１のレイアウト変更部１１１は、レイアウト変更処理前の文書画像に図表が示されている場合、レイアウト変更処理によって、文書画像には、図表の代わりに、前記図表のサムネイルを配置させるようになっていてもよい。この場合、表示制御部１１２は、表示部１４ａにリフロー形式で文書画像を表示させている際に前記サムネイルがユーザにタッチ（選択）されたことを入力信号から検出した場合、前記サムネイルに対応する前記図表を表示部１４ａに表示させるようになっている。
【０１９６】
これにより、図表のサイズが大きい場合、図表を無理に文書内に挿入せずに、サムネイルが選択された場合にのみ該当する図表をリンク表示させることにより、文書および図表の視認性を向上させることができる。なお、図１の表示制御部１１２は、前記サムネイルがユーザに選択された場合、スクロール無しで図表の全体を表示部１４ａに表示させることができる程度に前記図表を拡大または縮小した上で表示部１４ａに表示させるようになっていてもよいし、垂直および/または水平方向のスクロールが必要なサイズで図表を表示部１４ａに表示させるようになっていてもよい。
【０１９７】
また、タッチパネル以外のユーザインターフェイスが用いられてもよい。例えば、マウスやキーボード等の入力手段を用いてもよい。この場合、図１の表示部１４ａにスクロールバーを表示することによってユーザにスクロール指示を行わせることができる。また、表示倍率を入力するためのボックスおよび変倍処理ボタンを示したＧＵＩを表示させ、このＧＵＩによって変倍の指示を入力可能である。
【０１９８】
また、以上の各実施形態では、携帯端末１０は、図２に示すように、略長方形の表示部１４ａの長辺方向を表示部１４ａの垂直方向（スクロール方向）とし、表示部１４ａの短辺方向を表示部１４ａの水平方向として、文書画像を表示させているが、勿論、表示部１４ａの短辺方向を表示部１４ａの垂直方向（スクロール方向）とし、表示部１４ａの長辺方向を表示部１４ａの水平方向として、文書画像を表示させることも可能である。但し、この場合においても、図４９に示されるように、表示部１４ａに表示される左横書の文書画像の右側から左側に向けた方向を左方向とし、その逆方向を右方向とし、当該左横書きの文書画像の上側から下側に向けた方向を下方向とし、その逆方向を上方向とする（なお、図４９に示す上下左右の各方向は、短辺方向を垂直方向として長辺方向を水平方向とした略長方形の表示部１４ａに縦書きの文書画像を表示させる場合の当該縦書きの文書画像における上下左右の各方向とも一致することになる）。
【０１９９】
つまり、図２に示すように、表示部１４ａの長辺方向を表示部１４ａの垂直方向とし、表示部１４ａの短辺方向を表示部１４ａの水平方向とするケースでは、長辺方向と上下方向（垂直方向）とが一致し、短辺方向と左右方向（水平方向）とが一致することになるが、図４９に示すように、表示部１４ａの長辺方向を表示部１４ａの水平方向とし、表示部１４ａの短辺方向を表示部１４ａの垂直方向とするケースでは、長辺方向と左右方向（水平方向）とが一致し、短辺方向と上下方向（垂直方向）とが一致することになる。
【０２００】
また、図１の制御部１１は、上述の通り、ＣＰＵを用いてソフトウェアにて実現してもよいし、集積回路等に形成された論理回路によって実現してもよい。なお、ソフトウェアによる場合、携帯端末１０は、前記ソフトウェアであるプログラムがコンピュータ（またはＣＰＵ）で読み取り可能に記録されたＲＯＭまたは記憶装置等の記録媒体を備えている。上記記録媒体としては、例えば、カード、ディスク、半導体メモリ、プログラマブルな論理回路などの「一時的でない有形の媒体」であってもよい。また、上記プログラムは、任意の伝送媒体（通信ネットワークや放送波等）を介して上記コンピュータに伝送されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【０２０１】
〔まとめ〕
本発明の態様１の携帯端末（表示制御装置）１０によれば、文書を撮像して得られる文書画像をリフロー形式でコンテンツ表示領域に表示させるために前記文書画像のレイアウトを変更するレイアウト変更部１１１と、レイアウト変更後の文書画像をリフロー形式で前記コンテンツ表示領域に表示させる表示処理を行う表示制御部１１２とを備え、レイアウト変更部（変更部）１１１は、前記文書画像を構成する要素毎に、レイアウト変更後の文書画像全体のなかでの位置を示す配置座標（座標値）を求め、表示制御部１１２は、前記配置座標のうち、画像のスクロールの方向と平行な座標軸の座標値に、前記スクロールの量に応じたオフセット値を加算する加算処理を行い、前記加算処理後の配置座標を、前記コンテンツ表示領域と前記要素との位置関係を示す描画座標（表示用座標）として前記表示処理を行うことを特徴とする。
【０２０２】
本発明の一態様によれば、文書画像がスクロールされる場合、画像のスクロールの方向と平行な座標軸の座標値に加算されるオフセット値（各要素において共通）をスクロール量に応じて変更するだけで前記描画座標を更新できる。これに対し、従来構成では、スクロールがされる場合、各要素のｘ座標値およびｙ座標値を再演算することで表示用座標を更新するようになっている。それゆえ、本発明の一態様によれば、従来構成よりも処理負荷を抑制できる効果を奏する。
【０２０３】
また、本発明の態様２の携帯端末１０においては、態様１に加え、レイアウト変更部１１１が、前記文書画像に対する変倍処理の指示が入力されると、前記変倍処理の表示倍率に応じて前記文書画像のレイアウトを変更するようになっており、表示制御部１１２は、前記変倍処理の前に前記コンテンツ表示領域に表示させている要素のなかからいずれか一つの要素を選択する選択処理を行い、前記選択処理にて選択した要素について、前記変倍処理の前の前記描画座標のうちの前記スクロールの方向と平行な座標軸の座標値と、前記変倍処理の後の前記描画座標のうちの前記スクロールの方向と平行な座標軸の座標値との差が所定範囲に収まるように、前記変倍処理の後の配置座標に加算されるオフセット値を調整するようになっていることを特徴とする。
【０２０４】
本発明の態様２によれば、変倍処理前にユーザが注目していた要素が変倍処理によってコンテンツ表示領域外にはみ出してしまうことを抑制できるという効果を奏する。
【０２０５】
また、本発明の態様３の携帯端末１０においては、態様２に加え、前記コンテンツ表示領域はタッチパネル１４における表示領域であり、タッチパネル１４において互いに離れた２箇所以上の領域がタッチされることで前記変倍処理の指示が入力されるようになっており、前記選択処理は、前記文書画像の各要素のうち、前記変倍処理の指示におけるタッチパネル１４のタッチ箇所の平均座標値に対応する位置からのユークリッド距離が最も小さい要素を選択する処理であることを特徴とする。
【０２０６】
本発明の態様３によれば、変倍処理前においてユーザが注目していた可能性の高い要素を高精度に選択できるという効果を奏する。
【０２０７】
本発明の態様４の携帯端末１０においては、態様３に加え、表示制御部１１２は、前記平均座標値に対応する位置が前記文書画像のなかのいずれかの要素を囲う外接矩形の内側である場合、前記平均座標値に対応する位置からのユークリッド距離の最も小さい要素が前記外接矩形に囲われる要素でなくても、前記外接矩形に囲われる文字を前記選択処理において選択するようになっていることを特徴とする。
【０２０８】
本発明の態様４によれば、変倍処理前においてユーザが注目していた可能性の高い要素をより高精度に選択できるという効果を奏する。
【０２０９】
本発明の態様５の携帯端末１０においては、態様１〜４に加えて、前記要素には少なくとも図表が含まれており、レイアウト変更部１１１は、前記図表に関しては、設定されている表示倍率とは関係なく、前記図表が前記スクロールの方向と直交する方向において前記表示領域に収まるように変倍し、当該変倍した前記図表について前記配置座標を求めることを特徴とする。
【０２１０】
本発明の態様５によれば、小型の表示装置の表示領域にリフロー形式で前記文書画像を表示させる場合であっても、前記スクロールの方向と直交する方向において前記図表を前記表示領域に収まるように表示させることが可能になるという効果を奏する。
【０２１１】
本発明の態様６の携帯端末１０においては、レイアウト変更部１１１は、レイアウト変更前の文書画像に図表が示されている場合、前記レイアウト変更後の文書画像には前記図または表の代わりに前記図表のサムネイルを配置させ、表示制御部１１２は、前記コンテンツ表示領域に表示させているサムネイルがユーザに選択されると、前記サムネイルに対応する前記図表を前記コンテンツ表示領域に表示させることを特徴とする。
【０２１２】
本発明の態様６によれば、図表のサイズが大きい場合、図表を無理に文書内に挿入せずに、サムネイルが選択された場合にのみ該当する図表をリンク表示させることにより、文書、図表の視認性を向上させることができる。また、表示制御部１１２は、前記サムネイルがユーザに選択された場合、スクロール無しで図表の全体を前記コンテンツ表示領域に表示させることができる程度に前記図表を拡大または縮小した上でコンテンツ表示領域に表示させるようになっていてもよいし、垂直および/または水平方向のスクロールが必要なサイズで図表をコンテンツ表示領域に表示させるようになっていてもよい。
【０２１３】
本発明の態様７の携帯端末１０においては、態様１〜６に加え、前記文書画像と、前記文書画像を構成する要素の並び順を示す並び順情報とを対応付けて記憶する記憶部を備え、レイアウト変更部１１１は、前記並び順情報に示される並び順に従って前記文書画像のレイアウトを変更することを特徴とする。
【０２１４】
本発明の態様７によれば、文書を構成する各要素（文字等）の並び順を崩すことなく、適切に文書画像のレイアウトを変更できるという効果を奏する。
【０２１５】
本発明の態様８の携帯端末１０においては、態様１〜７に加えて、前記文書を撮像することによって前記文書画像を生成する画像入力部を備えたことを特徴とする。
【０２１６】
本発明の態様８によれば、撮影による文書画像の生成とリフロー表示とを実現する一体型ツールを提供できるため、データの取捨選択や撮り直しの作業を効率よく行うことができるという効果を奏する。
【０２１７】
本発明の態様９の携帯端末（表示制御装置）１０によれば、表示部１４ａと、文書を撮像して得られる文書画像をリフロー形式でコンテンツ表示領域に表示させるために前記文書画像のレイアウトを変更するレイアウト変更部１１１と、レイアウト変更後の文書画像をリフロー形式で表示部１４ａのコンテンツ表示領域に表示させる表示処理を行う表示制御部１１２とを備え、レイアウト変更部（変更部）１１１は、前記文書画像を構成する要素毎に、レイアウト変更後の文書画像全体のなかでの位置を示す配置座標（ｘｙ座標値）を求め、表示制御部１１２は、前記配置座標のうち、画像のスクロールの方向と平行な座標軸の座標値に、前記スクロールの量に応じたオフセット値を加算する加算処理を行い、前記加算処理後の配置座標を、前記コンテンツ表示領域と前記要素との位置関係を示す描画座標（表示用座標）として前記表示処理を行うことを特徴とする。
【０２１８】
本発明の態様１〜９に係る携帯端末１０は、コンピュータによって実現してもよく、この場合には、コンピュータを携帯端末１０が備える各部として動作させることにより上記表示制御装置をコンピュータにて実現させるプログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
【０２１９】
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【産業上の利用可能性】
【０２２０】
本発明は、文書画像を表示部に表示させる表示制御装置に適用可能である。例えば、スマートフォン、携帯電話、タブレット、電子書籍用端末、ノート型パソコン等の携帯端末に好適である。汎用のパソコン、テレビ、電子黒板にも勿論適用可能であるし、文書画像を表示させる表示部を備えた複合機やスキャナ等にも勿論適用可能である。
【符号の説明】
【０２２１】
１０    携帯端末（表示制御装置，表示装置）
１１    制御部
１２    記憶部
１４    タッチパネル
１４ａ  表示部
１４ｂ  入力部
２２    参照リスト作成部
１１１    レイアウト変更部（変更部）
１１２    表示制御部
【図１】
0006322086.tif 000002
【図２】
0006322086.tif 000003
【図３Ａ】
0006322086.tif 000004
【図３Ｂ】
0006322086.tif 000005
【図４】
0006322086.tif 000006
【図５】
0006322086.tif 000007
【図６】
0006322086.tif 000008
【図７】
0006322086.tif 000009
【図８】
0006322086.tif 000010
【図９】
0006322086.tif 000011
【図１０】
0006322086.tif 000012
【図１１】
0006322086.tif 000013
【図１２】
0006322086.tif 000014
【図１３】
0006322086.tif 000015
【図１４】
0006322086.tif 000016
【図１５】
0006322086.tif 000017
【図１６】
0006322086.tif 000018
【図１７】
0006322086.tif 000019
【図１８】
0006322086.tif 000020
【図１９】
0006322086.tif 000021
【図２０】
0006322086.tif 000022
【図２１】
0006322086.tif 000023
【図２２】
0006322086.tif 000024
【図２３】
0006322086.tif 000025
【図２４】
0006322086.tif 000026
【図２５】
0006322086.tif 000027
【図２６】
0006322086.tif 000028
【図２７】
0006322086.tif 000029
【図２８】
0006322086.tif 000030
【図２９】
0006322086.tif 000031
【図３０】
0006322086.tif 000032
【図３１】
0006322086.tif 000033
【図３２】
0006322086.tif 000034
【図３３】
0006322086.tif 000035
【図３４】
0006322086.tif 000036
【図３５】
0006322086.tif 000037
【図３６】
0006322086.tif 000038
【図３７】
0006322086.tif 000039
【図３８】
0006322086.tif 000040
【図３９】
0006322086.tif 000041
【図４０】
0006322086.tif 000042
【図４１】
0006322086.tif 000043
【図４２】
0006322086.tif 000044
【図４３】
0006322086.tif 000045
【図４４】
0006322086.tif 000046
【図４５】
0006322086.tif 000047
【図４６】
0006322086.tif 000048
【図４７】
0006322086.tif 000049
【図４８】
0006322086.tif 000050
【図４９】
0006322086.tif 000051