(57)【要約】【課題】ドラッグスクロール機能を有する任意のアプリケーションプログラムが表示する文書の文書位置を正確に検出できるようにする。【解決手段】文書上でドラッグスクロール操作をエミュレートすることにより汎用ＯＳ上で動作する任意の文書アプリケーションプログラムが表示する文書をスクロール表示する文書表示装置であって、元の文書画像の一部領域を除く文書画像を取得する画像取得手段と、取得した文書画像を元の文書画像に重ねて表示手段に表示する第１の表示制御手段と、前記表示手段に表示されたスクロールバーのドラッグによる移動量を基にスクロール時の元の文書画像の表示文書位置を検出する位置検出手段と、重ねて表示した前記文書画像を消去し、検出された前記表示文書位置の元の文書を前記表示手段に表示する第２の表示制御手段とを備える。【選択図】図１
2010211727.tif 000002
【特許請求の範囲】
【請求項１】
文書上でドラッグスクロール操作をエミュレートすることにより汎用ＯＳ上で動作する任意の文書アプリケーションプログラムが表示する文書をスクロール表示する文書表示装置であって、
元の文書画像の一部領域を除く文書画像を取得する画像取得手段と、
取得した文書画像を元の文書画像に重ねて表示手段に表示する第１の表示制御手段と、
前記表示手段に表示されたスクロールバーのドラッグによる移動量を基にスクロール時の元の文書画像の表示文書位置を検出する位置検出手段と、
重ねて表示した前記文書画像を消去し、検出された前記表示文書位置の元の文書を前記表示手段に表示する第２の表示制御手段と
を備えることを特徴とする文書表示装置。
【請求項２】
前記位置検出手段は、文書先頭ページ上端を原点とする文書垂直位置と垂直スクロールボックス位置とを関連付け、該情報に基づいて表示文書の文書垂直位置を取得することを特徴とする請求項１に記載の文書表示装置。
【請求項３】
前記位置検出手段は、ページ左端を原点とする文書水平位置と水平スクロールボックス位置を関連付け、該情報に基づいて表示文書の文書水平位置を取得することを特徴とする請求項１または請求項２に記載の文書表示装置。
【請求項４】
前記画像取得手段が前記文書画像を取得する際除外する元の文書画像の一部領域とは、元の文書画像のいずれかの端部であることを特徴とする請求項１乃至請求項３のいずれか１項に記載の文書表示装置。
【請求項５】
文書上でドラッグスクロール操作をエミュレートすることにより汎用ＯＳ上で動作する任意の文書アプリケーションプログラムが表示する文書をスクロール表示する文書表示方法であって、
元の文書画像の一部領域を除く文書画像を取得する画像取得工程と、
取得した文書画像を元の文書画像に重ねて表示手段に表示する第１の表示制御工程と、
前記表示手段に表示されたスクロールバーのドラッグによる移動量を基にスクロール時の元の文書画像の表示文書位置を検出する位置検出工程と、
重ねて表示した前記文書画像を消去し、検出された前記表示文書位置の元の文書を前記表示手段に表示する第２の表示制御工程と
を含むことを特徴とする文書表示方法。
【請求項６】
請求項５に記載の文書表示方法をコンピュータに実行させるためのプログラム。
【請求項７】
請求項６に記載のプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書画像のページ位置を検出する文書表示装置、文書表示方法およびそのプログラムならびに記憶媒体に関する。
【背景技術】
【０００２】
文書表示プログラムが表示する文書上へ上書きすることにより、説明箇所の明示や補足説明等を行うことができるソフトウェアがある。これは文書画像上へ描画しているだけで、文書位置との関連付けはなく上書きデータのみ保存した場合、必ず上書き時と同一の文書位置で表示がされていないと再描画しても意味を持たず逆に誤解を招くことになる。従って、元の文書と上書きされたものの表示位置を正確に検出できる必要がある。
【０００３】
従来より、ドラッグスクロール機能を有するアプリケーションにおいて、文書の表示位置を検出する技術が提案されている。例えば、特許文献１では、文書にページ情報を付加して印刷し、このページ情報を自動検知し、上書き部分とページの整合を図る技術が提案されている。また、特許文献２では、画像メモリ上に直接上書きデータを描画する方法が提案されている。また、特許文献３では、上書き時のＰＣ画像と手書き情報を分離保存し、表示時に、これらを重ねて表示する技術が提案されている。この技術では、画像と上書きの位置関係は不明で、画像の表示位置と上書きを関連付けて管理する必要がある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１の技術では、一度ページ情報を付加印刷し、さらにページ情報を識別する特別な装置が必要である。また、特許文献２の技術では、拡大・縮小表示時や、スクロール表示時も、上書き位置情報が保持され表示されるが、ＡＰＬが一度表示変更をするとこの情報は消えてなくなる。また、ＡＰＬにより同一画像が再表示されたことや、表示位置、表示倍率などの情報を持っておらず、上書きデータを位置合わせして表示することができない。また、特許文献３の技術では、画像と上書きの位置関係は不明で、画像の表示位置と上書きを関連付けて管理する必要がある。このように、様々な技術が提案されているが、上記の問題点がある。
【０００５】
ところで、汎用ＯＳ（ＭＳ  Ｗｉｎｄｏｗｓ（登録商標），ＭＡＣ  ＯＳ，Ｌｉｎｕｘ（登録商標）等）上で動作する文書プログラムが表示する文書を別のアノテーション（上書き）プログラムが文書をスクロール表示させる方法として、文書プログラムへＯＳが提供するＡＰＩ（アプリケーションプログラムインターフェース）により、スクロールメッセージ（例えばＷｉｎｄｏｗｓ(登録商標）環境では、ＳｅｎｄＭｅｓｓａｇｅ（ＷＭ＿ＶＳＣＲＯＬＬ，  ＳＢ＿ＬＩＮＥＵＰ，  （ＬＰＡＲＡＭ）ｈＳｃｒｏｌｌ））を送信することにより行うことが一般的である。しかし、スクロール長を取得するＡＰＩは一般に提供されておらず、文書表示位置を知るため、文書をスクロール表示させた際のスクロール長を取得するには、特別な方法を用いる必要がある。
【０００６】
一般的に、スクロール後に表示が残る部分は再描画が行われず、スクロール方向へ残る部分の画像移動が行われる。このとき直線も一緒に移動することになる。このため、文書上へ透明ウィンドウを表示し、この透明ウィンドウ上へ直線を描画してスクロール表示すると、直線も文書と同じ量だけ移動することになる。したがって、この手法では、移動後の直線の位置を検出することによりスクロール長を取得することができる。
【０００７】
しかし、中には上記とは異なり表示領域全体を再描画するものもある。この場合直線は消去されスクロール長の取得ができない。この場合、画像中の特定文書画像を検出し、スクロール実行後にこの特定文書画像の移動量を検出することによりスクロール長の取得が可能である。
【０００８】
しかし、一般の文書の中には、表示部分に何も描画されない文書構成が存在する。このような白紙となるページが存在し、スクロール時に表示領域全体の再描画が行われる場合、スクロール長を検出することができないことになる。従って、任意のアプリケーションに対して、文書の表示位置を正確にしる方法が必要とされた。また、スクロール時に画面表示が大きく流れると、見ている者の気分を害することになる、といった問題があった。
【０００９】
本発明は、上記に鑑みてなされたものであって、ドラッグスクロール機能を有する任意のアプリケーションプログラムが表示する文書の文書位置を正確に検出できるようにするとともに、スクロール時に大きく流れる画面の表示状態を改善することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、本発明の文書表示装置は、文書上でドラッグスクロール操作をエミュレートすることにより汎用ＯＳ上で動作する任意の文書アプリケーションプログラムが表示する文書をスクロール表示する文書表示装置であって、元の文書画像の一部領域を除く文書画像を取得する画像取得手段と、取得した文書画像を元の文書画像に重ねて表示手段に表示する第１の表示制御手段と、前記表示手段に表示されたスクロールバーのドラッグによる移動量を基にスクロール時の元の文書画像の表示文書位置を検出する位置検出手段と、重ねて表示した前記文書画像を消去し、検出された前記表示文書位置の元の文書を前記表示手段に表示する第２の表示制御手段とを備えることを特徴とする。
【００１１】
また、本発明の文書表示方法は、文書上でドラッグスクロール操作をエミュレートすることにより汎用ＯＳ上で動作する任意の文書アプリケーションプログラムが表示する文書をスクロール表示する文書表示方法であって、元の文書画像の一部領域を除く文書画像を取得する画像取得工程と、取得した文書画像を元の文書画像に重ねて表示手段に表示する第１の表示制御工程と、前記表示手段に表示されたスクロールバーのドラッグによる移動量を基にスクロール時の元の文書画像の表示文書位置を検出する位置検出工程と、重ねて表示した前記文書画像を消去し、検出された前記表示文書位置の元の文書を前記表示手段に表示する第２の表示制御工程とを含むことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、スクロールバーのドラッグによる移動量を基に表示文書位置を検出するので、ドラッグスクロール機能を有する任意のアプリケーションプログラムが表示する文書の文書位置を正確に検出できる。また、元の文書画像の一部領域を除く文書画像を元の画像に重ねて表示するので、スクロール時に大きく流れる画面の表示状態を改善することができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、本発明の一実施の形態にかかる文書表示装置の構成を示すブロック図である。
【図２】図２は、文書表示装置の利用形態を示す図である。
【図３】図３は、本実施形態における文書位置検出の手法が効果を奏する文書表示の応用例について説明する図である。
【図４】図４は、ドラッグスクロールエミュレーション方法を説明する図である。
【図５】図５は、スクロールバー情報を説明するための図である。
【図６】図６は、文書位置取得手順を説明するための図である。
【図７】図７は、文書位置検出制御フローを示すフローチャートである。
【図８】図８は、位置検出制御テーブルの一例を示す図である。
【図９】図９は、文書位置検出時の初期化制御フローを示すフローチャートである。
【図１０】図１０は、文書垂直位置検出制御フローを示すフローチャートである。
【図１１】図１１は、文書水平位置検出制御フローを示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下に添付図面を参照して、この発明にかかる文書表示装置の実施の形態を詳細に説明する。
【００１５】
（実施の形態）
図１は、本発明の一実施の形態にかかる文書表示装置１００の構成を示すブロック図である。同図に示すように文書表示装置１００のハードウェア構成としては、ＣＰＵおよびメモリ等（いずれも図示せず）を備える制御部１１０と、各種データを記憶するためのメモリやＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）からなる記憶部１２０と、ユーザーによる操作入力を受け付ける入力部１３０と、文書等がその画面に表示される表示手段としての表示部１４０とを主に備えている。
【００１６】
アプリケーション１１１は、文書を表示部１４０に表示したり、文書を表示部１４０に表示しながらその作成をしたりするためのソフトウェアであり、例えば、Ｍｉｃｒｏｓｏｆｔ社（Ｒ）のＷｏｒｄ（Ｒ）や、Ａｄｏｂｅ（Ｒ）社のＡｃｒｏｂａｔ  Ｒｅａｄｅｒ（Ｒ）等が該当する。ここで、文書画像とは、文字等も画像として表された文書画像や文書作成アプリケーションで作成された電子文書などの文書データも含むものとする。また、文書画像は、一般に、１以上のページからなる。
【００１７】
本実施形態の核となる文書表示プログラムは、画像取得部１１２、表示制御部１  １１３、位置検出部１１４、表示制御部２  １１５を備えている。画像取得部１１２は、アプリケーション１１１が表示する文書画像から一部領域（いずれかの端部、特に、右端または下端）を除いた文書画像を取得する機能を有する。表示制御部１  １１３は、アプリケーション１１１によって表示部１４０に表示される文書画像（元の文書画像）に、画像取得部１１２が取得した文書画像を、元の文書画像が隠れるように重ねて表示する制御を行う。位置検出部１１４は、ドラッグスクロールがなされるときの文書表示位置を検出する。その際、位置検出制御テーブルを作成し記憶部１２０に保存する。位置検出部１１４による文書表示位置検出のための処理の詳細は、後述する。表示制御部２  １１５は、ドラッグスクロール終了後、表示制御部１  １１３によって重ねて表示された文書画像を消去し、ドラッグスクロール後のアプリケーション１１１による元の文書画像を表示部１４０に表示する制御を行う。
【００１８】
このように構成される文書表示装置１００の利用形態として、図２に示すような形態を挙げることができる。
【００１９】
同図（Ａ）に示すものは、マウス／タブレット、キーボード、ディスプレイを含む一般的なＰＣ（パーソナルコンピュータ）を用いた形態である。この形態では、Ｏｆｆｉｃｅソフト等の一般的な文書作成アプリケーションにより作成された文書上へ、修正内容を描画しそれを文書位置と関連付けて保存する。そして、文書修正時や描画時の文書表示状態に設定・修正内容を表示し参照することにより文書修正を行う。
【００２０】
また、同図（Ｂ）に示すものは、ノートＰＣやタブレットＰＣの画面をプロジェクタ表示できるようにした形態である。この形態では、プロジェクタ表示時の発言者の音声や文書上へのメモ描画を文書位置と関連付け時系列に保存する。そして、会議不参加者による確認や、当事者による再確認等の目的により、任意のＰＣ上で文書表示状態を同一にし再生する。
【００２１】
また、同図（Ｃ）に示すものは、ネットワークを介して複数のＰＣを接続した形態である。この形態では、他のＰＣの表示状態を同一にすることにより、画面上で文書内容を共有し、会議を行う。
【００２２】
ここで、図３を用いて、後述する文書位置検出の手法が効果を奏する文書表示の応用例について説明する。図３は、本実施形態における文書位置検出の手法が効果を奏する文書表示の応用例について説明する図である。
【００２３】
任意のアプリケーションが表示する文書上へ全画面サイズの、背景が透けて見える透明ウィンドウを重ねて表示する。
【００２４】
そして、文書上の任意の位置へ描画をする（図３：（２）部分）。このとき、表示されている文書の文書位置（ＤＹ：先頭ページ上端原点，ＤＸ：ページ左端原点）を検出し、描画位置（ＤＸ＋Ｘ−ＷＸ，ＤＹ＋Ｙ−ＷＹ）を関連付けアノテーションデータ（上書きデータ）として保存する。なお、文書領域左上端座標（ＷＸ，ＷＹ）、文書領域幅（ＷＷ）、文書領域高さ（ＷＨ）はＯＳが提供するＡＰＩにより取得される。また、描画位置はマウスから座標（Ｘ，Ｙ）により取得される。
【００２５】
次いで、描画領域と関連付けられる付箋ウィンドウを表示し、補足説明等を入力する。
【００２６】
アノテーションが実行された文書の表示位置を自動検出し、表示文書へのアノテーション（図３：（４）部分）が存在する場合、描画した文書位置へ再描画する。
【００２７】
描画上でのダブルクリックにより付箋ウィンドウ（図３：（５）部分）を表示し、補足説明文書を表示する。
【００２８】
以上の手順により、元の文書を変更することなく，作成した文書の修正指示，マニュアル等の文書へ補助解説等を擬似的に書き込むことが可能となる。このような文書表示に対し、ドラッグスクロールを行う場合、以下のようにする。
【００２９】
（ドラッグスクロールエミュレーション）
以下では、文書位置検出の際実行するドラッグスクロールエミュレーション方法を、ＭＳ  Ｗｉｎｄｏｗｓ（登録商標）のＡＰＩを用いたものを例に、図４を用いて説明する。ここでは、右端１ラインおよび下端１ラインをスクロール領域（実際にスクロール表示する領域）として実施する場合を説明する。
【００３０】
（１）ドラッグスクロール操作（すなわち、マウス左ボタンＯＮ→スクロールバードラッグ→左ボタンＯＦＦする操作）が連続して実行される場合、画面表示が大きく流れると、見ている者の気分を害することになる。これを避けるためドラッグスクロール実行前に、文書領域の右端垂直方向１ラインを除く領域の文書画像を取得し、同じ位置へ重ねて表示する（図４（Ａ）：（１）部分）。これにより、ドラッグスクロールエミュレーション時右端１ラインのみスクロール表示させるようにする。
【００３１】
（２）次に、マウスカーソルを右端１ライン上（Ｘ０，Ｙ０）へ移動させ，マウス左ボタンＯＮ操作をエミュレートする（図４（Ａ）：（２））。このとき、下記のＡＰＩを使用する。
：：ＳｅｔＣｕｒｓｏｒ（  Ｘ０，Ｙ０  ）；  （移動ＡＰＩ）
：：ｍｏｕｓｅ＿ｅｖｅｎｔ（  ＭＯＵＳＥＥＶＥＮＴ＿ＬＥＦＴＤＯＷＮ，０，０，０，０  ）；  （左ボタンＯＮ  ＡＰＩ）
【００３２】
（３）次に、（Ｘ０，Ｙ０）から（Ｘ１，Ｙ１）への左ボタンＯＮドラッグ操作をエミュレートする（図４（Ａ）：（３））。このとき、下記のＡＰＩを使用する。
：：ｍｏｕｓｅ＿ｅｖｅｎｔ（  ＭＯＵＳＥＥＶＥＮＴ＿ＭＯＶＥ，０，Ｘ１−Ｘ０，０，０  ）；  （ドラッグＡＰＩ）
：：ｍｏｕｓｅ＿ｅｖｅｎｔ（  ＭＯＵＳＥＥＶＥＮＴ＿ＬＥＦＴＵＰ，０，０，０，０  ）；  （左ボタンＯＦＦ  ＡＰＩ）
【００３３】
（４）上記ドラッグスクロールエミュレーション完了後、（１）で重ねた表示画像を消去すると移動後の文書画像が表示される（図４（Ｂ）：（４）部分）。このときの垂直スクロール長は、（Ｙ０  −  Ｙ１）となる。
【００３４】
（５）同様に、文書表示領域下端１ラインを除く領域の文書画像を取得し、同じ位置へ重ねて表示する。そして、上述と同様の手法で、（Ｘ２，Ｙ２）から（Ｘ３，Ｙ３）への左ボタンＯＮドラッグ操作をエミュレートすることにより水平方向へスクロール表示する（図４（Ｃ）：（５））。このときの水平スクロール長は、（Ｘ３  −  Ｘ２）となる。
【００３５】
（スクロールバー情報）
ここで、図５を用いてスクロールバー情報について説明する。図５は、スクロールバー情報を説明するための図である。
【００３６】
（１）図５（Ａ）において、ＯＳが提供するＡＰＩにより任意のアプリケーションプログラムにおける垂直スクロールバー（図５（Ａ）：（１））の垂直スクロールバー情報（ｖＭａｘ，ｖＢｏｘ，ｖＰａｇｅ）が取得される。
【００３７】
（２）図５（Ａ）において、ＯＳが提供するＡＰＩにより任意のアプリケーションプログラムにおける水平スクロールバー（図５（Ａ）：（２））の水平スクロールバー情報（ｈＭａｘ，ｈＢｏｘ，ｈＰａｇｅ）が取得される。
【００３８】
図５（Ｂ）に、スクロールバー情報が示す値の関係を示す。具体的には、以下の表のとおりである。
【００３９】
【表１】
2010211727.tif 000003
【００４０】
（文書位置情報取得手順）
次に、図６を用いて文書位置取得手順を説明する。図６は、文書位置取得手順を説明するための図である。
【００４１】
表示文書の文書位置を検出するためには、先頭ページ上端まで移動して、表示位置までドラッグスクロールエミュレーションを繰り返す必要がある。しかし、文書がスクロールされる度にこれが実行されると検出に時間をとられ、実用性に欠けることになる。これを避けるために、アノテーション開始時文書位置を検出して、垂直位置情報テーブルを作成し，これを元に文書位置を算出する。文書水平位置はページ幅に依存し、ページ幅に変化あった時に検出して、水平位置情報テーブルを作成する。
【００４２】
（１）ＯＳが提供するＡＰＩにより「ｖＢｏｘ  ＝  ０」の位置へ移動する（図６（Ａ）：（１））。これにより先頭ページ上端（Ｐ１）が文書領域上端へ表示される。
【００４３】
（２）文書先頭位置を文書垂直位置「０」として下方向ドラッグスクロールエミュレーションを繰り返し、ドラッグによるマウス移動量（Ｙ１−Ｙ０）（図６（Ａ）：（２））を文書垂直位置へ加算する。そして、この時の垂直スクロールバー情報「垂直スクロールボックス位置（ｖＢｏｘ）」を取得し、下記の垂直位置情報テーブルを作成する。
【００４４】
【表２】
2010211727.tif 000004
【００４５】
（３）そして、（ｖＢｏｘ＋ｖＰａｇｅ）  ＞  ｖＭａｘとなった時点（このとき最終ページまで移動し、下方向に文書がない状態）（図６（Ｂ）：（３））で、上記処理を終了する。
【００４６】
（４）同様に、文書水平位置検出のため、ＯＳが提供するＡＰＩにより「ｈＢｏｘ  ＝  ０」の位置へ移動する。これによりページ左端が表示される。
【００４７】
（５）文書左端位置を文書水平位置「０」として右方向ドラッグスクロールエミュレーションを繰り返し、ドラッグによるマウス移動量を文書水平位置へ加算する。そして、この時の水平スクロールバー情報「水平スクロールボックス位置（ｈＢｏｘ）」を取得し、下記の水平位置情報テーブルを作成する。
【００４８】
【表３】
2010211727.tif 000005
【００４９】
（６）そして、（ｈＢｏｘ＋ｈＰａｇｅ）  ＞  ｈＭａｘとなった時点で上記処理を終了する。
【００５０】
（７）垂直スクロールボックス位置として「２４」が取得される場合の表示領域上端の垂直文書位置は、以下により算出される。
【００５１】
文書垂直位置  ＝  （２５６−１２８）＊（２４−１６）÷（３２−１６）
【００５２】
（文書位置検出制御フロー）
次に、図７、図８を用いて、文書位置検出制御について説明する。図７は、文書位置検出制御フローを示すフローチャートである。また、図８は、位置検出制御テーブルの一例を示す図である。
【００５３】
文書位置検出制御は、文書位置検出が効果を奏するアプリケーションプログラムの一機能として実行され、ここでは先頭ページ上端を文書垂直位置原点とし、ページ左端を文書水平位置原点とする文書表示領域左上端の文書位置を検出する。以下で作成される位置検出制御テーブル（図８）は全てのモジュールからアクセス可能な場所に作成される。
【００５４】
文書位置検出開始時に１回「初期化制御」を実行し（このときステップＳ７０１の初期化判定でＹｅｓと判定される）、初期化された垂直位置情報テーブルおよび水平位置情報テーブルを作成する（ステップＳ７０２）。２回目以降の文書位置検出開始時には（このときステップＳ７０１の初期化判定でＮｏと判定される）、「初期化制御」はスキップし、次の「水平スクロールバー情報取得」へ移行する。
【００５５】
「水平スクロールバー識別」（ＭＳ  Ｗｉｎｄｏｗｓ（登録商標）の場合ウィンドウハンドル）によりＯＳが提供するＡＰＩにより水平スクロールバー情報（ｈＢｏｘ，ｈＰａｇｅ，ｈＭａｘ）を取得する（ステップＳ７０３）。
【００５６】
位置検出制御テーブルの「水平スクロール幅」と取得値「ｈＭａｘ」が異なる場合（ステップＳ７０４でＹｅｓ）、ページサイズに変更があったとして「文書水平位置検出制御」を実行し、水平位置情報テーブルを作成する（ステップＳ７０５）。一方、「水平スクロール幅」と取得値「ｈＭａｘ」が同一である場合（ステップＳ７０４でＮｏ）、「文書水平位置検出制御」をスキップし、次の「文書水平位置算出」へ移行する。
【００５７】
「文書水平位置算出」では、取得した「ｈＢｏｘ」から水平位置情報テーブルを検索し、文書水平位置を算出する（文書位置情報取得手順（７）の垂直文書位置の算出と同様の手法による）（ステップＳ７０６）。
【００５８】
次いで、「垂直スクロールバー識別」（Ｗｉｎｄｏｗｓ（登録商標）環境の場合ウィンドウハンドル）によりＯＳが提供するＡＰＩにより垂直スクロールバー情報（ｖＢｏｘ，ｖＰａｇｅ，ｖＭａｘ）を取得する（ステップＳ７０７）。
【００５９】
そして、取得した「ｖＢｏｘ」から垂直位置情報テーブルを検索し、文書垂直位置を算出する（文書位置情報取得手順（７）の垂直文書位置の算出の手法による）（ステップＳ７０８）。
【００６０】
上記のようにして取得した垂直文書位置および水平文書位置を呼び出し元へ通知する。
【００６１】
（初期化制御フロー）
【００６２】
ここで、図９の文書位置検出制御フローにおける文書位置検出時の初期化制御を、図９、図３を用いて説明する。
【００６３】
ＯＳが提供するＡＰＩにより文書を表示するアプリケーションプログラムのウィンドウを検索し、ウィンドウ左上端座標（ＷＸ，ＷＹ）、ウィンドウ幅（ＷＷ）、ウィンドウ高さ（ＷＨ）を検索し、面積（ＷＷ  ×  ＷＨ）が最大となるウィンドウを文書領域ウィンドウとする（図３（Ａ）（１）部分参照）（ステップＳ９０１）。
【００６４】
そして、検出した文書領域ウィンドウ識別（ＭＳ  Ｗｉｎｄｏｗｓ（登録商標）の場合：ウィンドウハンドル）を位置検出制御テーブルへ保存する（ステップＳ９０２）。
【００６５】
次いで、ＯＳが提供するＡＰＩにより垂直スクロールバーを検索し、文書領域に最も近いものを文書の垂直スクロールバーとする（ステップＳ９０３）。
【００６６】
そして、検出した垂直スクロールバー識別（ＭＳ  Ｗｉｎｄｏｗｓ（登録商標）の場合ウィンドウハンドル）を位置検出制御テーブルへ保存する（ステップＳ９０４）。
【００６７】
次いで、ＯＳが提供するＡＰＩにより水平スクロールバーを検索し、文書領域に最も近いものを文書の水平スクロールバーとする（ステップＳ９０５）。
【００６８】
そして、検出した水平スクロールバー識別（ＭＳ  Ｗｉｎｄｏｗｓ（登録商標）の場合ウィンドウハンドル）を位置検出制御テーブルへ保存する（ステップＳ９０６）。
【００６９】
次いで、水平スクロールバー情報（ｈＢｏｘ，ｈＰａｇｅ，ｈＭａｘ）を取得する（ステップＳ９０７）。
【００７０】
そして、表示ページの水平スクロール幅（ｈＭａｘ）を位置情報制御テーブルへ保存する（ステップＳ９０８）。
【００７１】
次に、下記の「文書垂直位置検出制御」を実行し、文書垂直位置と垂直スクロールボックス位置を関連付け垂直位置情報テーブル（表２）を作成する（ステップＳ９０９）。
【００７２】
さらに、後述の「文書水平位置検出制御」を実行し、文書水平位置と水平スクロールボックス位置を関連付け水平位置情報テーブル（表３）を作成する（ステップＳ９１０）。
【００７３】
（文書垂直位置検出制御）
次に、図１０を用いて文書垂直位置検出制御について説明する。図１０は、文書垂直位置検出制御フローを示すフローチャートである。ここでは、スクロール領域を文書領域右端として説明する。
【００７４】
はじめに、文書領域識別から文書領域左上端（ＷＸ，ＷＹ）、幅（ＷＷ）、高さ（ＷＨ）を取得し、文書領域右端１ラインを除く領域の画像を取得する（図３（Ｂ）参照）（ステップＳ１００１）。
【００７５】
そして、取得した画像を元の文書上へ重ねて表示する（ステップＳ１００２）。
【００７６】
次に、垂直スクロールバー識別（Ｗｉｎｄｏｗｓ（登録商標）環境の場合ウィンドウハンドル）から垂直スクロールバー情報（ｖＢｏｘ，ｖＰａｇｅ，ｖＭａｘ）を取得する（ステップＳ１００３）。
【００７７】
そして、現在の垂直方向表示位置を示す垂直スクロールボックス位置（ｖＢｏｘ）を保存する（ステップＳ１００４）。
【００７８】
次いで、ＯＳが提供するＡＰＩにより垂直スクロールボックス位置「０」の位置に移動することにより文書先頭ページを表示する（ステップＳ１００５）。
【００７９】
そして、垂直位置数「０」、垂直スクロールボックス位置「０」および垂直文書位置「０」を垂直位置情報テーブルへ設定し（ステップＳ１００６〜ステップＳ１００８）、垂直位置情報として保存する（ステップＳ１００９）。
【００８０】
そして、垂直位置数に１加算する（ステップＳ１０１０）。
【００８１】
次に、垂直スクロールバー識別（Ｗｉｎｄｏｗｓ（登録商標）環境の場合ウィンドウハンドル）から垂直スクロールバー情報（ｖＢｏｘ，ｖＰａｇｅ，ｖＭａｘ）を取得する（ステップＳ１０１１）。
【００８２】
このとき、下方向の文書がない場合（すなわち、ｖＢｏｘ  ＋  ｖＰａｇｅ  ＞  ｖＭａｘ）（ステップＳ１０１２でＮｏ）、ステップＳ１０２１へ移行する。
【００８３】
一方、下方向の文書がある場合、ＯＳが提供する下記のＡＰＩによりカーソルをドラッグスクロール開始位置（Ｘ，Ｙ）へ移動する（ステップＳ１０１３）。
【００８４】
Ｘ  ＝  ＷＸ  ＋  ＷＷ  −  １
Ｙ  ＝  ＷＹ  ＋  ＷＨ  −  １
：：ＳｅｔＣｕｒｓｏｒＰｏｓ（  Ｘ，Ｙ  ）；
【００８５】
次いで、ＯＳが提供する下記のＡＰＩによりマウス左ボタンＯＮを文書アプリケーションへ通知する（ステップＳ１０１４）。
：：ｍｏｕｓｅ＿ｅｖｅｎｔ（  ＭＯＵＳＥＥＶＥＮＴ＿ＬＥＦＴＤＯＷＮ，０，０，０，０  ）；
【００８６】
そして、ＯＳが提供する下記のＡＰＩにより文書アプリケーションへ左ボタンＯＮドラッグを通知する（ステップＳ１０１５）。なお、ドラッグ長は「２５６」程度とする（＋値：上方向スクロール，−値：上方向スクロール）。
：：ｍｏｕｓｅ＿ｅｖｅｎｔ（  ＭＯＵＳＥＥＶＥＮＴ＿ＭＯＶＥ，０，−ドラッグ長，０，０  ）；
【００８７】
さらに、ＯＳが提供する下記のＡＰＩにより左ボタンＯＦＦを文書アプリケーションへ通知する（ステップＳ１０１６）。
：：ｍｏｕｓｅ＿ｅｖｅｎｔ（  ＭＯＵＳＥＥＶＥＮＴ＿ＬＥＦＴＵＰ，０，０，０，０  ）；
【００８８】
そして、垂直文書位置へドラッグ長を加算する（ステップＳ１０１７）。
【００８９】
次いで、ドラッグスクロール後の垂直スクロールバー情報（ｖＢｏｘ，ｖＰａｇｅ，ｖＭａｘ）を取得する（ステップＳ１０１８）。
【００９０】
そして、垂直スクロールボックス位置を「ｖＢｏｘ」に設定する（ステップＳ１０１９）。
【００９１】
文書垂直位置および垂直スクロールボックス位置を垂直位置情報として垂直位置情報テーブルの垂直位置数に相当する領域へ保存する（ステップＳ１０２０）。そして、ステップＳ１０１０〜Ｓ１０２０までの処理を、下方向の文書がなくなるまで繰り返す。
【００９２】
下方向の文書がなくなると（ステップＳ１０１２でＹｅｓ）、ＯＳが提供するＡＰＩにより垂直スクロールボックス位置をステップＳ１００４で取得した位置へ移動し、文書を元の位置へ戻す（ステップＳ１０２１）。
【００９３】
最後に、ステップＳ１００２で重ねて表示した文書画像を消去し、垂直スクロールボックス位置の元の文書を表示する（ステップＳ１０２２）。
【００９４】
（文書水平位置検出制御）
次に、図１１を用いて文書水平位置検出制御について説明する。図１１は、文書水平位置検出制御フローを示すフローチャートである。なお、ここでは、スクロール領域を文書領域下端として説明する。
【００９５】
はじめに、文書領域識別から文書領域左上端（ＷＸ，ＷＹ）、幅（ＷＷ）、高さ（ＷＨ）を取得，文書領域下端１ラインを除く領域の画像を取得する（ステップＳ１１０１）。
【００９６】
そして、取得画像を文書上へ重ねて表示する（ステップＳ１１０２）。
【００９７】
次に、水平スクロールバー識別（Ｗｉｎｄｏｗｓ（登録商標）環境の場合ウィンドウハンドル）から水平スクロールバー情報（ｈＢｏｘ，ｈＰａｇｅ，ｈＭａｘ）を取得する（ステップＳ１１０３）。
【００９８】
そして、現在の水平方向表示位置を示す水平スクロールボックス位置（ｈＢｏｘ）を保存する（ステップＳ１１０４）。
【００９９】
次いで、ＯＳが提供するＡＰＩにより水平スクロールボックス位置「０」に移動することによりページ左端を表示する（ステップＳ１１０５）。
【０１００】
そして、水平位置数「０」、水平スクロールボックス位置「０」および水平文書位置「０」を水平位置情報テーブルへ設定し（ステップＳ１１０６〜Ｓ１１０８）、水平位置情報として保存する（ステップＳ１１０９）。
【０１０１】
そして、平位置数に１加算する（ステップＳ１１１０）。
【０１０２】
次に、水平スクロールバー識別（Ｗｉｎｄｏｗｓ（登録商標）環境の場合ウィンドウハンドル）から水平スクロールバー情報（ｈＢｏｘ，ｈＰａｇｅ，ｈＭａｘ）を取得する（ステップＳ１１１１）。
【０１０３】
このとき、右方向に文書がない場合（すなわち、ｈＢｏｘ  ＋  ｈＰａｇｅ  ＞  ｈＭａｘ）、ステップＳ１１２１へ移行する。
【０１０４】
一方、右方向に文書がある場合、ＯＳが提供する下記のＡＰＩによりカーソルをドラッグスクロール開始位置（Ｘ，Ｙ）へ移動する（ステップＳ１１１３）。
【０１０５】
Ｘ  ＝  ＷＸ  ＋  ＷＷ  −  １
Ｙ  ＝  ＷＹ  ＋  ＷＨ  −  １
：：ＳｅｔＣｕｒｓｏｒＰｏｓ（  Ｘ，Ｙ  ）；
【０１０６】
次いで、ＯＳが提供するＡＰＩによりマウス左ボタンＯＮを文書アプリケーションへ通知する（ステップＳ１１１４）。
：：ｍｏｕｓｅ＿ｅｖｅｎｔ（  ＭＯＵＳＥＥＶＥＮＴ＿ＬＥＦＴＤＯＷＮ，０，０，０，０  ）；
【０１０７】
次いで、ＯＳが提供する下記のＡＰＩにより文書アプリケーションへ左ボタンＯＮドラッグを通知する（ステップＳ１１１５）。なお、ドラッグ長は「２５６」程度とする（＋値：左方向スクロール，−値：右方向スクロール）。
：：ｍｏｕｓｅ＿ｅｖｅｎｔ（  ＭＯＵＳＥＥＶＥＮＴ＿ＭＯＶＥ，−ドラッグ長，０，０，０  ）；
【０１０８】
さらに、ＯＳが提供する下記のＡＰＩにより左ボタンＯＦＦを文書アプリケーションへ通知する（ステップＳ１１１６）。
：：ｍｏｕｓｅ＿ｅｖｅｎｔ（  ＭＯＵＳＥＥＶＥＮＴ＿ＬＥＦＴＵＰ，０，０，０，０  ）；
【０１０９】
そして、水平文書位置へドラッグ長を加算する（ステップＳ１１１７）。
【０１１０】
次いで、ドラッグスクロール後の水平スクロールバー情報（ｈＢｏｘ，ｈＰａｇｅ，ｈＭａｘ）を取得する（ステップＳ１１１８）。
【０１１１】
そして、水平スクロールボックス位置を「ｈＢｏｘ」に設定する（ステップＳ１１１９）。
【０１１２】
次いで、文書水平位置および水平スクロールボックス位置を水平位置情報として水平位置情報テーブルの「水平位置数」に相当する領域へ保存する（ステップＳ１１２０）。そして、ステップＳ１１１０〜Ｓ１１２０までの処理を右方向の文書がなくなるまで繰り返す。
【０１１３】
右方向の文書がなくなると、ＯＳが提供するＡＰＩにより水平スクロールボックス位置をステップＳ１１０４で取得した位置へ移動し、文書を元の位置へ戻す（ステップＳ１１２１）。
【０１１４】
最後に、重ねて表示した文書画像を消去し、水平スクロールボックス位置の元の文書を表示する（ステップＳ１１２２）。
【０１１５】
本実施形態の文書表示装置１００では、任意アプリケーションが表示する文書の文書位置を正確に検出することが可能となるので、ドラッグスクロールなどを伴う文書表示の際の文書位置検知の有効活用が可能となる。また、連続文書スクロール時に、画面表示が文書画像の一部（端部）であるスクロール領域を除いて固定されるので、見ている者の不快感を解消することができる。また、スクロール表示により文書位置が変更になっても遅延なく文書位置が検出できる。
【０１１６】
なお、本実施形態の文書表示装置は、図１に示したＣＰＵなどの制御装置と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やＲＡＭなどの記憶装置などからなる制御部と、ＨＤＤ、ＣＤドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置を備えており、通常のコンピュータを利用したハードウェア構成となっている。
【０１１７】
本実施形態の文書表装置で実行される文書表示プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【０１１８】
また、本実施形態の文書表示装置で実行される文書表示プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態の文書表装置で実行される文書表示プログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【０１１９】
本実施形態の文書表示装置で実行される文書表示プログラムは、上述した各部（画像取得部、表示制御部１，２、位置検出部）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ（プロセッサ）が上記記憶媒体から文書表示プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、画像取得部、表示制御部１，２、位置検出部が主記憶装置上に生成されるようになっている。
【符号の説明】
【０１２０】
１００  文書表示装置
１１０  制御部
１１１  アプリケーション
１１２  画像取得部
１１３  表示制御部１
１１４  位置検出部
１１５  表示制御部２
１２０  記憶部
１２１  位置検出制御テーブル
１３０  入力部
１４０  表示部
【先行技術文献】
【特許文献】
【０１２１】
【特許文献１】特開２０００−２１５０００号公報
【特許文献２】特開２００１−３１２２６４号公報
【特許文献３】特開２００１−０１６３８４号公報
【図１】
2010211727.tif 000006
【図２】
2010211727.tif 000007
【図３】
2010211727.tif 000008
【図４】
2010211727.tif 000009
【図５】
2010211727.tif 000010
【図６】
2010211727.tif 000011
【図７】
2010211727.tif 000012
【図８】
2010211727.tif 000013
【図９】
2010211727.tif 000014
【図１０】
2010211727.tif 000015
【図１１】
2010211727.tif 000016