情報処理装置、プログラムおよび記録媒体
【課題】特定のデータ構造を有する文書データのうち一部分のみをキャッシュし、キャッシュしたデータを用いてオブジェクトをレイアウトすること。
【解決手段】情報処理装置は、特定のデータ構造を有する文書データを記憶する文書記憶手段と、供給されたデータをキャッシュするキャッシュ手段と、ページ構造情報から対象オブジェクト情報を取得し、位置情報部分から対象位置情報を取得し、さらに、対象ページ情報、対象オブジェクト情報および対象位置情報を含むデータセットをキャッシュ手段に供給する処理を行う解析手段と、表示領域を指定する指定手段と、キャッシュ手段から、オブジェクト情報を選択する選択手段と、選択手段により選択されたオブジェクトの、表示領域におけるレイアウトを決定するレイアウト手段と、レイアウトに従って配置されたオブジェクトを有するページの画像を表示装置に表示させる表示データを生成する生成手段とを有する。
【解決手段】情報処理装置は、特定のデータ構造を有する文書データを記憶する文書記憶手段と、供給されたデータをキャッシュするキャッシュ手段と、ページ構造情報から対象オブジェクト情報を取得し、位置情報部分から対象位置情報を取得し、さらに、対象ページ情報、対象オブジェクト情報および対象位置情報を含むデータセットをキャッシュ手段に供給する処理を行う解析手段と、表示領域を指定する指定手段と、キャッシュ手段から、オブジェクト情報を選択する選択手段と、選択手段により選択されたオブジェクトの、表示領域におけるレイアウトを決定するレイアウト手段と、レイアウトに従って配置されたオブジェクトを有するページの画像を表示装置に表示させる表示データを生成する生成手段とを有する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、特定のデータ構造を有する文書データを処理する技術に関する。
【背景技術】
【0002】
PDF(Portable Document Format)は、独自のデータ構造を有する、文書データの書式である。PDFはいわゆるテキスト形式やHTML(HyperText Markup Language)形式、画像データ(BMP形式)などと比較すると情報量が多く、その内容を解析して表示するにはある程度の時間が必要である。一度表示したページであっても、表示した内容をすべて記憶しておかない限り、再度表示する際にも再度解析が必要である。携帯型の情報処理装置においては特に、実装できるメモリ容量は制限されるので、表示した内容をすべて記憶しておくのは困難である。例えば、テキスト(文字)と画像が混在している文書のうち画像だけを表示したい、というようにレイアウトを変更したいような場合でも、文書データをすべて解析する必要があった(例えば、特許文献1−3参照)。
【0003】
【特許文献1】特表2000−511364号公報
【特許文献2】特開2000−172248号公報
【特許文献3】特開2003−85164号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
これに対し本発明は、特定のデータ構造を有する文書データのうち一部分のみをキャッシュし、キャッシュしたデータを用いてオブジェクトをレイアウトする技術を提供する。
【課題を解決するための手段】
【0005】
本発明は、文書に含まれるオブジェクトを特定するオブジェクト情報および前記文書のページ構造を示すページ構造情報が記述されたボディ部分と、前記オブジェクトが記憶されている位置を示す位置情報が記述された位置情報部分とを含むデータ構造を有する文書データを記憶する文書記憶手段と、供給されたデータをキャッシュするキャッシュ手段と、前記文書記憶手段に記憶された文書データの1ページを対象ページとして、前記対象ページの表示を指示する指示手段と、前記対象ページを特定する対象ページ情報が前記キャッシュ手段に記憶されていない場合、前記文書記憶手段に記憶された文書データのボディ部分に記述されたページ構造情報から、前記対象ページに表示されるオブジェクトを特定する情報を対象オブジェクト情報として取得し、前記位置情報部分から、前記対象オブジェクトが記憶されている位置を示す情報を対象位置情報として取得し、さらに、前記対象ページ情報、前記取得した対象オブジェクト情報および対象位置情報を含むデータセットを前記キャッシュ手段に供給する処理を行う解析手段と、表示領域を指定する指定手段と、前記キャッシュ手段に記憶されているオブジェクト情報の中から、前記表示領域に表示させるオブジェクトのオブジェクト情報を選択する選択手段と、前記選択手段により選択されたオブジェクト情報により特定されるオブジェクトの、前記表示領域におけるレイアウトを決定するレイアウト手段と、前記レイアウト手段により決定されたレイアウトに従って配置されたオブジェクトを有するページの画像を表示装置に表示させる表示データを生成する生成手段とを有する情報処理装置を提供する。
この情報処理装置によれば、キャッシュしたデータを用いて、文書データと異なるレイアウトでオブジェクトが配置された表示データが生成される。
【0006】
好ましい態様において、前記データセットが、前記対象オブジェクトのサイズを示す表示サイズ情報を含み、前記表示サイズ情報により示されるサイズが、前記表示領域のうちオブジェクトを配置可能な部分のサイズよりも大きい場合、前記レイアウト手段は、前記選択手段により選択されたオブジェクト情報により特定されるオブジェクトを縮小してからレイアウトを決定してもよい。
この情報処理装置によれば、オブジェクトのサイズが配置可能な部分のサイズよりも大きい場合、オブジェクトを縮小してからレイアウトが決定される。
【0007】
別の好ましい態様において、前記データセットが、前記対象オブジェクトのサイズを示す表示サイズ情報を含み、前記表示サイズ情報により示されるサイズが、前記表示領域のうちオブジェクトを配置可能な部分のサイズよりも大きい場合、前記レイアウト手段は、前記表示領域を拡張してからレイアウトを決定してもよい。
この情報処理装置によれば、オブジェクトのサイズが配置可能な部分のサイズよりも大きい場合、表示領域を拡張してからレイアウトが決定される。
【0008】
さらに別の好ましい態様において、前記データセットが、前記対象オブジェクトの配置を示す座標情報を含み、前記レイアウト手段は、前記表示領域に最初に配置されたオブジェクトの座標情報に応じて、2番目以降に配置されるオブジェクトのレイアウトを決定してもよい。
この情報処理装置によれば、最初に配置されるオブジェクトの配置に応じて、2番目以降に配置されるオブジェクトのレイアウトが決定される。
【0009】
また、本発明は、文書に含まれるオブジェクトを特定するオブジェクト情報および前記文書のページ構造を示すページ構造情報が記述されたボディ部分と、前記オブジェクトが記憶されている位置を示す位置情報が記述された位置情報部分とを含むデータ構造を有する文書データを記憶する文書記憶手段と、供給されたデータをキャッシュするキャッシュ手段とを有するコンピュータ装置に、前記文書記憶手段に記憶された文書データの1ページを対象ページとして、前記対象ページの表示を指示するステップと、前記対象ページを特定する対象ページ情報が前記キャッシュ手段に記憶されていない場合、前記文書記憶手段に記憶された文書データのボディ部分に記述されたページ構造情報から、前記対象ページに表示されるオブジェクトを特定する情報を対象オブジェクト情報として取得し、前記位置情報部分から、前記対象オブジェクトが記憶されている位置を示す情報を対象位置情報として取得し、さらに、前記対象ページ情報、前記取得した対象オブジェクト情報および対象位置情報を含むデータセットを前記キャッシュ手段に供給する処理を行うステップと、表示領域を指定するステップと、前記キャッシュ手段に記憶されているオブジェクト情報の中から、前記表示領域に表示させるオブジェクトのオブジェクト情報を選択するステップと、前記選択されたオブジェクト情報により特定されるオブジェクトの、前記表示領域におけるレイアウトを決定するステップと、前記決定されたレイアウトに従って配置されたオブジェクトを有するページの画像を表示装置に表示させる表示データを生成するステップとを実行させるプログラムを提供する。
さらに、本発明は、上述のプログラムを記憶したコンピュータ読み取り可能な記憶媒体を提供する。
このプログラムによれば、キャッシュしたデータを用いて、文書データと異なるレイアウトでオブジェクトが配置された表示データが生成される。
【発明を実施するための最良の形態】
【0010】
1.構成
図1は、本発明の一実施形態に係る情報表示装置1の機能構成を示す図である。情報表示装置1は、情報処理装置の一例である。文書記憶手段11は、特定のデータ構造を有する文書データを記憶する。特定のデータ構造とは、ボディ部分および位置情報部分とを含むデータ構造である。ボディ部分には、文書に含まれるオブジェクトを特定するオブジェクト情報および文書のページ構造を示すページ構造情報が記述される。位置情報部分には、オブジェクトが記憶されている位置(アドレス)を示す位置情報が記述される。キャッシュ手段12は、供給されたデータをキャッシュする。指示手段13は、文書記憶手段11に記憶された文書データの1ページを対象ページとして、対象ページの表示を指示する。解析手段14は、解析処理を行う。対象ページを特定する対象ページ情報が文書記憶手段11に記憶されていない場合、解析処理は、文書記憶手段11に記憶された文書データのボディ部分に記述されたページ構造情報から、対象ページに表示されるオブジェクトを特定する情報を対象オブジェクト情報として取得し、位置情報部分から、対象オブジェクトが記憶されている位置を示す情報を対象位置情報として取得し、さらに、対象ページ情報、取得した対象オブジェクト情報および対象位置情報を含むデータセットをキャッシュ手段12に供給する処理を含む。指定手段15は、表示領域を指定する。選択手段16は、キャッシュ手段12に記憶されているオブジェクト情報の中から、表示領域に表示させるオブジェクトのオブジェクト情報を選択する。レイアウト手段17は、選択手段16により選択されたオブジェクト情報により特定されるオブジェクトの、表示領域におけるレイアウトを決定する。生成手段18は、レイアウト手段17により決定されたレイアウトに従って配置されたオブジェクトを有するページの画像を表示装置30に表示させる表示データを生成する。制御手段22は、データの比較や入出力その他必要な処理を行う。
【0011】
ここで、データセットは、自身が更新された時刻を示す時刻情報を含んでいる。キャッシュ制御手段21は、対象オブジェクトのオブジェクト情報を含むデータセットがキャッシュ手段12に記憶されていない場合、かつ、キャッシュ手段12に記憶されているデータセットの量が所定のしきい値を超えた場合、キャッシュ手段12に記憶されている複数のデータセットのうち、時刻情報により示される時刻が古いものから優先的に削除するようキャッシュ手段12を制御する。さらにキャッシュ制御手段21は、データが削除された後に、前記解析処理により取得されたオブジェクト情報および位置情報を含むデータセットを記憶するようキャッシュ手段12を制御する。
【0012】
また、文書データは、文書名を含み、データセットは、対応する文書名を含んでいる。キャッシュ手段12に記憶されているデータセットに含まれる文書名が、指示手段13により表示が指示された文書データの文書名と異なる場合、キャッシュ制御手段21は、記憶されているデータセットを削除するようキャッシュ手段12を制御する。
【0013】
図2は、情報表示装置1のハードウェア構成を示す図である。この例で、情報表示装置1は、電子ペーパである。CPU(Central Processing Unit)101は、情報表示装置1の構成要素を制御する制御装置である。ROM(Read Only Memory)102は、情報表示装置1の起動に必要なプログラムやデータを記憶する不揮発性の記憶装置である。RAM(Random Access Memory)103は、CPU101がプログラムを実行する際のワークエリアとして機能する記憶装置である。VRAM(Video Random Access Memory)104は、表示体107に表示させる画像(以下「メイン画像」という)を示すデータを記憶する記憶装置である。VRAM104は、メイン画像の記憶領域を有しており、メイン画像はその記憶領域に記憶される。I/O(Input/Output)105は、データや信号の入出力を管理するインターフェースである。UI(User Interface)ボタン群106は、ユーザの操作に応じた信号を出力する装置、例えば、ボタン(書き換えボタンやページ送りボタン、決定ボタンなど)・キーパッド・ホイール・レバー・タッチパネル・ペンデバイスなどの操作子を含む入力装置である。補助記憶装置115は、表示体107に表示することが可能なデータを記憶する記憶装置、例えば、フラッシュメモリやHDD(Hard Disk Drive)である。この例で、補助記憶装置115は、文書データの記憶領域およびキャッシュとしての記憶領域を有する。UIボタン群106はI/O105に接続されており、UIボタン群106から出力された信号はI/O105を介してCPU101に入力される。タイマTは、時間を示す信号を出力する計時装置である。
【0014】
表示体107は、記憶性表示素子である電気泳動表示素子を有する電気泳動ディスプレイ(Electrophoretic Display、以下「EPD」という)である。表示制御部108は、表示体107の描画制御を行う信号を出力する装置である。以下、必要に応じて表示体107と表示制御部108をあわせて「メインディスプレイ」という。電源オン・オフ回路111は、表示制御部108・CPU101などの要素への電力の供給を行ったり停止したりする回路である。以下、ある構成要素に電力を供給することを「電源をオンする」と、電力の供給を停止することを「電源をオフする」という。電源制御部112は、情報表示装置1の電源管理を行う装置である。具体的には、電源制御部112は、電源オン・オフ回路111を制御して表示制御部108およびCPU101の電源をオンまたはオフする。また、電源制御部112は、電池113の残量を監視する。電池113は、表示制御部108・CPU101・RAM103など、情報表示装置1の構成要素に電力を供給する。バス114は、構成要素間での信号の伝送に用いられる伝送路である。
【0015】
指紋センサ117は、ユーザの指紋を静電的に読み取り、読み取った指紋の画像を示す信号を出力する装置である。指紋センサ117はI/O105に接続されており、指紋センサ117から出力された信号はI/O105を介してCPU101に入力される。ネットワークIF(Interface)118は、ネットワークを介した通信に用いられるインターフェースである。
【0016】
ROM102は、以下で説明する処理を行う制御プログラムを記憶している。CPU101がこの制御プログラムを実行することにより、図1に示される機能が情報表示装置1に実装される。ここで、CPU101は、指示手段13、解析手段14、指定手段15、選択手段16、レイアウト手段17、生成手段18および制御手段22の一例である。補助記憶装置115は、文書記憶手段11およびキャッシュ手段12の一例である。
【0017】
図3は、情報表示装置1の外観を示す図である。情報表示装置1は、筐体の前面に表示体107の表示面、およびUIボタン群106を有する。
以下においては、文書データの書式がPDFである場合を例として説明する。
【0018】
図4Aおよび図4Bは、PDFの書式を例示する図である。PDF形式のファイル(データ)は、ヘッダ(File Header)、ボディ(File Body)、相互参照表(Cross Reference Table)、トレーラ(File Trailer)、ファイル終端部分の5つの部分を含む。これらの部分は互いに分離しており、例えばボディの中に相互参照表が含まれているということはない。
【0019】
ヘッダには、PDFのバージョンを示すバージョン番号が記述される。ボディには、オブジェクト(PDFの規格では「間接オブジェクト」といわれる)の並び(列)が記述される。間接オブジェクトには、ラベル(識別子)が付与される。ラベルは、オブジェクトを特定するオブジェクト番号(object number)および更新された回数を示す生成番号(generation number)を含む。オブジェクト番号は、オブジェクトを特定するオブジェクト情報の一例である。オブジェクトには、例えば以下の種類がある。(1)カタログ(Catalog):ページ群への参照などを指定する。(2)ページ群(Pages):各ページを集めたオブジェクト。それぞれのページオブジェクトへの参照を指定する。(3)ページ(Page):このオブジェクトが一ページを表す。ページ群オブジェクトとページオブジェクトの組み合わせにより、その文書のページ構造(ページツリー)が示される。すなわち、ページ群オブジェクトおよびページオブジェクトは、文書のページ構造を示すページ構造情報の一例である。(4)フォント(Font):フォントを指定する。(5)ストリーム(stream):表示する文章や図形の情報を記述する。なお、これらはあくまでオブジェクトの種類の一例である。
【0020】
相互参照表には、各間接オブジェクトの、ファイル内における記憶位置(格納位置、あるいはオフセット)が記述される。相互参照表は、位置情報部分の一例である。相互参照表は、キーワード「xref」を含む行で始まる。2行目にあるのは「サブセクション」である。相互参照表は1つ以上のサブセクションを含むことができる。この例の場合は、オブジェクト番号0から9個のオブジェクトが含まれるサブセクションであることを示している。3行目以降に記述されているのは、個々の相互参照のエントリである。各エントリのうち、最後が「n」になっているものは「使用中エントリ(in-use entry)」である。使用中エントリは、ファイルの先頭からオブジェクトの先頭までの10桁のバイトオフセット、5桁の生成番号、使用中エントリであることを示すキーワード「n」、および2文字のEOL(End Of Line)を含む。各エントリのうち、最後が「f」になっているのが「フリーエントリ(free entry)」である。フリーエントリは、次のフリーエントリの10桁のオブジェクト番号、5桁の生成番号、フリーエントリであることを示すキーワード「f」、および2文字のEOLを含む。相互参照表により、間接オブジェクトのランダムアクセスが可能になる。
【0021】
トレーラには、相互参照表のオフセットを示すオフセット情報や、特殊な辞書が記述される。フッタには、ファイルが終端することや、トレーラのオフセットを示すオフセット情報が記述される。
【0022】
2.動作
2−1.全体動作
図5は、情報表示装置1の動作を示すフローチャートである。ステップS100において、文書の表示を指示するイベントすなわちPDFファイルの解析をトリガするイベント、この例では、ユーザによるキー入力が行われる。このイベントが発生すると、CPU101は、PDFファイルの解析を指示する。この指示は、処理の対象となる文書データ(以下、「対象文書データ」という)を特定する情報、およびその文書のうち表示されるページ(以下、「対象ページ」という)を特定する情報を含んでいる。CPU101は、ユーザのキー入力に応じて、処理の対象となる文書データおよびページを決定する。
【0023】
PDFファイルの解析が指示されると、ステップS110において、CPU101は、対象ページに関するデータがキャッシュに記憶されているか判断する。具体的には、CPU101は、対象オブジェクト情報すなわち対象ページに表示されるオブジェクトのオブジェクト情報、および対象位置情報すなわち対象オブジェクトの位置情報がキャッシュに記憶されているか判断する。対象ページに関するデータがキャッシュに記憶されていると判断された場合(S110:YES)、CPU101は、処理をステップS130に移行する。対象ページに関するデータがキャッシュに記憶されていると判断された場合(S110:NO)、CPU101は、処理をステップS120に移行する。
【0024】
ステップS120において、CPU101は、解析処理として通常解析を行う。通常解析とは、従来行われている、PDFのデータ構造に従った解析処理をいう。通常解析は、実行される順番に、ヘッダ解析、フッタ解析、トレーラ解析およびボディ解析を含む。ヘッダ解析において、CPU101は、PDFのバージョン情報を取得する。フッタ解析において、CPU101は、PDFファイルの終端位置、およびトレーラが記憶されている位置を示すオフセット情報を取得する。トレーラ解析において、CPU101は、相互参照表のオフセット情報および特殊な辞書を取得する。さらに、トレーラ解析において、CPU101は、相互参照表を参照してすべてのオブジェクトのオフセット情報を取得する。以下、ヘッダ解析、フッタ解析およびトレーラ解析をまとめて、「初期解析」という。
【0025】
ボディ解析において、CPU101は、対象ページの内容およびページ表示に関するデータを取得する。ボディ解析はさらに、カタログ解析、ページツリー解析、コンテンツ解析およびリソース辞書解析に区分される。カタログ解析において、CPU101は、文書名、文書の内容やアウトライン、アーティクルスレッド、その他の属性を定義する他のオブジェクトの参照を取得する。さらに、カタログ解析において、CPU101は、アウトラインとサムネイルのどちらを自動的に表示するかとか、ドキュメントを開いたときに最初のページ以外の位置を表示するといった、ドキュメントを画面上にどのように表示するかについての情報を取得する。さらに、カタログ解析において、CPU101は、対象オブジェクト情報を取得する。ページツリー解析において、CPU101は、文書のページツリーすなわちページ構造を解析する。文書のページ構造は、前述のようにページ群オブジェクトおよびページオブジェクトによって規定される。最後に、CPU101は、解析により取得した情報をキャッシュに追加する。
【0026】
図6は、ボディ解析の一例を示すフローチャートである。CPU101は、カタログデータを、ページツリーデータ(ページ群オブジェクトおよびページオブジェクト)が現れるまで順次データを解析し、解析した結果を記憶する(ステップS121〜S123)。次にCPU101は、指定されたページオブジェクトまで順次ページツリーを解析し、解析した結果を記憶する(ステップS124〜S126)。ステップS127において、CPU101は、対象オブジェクトのオブジェクト番号を取得する。ステップS128において、CPU101は、対象オブジェクトのオフセット情報を取得する。ステップS129において、CPU101は、キャッシュを更新する。
【0027】
図7は、ページツリーの具体例を示す図である。ページ群オブジェクトPAは、子要素としてページ群オブジェクトPB、PCおよびPDを有する。ページ群オブジェクトPBは、子要素としてページオブジェクトPEおよびPEを有する。このようにしてページツリーを辿っていくと、図7の文書は、順番に、ページオブジェクトPE、PF、PK、PL、PH、PIおよびPJを有することが解析される。これらのページオブジェクトに対して、順番に、1、2、3、…、7というようにページ番号が割り当てられる。
【0028】
カタログ解析およびページツリー解析を完了すると、CPU101は、キャッシュに記憶させるデータセットを生成する。データセットは、そのデータセットが更新された時刻、文書名、ブックマークフラグ(ブックマークの要否、すなわち削除の可否を示すフラグ)、対象ページのページ番号を示す対象ページ情報、対象オブジェクト情報および対象位置情報を含む。CPU101は、生成したデータセットを、キャッシュに記憶させる。キャッシュにおいて、データセットは、表の形式で記憶される。以下、この表を「アクセステーブル」という。すなわちアクセステーブルは、対象ページ情報、対象オブジェクト情報および対象位置情報を含むデータセットを複数記録している。
【0029】
コンテンツ解析およびリソース解析において、CPU101は、表示に関するコンテンツ解析およびリソース解析を行う。すなわち、CPU101は、ページの表示に関するデータを取得する。
【0030】
再び図5を参照して説明する。ステップS130において、CPU101は、解析処理として高速解析を行う。高速解析とは、通常解析のボディ解析のうち、カタログ解析およびページツリー解析をアクセステーブル解析で置換した処理をいう。アクセステーブル解析において、CPU101は、対象ページのページ番号を検索キーとしてアクセステーブルを検索する。対象ページのページ番号を発見すると、CPU101は、アクセステーブルから、対象ページに対応するオブジェクト番号およびオフセット情報を取得する。
【0031】
図8は、アクセステーブル解析の一例を示すフローチャートである。CPU101は、対象ページのページ番号が現れるまでアクセステーブルを順次検索し、検索した結果を記憶する(ステップS131〜S133)。ステップS134において、CPU101は、対象オブジェクトのオブジェクト番号を取得する。ステップS135において、CPU101は、対象オブジェクトのオフセット情報を取得する。ステップS136において、CPU101は、キャッシュを更新する。
【0032】
再び図5を参照して説明する。ステップS140において、CPU101は、表示データを作成する。表示データは、対象オブジェクトのオブジェクト情報および位置情報を用いて生成される。
【0033】
2−2.キャッシュの更新
図9は、キャッシュの更新処理を示すフローチャートである。図9のフローは、図6のステップS129の処理および図8のステップS136の処理に相当するものである。ステップS200において、CPU101は、これから行うべき処理が、データセットの追加、更新時刻の更新およびデータセットの削除のうちいずれの処理であるか決定する。処理対象の文書データに含まれる文書名がアクセステーブルに記録された文書名と異なる場合、CPU101は、データセットの削除を行うことを決定する。対象ページに関するデータがキャッシュに記憶されていない場合、すなわちステップS120の処理が実行された場合、CPU101は、データセットの追加を行うことを決定する。対象ページに関するデータがキャッシュに記憶されていた場合、すなわちステップS130の処理が実行された場合、CPU101は、更新時刻の更新を行うことを決定する。データセットの追加を行うと判断された場合(S200:データセット追加)、CPU101は、処理をステップS210に移行する。時刻の更新を行なうと判断された場合(S200:時刻更新)、CPU101は、処理をステップS250に移行する。データセットの削除を行うと判断された場合(S200:データセット削除)、CPU101は、処理をステップS270に移行する。
【0034】
ステップS210において、CPU101は、アクセステーブルの使用数、すなわちアクセステーブルに記録されているデータセットの数がしきい値を超えたか判断する。データセットの数がしきい値を超えたと判断された場合(S210:YES)、CPU101は、処理をステップS220に移行する。データセットの数がしきい値を超えていないと判断された場合(S210:NO)、CPU101は、処理をステップS240に移行する。
【0035】
ステップS220において、CPU101は、アクセステーブルの中から、更新時刻が一番古いデータセットを検索する。ステップS230において、CPU101は、発見したデータセットをアクセステーブルから削除する。ただしCPU101は、ステップS220において更新時刻が一番古いデータセットのブックマークフラグがブックマーク「要」すなわち削除「否」を示す場合、CPU101は、更新時刻が2番目に古いデータセットを検索する。以下、更新時刻が2番目に古いデータセットのブックマークフラグがブックマーク「要」である場合、CPU101は、更新時刻が3番目に古いデータセットを検索するというように、ブックマーク「不要」のデータセットが現れるまで更新時刻が古いものから順に検索する。
【0036】
ステップS240において、CPU101は、ボディ解析により取得したデータから必要なデータ(更新時刻、文書名、ブックマークフラグ、対象ページ情報、対象オブジェクト情報および対象位置情報)を抽出し、抽出したデータを含むデータセットをアクセステーブルに追加する。
【0037】
ステップS250において、CPU101は、データセットの更新時刻を現在時刻に書き換える。
【0038】
ステップS260において、CPU101は、アクセステーブルの使用数を更新、すなわち1増加させる。ただし、CPU101は、アクセステーブルの使用数が既に最大値に達している場合は、使用数を増加させない。アクセステーブルの使用数を更新すると、CPU101は、図9に示される処理を終了する。
【0039】
ステップS270において、CPU101は、アクセステーブルに記録されたすべてのデータセットを削除する。これにより、アクセステーブルの使用数はゼロになる。データセットを削除すると、CPU101は、処理を再びステップS200に移行する。
【0040】
2−3.レイアウトを変更する表示
図10は、レイアウトを変更する表示処理を示すフローチャートである。「レイアウトを変更する表示処理」とは、文書データによって示されているレイアウトとは異なるレイアウトで配置されたオブジェクトを表示する処理をいう。レイアウトを変更する表示処理は、例えば、テキストと画像とが混在する文書において、画像だけを表示させる処理である。
【0041】
ステップS300において、レイアウトを変更する表示処理をトリガするイベント、この例ではユーザによるキー入力が行われる。ユーザはキー入力により、レイアウトを変更する表示処理を開始する指示、および表示されるオブジェクトを特定する情報を入力する。「表示されるオブジェクトを特定する情報」は、例えば、「今まで表示したページのうち画像だけを表示する」というように、キャッシュに記憶されたオブジェクト情報により示されるオブジェクトの中から少なくとも1つのオブジェクトを選択する条件(以下「選択条件」という)を示す。CPU101は、このイベントに応じて、表示処理を開始する指示、および表示されるオブジェクトを特定する情報を生成する。さらに、CPU101は、選択されたオブジェクトが表示される表示領域を特定する情報を生成する。この例では、1ページ分の領域が表示領域となることが制御プログラムによりあらかじめ決められている。
【0042】
ステップS310において、CPU101は、アクセステーブル解析を行う。アクセステーブル解析は図8で説明したものと基本的に同様であるが、ステップS300で入力された選択条件を満たすオブジェクトのオブジェクト情報を含むデータセットが抽出される。
【0043】
ステップS320において、CPU101は、レイアウト処理を行う。レイアウト処理とは、ステップS310のアクセステーブル解析により抽出されたオブジェクト情報により特定されるオブジェクトの、表示領域におけるレイアウトを決定する処理をいう。
【0044】
図11は、レイアウト処理の詳細を示すフローチャートである。ステップS321〜S329までの処理は、所定の条件が満たされるまで、ここでは、ステップS310で抽出されたすべてのデータセットについての処理が終わるまで、繰り返し行われる。
【0045】
ステップS322において、CPU101は、アクセステーブルからオブジェクトの座標情報を取得する。座標情報とは、文書のページにおけるオブジェクトの表示位置(配置)を示す情報をいう。座標情報は文書データのうちボディに記述されており、ボディ解析によって抽出される。この例でキャッシュに記録されるデータセットは、オブジェクトの座標情報を含んでいる。
【0046】
ステップS323において、CPU101は、アクセステーブルからオブジェクトの表時サイズ情報を取得する。表示サイズ情報とは、文書のページにおけるオブジェクトの表示サイズ(大きさ)を示す情報をいう。表示サイズ情報は文書データのうちボディに記述されており、ボディ解析によって抽出される。この例でキャッシュに記録されるデータセットは、オブジェクトの表示サイズ情報を含んでいる。
【0047】
ステップS324において、CPU101は、表示領域サイズ情報を取得する。表示領域サイズ情報とは、表示領域のうち、その時点においてオブジェクトを配置可能な部分の大きさを示す情報をいう。例えば、既にページの上半分にオブジェクトが配置されている場合、オブジェクトを配置可能な部分は、ページの下半分である。この例でCPU101は、オブジェクトを配置可能な部分の左上端のy座標を、表示領域サイズ情報として取得する。表示領域の大きさはあらかじめ決まっているので、オブジェクトを配置可能な部分の左上端のy座標がわかれば、オブジェクトを配置可能な部分が特定される。表示領域サイズ情報は、RAM103に記憶されている。表示領域サイズ情報の初期値はゼロであり、後述する処理により更新される。なおxy直交座標系の原点はページの左上端の点であり、x軸は右向きが正方向、y軸は下向きが正方向である。
【0048】
ステップS325において、CPU101は、処理の対象となっているオブジェクト、すなわち配置を決定しようとするオブジェクトのサイズが、オブジェクトを配置可能な部分に収まるか判断する。オブジェクトが収まると判断された場合(S325:YES)、CPU101は、処理をステップS327に移行する。オブジェクトが収まらないと判断された場合(S325:NO)、CPU101は、処理をステップS326に移行する。
【0049】
ステップS326において、CPU101は、選択されたオブジェクトのうち、まだ処理の対象となっていないものがあるか判断する。まだ処理されていないオブジェクトがあると判断された場合(S326:YES)、CPU101は、処理をステップS322に移行する。まだ処理されていないオブジェクトはないと判断された場合(S326:NO)、CPU101は、図11の処理を終了する。
【0050】
ステップS327において、CPU101は、表示領域におけるオブジェクトの配置を決定する。この例において、CPU101は、オブジェクトの基準位置(例えば左上端)のx座標が、ステップS322で取得された座標情報のx座標と等しくなるように、また、基準位置のy座標が、ステップS324で取得されたy座標と等しくなるように、オブジェクトの配置を決定する。
【0051】
ステップS328において、CPU101は、表示領域サイズ情報を更新する。この例において、CPU101は、オブジェクトの右下端のy座標を、新しい表示領域サイズ情報としてRAM103に記憶する。
【0052】
再び図10を参照して説明する。ステップS330において、CPU101は、ステップS320において決定されたレイアウトに従ってオブジェクトが配置されたページの表示領域の表示データを生成する。
【0053】
図12は、ステップS320において生成された表示データに従って表示されるページの画面を例示する図である。この例では、画像I1、I2およびI3の3つの画像のオブジェクトが選択され、レイアウトされている。また、この例で、画像I1、I2およびI3は左寄せで配置されている。
【0054】
2−4.効果
以上で説明したように、本実施形態によれば、オブジェクト情報および位置情報のように、表示データの生成に必要な情報は、キャッシュから取得される。これにより、文書データの解析時間が短縮される。これは、ページ数の多い(例えば100ページ以上)文書の場合に特に有効である。また、キャッシュに記憶されたデータを用いて、文書データによって指定されるものと異なるレイアウトでオブジェクトが配置されたページの表示データが生成される。これは文書データのうち画像だけを集めた資料を作成する場合などに有用である。
【0055】
3.他の実施形態
本発明は上述の実施形態に限定されるものではなく種々の変形実施が可能である。以下、変形例をいくつか説明する。変形例の説明において実施形態と共通する要素には共通の参照符号が用いられる。以下で説明する変形例のうち2つ以上のものが組み合わせて用いられてもよい。
【0056】
3−1.変形例1
表示領域におけるオブジェクトの配置を決定するアルゴリズムは、図11のステップS327で説明したものに限定されない。表示領域内にオブジェクトを配置できるものであれば、どのようなアルゴリズムが用いられてもよい。
【0057】
例えば、表示領域におけるオブジェクトの配置を決定するアルゴリズムとして、以下のものが用いられてもよい。表示領域に最初に配置されるオブジェクトのx座標は、座標情報のx座標と等しくなるように決定される。表示領域に2番目以降に配置されるオブジェクトのx座標は、最初のオブジェクトのレイアウトに応じて決定される。最初のオブジェクトが左寄せ、すなわち左辺が表示領域の左端に位置するように配置された場合、2番目以降のオブジェクトも左寄せで配置される。最初のオブジェクトが中央揃え、すなわちオブジェクトのx方向の中心と表示領域のx方向の中心とが一致するように配置された場合、2番目以降のオブジェクトも中央揃えで配置される。最初のオブジェクトが左寄せの場合も同様である。
【0058】
あるいは、表示領域におけるオブジェクトの配置を決定するアルゴリズムとして、最適化処理により最も効率よく、すなわち多数のオブジェクトを配置できるように、オブジェクトの配置を決定するアルゴリズムが用いられてもよい。さらにあるいは、オブジェクトの配置はランダムに決定されてもよい。
【0059】
さらに別の例で、オブジェクトのサイズは、表示サイズ情報により示されるサイズに限定されない。レイアウトを変更する表示処理において、オブジェクトのサイズはあらかじめ決められていてもよい。この場合、CPU101は、オブジェクトのサイズがあらかじめ決められたサイズとなるように拡大・縮小等の必要な処理を行う。
【0060】
3−2.変形例2
配置可能な部分にオブジェクトが収まらないと判断された場合の処理は、図11のステップS326で説明したものに限定されない。配置可能な部分にオブジェクトが収まらないと判断された場合、CPU101は、配置可能な部分にオブジェクトが収まるようになるまでオブジェクトを縮小してもよい。
【0061】
あるいは、配置可能な部分にオブジェクトが収まらないと判断された場合、CPU101は、表示領域を拡張してもよい。例えば、表示領域が単一のページで構成されている場合、CPU101は、表示領域に第2ページ目を追加する。CPU101は、拡張により追加した表示領域にオブジェクトを配置する。この場合、表示領域サイズ情報は、第2ページにおけるy座標を示す。ここでいう「拡張」には、ページの追加のほか、ページサイズの拡大も含まれる。
【0062】
3−3.変形例3
レイアウトを変更する表示処理を開始する指示、および表示されるオブジェクトを特定する情報の取得方法は実施形態で説明したものに限定されない。これらの指示および情報は、例えば、プログラムに従ってCPU101が自動的に生成してもよい。また、実施形態では表示領域が1ページの大きさを有している例について説明したが、表示領域はこれに限定されるものではない。ある大きさを有しているのであれば、どのような大きさの領域が表示領域として用いられてもよい。
【0063】
3−4.変形例4
アクセステーブルに記録されるデータセットに含まれる情報は、実施形態で説明したものに限定されない。少なくとも対象ページ情報、対象オブジェクト情報および対象位置情報を含むものであれば、どのようなデータセットが用いられてもよい。
【0064】
例えば、データセットは、更新時刻を含まなくてもよい。この場合、キャッシュは、FIFO(First In First Out)型のメモリである。すなわち、データセット自体が更新時刻を含まなくても、図9のステップS220において、古いものから順番に削除される。このとき、CPU101は、最も古いデータセットのブックマークフラグがブックマーク「要」である場合、一旦キャッシュからデータセットを削除した後で、そのデータセットをもう一度キャッシュに書き込んでもよい。
【0065】
別の例で、データセットは、ブックマークフラグを含まなくてもよい。この場合、情報表示装置1は、ページブックマークに関する機能は有さない。例えば、図9のステップS220において、データセットは単純に更新時刻の古いものから順に削除される。
【0066】
さらに別の例で、データセットは、文書名を含まなくてもよい。この場合、情報表示装置1は、文書名が異なっている場合にアクセステーブルの内容を消去する機能(図9のステップS270)を有さない。このときCPU101は、他の条件(例えば、ユーザの指示入力)によりアクセステーブルの内容を消去してもよいし、アクセステーブルの内容を消去する機能を有していなくてもよい。
【0067】
さらに別の例で、データセットは、オブジェクトの座標情報を含まなくてもよい。変形例1で説明したような、オブジェクトの座標情報を用いないレイアウト処理(ランダム配置、最適化による配置等)が行われる場合は、座標情報は必要ない。
【0068】
さらに別の例で、データセットは、オブジェクトの表示サイズ情報情報を含まなくてもよい。変形例1で説明したような、オブジェクトの表示サイズ情報を用いないレイアウト処理が行われる場合は、表示サイズ情報情報は必要ない。
【0069】
3−5.変形例5
文書データのフォーマットはPDFに限定されない。オブジェクト情報およびページ構造情報が記述されたボディ部分と、位置情報が記述された位置情報部分とを含むデータ構造を有するものであれば、どのようなデータ構造を有する文書データが用いられてもよい。
【0070】
3−6.変形例6
図5のフローでは、キャッシュに記憶されているデータに応じて通常解析と高速解析とが切り替えて用いられた。しかし、キャッシュに記憶されているデータに応じた通常解析と高速解析との切り換えは省略されてもよい。すなわち、キャッシュに記憶されているデータによらずに常に通常解析が行われてもよい。
【0071】
3−7.他の変形例
情報表示装置1のハードウェア構成は図2で示されるものに限定されない。必要な機能構成を実現できるものであれば、どのようなハードウェア構成を有する装置が用いられてもよい。また上述の実施形態では情報表示装置1が電子ペーパである例について説明したが、必要な機能を有するものであれば、パーソナルコンピュータ、PDA(Personal Digital Assistant)、携帯電話機など電子ペーパ以外の装置であってもよい。実施形態において情報表示装置1は表示装置(表示体107)を内蔵していたが、表示装置は外付けであってもよい。
【0072】
また、情報表示装置1の機能構成とハードウェア構成の対応関係は、実施形態で説明したものに限定されない。補助記憶装置115がキャッシュとしての記憶領域を有していたが、RAM103等、補助記憶装置115以外の記憶装置がキャッシュとして機能してもよい。あるいは、CPU101が専用のキャッシュメモリを有していてもよい。
【0073】
さらに、実施形態では、CPU101が、指示手段13、解析手段14、指定手段15、選択手段16、レイアウト手段17、生成手段18および制御手段22としての機能を兼ね備えていた。しかし、CPU101以外のプロセッサがこれらの機能の一部または全部を有していてもよい。
【0074】
上述の実施形態においてCPU101によって実行されるプログラムは、磁気記録媒体(磁気テープ、磁気ディスク(HDD(Hard Disk Drive)、FD(Flexible Disk))など)、光記録媒体(光ディスク(CD(Compact Disk)、DVD(Digital Versatile Disk))など)、光磁気記録媒体、半導体メモリ(フラッシュROMなど)などのコンピュータ読取り可能な記録媒体に記憶した状態で提供されてもよい。また、このプログラムは、インターネットのようなネットワーク経由でダウンロードされてもよい。
【図面の簡単な説明】
【0075】
【図1】一実施形態に係る情報表示装置1の機能構成を示す図である。
【図2】情報表示装置1のハードウェア構成を示す図である。
【図3】情報表示装置1の外観を示す図である。
【図4A】PDFの書式を例示する図である。
【図4B】PDFの書式を例示する図である。
【図5】情報表示装置1の動作を示すフローチャートである。
【図6】ボディ解析の一例を示すフローチャートである。
【図7】ページツリーの具体例を示す図である。
【図8】アクセステーブル解析の一例を示すフローチャートである。
【図9】キャッシュの更新処理を示すフローチャートである。
【図10】レイアウトを変更する表示処理を示すフローチャートである。
【図11】レイアウト処理の詳細を示すフローチャートである。
【図12】表示データに従って表示されるページの画面を例示する図である。
【符号の説明】
【0076】
1…情報表示装置、11…文書記憶手段、12…キャッシュ手段、13…指示手段、14…解析手段、15…指定手段、16…選択手段、17…レイアウト手段、18…生成手段、21…キャッシュ制御手段、22…制御手段、30…表示装置、101…CPU、102…ROM、103…RAM、104…VRAM、105…I/O、106…UIボタン群、107…表示体、108…表示制御部、111…電源オン・オフ回路、112…電源制御部、113…電池、114…バス、115…補助記憶装置、117…指紋センサ、118…ネットワークIF
【技術分野】
【0001】
本発明は、特定のデータ構造を有する文書データを処理する技術に関する。
【背景技術】
【0002】
PDF(Portable Document Format)は、独自のデータ構造を有する、文書データの書式である。PDFはいわゆるテキスト形式やHTML(HyperText Markup Language)形式、画像データ(BMP形式)などと比較すると情報量が多く、その内容を解析して表示するにはある程度の時間が必要である。一度表示したページであっても、表示した内容をすべて記憶しておかない限り、再度表示する際にも再度解析が必要である。携帯型の情報処理装置においては特に、実装できるメモリ容量は制限されるので、表示した内容をすべて記憶しておくのは困難である。例えば、テキスト(文字)と画像が混在している文書のうち画像だけを表示したい、というようにレイアウトを変更したいような場合でも、文書データをすべて解析する必要があった(例えば、特許文献1−3参照)。
【0003】
【特許文献1】特表2000−511364号公報
【特許文献2】特開2000−172248号公報
【特許文献3】特開2003−85164号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
これに対し本発明は、特定のデータ構造を有する文書データのうち一部分のみをキャッシュし、キャッシュしたデータを用いてオブジェクトをレイアウトする技術を提供する。
【課題を解決するための手段】
【0005】
本発明は、文書に含まれるオブジェクトを特定するオブジェクト情報および前記文書のページ構造を示すページ構造情報が記述されたボディ部分と、前記オブジェクトが記憶されている位置を示す位置情報が記述された位置情報部分とを含むデータ構造を有する文書データを記憶する文書記憶手段と、供給されたデータをキャッシュするキャッシュ手段と、前記文書記憶手段に記憶された文書データの1ページを対象ページとして、前記対象ページの表示を指示する指示手段と、前記対象ページを特定する対象ページ情報が前記キャッシュ手段に記憶されていない場合、前記文書記憶手段に記憶された文書データのボディ部分に記述されたページ構造情報から、前記対象ページに表示されるオブジェクトを特定する情報を対象オブジェクト情報として取得し、前記位置情報部分から、前記対象オブジェクトが記憶されている位置を示す情報を対象位置情報として取得し、さらに、前記対象ページ情報、前記取得した対象オブジェクト情報および対象位置情報を含むデータセットを前記キャッシュ手段に供給する処理を行う解析手段と、表示領域を指定する指定手段と、前記キャッシュ手段に記憶されているオブジェクト情報の中から、前記表示領域に表示させるオブジェクトのオブジェクト情報を選択する選択手段と、前記選択手段により選択されたオブジェクト情報により特定されるオブジェクトの、前記表示領域におけるレイアウトを決定するレイアウト手段と、前記レイアウト手段により決定されたレイアウトに従って配置されたオブジェクトを有するページの画像を表示装置に表示させる表示データを生成する生成手段とを有する情報処理装置を提供する。
この情報処理装置によれば、キャッシュしたデータを用いて、文書データと異なるレイアウトでオブジェクトが配置された表示データが生成される。
【0006】
好ましい態様において、前記データセットが、前記対象オブジェクトのサイズを示す表示サイズ情報を含み、前記表示サイズ情報により示されるサイズが、前記表示領域のうちオブジェクトを配置可能な部分のサイズよりも大きい場合、前記レイアウト手段は、前記選択手段により選択されたオブジェクト情報により特定されるオブジェクトを縮小してからレイアウトを決定してもよい。
この情報処理装置によれば、オブジェクトのサイズが配置可能な部分のサイズよりも大きい場合、オブジェクトを縮小してからレイアウトが決定される。
【0007】
別の好ましい態様において、前記データセットが、前記対象オブジェクトのサイズを示す表示サイズ情報を含み、前記表示サイズ情報により示されるサイズが、前記表示領域のうちオブジェクトを配置可能な部分のサイズよりも大きい場合、前記レイアウト手段は、前記表示領域を拡張してからレイアウトを決定してもよい。
この情報処理装置によれば、オブジェクトのサイズが配置可能な部分のサイズよりも大きい場合、表示領域を拡張してからレイアウトが決定される。
【0008】
さらに別の好ましい態様において、前記データセットが、前記対象オブジェクトの配置を示す座標情報を含み、前記レイアウト手段は、前記表示領域に最初に配置されたオブジェクトの座標情報に応じて、2番目以降に配置されるオブジェクトのレイアウトを決定してもよい。
この情報処理装置によれば、最初に配置されるオブジェクトの配置に応じて、2番目以降に配置されるオブジェクトのレイアウトが決定される。
【0009】
また、本発明は、文書に含まれるオブジェクトを特定するオブジェクト情報および前記文書のページ構造を示すページ構造情報が記述されたボディ部分と、前記オブジェクトが記憶されている位置を示す位置情報が記述された位置情報部分とを含むデータ構造を有する文書データを記憶する文書記憶手段と、供給されたデータをキャッシュするキャッシュ手段とを有するコンピュータ装置に、前記文書記憶手段に記憶された文書データの1ページを対象ページとして、前記対象ページの表示を指示するステップと、前記対象ページを特定する対象ページ情報が前記キャッシュ手段に記憶されていない場合、前記文書記憶手段に記憶された文書データのボディ部分に記述されたページ構造情報から、前記対象ページに表示されるオブジェクトを特定する情報を対象オブジェクト情報として取得し、前記位置情報部分から、前記対象オブジェクトが記憶されている位置を示す情報を対象位置情報として取得し、さらに、前記対象ページ情報、前記取得した対象オブジェクト情報および対象位置情報を含むデータセットを前記キャッシュ手段に供給する処理を行うステップと、表示領域を指定するステップと、前記キャッシュ手段に記憶されているオブジェクト情報の中から、前記表示領域に表示させるオブジェクトのオブジェクト情報を選択するステップと、前記選択されたオブジェクト情報により特定されるオブジェクトの、前記表示領域におけるレイアウトを決定するステップと、前記決定されたレイアウトに従って配置されたオブジェクトを有するページの画像を表示装置に表示させる表示データを生成するステップとを実行させるプログラムを提供する。
さらに、本発明は、上述のプログラムを記憶したコンピュータ読み取り可能な記憶媒体を提供する。
このプログラムによれば、キャッシュしたデータを用いて、文書データと異なるレイアウトでオブジェクトが配置された表示データが生成される。
【発明を実施するための最良の形態】
【0010】
1.構成
図1は、本発明の一実施形態に係る情報表示装置1の機能構成を示す図である。情報表示装置1は、情報処理装置の一例である。文書記憶手段11は、特定のデータ構造を有する文書データを記憶する。特定のデータ構造とは、ボディ部分および位置情報部分とを含むデータ構造である。ボディ部分には、文書に含まれるオブジェクトを特定するオブジェクト情報および文書のページ構造を示すページ構造情報が記述される。位置情報部分には、オブジェクトが記憶されている位置(アドレス)を示す位置情報が記述される。キャッシュ手段12は、供給されたデータをキャッシュする。指示手段13は、文書記憶手段11に記憶された文書データの1ページを対象ページとして、対象ページの表示を指示する。解析手段14は、解析処理を行う。対象ページを特定する対象ページ情報が文書記憶手段11に記憶されていない場合、解析処理は、文書記憶手段11に記憶された文書データのボディ部分に記述されたページ構造情報から、対象ページに表示されるオブジェクトを特定する情報を対象オブジェクト情報として取得し、位置情報部分から、対象オブジェクトが記憶されている位置を示す情報を対象位置情報として取得し、さらに、対象ページ情報、取得した対象オブジェクト情報および対象位置情報を含むデータセットをキャッシュ手段12に供給する処理を含む。指定手段15は、表示領域を指定する。選択手段16は、キャッシュ手段12に記憶されているオブジェクト情報の中から、表示領域に表示させるオブジェクトのオブジェクト情報を選択する。レイアウト手段17は、選択手段16により選択されたオブジェクト情報により特定されるオブジェクトの、表示領域におけるレイアウトを決定する。生成手段18は、レイアウト手段17により決定されたレイアウトに従って配置されたオブジェクトを有するページの画像を表示装置30に表示させる表示データを生成する。制御手段22は、データの比較や入出力その他必要な処理を行う。
【0011】
ここで、データセットは、自身が更新された時刻を示す時刻情報を含んでいる。キャッシュ制御手段21は、対象オブジェクトのオブジェクト情報を含むデータセットがキャッシュ手段12に記憶されていない場合、かつ、キャッシュ手段12に記憶されているデータセットの量が所定のしきい値を超えた場合、キャッシュ手段12に記憶されている複数のデータセットのうち、時刻情報により示される時刻が古いものから優先的に削除するようキャッシュ手段12を制御する。さらにキャッシュ制御手段21は、データが削除された後に、前記解析処理により取得されたオブジェクト情報および位置情報を含むデータセットを記憶するようキャッシュ手段12を制御する。
【0012】
また、文書データは、文書名を含み、データセットは、対応する文書名を含んでいる。キャッシュ手段12に記憶されているデータセットに含まれる文書名が、指示手段13により表示が指示された文書データの文書名と異なる場合、キャッシュ制御手段21は、記憶されているデータセットを削除するようキャッシュ手段12を制御する。
【0013】
図2は、情報表示装置1のハードウェア構成を示す図である。この例で、情報表示装置1は、電子ペーパである。CPU(Central Processing Unit)101は、情報表示装置1の構成要素を制御する制御装置である。ROM(Read Only Memory)102は、情報表示装置1の起動に必要なプログラムやデータを記憶する不揮発性の記憶装置である。RAM(Random Access Memory)103は、CPU101がプログラムを実行する際のワークエリアとして機能する記憶装置である。VRAM(Video Random Access Memory)104は、表示体107に表示させる画像(以下「メイン画像」という)を示すデータを記憶する記憶装置である。VRAM104は、メイン画像の記憶領域を有しており、メイン画像はその記憶領域に記憶される。I/O(Input/Output)105は、データや信号の入出力を管理するインターフェースである。UI(User Interface)ボタン群106は、ユーザの操作に応じた信号を出力する装置、例えば、ボタン(書き換えボタンやページ送りボタン、決定ボタンなど)・キーパッド・ホイール・レバー・タッチパネル・ペンデバイスなどの操作子を含む入力装置である。補助記憶装置115は、表示体107に表示することが可能なデータを記憶する記憶装置、例えば、フラッシュメモリやHDD(Hard Disk Drive)である。この例で、補助記憶装置115は、文書データの記憶領域およびキャッシュとしての記憶領域を有する。UIボタン群106はI/O105に接続されており、UIボタン群106から出力された信号はI/O105を介してCPU101に入力される。タイマTは、時間を示す信号を出力する計時装置である。
【0014】
表示体107は、記憶性表示素子である電気泳動表示素子を有する電気泳動ディスプレイ(Electrophoretic Display、以下「EPD」という)である。表示制御部108は、表示体107の描画制御を行う信号を出力する装置である。以下、必要に応じて表示体107と表示制御部108をあわせて「メインディスプレイ」という。電源オン・オフ回路111は、表示制御部108・CPU101などの要素への電力の供給を行ったり停止したりする回路である。以下、ある構成要素に電力を供給することを「電源をオンする」と、電力の供給を停止することを「電源をオフする」という。電源制御部112は、情報表示装置1の電源管理を行う装置である。具体的には、電源制御部112は、電源オン・オフ回路111を制御して表示制御部108およびCPU101の電源をオンまたはオフする。また、電源制御部112は、電池113の残量を監視する。電池113は、表示制御部108・CPU101・RAM103など、情報表示装置1の構成要素に電力を供給する。バス114は、構成要素間での信号の伝送に用いられる伝送路である。
【0015】
指紋センサ117は、ユーザの指紋を静電的に読み取り、読み取った指紋の画像を示す信号を出力する装置である。指紋センサ117はI/O105に接続されており、指紋センサ117から出力された信号はI/O105を介してCPU101に入力される。ネットワークIF(Interface)118は、ネットワークを介した通信に用いられるインターフェースである。
【0016】
ROM102は、以下で説明する処理を行う制御プログラムを記憶している。CPU101がこの制御プログラムを実行することにより、図1に示される機能が情報表示装置1に実装される。ここで、CPU101は、指示手段13、解析手段14、指定手段15、選択手段16、レイアウト手段17、生成手段18および制御手段22の一例である。補助記憶装置115は、文書記憶手段11およびキャッシュ手段12の一例である。
【0017】
図3は、情報表示装置1の外観を示す図である。情報表示装置1は、筐体の前面に表示体107の表示面、およびUIボタン群106を有する。
以下においては、文書データの書式がPDFである場合を例として説明する。
【0018】
図4Aおよび図4Bは、PDFの書式を例示する図である。PDF形式のファイル(データ)は、ヘッダ(File Header)、ボディ(File Body)、相互参照表(Cross Reference Table)、トレーラ(File Trailer)、ファイル終端部分の5つの部分を含む。これらの部分は互いに分離しており、例えばボディの中に相互参照表が含まれているということはない。
【0019】
ヘッダには、PDFのバージョンを示すバージョン番号が記述される。ボディには、オブジェクト(PDFの規格では「間接オブジェクト」といわれる)の並び(列)が記述される。間接オブジェクトには、ラベル(識別子)が付与される。ラベルは、オブジェクトを特定するオブジェクト番号(object number)および更新された回数を示す生成番号(generation number)を含む。オブジェクト番号は、オブジェクトを特定するオブジェクト情報の一例である。オブジェクトには、例えば以下の種類がある。(1)カタログ(Catalog):ページ群への参照などを指定する。(2)ページ群(Pages):各ページを集めたオブジェクト。それぞれのページオブジェクトへの参照を指定する。(3)ページ(Page):このオブジェクトが一ページを表す。ページ群オブジェクトとページオブジェクトの組み合わせにより、その文書のページ構造(ページツリー)が示される。すなわち、ページ群オブジェクトおよびページオブジェクトは、文書のページ構造を示すページ構造情報の一例である。(4)フォント(Font):フォントを指定する。(5)ストリーム(stream):表示する文章や図形の情報を記述する。なお、これらはあくまでオブジェクトの種類の一例である。
【0020】
相互参照表には、各間接オブジェクトの、ファイル内における記憶位置(格納位置、あるいはオフセット)が記述される。相互参照表は、位置情報部分の一例である。相互参照表は、キーワード「xref」を含む行で始まる。2行目にあるのは「サブセクション」である。相互参照表は1つ以上のサブセクションを含むことができる。この例の場合は、オブジェクト番号0から9個のオブジェクトが含まれるサブセクションであることを示している。3行目以降に記述されているのは、個々の相互参照のエントリである。各エントリのうち、最後が「n」になっているものは「使用中エントリ(in-use entry)」である。使用中エントリは、ファイルの先頭からオブジェクトの先頭までの10桁のバイトオフセット、5桁の生成番号、使用中エントリであることを示すキーワード「n」、および2文字のEOL(End Of Line)を含む。各エントリのうち、最後が「f」になっているのが「フリーエントリ(free entry)」である。フリーエントリは、次のフリーエントリの10桁のオブジェクト番号、5桁の生成番号、フリーエントリであることを示すキーワード「f」、および2文字のEOLを含む。相互参照表により、間接オブジェクトのランダムアクセスが可能になる。
【0021】
トレーラには、相互参照表のオフセットを示すオフセット情報や、特殊な辞書が記述される。フッタには、ファイルが終端することや、トレーラのオフセットを示すオフセット情報が記述される。
【0022】
2.動作
2−1.全体動作
図5は、情報表示装置1の動作を示すフローチャートである。ステップS100において、文書の表示を指示するイベントすなわちPDFファイルの解析をトリガするイベント、この例では、ユーザによるキー入力が行われる。このイベントが発生すると、CPU101は、PDFファイルの解析を指示する。この指示は、処理の対象となる文書データ(以下、「対象文書データ」という)を特定する情報、およびその文書のうち表示されるページ(以下、「対象ページ」という)を特定する情報を含んでいる。CPU101は、ユーザのキー入力に応じて、処理の対象となる文書データおよびページを決定する。
【0023】
PDFファイルの解析が指示されると、ステップS110において、CPU101は、対象ページに関するデータがキャッシュに記憶されているか判断する。具体的には、CPU101は、対象オブジェクト情報すなわち対象ページに表示されるオブジェクトのオブジェクト情報、および対象位置情報すなわち対象オブジェクトの位置情報がキャッシュに記憶されているか判断する。対象ページに関するデータがキャッシュに記憶されていると判断された場合(S110:YES)、CPU101は、処理をステップS130に移行する。対象ページに関するデータがキャッシュに記憶されていると判断された場合(S110:NO)、CPU101は、処理をステップS120に移行する。
【0024】
ステップS120において、CPU101は、解析処理として通常解析を行う。通常解析とは、従来行われている、PDFのデータ構造に従った解析処理をいう。通常解析は、実行される順番に、ヘッダ解析、フッタ解析、トレーラ解析およびボディ解析を含む。ヘッダ解析において、CPU101は、PDFのバージョン情報を取得する。フッタ解析において、CPU101は、PDFファイルの終端位置、およびトレーラが記憶されている位置を示すオフセット情報を取得する。トレーラ解析において、CPU101は、相互参照表のオフセット情報および特殊な辞書を取得する。さらに、トレーラ解析において、CPU101は、相互参照表を参照してすべてのオブジェクトのオフセット情報を取得する。以下、ヘッダ解析、フッタ解析およびトレーラ解析をまとめて、「初期解析」という。
【0025】
ボディ解析において、CPU101は、対象ページの内容およびページ表示に関するデータを取得する。ボディ解析はさらに、カタログ解析、ページツリー解析、コンテンツ解析およびリソース辞書解析に区分される。カタログ解析において、CPU101は、文書名、文書の内容やアウトライン、アーティクルスレッド、その他の属性を定義する他のオブジェクトの参照を取得する。さらに、カタログ解析において、CPU101は、アウトラインとサムネイルのどちらを自動的に表示するかとか、ドキュメントを開いたときに最初のページ以外の位置を表示するといった、ドキュメントを画面上にどのように表示するかについての情報を取得する。さらに、カタログ解析において、CPU101は、対象オブジェクト情報を取得する。ページツリー解析において、CPU101は、文書のページツリーすなわちページ構造を解析する。文書のページ構造は、前述のようにページ群オブジェクトおよびページオブジェクトによって規定される。最後に、CPU101は、解析により取得した情報をキャッシュに追加する。
【0026】
図6は、ボディ解析の一例を示すフローチャートである。CPU101は、カタログデータを、ページツリーデータ(ページ群オブジェクトおよびページオブジェクト)が現れるまで順次データを解析し、解析した結果を記憶する(ステップS121〜S123)。次にCPU101は、指定されたページオブジェクトまで順次ページツリーを解析し、解析した結果を記憶する(ステップS124〜S126)。ステップS127において、CPU101は、対象オブジェクトのオブジェクト番号を取得する。ステップS128において、CPU101は、対象オブジェクトのオフセット情報を取得する。ステップS129において、CPU101は、キャッシュを更新する。
【0027】
図7は、ページツリーの具体例を示す図である。ページ群オブジェクトPAは、子要素としてページ群オブジェクトPB、PCおよびPDを有する。ページ群オブジェクトPBは、子要素としてページオブジェクトPEおよびPEを有する。このようにしてページツリーを辿っていくと、図7の文書は、順番に、ページオブジェクトPE、PF、PK、PL、PH、PIおよびPJを有することが解析される。これらのページオブジェクトに対して、順番に、1、2、3、…、7というようにページ番号が割り当てられる。
【0028】
カタログ解析およびページツリー解析を完了すると、CPU101は、キャッシュに記憶させるデータセットを生成する。データセットは、そのデータセットが更新された時刻、文書名、ブックマークフラグ(ブックマークの要否、すなわち削除の可否を示すフラグ)、対象ページのページ番号を示す対象ページ情報、対象オブジェクト情報および対象位置情報を含む。CPU101は、生成したデータセットを、キャッシュに記憶させる。キャッシュにおいて、データセットは、表の形式で記憶される。以下、この表を「アクセステーブル」という。すなわちアクセステーブルは、対象ページ情報、対象オブジェクト情報および対象位置情報を含むデータセットを複数記録している。
【0029】
コンテンツ解析およびリソース解析において、CPU101は、表示に関するコンテンツ解析およびリソース解析を行う。すなわち、CPU101は、ページの表示に関するデータを取得する。
【0030】
再び図5を参照して説明する。ステップS130において、CPU101は、解析処理として高速解析を行う。高速解析とは、通常解析のボディ解析のうち、カタログ解析およびページツリー解析をアクセステーブル解析で置換した処理をいう。アクセステーブル解析において、CPU101は、対象ページのページ番号を検索キーとしてアクセステーブルを検索する。対象ページのページ番号を発見すると、CPU101は、アクセステーブルから、対象ページに対応するオブジェクト番号およびオフセット情報を取得する。
【0031】
図8は、アクセステーブル解析の一例を示すフローチャートである。CPU101は、対象ページのページ番号が現れるまでアクセステーブルを順次検索し、検索した結果を記憶する(ステップS131〜S133)。ステップS134において、CPU101は、対象オブジェクトのオブジェクト番号を取得する。ステップS135において、CPU101は、対象オブジェクトのオフセット情報を取得する。ステップS136において、CPU101は、キャッシュを更新する。
【0032】
再び図5を参照して説明する。ステップS140において、CPU101は、表示データを作成する。表示データは、対象オブジェクトのオブジェクト情報および位置情報を用いて生成される。
【0033】
2−2.キャッシュの更新
図9は、キャッシュの更新処理を示すフローチャートである。図9のフローは、図6のステップS129の処理および図8のステップS136の処理に相当するものである。ステップS200において、CPU101は、これから行うべき処理が、データセットの追加、更新時刻の更新およびデータセットの削除のうちいずれの処理であるか決定する。処理対象の文書データに含まれる文書名がアクセステーブルに記録された文書名と異なる場合、CPU101は、データセットの削除を行うことを決定する。対象ページに関するデータがキャッシュに記憶されていない場合、すなわちステップS120の処理が実行された場合、CPU101は、データセットの追加を行うことを決定する。対象ページに関するデータがキャッシュに記憶されていた場合、すなわちステップS130の処理が実行された場合、CPU101は、更新時刻の更新を行うことを決定する。データセットの追加を行うと判断された場合(S200:データセット追加)、CPU101は、処理をステップS210に移行する。時刻の更新を行なうと判断された場合(S200:時刻更新)、CPU101は、処理をステップS250に移行する。データセットの削除を行うと判断された場合(S200:データセット削除)、CPU101は、処理をステップS270に移行する。
【0034】
ステップS210において、CPU101は、アクセステーブルの使用数、すなわちアクセステーブルに記録されているデータセットの数がしきい値を超えたか判断する。データセットの数がしきい値を超えたと判断された場合(S210:YES)、CPU101は、処理をステップS220に移行する。データセットの数がしきい値を超えていないと判断された場合(S210:NO)、CPU101は、処理をステップS240に移行する。
【0035】
ステップS220において、CPU101は、アクセステーブルの中から、更新時刻が一番古いデータセットを検索する。ステップS230において、CPU101は、発見したデータセットをアクセステーブルから削除する。ただしCPU101は、ステップS220において更新時刻が一番古いデータセットのブックマークフラグがブックマーク「要」すなわち削除「否」を示す場合、CPU101は、更新時刻が2番目に古いデータセットを検索する。以下、更新時刻が2番目に古いデータセットのブックマークフラグがブックマーク「要」である場合、CPU101は、更新時刻が3番目に古いデータセットを検索するというように、ブックマーク「不要」のデータセットが現れるまで更新時刻が古いものから順に検索する。
【0036】
ステップS240において、CPU101は、ボディ解析により取得したデータから必要なデータ(更新時刻、文書名、ブックマークフラグ、対象ページ情報、対象オブジェクト情報および対象位置情報)を抽出し、抽出したデータを含むデータセットをアクセステーブルに追加する。
【0037】
ステップS250において、CPU101は、データセットの更新時刻を現在時刻に書き換える。
【0038】
ステップS260において、CPU101は、アクセステーブルの使用数を更新、すなわち1増加させる。ただし、CPU101は、アクセステーブルの使用数が既に最大値に達している場合は、使用数を増加させない。アクセステーブルの使用数を更新すると、CPU101は、図9に示される処理を終了する。
【0039】
ステップS270において、CPU101は、アクセステーブルに記録されたすべてのデータセットを削除する。これにより、アクセステーブルの使用数はゼロになる。データセットを削除すると、CPU101は、処理を再びステップS200に移行する。
【0040】
2−3.レイアウトを変更する表示
図10は、レイアウトを変更する表示処理を示すフローチャートである。「レイアウトを変更する表示処理」とは、文書データによって示されているレイアウトとは異なるレイアウトで配置されたオブジェクトを表示する処理をいう。レイアウトを変更する表示処理は、例えば、テキストと画像とが混在する文書において、画像だけを表示させる処理である。
【0041】
ステップS300において、レイアウトを変更する表示処理をトリガするイベント、この例ではユーザによるキー入力が行われる。ユーザはキー入力により、レイアウトを変更する表示処理を開始する指示、および表示されるオブジェクトを特定する情報を入力する。「表示されるオブジェクトを特定する情報」は、例えば、「今まで表示したページのうち画像だけを表示する」というように、キャッシュに記憶されたオブジェクト情報により示されるオブジェクトの中から少なくとも1つのオブジェクトを選択する条件(以下「選択条件」という)を示す。CPU101は、このイベントに応じて、表示処理を開始する指示、および表示されるオブジェクトを特定する情報を生成する。さらに、CPU101は、選択されたオブジェクトが表示される表示領域を特定する情報を生成する。この例では、1ページ分の領域が表示領域となることが制御プログラムによりあらかじめ決められている。
【0042】
ステップS310において、CPU101は、アクセステーブル解析を行う。アクセステーブル解析は図8で説明したものと基本的に同様であるが、ステップS300で入力された選択条件を満たすオブジェクトのオブジェクト情報を含むデータセットが抽出される。
【0043】
ステップS320において、CPU101は、レイアウト処理を行う。レイアウト処理とは、ステップS310のアクセステーブル解析により抽出されたオブジェクト情報により特定されるオブジェクトの、表示領域におけるレイアウトを決定する処理をいう。
【0044】
図11は、レイアウト処理の詳細を示すフローチャートである。ステップS321〜S329までの処理は、所定の条件が満たされるまで、ここでは、ステップS310で抽出されたすべてのデータセットについての処理が終わるまで、繰り返し行われる。
【0045】
ステップS322において、CPU101は、アクセステーブルからオブジェクトの座標情報を取得する。座標情報とは、文書のページにおけるオブジェクトの表示位置(配置)を示す情報をいう。座標情報は文書データのうちボディに記述されており、ボディ解析によって抽出される。この例でキャッシュに記録されるデータセットは、オブジェクトの座標情報を含んでいる。
【0046】
ステップS323において、CPU101は、アクセステーブルからオブジェクトの表時サイズ情報を取得する。表示サイズ情報とは、文書のページにおけるオブジェクトの表示サイズ(大きさ)を示す情報をいう。表示サイズ情報は文書データのうちボディに記述されており、ボディ解析によって抽出される。この例でキャッシュに記録されるデータセットは、オブジェクトの表示サイズ情報を含んでいる。
【0047】
ステップS324において、CPU101は、表示領域サイズ情報を取得する。表示領域サイズ情報とは、表示領域のうち、その時点においてオブジェクトを配置可能な部分の大きさを示す情報をいう。例えば、既にページの上半分にオブジェクトが配置されている場合、オブジェクトを配置可能な部分は、ページの下半分である。この例でCPU101は、オブジェクトを配置可能な部分の左上端のy座標を、表示領域サイズ情報として取得する。表示領域の大きさはあらかじめ決まっているので、オブジェクトを配置可能な部分の左上端のy座標がわかれば、オブジェクトを配置可能な部分が特定される。表示領域サイズ情報は、RAM103に記憶されている。表示領域サイズ情報の初期値はゼロであり、後述する処理により更新される。なおxy直交座標系の原点はページの左上端の点であり、x軸は右向きが正方向、y軸は下向きが正方向である。
【0048】
ステップS325において、CPU101は、処理の対象となっているオブジェクト、すなわち配置を決定しようとするオブジェクトのサイズが、オブジェクトを配置可能な部分に収まるか判断する。オブジェクトが収まると判断された場合(S325:YES)、CPU101は、処理をステップS327に移行する。オブジェクトが収まらないと判断された場合(S325:NO)、CPU101は、処理をステップS326に移行する。
【0049】
ステップS326において、CPU101は、選択されたオブジェクトのうち、まだ処理の対象となっていないものがあるか判断する。まだ処理されていないオブジェクトがあると判断された場合(S326:YES)、CPU101は、処理をステップS322に移行する。まだ処理されていないオブジェクトはないと判断された場合(S326:NO)、CPU101は、図11の処理を終了する。
【0050】
ステップS327において、CPU101は、表示領域におけるオブジェクトの配置を決定する。この例において、CPU101は、オブジェクトの基準位置(例えば左上端)のx座標が、ステップS322で取得された座標情報のx座標と等しくなるように、また、基準位置のy座標が、ステップS324で取得されたy座標と等しくなるように、オブジェクトの配置を決定する。
【0051】
ステップS328において、CPU101は、表示領域サイズ情報を更新する。この例において、CPU101は、オブジェクトの右下端のy座標を、新しい表示領域サイズ情報としてRAM103に記憶する。
【0052】
再び図10を参照して説明する。ステップS330において、CPU101は、ステップS320において決定されたレイアウトに従ってオブジェクトが配置されたページの表示領域の表示データを生成する。
【0053】
図12は、ステップS320において生成された表示データに従って表示されるページの画面を例示する図である。この例では、画像I1、I2およびI3の3つの画像のオブジェクトが選択され、レイアウトされている。また、この例で、画像I1、I2およびI3は左寄せで配置されている。
【0054】
2−4.効果
以上で説明したように、本実施形態によれば、オブジェクト情報および位置情報のように、表示データの生成に必要な情報は、キャッシュから取得される。これにより、文書データの解析時間が短縮される。これは、ページ数の多い(例えば100ページ以上)文書の場合に特に有効である。また、キャッシュに記憶されたデータを用いて、文書データによって指定されるものと異なるレイアウトでオブジェクトが配置されたページの表示データが生成される。これは文書データのうち画像だけを集めた資料を作成する場合などに有用である。
【0055】
3.他の実施形態
本発明は上述の実施形態に限定されるものではなく種々の変形実施が可能である。以下、変形例をいくつか説明する。変形例の説明において実施形態と共通する要素には共通の参照符号が用いられる。以下で説明する変形例のうち2つ以上のものが組み合わせて用いられてもよい。
【0056】
3−1.変形例1
表示領域におけるオブジェクトの配置を決定するアルゴリズムは、図11のステップS327で説明したものに限定されない。表示領域内にオブジェクトを配置できるものであれば、どのようなアルゴリズムが用いられてもよい。
【0057】
例えば、表示領域におけるオブジェクトの配置を決定するアルゴリズムとして、以下のものが用いられてもよい。表示領域に最初に配置されるオブジェクトのx座標は、座標情報のx座標と等しくなるように決定される。表示領域に2番目以降に配置されるオブジェクトのx座標は、最初のオブジェクトのレイアウトに応じて決定される。最初のオブジェクトが左寄せ、すなわち左辺が表示領域の左端に位置するように配置された場合、2番目以降のオブジェクトも左寄せで配置される。最初のオブジェクトが中央揃え、すなわちオブジェクトのx方向の中心と表示領域のx方向の中心とが一致するように配置された場合、2番目以降のオブジェクトも中央揃えで配置される。最初のオブジェクトが左寄せの場合も同様である。
【0058】
あるいは、表示領域におけるオブジェクトの配置を決定するアルゴリズムとして、最適化処理により最も効率よく、すなわち多数のオブジェクトを配置できるように、オブジェクトの配置を決定するアルゴリズムが用いられてもよい。さらにあるいは、オブジェクトの配置はランダムに決定されてもよい。
【0059】
さらに別の例で、オブジェクトのサイズは、表示サイズ情報により示されるサイズに限定されない。レイアウトを変更する表示処理において、オブジェクトのサイズはあらかじめ決められていてもよい。この場合、CPU101は、オブジェクトのサイズがあらかじめ決められたサイズとなるように拡大・縮小等の必要な処理を行う。
【0060】
3−2.変形例2
配置可能な部分にオブジェクトが収まらないと判断された場合の処理は、図11のステップS326で説明したものに限定されない。配置可能な部分にオブジェクトが収まらないと判断された場合、CPU101は、配置可能な部分にオブジェクトが収まるようになるまでオブジェクトを縮小してもよい。
【0061】
あるいは、配置可能な部分にオブジェクトが収まらないと判断された場合、CPU101は、表示領域を拡張してもよい。例えば、表示領域が単一のページで構成されている場合、CPU101は、表示領域に第2ページ目を追加する。CPU101は、拡張により追加した表示領域にオブジェクトを配置する。この場合、表示領域サイズ情報は、第2ページにおけるy座標を示す。ここでいう「拡張」には、ページの追加のほか、ページサイズの拡大も含まれる。
【0062】
3−3.変形例3
レイアウトを変更する表示処理を開始する指示、および表示されるオブジェクトを特定する情報の取得方法は実施形態で説明したものに限定されない。これらの指示および情報は、例えば、プログラムに従ってCPU101が自動的に生成してもよい。また、実施形態では表示領域が1ページの大きさを有している例について説明したが、表示領域はこれに限定されるものではない。ある大きさを有しているのであれば、どのような大きさの領域が表示領域として用いられてもよい。
【0063】
3−4.変形例4
アクセステーブルに記録されるデータセットに含まれる情報は、実施形態で説明したものに限定されない。少なくとも対象ページ情報、対象オブジェクト情報および対象位置情報を含むものであれば、どのようなデータセットが用いられてもよい。
【0064】
例えば、データセットは、更新時刻を含まなくてもよい。この場合、キャッシュは、FIFO(First In First Out)型のメモリである。すなわち、データセット自体が更新時刻を含まなくても、図9のステップS220において、古いものから順番に削除される。このとき、CPU101は、最も古いデータセットのブックマークフラグがブックマーク「要」である場合、一旦キャッシュからデータセットを削除した後で、そのデータセットをもう一度キャッシュに書き込んでもよい。
【0065】
別の例で、データセットは、ブックマークフラグを含まなくてもよい。この場合、情報表示装置1は、ページブックマークに関する機能は有さない。例えば、図9のステップS220において、データセットは単純に更新時刻の古いものから順に削除される。
【0066】
さらに別の例で、データセットは、文書名を含まなくてもよい。この場合、情報表示装置1は、文書名が異なっている場合にアクセステーブルの内容を消去する機能(図9のステップS270)を有さない。このときCPU101は、他の条件(例えば、ユーザの指示入力)によりアクセステーブルの内容を消去してもよいし、アクセステーブルの内容を消去する機能を有していなくてもよい。
【0067】
さらに別の例で、データセットは、オブジェクトの座標情報を含まなくてもよい。変形例1で説明したような、オブジェクトの座標情報を用いないレイアウト処理(ランダム配置、最適化による配置等)が行われる場合は、座標情報は必要ない。
【0068】
さらに別の例で、データセットは、オブジェクトの表示サイズ情報情報を含まなくてもよい。変形例1で説明したような、オブジェクトの表示サイズ情報を用いないレイアウト処理が行われる場合は、表示サイズ情報情報は必要ない。
【0069】
3−5.変形例5
文書データのフォーマットはPDFに限定されない。オブジェクト情報およびページ構造情報が記述されたボディ部分と、位置情報が記述された位置情報部分とを含むデータ構造を有するものであれば、どのようなデータ構造を有する文書データが用いられてもよい。
【0070】
3−6.変形例6
図5のフローでは、キャッシュに記憶されているデータに応じて通常解析と高速解析とが切り替えて用いられた。しかし、キャッシュに記憶されているデータに応じた通常解析と高速解析との切り換えは省略されてもよい。すなわち、キャッシュに記憶されているデータによらずに常に通常解析が行われてもよい。
【0071】
3−7.他の変形例
情報表示装置1のハードウェア構成は図2で示されるものに限定されない。必要な機能構成を実現できるものであれば、どのようなハードウェア構成を有する装置が用いられてもよい。また上述の実施形態では情報表示装置1が電子ペーパである例について説明したが、必要な機能を有するものであれば、パーソナルコンピュータ、PDA(Personal Digital Assistant)、携帯電話機など電子ペーパ以外の装置であってもよい。実施形態において情報表示装置1は表示装置(表示体107)を内蔵していたが、表示装置は外付けであってもよい。
【0072】
また、情報表示装置1の機能構成とハードウェア構成の対応関係は、実施形態で説明したものに限定されない。補助記憶装置115がキャッシュとしての記憶領域を有していたが、RAM103等、補助記憶装置115以外の記憶装置がキャッシュとして機能してもよい。あるいは、CPU101が専用のキャッシュメモリを有していてもよい。
【0073】
さらに、実施形態では、CPU101が、指示手段13、解析手段14、指定手段15、選択手段16、レイアウト手段17、生成手段18および制御手段22としての機能を兼ね備えていた。しかし、CPU101以外のプロセッサがこれらの機能の一部または全部を有していてもよい。
【0074】
上述の実施形態においてCPU101によって実行されるプログラムは、磁気記録媒体(磁気テープ、磁気ディスク(HDD(Hard Disk Drive)、FD(Flexible Disk))など)、光記録媒体(光ディスク(CD(Compact Disk)、DVD(Digital Versatile Disk))など)、光磁気記録媒体、半導体メモリ(フラッシュROMなど)などのコンピュータ読取り可能な記録媒体に記憶した状態で提供されてもよい。また、このプログラムは、インターネットのようなネットワーク経由でダウンロードされてもよい。
【図面の簡単な説明】
【0075】
【図1】一実施形態に係る情報表示装置1の機能構成を示す図である。
【図2】情報表示装置1のハードウェア構成を示す図である。
【図3】情報表示装置1の外観を示す図である。
【図4A】PDFの書式を例示する図である。
【図4B】PDFの書式を例示する図である。
【図5】情報表示装置1の動作を示すフローチャートである。
【図6】ボディ解析の一例を示すフローチャートである。
【図7】ページツリーの具体例を示す図である。
【図8】アクセステーブル解析の一例を示すフローチャートである。
【図9】キャッシュの更新処理を示すフローチャートである。
【図10】レイアウトを変更する表示処理を示すフローチャートである。
【図11】レイアウト処理の詳細を示すフローチャートである。
【図12】表示データに従って表示されるページの画面を例示する図である。
【符号の説明】
【0076】
1…情報表示装置、11…文書記憶手段、12…キャッシュ手段、13…指示手段、14…解析手段、15…指定手段、16…選択手段、17…レイアウト手段、18…生成手段、21…キャッシュ制御手段、22…制御手段、30…表示装置、101…CPU、102…ROM、103…RAM、104…VRAM、105…I/O、106…UIボタン群、107…表示体、108…表示制御部、111…電源オン・オフ回路、112…電源制御部、113…電池、114…バス、115…補助記憶装置、117…指紋センサ、118…ネットワークIF
【特許請求の範囲】
【請求項1】
文書に含まれるオブジェクトを特定するオブジェクト情報および前記文書のページ構造を示すページ構造情報が記述されたボディ部分と、前記オブジェクトが記憶されている位置を示す位置情報が記述された位置情報部分とを含むデータ構造を有する文書データを記憶する文書記憶手段と、
供給されたデータをキャッシュするキャッシュ手段と、
前記文書記憶手段に記憶された文書データの1ページを対象ページとして、前記対象ページの表示を指示する指示手段と、
前記対象ページを特定する対象ページ情報が前記キャッシュ手段に記憶されていない場合、前記文書記憶手段に記憶された文書データのボディ部分に記述されたページ構造情報から、前記対象ページに表示されるオブジェクトを特定する情報を対象オブジェクト情報として取得し、前記位置情報部分から、前記対象オブジェクトが記憶されている位置を示す情報を対象位置情報として取得し、さらに、前記対象ページ情報、前記取得した対象オブジェクト情報および対象位置情報を含むデータセットを前記キャッシュ手段に供給する処理を行う解析手段と、
表示領域を指定する指定手段と、
前記キャッシュ手段に記憶されているオブジェクト情報の中から、前記表示領域に表示させるオブジェクトのオブジェクト情報を選択する選択手段と、
前記選択手段により選択されたオブジェクト情報により特定されるオブジェクトの、前記表示領域におけるレイアウトを決定するレイアウト手段と、
前記レイアウト手段により決定されたレイアウトに従って配置されたオブジェクトを有するページの画像を表示装置に表示させる表示データを生成する生成手段と
を有する情報処理装置。
【請求項2】
前記データセットが、前記対象オブジェクトのサイズを示す表示サイズ情報を含み、
前記表示サイズ情報により示されるサイズが、前記表示領域のうちオブジェクトを配置可能な部分のサイズよりも大きい場合、前記レイアウト手段は、前記選択手段により選択されたオブジェクト情報により特定されるオブジェクトを縮小してからレイアウトを決定する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記データセットが、前記対象オブジェクトのサイズを示す表示サイズ情報を含み、
前記表示サイズ情報により示されるサイズが、前記表示領域のうちオブジェクトを配置可能な部分のサイズよりも大きい場合、前記レイアウト手段は、前記表示領域を拡張してからレイアウトを決定する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項4】
前記データセットが、前記対象オブジェクトの配置を示す座標情報を含み、
前記レイアウト手段は、前記表示領域に最初に配置されたオブジェクトの座標情報に応じて、2番目以降に配置されるオブジェクトのレイアウトを決定する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項5】
文書に含まれるオブジェクトを特定するオブジェクト情報および前記文書のページ構造を示すページ構造情報が記述されたボディ部分と、前記オブジェクトが記憶されている位置を示す位置情報が記述された位置情報部分とを含むデータ構造を有する文書データを記憶する文書記憶手段と、供給されたデータをキャッシュするキャッシュ手段とを有するコンピュータ装置に、
前記文書記憶手段に記憶された文書データの1ページを対象ページとして、前記対象ページの表示を指示するステップと、
前記対象ページを特定する対象ページ情報が前記キャッシュ手段に記憶されていない場合、前記文書記憶手段に記憶された文書データのボディ部分に記述されたページ構造情報から、前記対象ページに表示されるオブジェクトを特定する情報を対象オブジェクト情報として取得し、前記位置情報部分から、前記対象オブジェクトが記憶されている位置を示す情報を対象位置情報として取得し、さらに、前記対象ページ情報、前記取得した対象オブジェクト情報および対象位置情報を含むデータセットを前記キャッシュ手段に供給する処理を行うステップと、
表示領域を指定するステップと、
前記キャッシュ手段に記憶されているオブジェクト情報の中から、前記表示領域に表示させるオブジェクトのオブジェクト情報を選択するステップと、
前記選択されたオブジェクト情報により特定されるオブジェクトの、前記表示領域におけるレイアウトを決定するステップと、
前記決定されたレイアウトに従って配置されたオブジェクトを有するページの画像を表示装置に表示させる表示データを生成するステップと
を実行させるプログラム。
【請求項6】
文書に含まれるオブジェクトを特定するオブジェクト情報および前記文書のページ構造を示すページ構造情報が記述されたボディ部分と、前記オブジェクトが記憶されている位置を示す位置情報が記述された位置情報部分とを含むデータ構造を有する文書データを記憶する文書記憶手段と、供給されたデータをキャッシュするキャッシュ手段とを有するコンピュータ装置に、
前記文書記憶手段に記憶された文書データの1ページを対象ページとして、前記対象ページの表示を指示するステップと、
前記対象ページを特定する対象ページ情報が前記キャッシュ手段に記憶されていない場合、前記文書記憶手段に記憶された文書データのボディ部分に記述されたページ構造情報から、前記対象ページに表示されるオブジェクトを特定する情報を対象オブジェクト情報として取得し、前記位置情報部分から、前記対象オブジェクトが記憶されている位置を示す情報を対象位置情報として取得し、さらに、前記対象ページ情報、前記取得した対象オブジェクト情報および対象位置情報を含むデータセットを前記キャッシュ手段に供給する処理を行うステップと、
表示領域を指定するステップと、
前記キャッシュ手段に記憶されているオブジェクト情報の中から、前記表示領域に表示させるオブジェクトのオブジェクト情報を選択するステップと、
前記選択されたオブジェクト情報により特定されるオブジェクトの、前記表示領域におけるレイアウトを決定するステップと、
前記決定されたレイアウトに従って配置されたオブジェクトを有するページの画像を表示装置に表示させる表示データを生成するステップと
を実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項1】
文書に含まれるオブジェクトを特定するオブジェクト情報および前記文書のページ構造を示すページ構造情報が記述されたボディ部分と、前記オブジェクトが記憶されている位置を示す位置情報が記述された位置情報部分とを含むデータ構造を有する文書データを記憶する文書記憶手段と、
供給されたデータをキャッシュするキャッシュ手段と、
前記文書記憶手段に記憶された文書データの1ページを対象ページとして、前記対象ページの表示を指示する指示手段と、
前記対象ページを特定する対象ページ情報が前記キャッシュ手段に記憶されていない場合、前記文書記憶手段に記憶された文書データのボディ部分に記述されたページ構造情報から、前記対象ページに表示されるオブジェクトを特定する情報を対象オブジェクト情報として取得し、前記位置情報部分から、前記対象オブジェクトが記憶されている位置を示す情報を対象位置情報として取得し、さらに、前記対象ページ情報、前記取得した対象オブジェクト情報および対象位置情報を含むデータセットを前記キャッシュ手段に供給する処理を行う解析手段と、
表示領域を指定する指定手段と、
前記キャッシュ手段に記憶されているオブジェクト情報の中から、前記表示領域に表示させるオブジェクトのオブジェクト情報を選択する選択手段と、
前記選択手段により選択されたオブジェクト情報により特定されるオブジェクトの、前記表示領域におけるレイアウトを決定するレイアウト手段と、
前記レイアウト手段により決定されたレイアウトに従って配置されたオブジェクトを有するページの画像を表示装置に表示させる表示データを生成する生成手段と
を有する情報処理装置。
【請求項2】
前記データセットが、前記対象オブジェクトのサイズを示す表示サイズ情報を含み、
前記表示サイズ情報により示されるサイズが、前記表示領域のうちオブジェクトを配置可能な部分のサイズよりも大きい場合、前記レイアウト手段は、前記選択手段により選択されたオブジェクト情報により特定されるオブジェクトを縮小してからレイアウトを決定する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記データセットが、前記対象オブジェクトのサイズを示す表示サイズ情報を含み、
前記表示サイズ情報により示されるサイズが、前記表示領域のうちオブジェクトを配置可能な部分のサイズよりも大きい場合、前記レイアウト手段は、前記表示領域を拡張してからレイアウトを決定する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項4】
前記データセットが、前記対象オブジェクトの配置を示す座標情報を含み、
前記レイアウト手段は、前記表示領域に最初に配置されたオブジェクトの座標情報に応じて、2番目以降に配置されるオブジェクトのレイアウトを決定する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項5】
文書に含まれるオブジェクトを特定するオブジェクト情報および前記文書のページ構造を示すページ構造情報が記述されたボディ部分と、前記オブジェクトが記憶されている位置を示す位置情報が記述された位置情報部分とを含むデータ構造を有する文書データを記憶する文書記憶手段と、供給されたデータをキャッシュするキャッシュ手段とを有するコンピュータ装置に、
前記文書記憶手段に記憶された文書データの1ページを対象ページとして、前記対象ページの表示を指示するステップと、
前記対象ページを特定する対象ページ情報が前記キャッシュ手段に記憶されていない場合、前記文書記憶手段に記憶された文書データのボディ部分に記述されたページ構造情報から、前記対象ページに表示されるオブジェクトを特定する情報を対象オブジェクト情報として取得し、前記位置情報部分から、前記対象オブジェクトが記憶されている位置を示す情報を対象位置情報として取得し、さらに、前記対象ページ情報、前記取得した対象オブジェクト情報および対象位置情報を含むデータセットを前記キャッシュ手段に供給する処理を行うステップと、
表示領域を指定するステップと、
前記キャッシュ手段に記憶されているオブジェクト情報の中から、前記表示領域に表示させるオブジェクトのオブジェクト情報を選択するステップと、
前記選択されたオブジェクト情報により特定されるオブジェクトの、前記表示領域におけるレイアウトを決定するステップと、
前記決定されたレイアウトに従って配置されたオブジェクトを有するページの画像を表示装置に表示させる表示データを生成するステップと
を実行させるプログラム。
【請求項6】
文書に含まれるオブジェクトを特定するオブジェクト情報および前記文書のページ構造を示すページ構造情報が記述されたボディ部分と、前記オブジェクトが記憶されている位置を示す位置情報が記述された位置情報部分とを含むデータ構造を有する文書データを記憶する文書記憶手段と、供給されたデータをキャッシュするキャッシュ手段とを有するコンピュータ装置に、
前記文書記憶手段に記憶された文書データの1ページを対象ページとして、前記対象ページの表示を指示するステップと、
前記対象ページを特定する対象ページ情報が前記キャッシュ手段に記憶されていない場合、前記文書記憶手段に記憶された文書データのボディ部分に記述されたページ構造情報から、前記対象ページに表示されるオブジェクトを特定する情報を対象オブジェクト情報として取得し、前記位置情報部分から、前記対象オブジェクトが記憶されている位置を示す情報を対象位置情報として取得し、さらに、前記対象ページ情報、前記取得した対象オブジェクト情報および対象位置情報を含むデータセットを前記キャッシュ手段に供給する処理を行うステップと、
表示領域を指定するステップと、
前記キャッシュ手段に記憶されているオブジェクト情報の中から、前記表示領域に表示させるオブジェクトのオブジェクト情報を選択するステップと、
前記選択されたオブジェクト情報により特定されるオブジェクトの、前記表示領域におけるレイアウトを決定するステップと、
前記決定されたレイアウトに従って配置されたオブジェクトを有するページの画像を表示装置に表示させる表示データを生成するステップと
を実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【図1】
【図2】
【図3】
【図4A】
【図4B】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4A】
【図4B】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2009−252089(P2009−252089A)
【公開日】平成21年10月29日(2009.10.29)
【国際特許分類】
【出願番号】特願2008−101517(P2008−101517)
【出願日】平成20年4月9日(2008.4.9)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
【公開日】平成21年10月29日(2009.10.29)
【国際特許分類】
【出願日】平成20年4月9日(2008.4.9)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
[ Back to top ]