繁体   English   中英

计算epub中的总页数

[英]Count total number of pages in epub

我是epub新手。 我有许多不同的epub格式文件,并且我将在线阅读此文件。 我对epub文件中的内容不太了解? 有什么办法可以让我知道我的epub文件中有多少页? 如果可以的话,我可以使用xmljavascriptPHP或任何其他方式来实现。

Epub文件是响应式电子书,可根据屏幕尺寸更改页面数。 页码也取决于查看器的应用程序和设备。

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文件),它描述目录,通常通过阅读应用程序进行分析以显示“目录”面板/窗口。

EPUB 3文件有两种格式(即风味): pre-paginatedreflowable ,而EPUB 2文件仅reflowable

pre-paginated (又称“固定布局”)意味着电子书基本上就像PDF,其中每个“页面”都有预定的大小,例如800x600 px,但是每个页面都被编写为XHTML文件而不是二进制Blob 。 这种演示文稿用于插图和儿童读物,在这些地方,准确放置图像至关重要。

reflowable意味着没有预定的分页,因此文本“流动”以适应阅读设备的屏幕尺寸以及用户的字体高度/边距/行扩展选择。 它基本上就像一个网站(=一组网页),打包成一个ZIP文件。 这是迄今为止EPUB最常见的味道。

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

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

作为参考,完整的EPUB规范位于: http : //idpf.org/epub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM