我是epub的新手。我有许多不同的epub格式文件,我将在线阅读此文件。
我对epub文件中的内容不太了解?
有什么方法可以让我知道epub
文件中有多少页?
我可以使用xml
,javascript
,PHP
或其他任何方式执行此操作。
答案 0 :(得分:1)
Epub文件是响应式电子书,可根据屏幕大小更改页数。 页码也取决于观众应用程序&设备。
答案 1 :(得分:1)
EPUB文件基本上是一个ZIP文件,其中包含:
mimetype
文件,用于轻松检测文件类型(application/epub+zip
); META-INF/container.xml
文件,描述EPUB文件中包含的不同类型的发布。通常只有一个,但原则上你可以有例如同一EPUB文件中相同文本的HTML和PDF版本,阅读应用程序或用户可以决定查看哪一个; file.opf
),它是一个包含以下内容的清单文件:
XHTML
文件,EPUB 2中的NCX
文件),它描述了目录,通常通过阅读应用程序来解析,以显示&#34 ;目录"板/窗。 EPUB 3文件有两种版本(即风格):pre-paginated
或reflowable
,而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