gpt4 book ai didi

javascript - 计算 epub 的总页数

转载 作者:行者123 更新时间:2023-12-02 13:58:35 27 4
gpt4 key购买 nike

我是 epub 新手。我有许多不同的 epub 格式文件,我将使这些文件在线可读。我不太了解 epub 文件中的内容?有什么方法可以让我知道我的 epub 文件中有多少页?我可以使用 xmljavascriptPHP 或任何其他方式(如果您有)来完成此操作。

最佳答案

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

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

EPUB 3 文件有两种版本(即风格):预分页可重排,而 EPUB 2 文件仅可重排 .

预分页(又名“固定布局”)意味着电子书基本上就像 PDF,其中每个“页面”都有预先确定的大小,例如800x600 px,但每个页面都写为 XHTML 文件而不是二进制 blob。这种类型的再现用于插图和 child 读物,其中图像的精确位置至关重要。

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

因此,如果您有预分页 EPUB,则只需计算书脊中 XHTML 文件的数量即可确定页数,因为必须存在一对一的关系。 XHTML 文件和页面之间的一一对应关系。

如果您有可重排 EPUB,则不存在页面的内在概念。一些阅读应用程序通过计算文本中的字符数,然后将该数字除以某个常数(例如,1024 字符/页)来计算“页数”。但当然,这只是一个粗略的估计,它不一定对应于显示文本所需的“屏幕”数量,这又取决于阅读应用程序和用户的排版选择(字体大小、边距、线传播等)。其他一些阅读应用程序仅显示进度百分比,计算方法是使用迄今为止看到的文本字符数除以文本中的字符总数。

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

关于javascript - 计算 epub 的总页数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40542479/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com