计算epub中的总页数

时间:2016-11-11 06:41:00

标签: javascript php xml epub epub3

我是epub的新手。我有许多不同的epub格式文件,我将在线阅读此文件。 我对epub文件中的内容不太了解? 有什么方法可以让我知道epub文件中有多少页? 我可以使用xmljavascriptPHP或其他任何方式执行此操作。

2 个答案:

答案 0 :(得分:1)

Epub文件是响应式电子书,可根据屏幕大小更改页数。 页码也取决于观众应用程序&设备。

答案 1 :(得分:1)

EPUB文件基本上是一个ZIP文件,其中包含:

  • 一个mimetype文件,用于轻松检测文件类型(application/epub+zip);
  • 一个META-INF/container.xml文件,描述EPUB文件中包含的不同类型的发布。通常只有一个,但原则上你可以有例如同一EPUB文件中相同文本的HTML和PDF版本,阅读应用程序或用户可以决定查看哪一个;
  • OPF文件(例如file.opf),它是一个包含以下内容的清单文件:
    • 元数据(标题,作者等)
    • 容器内的资产列表(XHTML文件,图像,字体,CSS样式表等)
    • 书脊,即出版物的默认阅读顺序
  • 一个TOC文件(EPUB 3中的XHTML文件,EPUB 2中的NCX文件),它描述了目录,通常通过阅读应用程序来解析,以显示&#34 ;目录"板/窗。

EPUB 3文件有两种版本(即风格):pre-paginatedreflowable,而EPUB 2文件只有reflowable

pre-paginated(又名"固定布局")意味着电子书基本上就像一个PDF,其中每个"页面"具有预定的大小,例如800x600 px,但每个页面都是作为XHTML文件而不是二进制blob编写的。这种类型的演绎用于插图和儿童书籍,其中图像的准确放置至关重要。

reflowable表示没有预先确定的分页,因此文本" flow"适应阅读设备屏幕尺寸和用户的字体高度/边距/线传播选择。它基本上就像一个网站(=一组网页),打包成一个ZIP文件。这是迄今为止最常见的EPUB风格。

因此,如果您有pre-paginated个EPUB,您可以通过简单计算脊椎中XHTML文件的数量来确定页数,因为XHTML文件之间必须存在一对一的对应关系和页面。

如果您有reflowable EPUB,则没有页面的内在概念。一些阅读应用程序计算"页数"通过计算文本中的字符数,然后将该数字除以某个常数(例如,1024个字符/页面)。但当然这只是一个粗略的估计,并不一定与“屏幕”的数量相对应。需要显示文本,这又取决于阅读应用程序和用户的印刷选择(字体大小,边距,线条传播等)。其他一些阅读应用程序只显示%进度,使用到目前为止看到的文本的字符数除以文本中的字符总数计算。

作为参考,完整的EPUB规范在此处:http://idpf.org/epub