(57)【特許請求の範囲】
【請求項１】
リフロー式にコンテンツを表示することが可能な表示装置に用いられるページ数決定装置であって、
コンテンツデータが複数のブロックに分割されるときに、その分割されるブロックの総数である総ブロック数を検出する総ブロック数検出手段と、
上記表示装置の１画面当たりに表示可能な上記ブロックの数である表示可能ブロック数を計算する表示可能ブロック数計算手段と、
上記総ブロック数検出手段によって検出された上記総ブロック数と上記表示可能ブロック数計算手段によって計算された上記表示可能ブロック数とから、上記表示装置に上記コンテンツが表示されるときの総ページ数を決定する総ページ数決定手段と、
を備え、
上記総ページ数決定手段は、以下の式（１）〜（５）を用いて、上記総ページ数を決定することを特徴とするページ数決定装置。
Ｍ＝（Ｌ１−（ＭＧ１＋ＭＧ２）＋ＦＳＰ）／（ＦＳＺ１＋ＦＳＰ）・・・（１）
Ｎ＝（Ｌ２−（ＭＧ３＋ＭＧ４）＋ＬＳＰ）／（ＦＳＺ２＋ＬＳＰ）・・・（２）
Ｓ＝Ｍ×Ｎ・・・（３）
Ｗ＝Ｓ／ＢＷ・・・（４）
ＴＰ＝ＴＢ／Ｗ＋１・・・（５）
ただし、
Ｍ    ：１行当たりの文字数
Ｌ１  ：主走査方向の画面サイズ
ＭＧ１：主走査方向のトップマージン（縦書き時上余白、横書き時左余白）
ＭＧ２：主走査方向のボトムマージン（縦書き時下余白、横書き時右余白）
ＦＳＰ：文字間の長さ
ＦＳＺ１：１つのフォントの主走査方向の長さ
Ｎ    ：１画面当たりの行数
Ｌ２  ：副走査方向の画面サイズ
ＭＧ３：副走査方向のトップマージン（縦書き時右余白、横書き時上余白）
ＭＧ４：副走査方向のボトムマージン（縦書き時左余白、横書き時下余白）
ＬＳＰ：行間の長さ
ＦＳＺ２：１つのフォントの副走査方向の長さ
Ｓ    ：１画面当たりの文字数
Ｗ    ：表示可能ブロック数
ＢＷ  ：１ブロック当たりの文字数
ＴＢ  ：上記総ブロック数検出手段が検出した総ブロック数
ＴＰ  ：総ページ数
とする。
【請求項２】
リフロー式にコンテンツを表示することが可能な表示装置に用いられるページ数決定装置であって、
コンテンツデータが複数のブロックに分割されるときに、その分割されるブロックの総数である総ブロック数を検出する総ブロック数検出手段と、
上記表示装置の１画面当たりに表示可能な上記ブロックの数である表示可能ブロック数を計算する表示可能ブロック数計算手段と、
上記総ブロック数検出手段によって検出された上記総ブロック数と上記表示可能ブロック数計算手段によって計算された上記表示可能ブロック数とから、上記表示装置に上記コンテンツが表示されるときの総ページ数を決定する総ページ数決定手段と、
複数に分割された上記ブロックのうち、上記表示装置の表示部の最上部に表示されているコンテンツに対応付けられたブロック番号と、上記表示可能ブロック数計算手段によって計算された表示可能ブロック数とから、上記表示装置に表示されている上記コンテンツの進行位置に応じた現ページ数を特定する現ページ数特定手段と、を備えることを特徴とするページ数決定装置。
【請求項３】
上記総ページ数決定手段は、上記総ブロック数を上記表示可能ブロック数により除算して得られる値を上記総ページ数と決定することを特徴とする請求項２に記載のページ数決定装置。
【請求項４】
上記現ページ数特定手段は、以下の式（６）を用いて、上記現ページ数を特定することを特徴とする請求項２または３に記載のページ数決定装置。
ＣＰ＝ｂ／Ｗ＋１・・・（６）
ただし、
ｂ    ：上記表示装置に表示されているコンテンツのブロックのうち、最上部に位置するブロックのブロック番
ＣＰ  ：現ページ数
とする。
【請求項５】
上記コンテンツデータには当該コンテンツデータを複数のブロックに分割して処理するためのブロック補助データが含まれており、
上記コンテンツデータは、上記ブロック補助データに基づいて、複数のブロックに分割されることを特徴とする請求項１から４の何れか１項に記載のページ数決定装置。
【請求項６】
上記表示装置は、総ページ数決定手段によって決定された上記総ページ数と上記現ページ数特定手段によって特定された上記現ページ数とを表示することを特徴とする請求項２から４の何れか１項に記載のページ数決定装置。
【請求項７】
上記表示装置は、パーソナルコンピュータ、携帯情報端末、携帯電話機、及び電子書籍リーダーの何れかであることを特徴とする請求項１から６の何れか１項に記載のページ数決定装置。
【請求項８】
リフロー式にコンテンツを表示することが可能な表示装置に用いられるページ数決定方法であって、
コンテンツデータが複数のブロックに分割されるときに、その分割されるブロックの総数である総ブロック数を検出する総ブロック数検出ステップと、
上記表示装置の１画面当たりに表示可能な上記ブロックの数を表示可能ブロック数として計算する表示可能ブロック数計算ステップと、
上記総ブロック数検出ステップによって検出された上記総ブロック数と上記表示可能ブロック数計算ステップによって計算された上記表示可能ブロック数とから、上記表示装置に上記コンテンツが表示されるときの総ページ数を決定する総ページ数決定ステップと、を含み、
上記総ページ数決定ステップにて、以下の式（１）〜（５）を用いて、上記総ページ数を決定することを特徴とするページ数決定方法。
Ｍ＝（Ｌ１−（ＭＧ１＋ＭＧ２）＋ＦＳＰ）／（ＦＳＺ１＋ＦＳＰ）・・・（１）
Ｎ＝（Ｌ２−（ＭＧ３＋ＭＧ４）＋ＬＳＰ）／（ＦＳＺ２＋ＬＳＰ）・・・（２）
Ｓ＝Ｍ×Ｎ・・・（３）
Ｗ＝Ｓ／ＢＷ・・・（４）
ＴＰ＝ＴＢ／Ｗ＋１・・・（５）
ただし、
Ｍ    ：１行当たりの文字数
Ｌ１  ：主走査方向の画面サイズ
ＭＧ１：主走査方向のトップマージン（縦書き時上余白、横書き時左余白）
ＭＧ２：主走査方向のボトムマージン（縦書き時下余白、横書き時右余白）
ＦＳＰ：文字間の長さ
ＦＳＺ１：１つのフォントの主走査方向の長さ
Ｎ    ：１画面当たりの行数
Ｌ２  ：副走査方向の画面サイズ
ＭＧ３：副走査方向のトップマージン（縦書き時右余白、横書き時上余白）
ＭＧ４：副走査方向のボトムマージン（縦書き時左余白、横書き時下余白）
ＬＳＰ：行間の長さ
ＦＳＺ２：１つのフォントの副走査方向の長さ
Ｓ    ：１画面当たりの文字数
Ｗ    ：表示可能ブロック数
ＢＷ  ：１ブロック当たりの文字数
ＴＢ  ：上記総ブロック数検出ステップにて検出された総ブロック数
ＴＰ  ：総ページ数
とする。
【請求項９】
リフロー式にコンテンツを表示することが可能な表示装置に用いられるページ数決定方法であって、
コンテンツデータが複数のブロックに分割されるときに、その分割されるブロックの総数である総ブロック数を検出する総ブロック数検出ステップと、
上記表示装置の１画面当たりに表示可能な上記ブロックの数を表示可能ブロック数として計算する表示可能ブロック数計算ステップと、
上記総ブロック数検出ステップによって検出された上記総ブロック数と上記表示可能ブロック数計算ステップによって計算された上記表示可能ブロック数とから、上記表示装置に上記コンテンツが表示されるときの総ページ数を決定する総ページ数決定ステップと、
複数に分割された上記ブロックのうち、上記表示装置の表示部の最上部に表示されているコンテンツに対応付けられたブロック番号と、上記表示可能ブロック数計算ステップにて計算された表示可能ブロック数とから、上記表示装置に表示されている上記コンテンツの進行位置に応じた現ページ数を特定する現ページ数特定ステップと、を含むことを特徴とするページ数決定方法。
【請求項１０】
請求項８または９に記載の上記各ステップをコンピュータに実行させるためのページ数決定プログラム。
【請求項１１】
請求項１０に記載のページ数決定プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リフロー式に表示されるコンテンツの総ページ数を計算することが可能なページ数決定装置、ページ数決定方法、ページ数決定プログラム、及びコンピュータ読み取り可能な記録媒体に関する。
【背景技術】
【０００２】
近年、書籍等の著作物が電子化されて、ソフトウェアと同様の形態で市場に流通されるようになってきている。また、インターネットが全世界的に普及しており、ユーザはパーソナルコンピュータ等の端末を利用して様々な情報をインターネットを介して取得することが可能となってきている。そして、インターネットを介してユーザに電子書籍コンテンツを提供するサービスも実施されている。
【０００３】
ここで、コンテンツの表示の仕方には２種類あり、ＰＤＦ（Ｐｏｒｔａｂｌｅ Ｄｏｃｕｍｅｎｔ Ｆｏｒｍａｔ）のように文字の大きさ、位置といったレイアウト、及びページの大きさが固定されているもの（以降、「固定レイアウト」と称する場合がある。）と、ＷＷＷ（ＷｏｒｌｄＷｉｄｅ Ｗｅｂ）ブラウザのように文字の大きさ、ページの大きさが固定されておらず、自由にユーザが変更できるもの（以降、「リフロー式レイアウト」と称する場合がある。）とがある。
【０００４】
固定レイアウトの場合、レイアウトサイズ、ページ数等は、コンテンツによって予め決まっている。
【０００５】
一方、リフロー式レイアウトの場合は、文字の大きさ、あるいはページの大きさ（行数や行内文字数等）によって、レイアウトサイズ、ページ数等が変化する。そのため、リフロー式レイアウトでは、レイアウトサイズ、ページ数等を予め計算しておくことができないため、スクロールボックスの位置、大きさ等を算出するには、処理時間がかかったり、多量のメモリが必要となる問題が生じる。そして、上記の電子書籍コンテンツを提供するサービスに用いられる電子書籍リーダーは、リフロー式レイアウトによりコンテンツを表示するものである。
【０００６】
ここで、電子書籍コンテンツを閲覧する際に、全体のボリュームあるいは現在表示している位置を閲覧者に知らせる技術が開発されており、そのような技術が、特許文献１、２に開示されている。
【０００７】
特許文献１の電子ブックは、書籍データ全体における表示ページの進行位置に応じて、当該表示ページのページ縁部に残ページの重なり具合を示す縦縞模様を表示する。さらに、特許文献１の電子ブックは、その縦縞模様に基づいて、進行位置に応じた現ページ数／総ページ数を表示し、縦縞模様を介して書籍データ全体における進行状況をユーザに対して直感的かつ大まかに把握させている。
【０００８】
特許文献２のスクロールバー表示制御方法は、現在レイアウトされているサイズと、全体のサイズとの比率を求めてスクロール制御を行っている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００３−１５０２９８号公報（平成１５年  ５月２３日公開）
【特許文献２】特開２００３−３３０７００号公報（平成１５年１１月２１日公開）
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１、２には次のような問題がある。
【００１１】
すなわち、特許文献１の電子ブックは、縦縞模様に基づいて、書籍データ全体における進行状況をユーザに対して把握させ、液晶ディスプレイの表示能力によって、現ページ数／総ページ数を表示させるものである。しかしながら、特許文献１は、文字サイズの変更等でリフロー（再レイアウト）された際の具体的な処理の方法を開示していない。そのため、実施可能要件が満たされておらず、先行文献としての有効性に問題がある。
【００１２】
また、特許文献２のスクロールバー表示制御方法では、スクロールバーの表示だけでは電子書籍全体のボリュームを直感的に把握することはできない。つまり、「現在５０％の所を読んでいる」ということは認識できるものの、その５０％に対応するボリュームまでをユーザに認識させることができない。
【００１３】
本発明は、上記の問題を解決するためになされたものであり、その目的は、リフロー式にコンテンツが表示されるときに、そのコンテンツの全体のボリュームを正確かつ迅速にユーザに認識させることが可能なページ数決定装置、ページ数決定方法、ページ数決定プログラム、及びコンピュータ読み取り可能な記録媒体を提供することにある。
【課題を解決するための手段】
【００１４】
本発明に係るページ数決定装置は、上記の課題を解決するために、リフロー式にコンテンツを表示することが可能な表示装置に用いられるページ数決定装置であって、コンテンツデータが複数のブロックに分割されるときに、その分割されるブロックの総数である総ブロック数を検出する総ブロック数検出手段と、上記表示装置の１画面当たりに表示可能な上記ブロックの数である表示可能ブロック数を計算する表示可能ブロック数計算手段と、上記総ブロック数検出手段によって検出された上記総ブロック数と上記表示可能ブロック数計算手段によって計算された上記表示可能ブロック数とから、上記表示装置に上記コンテンツが表示されるときの総ページ数を決定する総ページ数決定手段と、を備えることを特徴としている。
【００１５】
また、本発明に係るページ数決定方法は、上記の課題を解決するために、リフロー式にコンテンツを表示することが可能な表示装置に用いられるページ数決定方法であって、コンテンツデータが複数のブロックに分割されるときに、その分割されるブロックの総数である総ブロック数を検出する総ブロック数検出ステップと、上記表示装置の１画面当たりに表示可能な上記ブロックの数を表示可能ブロック数として計算する表示可能ブロック数計算ステップと、上記総ブロック数検出ステップによって検出された上記総ブロック数と上記表示可能ブロック数計算ステップによって計算された上記表示可能ブロック数とから、上記表示装置に上記コンテンツが表示されるときの総ページ数を決定する総ページ数決定ステップと、を含むことを特徴としている。
【００１６】
一般的に、表示装置に表示されるコンテンツのレイアウトは、紙面で文書等をレイアウトする場合と異なり、表示状態が画面サイズ等に応じて変化する。このため、そのコンテンツが表示装置に表示されるときの厳密なページ数を決定するためには、実際にコンテンツを開いてから複雑な計算を行う必要がある。
【００１７】
しかしながら、コンテンツのサイズを判断するうえで或る基準を設け、その基準に基づいてレイアウトを行うことで、コンテンツの全体のボリュームをかなり厳密に把握しうる場合がある。本発明に係るページ数決定装置（ページ数決定方法）は、コンテンツを開いてからでも、簡単な計算によってコンテンツの全体のボリュームを正確かつ迅速にユーザに認識させることを可能とするものである。
【００１８】
具体的に、本発明に係るページ数決定装置（ページ数決定方法）では、まずコンテンツデータが複数のブロックに分割される。そして、総ブロック数検出手段が、その分割されたブロックの総数である総ブロック数を検出する。さらに、本発明では、表示装置の１画面当たりに表示可能な上記ブロックの数を「表示可能ブロック数（重み）」という概念で表現しており、その「表示可能ブロック数」が、上記或る基準として用いられるとともに、表示可能ブロック数計算手段（表示可能ブロック数計算ステップ）によって計算される。
【００１９】
そのうえで、総ページ数決定手段（総ページ数決定ステップ）が、上記総ブロック数検出手段によって検出された上記総ブロック数と上記表示可能ブロック数計算手段によって計算された上記表示可能ブロック数とから、上記表示装置に上記コンテンツが表示されるときの総ページ数を決定する。つまり、総ページ数決定手段（総ページ数決定ステップ）は、表示装置の１画面当たりに表示可能な上記ブロックの数である「表示可能ブロック数」を上記或る基準として、その基準となる表示可能ブロック数と総ブロック数とから、コンテンツの全体のボリュームを示す上記総ページ数を決定している。
【００２０】
したがって、本発明に係るページ数決定装置（ページ数決定方法）は、上記構成を備えることにより、コンテンツが表示装置に表示されるときに、実際にコンテンツを開いてから、簡単な計算により総ページ数を決定することを可能としている。また、演算処理によって総ページ数が決定されることから、正確かつ迅速に、総ページ数をユーザに認識させることができる。
【００２１】
なお、コンテンツデータは、仮想的に複数のブロックに分割されても、実際に分割されていてもよく、また各ブロックは任意のサイズに分割することもできる。ただし、上記或る基準としての「表示可能ブロック数」の信頼性を高めるうえで、各ブロックをほぼ等しいサイズに分割することが好ましい。
【００２２】
さらに、本発明に係るページ数決定装置では、上記総ページ数決定手段は、上記総ブロック数を表示可能ブロック数により除算して得られる値を上記総ページ数と決定する構成であってよい。
【００２３】
「表示可能ブロック数」は、表示装置の１画面当たりに表示可能な上記ブロックの数を示す値である。したがって、総ページ数決定手段は、総ブロック数を表示可能ブロック数により除算して得られる値を総ページ数として決定することができる。総ページ数の決定に際しては、単純な演算式を用いるだけでよいため、総ページ数決定手段は、正確かつ迅速に総ページ数を決定することができる。
【００２４】
さらに、本発明に係るページ数決定装置では、上記総ページ数決定手段は、以下の式（１）〜（５）を用いて、上記総ページ数を決定する構成であってよい。
【００２５】
Ｍ＝（Ｌ１−（ＭＧ１＋ＭＧ２）＋ＦＳＰ）／（ＦＳＺ１＋ＦＳＰ）・・・（１）
Ｎ＝（Ｌ２−（ＭＧ３＋ＭＧ４）＋ＬＳＰ）／（ＦＳＺ２＋ＬＳＰ）・・・（２）
Ｓ＝Ｍ×Ｎ・・・（３）
Ｗ＝Ｓ／ＢＷ・・・（４）
ＴＰ＝ＴＢ／Ｗ＋１・・・（５）
ただし、
Ｍ    ：１行当たりの文字数
Ｌ１  ：主走査方向の画面サイズ
ＭＧ１：主走査方向のトップマージン（縦書き時上余白、横書き時左余白）
ＭＧ２：主走査方向のボトムマージン（縦書き時下余白、横書き時右余白）
ＦＳＰ：文字間の長さ
ＦＳＺ１：１つのフォントの主走査方向の長さ
Ｎ    ：１画面当たりの行数
Ｌ２  ：副走査方向の画面サイズ
ＭＧ３：副走査方向のトップマージン（縦書き時右余白、横書き時上余白）
ＭＧ４：副走査方向のボトムマージン（縦書き時左余白、横書き時下余白）
ＬＳＰ：行間の長さ
ＦＳＺ２：１つのフォントの副走査方向の長さ
Ｓ    ：１画面当たりの文字数
Ｗ    ：表示可能ブロック数
ＢＷ  ：１ブロック当たりの文字数
ＴＢ  ：上記総ブロック数検出手段が検出した総ブロック数
ＴＰ  ：総ページ数
とする。
【００２６】
上述するように、１行当たりの文字数（Ｍ）、及び１画面当たりの行数（Ｎ）は、主走査方向の画面サイズ（Ｌ）等のレイアウト情報に基づいて求められる。すなわち、１画面当たりの文字数（Ｓ）は、レイアウト情報に基づいて取得可能である。そして、１ブロック当たりの文字数（ＢＷ）は、所与の数値として与えられる（例えば、ＸＭＤＦの場合、１０２４バイト以上で改行が入った時点でブロック間の境界が切られるパターンが多いため、１ブロック当たりの文字数は、１０２４文字として与えられる。）このため、表示装置の１画面当たりに表示可能な上記ブロックの数を示す表示可能ブロック数Ｗは、式（４）により計算することができる。
【００２７】
したがって、総ページ数を計算するための式として式（５）を定義することにより、上記総ページ数決定手段は、総ページ数を迅速に決定することができる。
【００２８】
さらに、本発明に係るページ数決定装置では、複数に分割された上記ブロックのうち、上記表示装置の表示部の最上部に表示されているコンテンツに対応付けられたブロック番号と、上記表示可能ブロック数計算手段によって計算された表示可能ブロック数とから、上記表示装置に表示されている上記コンテンツの進行位置に応じた現ページ数を特定する現ページ数特定手段を備える構成であってよい。
【００２９】
上述したように、表示装置の１画面当たりに表示可能な上記ブロックの数を示す表示可能ブロック数は、表示可能ブロック数計算部によって既に計算されている。したがって、現ページ数特定手段は、その表示可能ブロック数を取得するとともに、複数に分割された上記ブロックのうち、上記表示装置の表示部の最上部に表示されているコンテンツに対応付けられたブロック番号とを取得することで、上記現ページ数を特定することができる。
【００３０】
ここで、複数に分割された上記ブロックのうち、上記表示装置の表示部の最上部に表示されているコンテンツに対応付けられたブロック番号は、公知の手段によって取得することが可能である。そのため、現ページ数特定手段は、表示可能ブロック数及び上記ブロック番号を取得することで、上記現ページ数を容易に特定することができる。
【００３１】
さらに、本発明に係るページ数決定装置では、上記現ページ数特定手段は、以下の式（６）を用いて、上記現ページ数を特定する構成であってよい。
【００３２】
ＣＰ＝ｂ／Ｗ＋１・・・（６）
ただし、
ｂ    ：上記表示装置に表示されているコンテンツのブロックのうち、最上部に位置するブロックのブロック番
ＣＰ  ：現ページ数
とする。
【００３３】
上記表示装置に表示されている上記コンテンツの進行位置に応じた現ページ数を計算するための式として式（６）を定義することにより、上記現ページ数特定手段は、現ページ数を迅速に決定することができる。このとき、式（６）で用いられる変数は、ｂおよびＷのみである。したがって、現ページ数特定が現ページ数を特定するときに、複雑な演算処理は必要なく、それゆえ、演算処理上の負担を著しく軽減することができる。
【００３４】
さらに、本発明に係るページ数決定装置では、上記コンテンツデータには当該コンテンツデータを複数のブロックに分割して処理するためのブロック補助データが含まれており、上記コンテンツデータは、上記ブロック補助データに基づいて、複数のブロックに分割される構成であってよい。
【００３５】
上記構成によれば、コンテンツデータを複数のブロックに分割して処理するためのブロック補助データがコンテンツデータに含まれている。したがって、そのブロック補助を含むコンテンツデータを用いることにより、容易に、コンテンツデータを複数のブロックに分割することができる。また、ブロック補助データを適宜設定することにより、各ブロックサイズをほぼ等しいサイズにし、総ページ数決定手段が総ページ数を決定する精度、および現ページ数特定手段が現ページ数を特定する精度を高めることができる。
【００３６】
さらに、本発明に係るページ数決定装置では、上記表示装置は、総ページ数決定手段によって決定された上記総ページ数と上記現ページ数特定手段によって特定された上記現ページ数とを表示する構成であってよい。
【００３７】
上記構成により、例えば「現ページ数／総ページ数」が表示装置に表示される。これにより、ユーザは、コンテンツの全体のボリュームを知ることができ、かつ、コンテンツデータ全体における表示ページの進行位置も知ることができる。それゆえ、本発明に係るページ数決定装置は、実際の書籍と同様の読書感覚をユーザに与えることができ、表示装置のユーザビリティーを高めることができる。
【００３８】
さらに、本発明に係るページ数決定装置では、上記表示装置は、パーソナルコンピュータ、携帯情報端末、携帯電話機、及び電子書籍リーダーの何れかであってよい。
【００３９】
上記ページ数決定装置は、自身が接続される表示装置がパーソナルコンピュータ、携帯情報端末、携帯電話機、及び電子書籍リーダーであるときに、好適に適用することができる。
【００４０】
なお、上記ページ数決定装置（ページ数決定方法）は、コンピュータによって実現してもよく、この場合には、コンピュータを総ブロック数検出ステップ、表示可能ブロック数計算ステップステップ、及び総ページ数決定ステップとして動作させることによりページ数決定方法をコンピュータにて実現させるページ数決定プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
【発明の効果】
【００４１】
本発明に係るページ数決定装置は、以上のように、コンテンツデータが複数のブロックに分割されるときに、その分割されるブロックの総数である総ブロック数を検出する総ブロック数検出手段と、上記表示装置の１画面当たりに表示可能な上記ブロックの数を計算する表示可能ブロック数計算手段と、上記総ブロック数検出手段によって検出された上記総ブロック数と上記表示可能ブロック数計算手段によって計算された上記表示可能ブロック数とから、上記表示装置に上記コンテンツが表示されるときの総ページ数を決定する総ページ数決定手段と、を備える構成である。
【００４２】
また、本発明に係るページ数決定方法は、以上のように、コンテンツデータが複数のブロックに分割されるときに、その分割されるブロックの総数である総ブロック数を検出する総ブロック数検出ステップと、上記表示装置の１画面当たりに表示可能な上記ブロックの数を表示可能ブロック数として計算する表示可能ブロック数計算ステップと、上記総ブロック数検出ステップによって検出された上記総ブロック数と上記表示可能ブロック数計算ステップによって計算された上記表示可能ブロック数とから、上記表示装置に上記コンテンツが表示されるときの総ページ数を決定する総ページ数決定ステップと、を含む構成である。
【００４３】
それゆえ、リフロー式にコンテンツが表示されるときに、そのコンテンツの全体のボリュームを正確かつ迅速にユーザに認識させることが可能になるという効果を奏する。
【図面の簡単な説明】
【００４４】
【図１】本実施の形態に係る電子書籍リーダーの概略構成を示すブロック図である。
【図２】ブロック補助データの具体的な概略を示す図である。
【図３】階層構造をもつコンテンツデータの具体的な例を示す図である。
【図４】コンテンツデータを複数のブロックに分割した様子を具体的に示す図である。
【図５】図４に示されるコンテンツデータに対して設定されるブロック補助データの具体例を示す図である。
【図６】ブロックを説明するための概略図である。
【図７】従来の現ページ数／総ページ数の表示方法を示す図であり、（ａ）は１画面目を、（ｂ）は２画面目を、（ｃ）は３画面目を、それぞれ表す。
【図８】コンテンツデータを説明するための概略図である。
【図９】本実施の形態に係るページ数決定装置の動作を説明するためのフローチャートである。
【図１０】本実施の形態に係る重み計算部によって重みを計算する方法を説明するための図である。
【図１１】「現ページ数／総ページ数」の表示例を説明するための図であり、（ａ）は１ページ目を、（ｂ）は２ページ目を、（ｃ）は３ページ目を、それぞれ示す。
【図１２】本実施の形態のさらに他の、移動バーにより画面をスクロールさせるときの「現ページ数／総ページ数」の表示例を示す図である。
【発明を実施するための形態】
【００４５】
以下、図面を参照しつつ、本実施の形態に係るページ数決定装置２０等について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付している。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００４６】
なお、ページ数決定装置２０を概略的に説明すれば以下のとおりである。すなわち、ページ数決定装置２０は、リフロー式にコンテンツを表示することが可能な電子書籍リーダー１に用いられる。そのページ数決定装置２０は、コンテンツデータが複数のブロックに分割されるときに、その分割されるブロックの総数である総ブロック数を検出する総ブロック数検出部（総ブロック数検出手段）２１と、電子書籍リーダー１の１画面当たりに表示可能なブロックの数を重み（表示可能ブロック数）として計算する重み計算部（表示可能ブロック数計算手段）２２と、総ブロック数検出部２１によって検出された総ブロック数と重み計算部２２によって計算された重みとから、電子書籍リーダー１にコンテンツが表示されるときの総ページ数を決定する総ページ数決定部（総ページ数決定手段と）２３とを備える構成である。
【００４７】
これにより、ページ数決定装置２０は、リフロー式にコンテンツが表示されるときに、そのコンテンツの全体のボリュームを正確かつ迅速にユーザに認識させることが可能になるという効果を奏する。
【００４８】
以下、ページ数決定装置２０等の概略を説明する。なお、理解の容易のため、最初に本実施の形態で用いる用語の定義を説明し、その後、ページ数決定装置２０等を内蔵する電子書籍リーダー１のブロック構成、ページ数決定装置２０等の詳細動作、及びその効果等を説明する。
【００４９】
〔用語の定義〕
以下、本実施の形態で用いられる用語の定義を説明する。
【００５０】
まず、「表示」とは、一般には情報を視覚的に知覚できるような形態で表示媒体上に出力することを言う。本実施の形態では、レイアウトの表示媒体に対する「表示」だけに限らず、レイアウトの印刷記録媒体に対する「印刷」、あるいはレイアウトのデータ記録媒体に対する「ファイル出力」などの「出力」一般にも適用可能である。説明を分かり易くするため、以降の説明では、「表示」という言葉を用いることが多いが、「出力」の意も含まれているとする。
【００５１】
「レイアウト」とは、表示要素が２次元または３次元の空間座標上に、位置とサイズ、外形の属性をもって配置されること、あるいは配置されたもののことを言う。位置、サイズは、通常は何らかの単位を使った値として表現される。例えば、画素の集まりからなるディスプレイに表示する場合は、一般に（画素）ドットの単位で表現される。一つないし複数の表示要素がレイアウトされた結果、その表示要素に関して定まる空間座標上の位置のことを「レイアウト位置」、一つないし複数の表示要素がレイアウトされた結果、その表示要素に関して定まる空間座標上のサイズのことを「レイアウトサイズ」と定義する。
【００５２】
「文書（「コンテンツ」と称する場合もある。）」は、一つまたは複数の表示要素がレイアウトされたもの、あるいはレイアウトしたり、レイアウトに基づいて表示要素を表示したりすることが可能な情報量を有するデータを指す。文書データは、表示要素のデータも含む場合と、レイアウト情報だけ持っていて表示要素のデータの一部を含む場合、あるいは全く含まない場合もある。何れの場合であっても、文書データを用いてレイアウトに従った表示、出力が可能である。
【００５３】
「表示要素」とは、文字や絵、写真、図形、及び動画像など、表示することのできるデータ要素を指す。表示するためには、通常、表示位置と表示サイズ、外形、表示表現形態などの属性やそれらの取得手段を表示要素は持っている必要がある。但し、表示要素は、表示している状態のデータ要素だけを指すのではなく、主記憶や外部記憶、その他の機器上に、表示／出力に備えて記録／格納されているデータ要素も含む。何かの形に置き換えて出力するという意味では、「出力要素」と言い換えてもよいが、上述したように、以降では分かり易くするために「表示要素」と表現する。また、表示は、２次元だけでなく、３次元も含む。また、文字とは、和文／外国文字、記号、数字、スペース、半角文字、全角文字等を包括的に表す表現として用いるものとする。
【００５４】
さらに、後述するブロックに含まれる表示要素には、表示要素の組み合わせ（例えば、文字と静止画）、あるいは、ある１つの表示要素（例えば、文字のみ、動画のみ）の何れの場合も含まれうる。
【００５５】
次に、「固定レイアウト」、「リフロー式レイアウト」について説明する。
【００５６】
文書（コンテンツ）の表示方法には２種類あり、第１の表示方法は、ＰＤＦ（Ｐｏｒｔａｂｌｅ Ｄｏｃｕｍｅｎｔ Ｆｏｒｍａｔ）のように、文字の大きさ、位置といったレイアウト、及びページの大きさが固定されているものである。また、第２の表示方法は、ＷＷＷ（ＷｏｒｌｄＷｉｄｅ Ｗｅｂ）ブラウザのように、文字の大きさ、ページの大きさが固定されておらず、自由にユーザが変更できるものとがある。そこで、本実施の形態では、第１の表示方法に対応するレイアウトを固定レイアウト、第２の表示方法に対応するレイアウトをリフロー式レイアウト（あるいは、単にリフロー式）と称する。
【００５７】
固定レイアウトの場合、レイアウトサイズ、ページ数等は、コンテンツによって予め決定している。一方、リフロー式レイアウトの場合、文字の大きさ、あるいはページの大きさ（行数や行内文字数等）等によって、レイアウトサイズ、ページ数等が変化する。
【００５８】
次に、「ブロック」について説明する。
【００５９】
コンテンツデータには、コンテンツデータそのものとコンテンツデータに付随するデータであるブロック補助データとが含まれる。そのブロック補助データは、構造化されたコンテンツデータを複数のブロックに分割し、分割された各ブロックごとに所定の処理を実行させるデータであり、コンテンツデータと対になっている。
【００６０】
次に、ブロック補助データについて説明する。
【００６１】
図２は、ブロック補助データの具体的な概略を示す図である。ブロック補助データは、一般に、図２に示すように、コンテンツデータファイル名１００、ブロック情報２００、およびリンク先情報３００の３つの領域から構成される。コンテンツデータファイル名１００は、このブロック補助データが、どのコンテンツデータに対応するものかを記録するために用意された領域である。ブロック補助データを、コンテンツデータ内、もしくはコンテンツデータに連結して記録する場合は、コンテンツデータファイル名１００の領域は、省略してもよい。
【００６２】
また、処理するコンテンツデータによっては、リンク先情報３００の領域は存在しないことがある。以降、この３領域の書式について、文書記述言語の定義に従って記述され、階層構造を有するコンテンツデータの具体例としてＸＨＴＭＬ文書を用いて説明する。
【００６３】
図３は、階層構造をもつコンテンツデータの具体的な例を示す図である。また、図４は、コンテンツデータを複数のブロックに分割した様子を具体的に示す図である。ここで、図３に示されるＸＨＴＭＬ文書を、図４に示されるように、４つのブロック（ブロック１０００、ブロック１１００、ブロック１２００、ブロック１３００）に分割する場合を考える。このとき、このＸＨＴＭＬ文書に対するブロック補助データは、図５に示されるようになる。なお、図５は、図４に示されるコンテンツデータに対して設定されるブロック補助データの具体例を示す図である。
【００６４】
図５を参照して、ブロック補助データの領域２００はコンテンツデータファイル名１００の領域であり、図４のＸＨＴＭＬ文書のファイル名が記録される。
【００６５】
ブロック補助データの領域２１０〜３７０は、ブロック情報２００の領域である。領域２１０はブロック数を記録する領域であり、４つのブロックに分割する場合には４が記録される。
【００６６】
領域２２０〜２５０、２６０〜２９０、３００〜３３０、３４０〜３７０は、それぞれブロック１０００、１１００、１２００、１３００に対するブロック情報の領域である。一般に、ｎ個のブロックに分割する場合、領域２２０〜２５０のブロック情報の構造がｎ回繰返し記録される。領域２２０、２６０、 ３００、３４０にはそれぞれのブロックの開始位置が、領域２３０、２７０、３１０、３５０にはそれぞれのブロックの終了位置が、ファイル先頭からのバイト数の形で記録される。したがって、ブロック１１００に属するデータを取出したい場合は、領域２６０と領域２７０とのブロック情報の値を調べ、ファイルの先頭から数えて２１２バイト目から４２３バイト目を読込めばよい。
【００６７】
領域２４０、２８０、３２０、３６０には、各ブロックの開始位置において、終了されていない開始タグを記録する。領域２４０のブロック情報は、ブロック１０００の開始位置において終了されていない開始タグを記録する領域であるが、ブロック１０００はファイルの先頭から始まっているため、領域２４０に記録する制御コードは存在しない。ブロック１１の開始位置では〈ｈｔｍｌ〉が閉じられていないため、領域２８０には〈ｈｔｍｌ〉を記録する。また、ブロック１２００の開始位置のように、複数のタグ（〈ｈｔｍｌ〉、〈ｂｏｄｙ ｂｇｃｏｌｏｒ＝ ″ｙｅｌｌｏｗ″〉、〈ｐ〉）が閉じられていない場合は、〈ｈｔｍｌ〉〈ｂｏｄｙ ｂｇｃｏｌｏｒ＝ ″ｙｅｌｌｏｗ″〉〈ｐ〉のように、出現順に連結して領域３２０にブロック情報を記録する。なお、〈ｂｏｄｙ〉タグのように属性（ｂｇｃｏｌｏｒ＝ ″ｙｅｌｌｏｗ″） をもつ場合は、属性を付けたまま記録する。ブロック１３００も同様にして、〈ｈｔｍｌ〉〈ｂｏｄｙｂｇｃｏｌｏｒ＝ ″ｙｅｌｌｏｗ″〉と領域３６０にブロック情報を記録する。
【００６８】
領域２５０、２９０、３３０、３７０には、各ブロックの終了位置において閉じられていないタグの終了タグを記録する。ブロック１０００の終了位置においては、〈ｈｔｍｌ〉タグが終了されていないため、領域２５０にはブロック情報〈／ｈｔｍｌ〉を記録する。また、ブロック１１００の終了位置においては、〈ｈｔｍｌ〉、〈ｂｏｄｙ ｂｇｃｏｌｏｒ＝″ｙｅｌｌｏｗ″〉、〈ｐ〉タグが閉じられていないため、出現順とは逆の順番で、上記の終了タグを〈／ｐ〉〈／ｂｏｄｙ〉〈／ｈｔｍｌ〉と連結してブロック情報を領域２９０に記録する。同様にして、ブロック１２００に対してはブロック情報〈／ｂｏｄｙ〉〈／ｈｔｍｌ〉を記録する。ブロック１３００の終了位置では全てのタグが閉じられているので、領域３７０には何も記録しない。
【００６９】
領域３８０〜４１０は、リンク先情報３００の領域であり、図３のＸＨＴＭＬ文書のうち、リンク先として指定されたラベル位置を記録する。
【００７０】
ここで、ＸＨＴＭＬ文書のリンクについて簡単に説明する。ＸＨＴＭＬ 文書では、〈ａ〉タグによって他のファイルやファイルの一部へリンクをはることができる。例えば、図４のリンク先情報３００、４００は、同一ファイルの一部へのリンクがはられた例である。この例で、リンク先情報３００の〈ａ〉タグで囲まれた文字列″ＢＢＢ″がクリックされると、ｈｒｅｆ属性で指定されたラベル″ＳＵＭＭＡＲＹ″が設定されている場所、つまり、〈ａ〉のｎａｍｅ属性に″ＳＵＭＭＡＲＹ″が設定されているリンク先情報４００に表示位置をジャンプさせる。
【００７１】
図５において、領域３８０〜４１０には、リンク先のラベルの位置情報、つまり〈ａ〉タグのｎａｍｅ属性により設定されているラベルの位置情報を記録する。図４のＸＨＴＭＬ文書の場合、ｎａｍｅ属性をもつ〈ａ〉タグは１つしか存在しないため、領域３８０には１を記録し、領域３９０〜４１０の組合わせを１回だけ記録する。
【００７２】
一般的に、ｎａｍｅ属性をもつ〈ａ〉タグがｎ個ある場合は、領域３９０〜４１０の構造のリンク先情報がｎ回繰返される。領域３９０には〈ａ〉タグのｎａｍｅ属性に記録されたラベル名を、領域４００、４１０には〈ａ〉タグに挟まれた文字列の開始位置および終了位置をファイル先頭からのバイト数で記録する。
【００７３】
なお、ブロックの大きさは、装置の処理能力から決定される。すなわち、ブロックの大きさが大きいほど１ブロックあたりの処理量が増えるため、処理時間が増大し、使用するメモリ容量やリソース容量も増大する。そのため、ブロックの大きさは、装置の処理能力に応じて決定されることが望ましい。装置の処理能力を決定する要因として、装置に搭載されているＣＰＵ（Ｃｅｎｔｒａｌ   Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の処理能力、メモリ容量、およびリソース容量等が挙げられる。
【００７４】
一方、ブロックの大きさは、画面に表示される文字数やそれを決定する要因によっても決定される。例えば、電子書籍等の文章を表示する装置においては、１画面分の表示をした後、ユーザによるページ移動の指示があるまで待機するように設計されていることが多い。この場合、画面に表示される文字数に対してブロックの大きさを極端に大きく設定した場合には、本実施の形態における処理方法ではブロックを１つの単位として読込むため、画面に表示しない不要なデータも読込まれることになり、無駄が生じてしまうことになる。したがって、画面に表示される文字数に基づき、ブロックの大きさが決定されることが望ましい。なお、画面に表示される文字数は、表示装置の備える画面の大きさおよび解像度、表示する文字のフォント数、行間や字間の大きさ、および余白の大きさ等によって変わるため、これらの要因によってブロックの大きさを変えるようにしてもよい。
【００７５】
このブロック補助データは、対象とするコンテンツデータの種類によって構成および書式が若干異なる。一般にＸＭＬ形式で書かれたコンテンツデータの場合、図２のリンク先情報３００を除き、コンテンツデータファイル名１００、ブロック情報２００の２領域は存在し、書式も同じになる。リンク先情報３００は、ＸＨＴＭＬ文書の機能であるリンク機能のための情報であるため、ＸＨＴＬ文書などの電子書籍以外のコンテンツデータに対しては存在しないこともある。しかし、他のブロック内のデータを参照しながら処理を進めるようなコンテンツデータや、ユーザの動作に応じて他ブロック内のデータを表示させたり、もしくは再生させたりする機能をもつようなコンテンツデータの場合は、アクセスしやすくするために、そのデータがどこにあるかをこのリンク先情報３００に記録しておくとよい。
【００７６】
また、適用可能なコンテンツデータはＸＭＬ形式に限らない。一般に階層構造をもつ構造化文書に対して適用可能であり、具体的には、ブロック情報２００の開始／ 終了位置制御コードに、ブロックの開始／ 終了位置での階層構造がわかるように、それぞれの書式で記録しておけばよい。たとえば、適用可能なコンテンツデータにはＸＭＤＦ（ever-eXtending Mobile Document Format）が含まれる。なお、ＸＭＤＦは、国際標準基準の記述（ＸＭＬ）フォーマットで作成され、高速アクセス／省メモリが可能となるデータ構造と、高速アクセスを支える高速暗号アルゴリズムを根幹技術としてリッチドキュメントフォーマットである。
【００７７】
次に、より具体的にブロックを説明する。図６は、ブロックを説明するための概略図である。
【００７８】
同図は、あるコンテンツデータが５つのブロックに分割されているときの様子を示す。１つめのブロックは「Ｃｈａｐｔｅｒ１・・・ＡＡＡ。」であり、改行を挟み、２つめのブロックが「ＢＢＢ・・・ＣＣＣ。」となっている。そして、さらに改行を挟み、３つめのブロックが画像１で示される。そして、４つ目のブロックは、さらに改行を挟み、「ＤＤＤ・・・ＤＤＤ。」で示される。最後に、５つ目のブロックは、さらに改行を挟み、「ＥＥＥ・・・＋画像２」となっている。
【００７９】
このように、ブロックは、表示要素の組み合わせ（例えば、文字と静止画）、あるいは、ある１つの表示要素（例えば、文字のみ、動画のみ）の何れの場合も含みうる。
【００８０】
なお、電子書籍リーダー１に表示される文字は、日本語であっても、英語等の外国語であってもよい。また、同図では、電子書籍リーダー１に表示される文字は横書きとなっている。しかしながら、当然に、電子書籍リーダー１に表示される文字を縦書きとすることもできる。
【００８１】
次に、ブロック数を用いた、従来の現ページ数／総ページ数の表示方法を図７により説明する。ここで、同図（ａ）は１画面目を、同図（ｂ）は２画面目を、同図（ｃ）は３画面目を、それぞれ表す。なお、図７（ａ）〜図７（ｃ）に表示された内容は、図６と同一の表示内容とする。
【００８２】
まず、図７の従来の現ページ数／総ページ数の表示方法では、総ページ数は、総ブロック数に対応する。したがって、この場合、総ブロック数が５であるため、総ページ数も５ページとなる。そのため、同図（ａ）〜（ｂ）では、中央下部に表示された現ページ数／総ページ数において、総ページ数を表す数字が全て「５」となる。
【００８３】
次に同図（ａ）について説明する。同図（ａ）では、１ブロック目の最初から２ブロック目の途中までが表示されている。このとき、図面先頭のブロックは１ブロック目である。そのため、現ページ数は、図面先頭のブロックの番号を示す「１」となり、現ページ数／総ページ数は「１／５」で表される。
【００８４】
次に同図（ｂ）について説明する。同図（ｂ）では、２ブロック目の途中から３ブロック目の最後までが表示されている。このとき、図面先頭のブロックは２ブロック目である。そのため、現ページ数は、図面先頭のブロックの番号を示す「２」となり、現ページ数／総ページ数は「２／５」で表される。
【００８５】
次に同図（ｃ）について説明する。同図（ｃ）では、４ブロック目の最初から５ブロック目の最後までが表示されている。このとき、図面先頭のブロックは４ブロック目である。そのため、現ページ数は、図面先頭のブロックの番号を示す「４」となり、現ページ数／総ページ数は「４／５」で表される。
【００８６】
このように、図７で示される従来の表示方法では、総ブロック数が５であるのに対し３画面しか表示されない。また、１画面で１ブロック進んだり、２画面で１ブロック進むなど、ユーザにとって文書のボリュームを把握しにくいという問題がある。そして、画面の中央下部に表示される現ページ数／総ページ数も、実際とは異なる。
【００８７】
このように、ブロック数を用いた、従来の現ページ数／総ページ数の表示方法では、文書全体のボリュームを正確に把握することができず、また、進行位置に応じた現ページ数／総ページ数を正確に表示することができない。
【００８８】
そこで、そのような問題を解決することが可能な、本実施の形態に係るページ数決定装置２０について、以下説明する。
【００８９】
〔電子書籍リーダー１、及びページ数決定装置２０の構成、動作〕
次に、電子書籍リーダー１、及びページ数決定装置２０の構成、動作について説明する。なお、本実施の形態では、ページ数決定装置２０は、電子書籍リーダー１に内蔵されているものとして説明している。しかしながら、ページ数決定装置２０は、電子書籍リーダー１に外付けされてもよいし、また、電子書籍リーダー１ではなく、パソコンや携帯情報端末(PDA)、携帯電話等の表示装置に内蔵または外付けされる構成で実現されてもよい。
【００９０】
図１は、本実施の形態に係る電子書籍リーダー１の概略構成を示すブロック図である。
【００９１】
図１に示すとおり、電子書籍リーダー１は、電子書籍（コンテンツ）を再生、表示等することが可能な端末機器であり、少なくとも、コンテンツデータ取得部１０、データパース部１１、レイアウト生成部１２、レイアウト判定部１５、コンテンツ表示部１６、データ生成部１７、ページ数決定装置２０、記憶部３０を備える。
【００９２】
以下、各部の詳細を説明する。なお、説明の便宜上、ページ数決定装置２０の説明は最後に行う。
【００９３】
コンテンツデータ取得部１０は、書籍をデジタルデータにし、パソコンや携帯情報端末(PDA)、携帯電話などで再生、表示可能にしたコンテンツデータを取得する。コンテンツデータには、動画データ、静止画データ、音声データなどが含まれうる。コンテンツデータ取得部１０は、電子書籍リーダー１にダウンロードする構成でコンテンツデータを取得する構成で実現されてもよいし、あるいは、ダウンロードせずにＷｅｂ上でアクセスしてコンテンツデータを取得する構成で実現されてもよい。
【００９４】
より具体的に説明すると、コンテンツデータ取得部１０は、ユーザの操作入力、あるいは前回表示位置からの表示といった表示位置指定に基づいて、コンテンツデータ内の最小単位（ブロック）のデータを、必要となる領域分（レイアウトする必要がある領域分）だけ取得する。例えば、図８は、コンテンツデータを説明するための概略図であるが、同図において、コンテンツデータ取得部１０は、Ｎブロックからなるコンテンツデータのうち、表示領域（指定領域）である〔Ｍ−１〕のコンテンツデータを最初に取得する。
【００９５】
ここで、コンテンツデータ取得部１０は、取得したコンテンツデータと、そのコンテンツデータに付随するデータであるブロック補助データとを記憶部３０に記憶させてもよい。あるいは、コンテンツデータとブロック補助データは、後述するデータパース部１１によって記憶部３０に記憶されてもよい。
【００９６】
データパース部１１は、コンテンツデータ取得部１０が取得した１ブロック分のコンテンツデータの情報をパース（分解、解読）する。そして、データパース部１１は、全体のレイアウトを決めるレイアウト用データ（段数、余白、行間、文字間指定等に関するデータ）と、行をレイアウトするための行要素データ（コンテンツデータ内のフォントサイズの変更、ルビ情報等に関するデータ）とを読み出す（準備する）。
【００９７】
例えば、データパース部１１は、〔Ｍ−１〕ブロックのデータを解析し、コンテンツデータ内のフォントサイズの変更、ルビ情報等の行要素データを準備する。なお、データパース部１１は、リンクジャンプの操作等に関するイベント情報を読み出すこともある。
【００９８】
さらに、データパース部１１は、全体のレイアウトを決めるレイアウト用データ（段数、余白、行間、文字間指定等に関するデータ）を、最初に読み込む領域（ヘッダ領域等）から読み出しておき、記憶部３０等の記憶部に記憶させておいてもよい。
【００９９】
レイアウト生成部１２は、データパース部１１で準備されたレイアウト用データおよび行要素データを利用して、実際のレイアウトを行う。なお、レイアウト生成部１２は、コンテンツに設定されているレイアウト用データ（段数、余白、行間、文字間指定等）が切り替わった場合、あるいは、ユーザが設定を切り替えた場合などの再度情報を取得する必要がある場合には、新たなレイアウト用データを取得する。また、レイアウト生成部１２は、動画、音声等のマルチメディアデータ、リンク移動等の各種イベント情報を、対応する行要素に割り当てる動作も行う。
【０１００】
より具体的に説明すると、レイアウト生成部１２は、段組レイアウト生成部１３と、行レイアウト生成部１４とを備える。
【０１０１】
段組レイアウト生成部１３は、レイアウト用データにしたがって、データパース部１１で生成された行要素データを流し込むための全体のレイアウト設定を行う。例えば、段組レイアウト生成部１３は、２段組、フォントサイズ１０ｄｏｔ、余白０ｄｏｔ、行間：フォントサイズの５０％、文字間０ｄｏｔといった設定を行う。また、段組レイアウト生成部１３は、その他のフォントサイズ変更等の設定も行う。
【０１０２】
次に、行レイアウト生成部１４は、段組レイアウト生成部１３による設定にしたがい、各行に指定されているフォントサイズの拡大等のデータを利用してレイアウトを行う。
【０１０３】
レイアウト判定部１５は、現在表示している領域中のすべてのレイアウトが生成されているかどうかを判定する。レイアウトが終了されていない場合は、その旨をコンテンツデータ取得部１０に通知する。コンテンツデータ取得部１０は、その通知を受けて、次のブロックのコンテンツデータを取得する。この動作は、表示領域内のすべてのレイアウトが生成されるまで繰り返される。図８の例で言えば、〔Ｍ−１〕、〔Ｍ〕、〔Ｍ＋１〕のすべてのレイアウトが生成されるまで、すなわち、レイアウト判定部１５が現在表示している領域中のすべてのレイアウトが生成されたと判定するまで、上記レイアウトの生成が繰り返される。
【０１０４】
コンテンツ表示部１６は、生成されたレイアウトに基づき、実際に文字、画像等の要素を表示する。ここで、リンクで紐付けられていたり、行要素として設定された動画、音声などのマルチメディアデータ、または、行要素として表示する必要のある画像データが存在する場合もある。その場合、コンテンツ表示部１６は、データ生成部１７によって生成されたデータを取得したうえで、音声・動画の再生や、画像の表示を行う。
【０１０５】
また、コンテンツ表示部１６は、総ページ数決定部２３（または現ページ数特定部（現ページ数特定手段）２４）から、電子書籍リーダー１にコンテンツが表示されるときの総ページ数に関するデータを取得する。また、コンテンツ表示部１６は、現ページ数特定部２４から、進行位置に応じた現ページ数に関するデータを取得する。そして、コンテンツ表示部１６は、取得した総ページ数および現ページ数に関するデータに基づいて、進行位置に応じた「現ページ数／総ページ数」を示す情報を電子書籍リーダー１に表示する。なお、コンテンツ表示部１６によるコンテンツ、あるいは現ページ数／総ページ数等の表示は、図示しない表示制御部による制御を介して行われる。
【０１０６】
データ生成部１７は、レイアウト内で必要になった画像、音声データ等の表示再生に必要となる、各種コーデックでコーディングされたデータを再生可能な形式に変換する。具体的には、メディアデータ生成部１８および画像デコード部１９が、マルチメディアデータの生成、制御、画像データの表示可能なデータへの変換（デコード）を行う。そして、データ生成部１７は、その変換データをコンテンツ表示部１６に出力する。
【０１０７】
また、電子書籍リーダー１は、図示しない操作部を備える。操作部は、ユーザが電子書籍リーダー１を動作させるための指示信号を入力するものであり、例えば、電子書籍リーダー１自体に設けられたタッチパネル、操作ボタン、電子書籍リーダー１に接続された、マウスやキーボードなどで構成される。操作部を用いてユーザにより入力された指示信号は、図示しない入出力制御部を介して、電子書籍リーダー１が備える各種機能ブロックに送られる。これにより、ユーザは、電子書籍リーダー１を操作することが可能となる。
【０１０８】
さらに、操作部を介したユーザの入力操作により、電子書籍リーダー１に表示されるコンテンツの表示ページが進む（戻る）と、後述する現ページ数特定部２４が、進行位置に応じた現ページ数を特定する。そして、コンテンツ表示部１６は、その進行位置に応じた現ページ数／総ページ数を電子書籍リーダー１に表示する。
【０１０９】
記憶部３０は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、ＳＲＡＭ（Static RAM）、フラッシュメモリ、ＨＤＤ（Hard Disk Drive）など、およびこれらの混成で構成されてもよい。記憶部３０には、データパース部１１が記憶させるレイアウト用データ（段数、余白、行間、文字間指定等に関するデータ）などが格納される。なお、記憶部３０は、図１では電子書籍リーダー１に内蔵されているが、外付けされる構成で実現されてもよい。
【０１１０】
次に、ページ数決定装置２０について説明する。なお、図９は、ページ数決定装置２０の動作を説明するためのフローチャートであり、後述する説明において、括弧内に示すステップ番号（Ｓ１０等）は図９の各ステップ番号に対応する。
【０１１１】
ページ数決定装置２０は、データパース部１１から、あらかじめ指定されている、全体のレイアウトを決めるレイアウト用データ（段数、余白、行間、文字間指定等に関するデータ）と、行をレイアウトするための行要素データ（コンテンツデータ内のフォントサイズの変更、ルビ情報等に関するデータ）とを取得する（Ｓ１０）。また、ページ数決定装置２０は、記憶部３０等から、コンテンツデータとコンテンツデータに付随するブロック補助データとを取得する。そして、ページ数決定装置２０は、レイアウト用データ、行要素データ、ブロック補助データ等に基づいて、電子書籍リーダー１でコンテンツを閲覧する、その進行位置に応じた現ページ数、総ページ数を計算（特定）する。
【０１１２】
より具体的に、ページ数決定装置２０は、総ブロック数検出部２１と、重み計算部２２と、総ページ数決定部２３と、現ページ数特定部２４と、を備える。
【０１１３】
総ブロック数検出部２１は、データパース部１１（あるいは、コンテンツデータ取得部１０及び／または記憶部３０）より、コンテンツデータとそのコンテンツデータに付随するブロック補助データとを取得する。そして、総ブロック数検出部２１は、ブロック補助データから、分割されるブロック数に関する情報を検出する（Ｓ２０）。たとえば、図５のブロック補助データにおいては、領域２１０から分割したブロック数「４」という情報を検出する。
【０１１４】
そして、総ブロック数検出部２１は、そのブロック数に関する情報を重み計算部２２に出力する。また、このとき、総ブロック数検出部２１は、重み計算部２２に対して、データパース部１１から取得したレイアウト用データおよび行要素データを出力する。
【０１１５】
重み計算部２２は、総ブロック数検出部２１から、上記ブロック数に関する情報を取得する。また、重み計算部２２は、総ブロック数検出部２１（またはデータパース部１１）から、レイアウト用データおよび行要素データを取得する。そして、重み計算部２２は、取得した上記ブロック数に関する情報、レイアウト用データ、及び行要素データから、１画面当たりに表示可能なブロックの数を「重み」と定義したときに、その重みを計算する（Ｓ３０）。
【０１１６】
以下、重みの計算方法を図１０を用いて説明する。図１０は、重み計算部２２によって重みを計算する方法を説明するための図である。
【０１１７】
なお、同図では、図面に対して横方向に文字が並んでいるものとする（以降、本文データを表示するときの文字の進行方向を「主走査方向」と称する場合もある。さらに、本文データが改行される方向を「副走査方向」と称する場合もある。）。したがって、この場合は、横方向が主走査方向を表す。
【０１１８】
まず、同図に記載された変数を用いて、重み計算部２２は、以下の式（１）により１行当たりの文字数を計算する。
【０１１９】
Ｍ＝（Ｌ１−（ＭＧ１＋ＭＧ２）＋ＦＳＰ）／（ＦＳＺ１＋ＦＳＰ）・・・（１）
ただし、
Ｍ    ：１行当たりの文字数（数）
Ｌ１  ：主走査方向の画面サイズ（ｄｏｔ）
ＭＧ１：主走査方向のトップマージン（縦書き時上余白、横書き時左余白）（ｄｏｔ）
ＭＧ２：主走査方向のボトムマージン（縦書き時下余白、横書き時右余白）（ｄｏｔ）
ＦＳＰ：文字間の長さ（ｄｏｔ）
ＦＳＺ１：１つのフォントの主走査方向の長さ（ｄｏｔ）
とする。
【０１２０】
なお、Ｍの小数点以下端数は切り捨てる。
【０１２１】
次に、重み計算部２２は、以下の式（２）を用いて１画面当たりの行数を計算する。
【０１２２】
Ｎ＝（Ｌ２−（ＭＧ３＋ＭＧ４）＋ＬＳＰ）／（ＦＳＺ２＋ＬＳＰ）・・・（２）
ただし、
Ｎ    ：１画面当たりの行数（数）
Ｌ２  ：副走査方向の画面サイズ（ｄｏｔ）
ＭＧ３：副走査方向のトップマージン（縦書き時右余白、横書き時上余白）（ｄｏｔ）
ＭＧ４：副走査方向のボトムマージン（縦書き時左余白、横書き時下余白）（ｄｏｔ）
ＬＳＰ：行間の長さ（ｄｏｔ）
ＦＳＺ２：１つのフォントの副走査方向の長さ（ｄｏｔ）
とする。
【０１２３】
なお、Ｎの小数点以下端数は切り捨てる。
【０１２４】
続いて、重み計算部２２は、以下の式（３）を用いて１画面当たりの文字数を計算する。
【０１２５】
Ｓ＝Ｍ×Ｎ・・・（３）
ただし、
Ｓ    ：１画面当たりの文字数（数）
とする。
【０１２６】
最後に、重み計算部２２は、以下の式（４）を用いて重みを計算する。
【０１２７】
Ｗ＝Ｓ／ＢＷ・・・（４）
ただし、
Ｗ    ：重み
ＢＷ  ：１ブロック当たりの文字数（数）
とする。
【０１２８】
そこで、例えば、Ｌ１＝８００、Ｌ２＝６００、ＭＧ１＝ＭＧ２＝２８、ＦＳＺ１＝ＦＳＺ２＝１０、ＦＳＰ＝２、ＭＧ３＝ＭＧ４＝２１、ＬＳＰ＝１０のとき（単位はすべて（ｄｏｔ）とする）、重み計算部２２は１画面当たりの文字数Ｓを、
Ｓ＝Ｍ×Ｎ＝３３×１８＝５９４（数）
と計算する。
【０１２９】
したがって、例えばＢＷ＝１０２４であるときには、重み計算部２２は、重みＷを、
Ｗ＝Ｓ／ＢＷ＝５９４／１０２４＝０．５８
と計算する。
【０１３０】
このようにして、重み計算部２２は、式（１）〜（４）を用いて重みを計算する。そして、重み計算部２２は、計算した重みを総ページ数決定部２３および現ページ数特定部２４に通知する。また、重み計算部２２は、総ブロック数検出部２１から取得した総ブロック数を、重みと併せて総ページ数決定部２３に通知する。ただし、総ページ数決定部２３は、総ブロック数を総ブロック数検出部２１から取得してもよい。
【０１３１】
なお、ＦＳＰ、ＦＳＺ１等の単位を（ｄｏｔ）で表現しているが、その単位は、ｐｔ（ポイント）、ｃｍ（センチメートル）など、どのような単位で表現されてもよい。ただし、上記では、長さの単位を（ｄｏｔ）で説明している。
【０１３２】
また、ＢＷは、予め決められた数字であってよい。例えば、ＸＭＤＦの場合、１０２４バイト以上で改行が入った時点でブロック間の境界が切られるパターンが多いため、１ブロック＝１０２４文字と仮定する。このようにＢＷの数値は、使用するフォーマットによって規定（仮定）されうるものである。また、仮想的にブロックが分割されている場合は、そのブロックのサイズに応じてＢＷの値を動的に規定してもよい。
【０１３３】
総ページ数決定部２３は、総ブロック数検出部２１（または、重み計算部２２）から総ブロック数（または、総ブロック数に関する情報）を、重み計算部２２から重み（または、重みに関する情報）を、それぞれ取得する。そして、総ページ数決定部２３は、取得した総ブロック数及び重みに基づいて、以下の式（５）により総ページ数を計算し、決定する（Ｓ４０）。
【０１３４】
ＴＰ＝ＴＢ／Ｗ＋１・・・（５）
ただし、
ＴＢ  ：総ブロック数検出部２１が検出した総ブロック数
ＴＰ  ：総ページ数（ページ）
とする。なお、ＴＰの小数点以下の端数は切捨てとする。
【０１３５】
そこで、例えば、ＴＢ＝５、Ｗ＝１のとき、総ページ数決定部２３は、総ページ数ＴＰを、
ＴＰ＝ＴＢ／Ｗ＋１＝５／１＋１＝６（ページ）
と計算する。
【０１３６】
このようにして、総ページ数決定部２３は、式（５）を用いて総ページ数を計算する。そして、総ページ数決定部２３は、その総ページ数（または総ページ数に関する情報）をコンテンツ表示部１６に通知する。
【０１３７】
現ページ数特定部２４は、コンテンツ表示部１６から、電子書籍リーダー１の表示部に現在表示されているコンテンツについて、その先頭ブロックのブロック番号に関する情報を取得する。１画面に表示されているブロックが複数存在する場合には、最上部に位置するブロックが取得される現ブロック番号となる。なお、現ページ数特定部２４は、電子書籍リーダー１の表示部に現在表示されているブロックのブロック補助データを参照して現ブロック番号を認識してもよい。
【０１３８】
また、現ページ数特定部２４は、重み計算部２２から、重み計算部２２が計算した重み（または重みに関する情報）を取得する。
【０１３９】
そして、現ページ数特定部２４は、電子書籍リーダー１に表示されているコンテンツの進行位置に応じた現ページ数を、以下の式（６）を用いて特定する（Ｓ５０）。
【０１４０】
ＣＰ＝ｂ／Ｗ＋１・・・（６）
ただし、
ｂ    ：電子書籍リーダー１に表示されているコンテンツのブロックのうち、最上部に位置するブロックのブロック番号
ＣＰ  ：現ページ数
とする。なお、ＴＰの小数点以下の端数は切り捨てとする。
【０１４１】
そこで、例えば、ｂ＝５、Ｗ＝０．５８のとき、現ページ数特定部２４は、現ページ数を、
ＣＰ＝ｂ／Ｗ＋１＝５／０．５８＋１＝９．６２⇒９
と計算する。
【０１４２】
このようにして、現ページ数特定部２４は、式（６）を用いて現ページ数を計算する。そして、現ページ数特定部２４は、その現ページ数をコンテンツ表示部１６に通知する。
【０１４３】
その後、コンテンツ表示部１６は、総ページ数決定部２３から取得した総ページ数（または総ページ数に関する情報）と、現ページ数特定部２４から取得した現ページ数（または現ページ数に関する情報）とに基づいて、「現ページ数／総ページ数」を示す情報を表示することができる（Ｓ６０）。
【０１４４】
以上、電子書籍リーダー１、及びページ数決定装置２０の構成、動作について説明した。ここで、上記説明は、あくまで１つの実施形態を説明するものであって、本実施の形態は、上述した内容に限定されるものではない。例えば、図６等では、横書きのコンテンツを例に説明したが、当然にコンテンツは縦書きの場合も本実施の形態に含まれる。また、コンテンツに含まれる文字は、日本語、英語等の特定の言語に限られるものではない。
【０１４５】
〔表示例〕
ここで、ページ数決定装置２０による「現ページ数／総ページ数」の表示例を図１１により説明する。図１１は、「現ページ数／総ページ数」の表示例を説明するための図であり、同図（ａ）は１ページ目を、同図（ｂ）は２ページ目を、同図（ｃ）は３ページ目を、それぞれ示す。なお、同図では、総ブロック数は５である。また、同図では、１ブロック当たりの文字数（コンテンツデータがＸＭＤＦの場合）が１０２４文字であり、Ｓ（１画面あたりの文字数）＝１８００文字であるとする。
【０１４６】
このとき、重みＷ＝１８００／１０２４＝１．７６であるため、総ページ数（ＴＰ）は、式（５）を用いて
ＴＰ＝ＴＢ／Ｗ＋１＝５／１．７６＋１＝３．８４⇒３
となる。
【０１４７】
次に、現ページ数特定部２４は、式（６）を用いて、１ページ目（ＣＰ１）を
ＣＰ１＝ｂ／Ｗ＋１＝１／１．７６＋１＝１．５９⇒１
と算出する。
【０１４８】
また、現ページ数特定部２４は、式（６）を用いて、２ページ目（ＣＰ２）を
ＣＰ２＝ｂ／Ｗ＋１＝２／１．７６＋１＝２．１３⇒２
と算出する。
【０１４９】
また、現ページ数特定部２４は、式（６）を用いて、３ページ目（ＣＰ３）を
ＣＰ３＝ｂ／Ｗ＋１＝２／１．７６＋１＝３．２７⇒３
と算出する。
【０１５０】
このようにして、同図に示す表示例では、コンテンツ表示部１６は、順に「１／３」、「２／３」、「３／３」と表示するため、リフロー式にコンテンツが表示されるときに、そのコンテンツの全体のボリュームを正確かつ迅速にユーザに認識させることができる。
【０１５１】
〔その他の表示例〕
その他の表示例を図１２により説明する。図１２は、移動バーにより画面をスクロールさせるときの「現ページ数／総ページ数」の表示例を示す。
【０１５２】
図１１（ｃ）のように、最終ページに複数のブロックが表示される場合に、コンテンツ表示部１６は、最終ページを「９９／１００」と表示する場合がある。このような場合は、図１２に示す移動バーの「ＥＮＤ」ボタンを押す（移動）することにより、コンテンツ表示部１６は、「１００／１００」と最後の画面を表示する構成としてもよい。移動バーの「ＥＮＤ」ボタンを押す（移動）するにはタッチパネル、十字キーで移動すればよく、移動後のページ表示として「１００／１００」が表示される。また、本文領域は移動後の画面に変わってもよい。
【０１５３】
このように、電子書籍リーダー１は、ページ数決定装置２０を備えることにより、種々の方法による「現ページ数／総ページ数」の表示が可能である。
【０１５４】
〔ページ数決定装置２０によって得られる効果〕
ページ数決定装置２０は、リフロー式にコンテンツを表示することが可能な電子書籍リーダー１に用いられるページ数決定装置２０であって、コンテンツデータが複数のブロックに分割されるときに、その分割されるブロックの総数である総ブロック数を検出する総ブロック数検出部２１と、電子書籍リーダー１の１画面当たりに表示可能なブロックの数を重みとして計算する重み計算部２２と、総ブロック数検出部２１によって検出された総ブロック数と重み計算部２２によって計算された重みとから、電子書籍リーダー１にコンテンツが表示されるときの総ページ数を決定する総ページ数決定部２３と、を備えることを特徴としている。
【０１５５】
また、本発明に係るページ数決定方法は、リフロー式にコンテンツを表示することが可能な電子書籍リーダー１に用いられるページ数決定方法であって、コンテンツデータが複数のブロックに分割されるときに、その分割されるブロックの総数である総ブロック数を検出する総ブロック数検出ステップと、電子書籍リーダー１の１画面当たりに表示可能なブロックの数を重みとして計算する重み計算ステップと、総ブロック数検出ステップによって検出された総ブロック数と重み計算ステップによって計算された重みとから、電子書籍リーダー１にコンテンツが表示されるときの総ページ数を決定する総ページ数決定ステップと、を含むことを特徴としている。
【０１５６】
一般的に、電子書籍リーダー１に表示されるコンテンツのレイアウトは、紙面で文書等をレイアウトする場合と異なり、表示状態が画面サイズ等に応じて変化する。このため、そのコンテンツが電子書籍リーダー１に表示されるときの厳密なページ数を決定するためには、実際にコンテンツを開いてから複雑な計算を行う必要がある。
【０１５７】
しかしながら、コンテンツのサイズを判断するうえで或る基準を設け、その基準に基づいてレイアウトを行うことで、コンテンツの全体のボリュームをかなり厳密に把握しうる場合がある。ページ数決定装置２０（ページ数決定方法）は、コンテンツを開いてからでも、簡単な計算によってコンテンツの全体のボリュームを正確かつ迅速にユーザに認識させることを可能とするものである。
【０１５８】
具体的に、ページ数決定装置２０（ページ数決定方法）では、まずコンテンツデータが複数のブロックに分割される。そして、総ブロック数検出部２１が、その分割されたブロックの総数である総ブロック数を検出する。さらに、本発明では、電子書籍リーダー１の１画面当たりに表示可能なブロックの数を「重み」という概念で表現しており、その「重み」が、上記或る基準として用いられるとともに、重み計算部２２（重み計算ステップ）によって計算される。
【０１５９】
そのうえで、総ページ数決定部２３（総ページ数決定ステップ）が、総ブロック数検出部２１によって検出された総ブロック数と重み計算部２２によって計算された重みとから、電子書籍リーダー１にコンテンツが表示されるときの総ページ数を決定する。つまり、総ページ数決定部２３（総ページ数決定ステップ）は、電子書籍リーダー１の１画面当たりに表示可能なブロックの数である「重み」を上記或る基準として、その基準となる重みと総ブロック数とから、コンテンツの全体のボリュームを示す総ページ数を決定している。
【０１６０】
したがって、ページ数決定装置２０（ページ数決定方法）は、上記構成を備えることにより、コンテンツが電子書籍リーダー１に表示されるときに、実際にコンテンツを開いてから、簡単な計算により総ページ数を決定することを可能としている。また、演算処理によって総ページ数が決定されることから、正確かつ迅速に、総ページ数をユーザに認識させることができる。
【０１６１】
なお、コンテンツデータは、仮想的に複数のブロックに分割されても、実際に分割されていてもよく、また各ブロックは任意のサイズに分割することもできる。ただし、上記或る基準としての「重み」の信頼性を高めるうえで、各ブロックをほぼ等しいサイズに分割することが好ましい。
【０１６２】
さらに、ページ数決定装置２０では、総ページ数決定部２３は、総ブロック数を重みにより除算して得られる値を総ページ数と決定する構成であってよい。
【０１６３】
「重み」は、電子書籍リーダー１の１画面当たりに表示可能なブロックの数を示す値である。したがって、総ページ数決定部２３は、総ブロック数を重みにより除算して得られる値を総ページ数として決定することができる。総ページ数の決定に際しては、単純な演算式を用いるだけでよいため、総ページ数決定部２３は、正確かつ迅速に総ページ数を決定することができる。
【０１６４】
さらに、ページ数決定装置２０では、総ページ数決定部２３は、以下の式（１）〜（５）を用いて、総ページ数を決定する構成であってよい。
【０１６５】
Ｍ＝（Ｌ１−（ＭＧ１＋ＭＧ２）＋ＦＳＰ）／（ＦＳＺ１＋ＦＳＰ）・・・（１）
Ｎ＝（Ｌ２−（ＭＧ３＋ＭＧ４）＋ＬＳＰ）／（ＦＳＺ２＋ＬＳＰ）・・・（２）
Ｓ＝Ｍ×Ｎ・・・（３）
Ｗ＝Ｓ／ＢＷ・・・（４）
ＴＰ＝ＴＢ／Ｗ＋１・・・（５）
ただし、
Ｍ    ：１行当たりの文字数
Ｌ１  ：主走査方向の画面サイズ
ＭＧ１：主走査方向のトップマージン（縦書き時上余白、横書き時左余白）
ＭＧ２：主走査方向のボトムマージン（縦書き時下余白、横書き時右余白）
ＦＳＰ：文字間の長さ
ＦＳＺ１：１つのフォントの主走査方向の長さ
Ｎ    ：１画面当たりの行数
Ｌ２  ：副走査方向の画面サイズ
ＭＧ３：副走査方向のトップマージン（縦書き時右余白、横書き時上余白）
ＭＧ４：副走査方向のボトムマージン（縦書き時左余白、横書き時下余白）
ＬＳＰ：行間の長さ
ＦＳＺ２：１つのフォントの副走査方向の長さ
Ｓ    ：１画面当たりの文字数
Ｗ    ：重み
ＢＷ  ：１ブロック当たりの文字数
ＴＢ  ：総ブロック数検出部２１が検出した総ブロック数
ＴＰ  ：総ページ数
とする。
【０１６６】
上述するように、１行当たりの文字数（Ｍ）、及び１画面当たりの行数（Ｎ）は、主走査方向の画面サイズ（Ｌ）等のレイアウト情報に基づいて求められる。すなわち、１画面当たりの文字数（Ｓ）は、レイアウト情報に基づいて取得可能である。そして、１ブロック当たりの文字数（ＢＷ）は、所与の数値として与えられる（例えば、ＸＭＤＦの場合、１０２４バイト以上で改行が入った時点でブロック間の境界が切られるパターンが多いため、１ブロック当たりの文字数は、１０２４文字として与えられる。）このため、電子書籍リーダー１の１画面当たりに表示可能なブロックの数を示す重みＷは、式（４）により計算することができる。
【０１６７】
したがって、総ページ数を計算するための式として式（５）を定義することにより、総ページ数決定部２３は、総ページ数を迅速に決定することができる。
【０１６８】
さらに、ページ数決定装置２０では、複数に分割されたブロックのうち、電子書籍リーダー１の表示部の最上部に表示されているコンテンツに対応付けられたブロック番号と、重み計算部２２によって計算された重みとから、電子書籍リーダー１に表示されているコンテンツの進行位置に応じた現ページ数を特定する現ページ数特定部２４を備える構成であってよい。
【０１６９】
上述したように、電子書籍リーダー１の１画面当たりに表示可能なブロックの数を示す重みは、重み計算部によって既に計算されている。したがって、現ページ数特定部２４は、その重みを取得するとともに、複数に分割されたブロックのうち、電子書籍リーダー１の表示部の最上部に表示されているコンテンツに対応付けられたブロック番号とを取得することで、現ページ数を特定することができる。
【０１７０】
ここで、複数に分割されたブロックのうち、電子書籍リーダー１の表示部の最上部に表示されているコンテンツに対応付けられたブロック番号は、公知の手段によって取得することが可能である。そのため、現ページ数特定部２４は、重み及びブロック番号を取得することで、現ページ数を容易に特定することができる。
【０１７１】
さらに、ページ数決定装置２０では、現ページ数特定部２４は、以下の式（６）を用いて、現ページ数を特定する構成であってよい。
【０１７２】
ＣＰ＝ｂ／Ｗ＋１・・・（６）
ただし、
ｂ    ：電子書籍リーダー１に表示されているコンテンツのブロックのうち、最上部に位置するブロックのブロック番
ＣＰ  ：現ページ数
とする。
【０１７３】
電子書籍リーダー１に表示されているコンテンツの進行位置に応じた現ページ数を計算するための式として式（６）を定義することにより、現ページ数特定部２４は、現ページ数を迅速に決定することができる。このとき、式（６）で用いられる変数は、ｂおよびＷのみである。したがって、現ページ数特定が現ページ数を特定するときに、複雑な演算処理は必要なく、それゆえ、演算処理上の負担を著しく軽減することができる。
【０１７４】
さらに、ページ数決定装置２０では、コンテンツデータには当該コンテンツデータを複数のブロックに分割して処理するためのブロック補助データが含まれており、コンテンツデータは、ブロック補助データに基づいて、複数のブロックに分割される構成であってよい。
【０１７５】
上記構成によれば、コンテンツデータを複数のブロックに分割して処理するためのブロック補助データがコンテンツデータに含まれている。したがって、そのブロック補助を含むコンテンツデータを用いることにより、容易に、コンテンツデータを複数のブロックに分割することができる。また、ブロック補助データを適宜設定することにより、各ブロックサイズをほぼ等しいサイズにし、総ページ数決定部２３が総ページ数を決定する精度、および現ページ数特定部２４が現ページ数を特定する精度を高めることができる。
【０１７６】
さらに、ページ数決定装置２０では、電子書籍リーダー１は、総ページ数決定部２３によって決定された総ページ数と現ページ数特定部２４によって特定された現ページ数とを表示する構成であってよい。
【０１７７】
上記構成により、例えば「現ページ数／総ページ数」が電子書籍リーダー１に表示される。これにより、ユーザは、コンテンツの全体のボリュームを知ることができ、かつ、コンテンツデータ全体における表示ページの進行位置も知ることができる。それゆえ、ページ数決定装置２０は、実際の書籍と同様の読書感覚をユーザに与えることができ、電子書籍リーダー１のユーザビリティーを高めることができる。
【０１７８】
さらに、ページ数決定装置２０では、電子書籍リーダー１は、パーソナルコンピュータ、携帯情報端末、携帯電話機、及び電子書籍リーダーの何れかであってよい。
【０１７９】
ページ数決定装置２０は、自身が接続される電子書籍リーダー１がパーソナルコンピュータ、携帯情報端末、携帯電話機、及び電子書籍リーダーであるときに、好適に適用することができる。
【０１８０】
なお、ページ数決定装置２０（ページ数決定方法）は、コンピュータによって実現してもよく、この場合には、コンピュータを総ブロック数検出ステップ、重み計算ステップステップ、及び総ページ数決定ステップとして動作させることによりページ数決定方法をコンピュータにて実現させるページ数決定プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
【０１８１】
〔補足〕
最後に、ページ数決定装置２０の各ブロック、特に総ブロック数検出部２１、重み計算部２２、総ページ数決定部２３、及び現ページ数特定部２４は、ハードウェアロジックによって構成してもよいし、次のようにＣＰＵを用いてソフトウェアによって実現してもよい。
【０１８２】
すなわち、ページ数決定装置２０は、各機能を実現する制御プログラムの命令を実行するＣＰＵ（central processing unit）、前記プログラムを格納したＲＯＭ（read only memory）、前記プログラムを展開するＲＡＭ（random access memory）、前記プログラムおよび各種データを格納するメモリ等の記憶装置（記録媒体）などを備える。そして、本発明の目的は、上述した機能を実現するソフトウェアであるページ数決定装置２０の制御プログラムのプログラムコード（実行形式プログラム、中間コードプログラム、ソースプログラム）をコンピュータで読み取り可能に記録した記録媒体を、ページ数決定装置２０に供給し、そのコンピュータ（又はＣＰＵやＭＰＵ）が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
【０１８３】
前記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー（登録商標）ディスク／ハードディスク等の磁気ディスクやコンパクトディスク−ＲＯＭ／ＭＯ／ＭＤ／デジタルビデオデイスク／コンパクトディスク−Ｒ等の光ディスクを含むディスク系、ＩＣカード（メモリカードを含む）／光カード等のカード系、あるいはマスクＲＯＭ／ＥＰＲＯＭ／ＥＥＰＲＯＭ／フラッシュＲＯＭ等の半導体メモリ系などを用いることができる。
【０１８４】
また、ページ数決定装置２０を通信ネットワークと接続可能に構成し、前記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、ＬＡＮ、ＩＳＤＮ、ＶＡＮ、ＣＡＴＶ通信網、仮想専用網（virtual private network）、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、ＩＥＥＥ１３９４、ＵＳＢ、電力線搬送、ケーブルＴＶ回線、電話線、ＡＤＳＬ回線等の有線でも、ＩｒＤＡやリモコンのような赤外線、Ｂｌｕｅｔｏｏｔｈ（登録商標）、８０２．１１無線、ＨＤＲ、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、前記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
【０１８５】
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【産業上の利用可能性】
【０１８６】
本発明は、リフロー式に表示されるコンテンツの総ページ数を計算することが可能なページ数決定装置に関し、特に、当該ページ数決定装置を内臓する電子書籍リーダーに好適に適用することができる。
【符号の説明】
【０１８７】
１    電子書籍リーダー（表示装置）
１０  コンテンツデータ取得部
１１  データパース部
１２  レイアウト生成部
１３  段組レイアウト生成部
１４  行レイアウト生成部
１５  レイアウト判定部
１６  コンテンツ表示部
１７  データ生成部
１８  メディアデータ生成部
１９  画像デコード部
２０  ページ数決定装置
２１  総ブロック数検出部（総ブロック数検出手段）
２２  重み計算部（表示可能ブロック数計算手段）
２３  総ページ数決定部（総ページ数決定手段）
２４  現ページ数特定部（現ページ数特定手段）
３０  記憶部
【図１】
0005538159.tif 000002
【図２】
0005538159.tif 000003
【図３】
0005538159.tif 000004
【図４】
0005538159.tif 000005
【図５】
0005538159.tif 000006
【図６】
0005538159.tif 000007
【図７】
0005538159.tif 000008
【図８】
0005538159.tif 000009
【図９】
0005538159.tif 000010
【図１０】
0005538159.tif 000011
【図１１】
0005538159.tif 000012
【図１２】
0005538159.tif 000013