Javascript 如何实施';分页符';在epub阅读器中

Javascript 如何实施';分页符';在epub阅读器中,javascript,jquery,html,Javascript,Jquery,Html,你知道如何在epub阅读器中实现“分页符”吗? .epub只不过是HTML页面,而epub阅读器呈现这些HTML页面。 但我想知道一些epub阅读器,比如Adobe Digital Edition,是如何实现分页符的。 在这里,当我们跳转到任何一页时,你都不会看到一半显示的行(即,只有字母的上半部分可见,下半部分在下一页中)或一半图像,而下一页中的另一部分在下一页中。 如果我无法在当前页面中完全显示该行,如何将其推到下一页?如果没有明确的答案,您可以: 找到关于epub的全面信息源是这样的吗

你知道如何在epub阅读器中实现“分页符”吗? .epub只不过是HTML页面,而epub阅读器呈现这些HTML页面。 但我想知道一些epub阅读器,比如Adobe Digital Edition,是如何实现分页符的。 在这里,当我们跳转到任何一页时,你都不会看到一半显示的行(即,只有字母的上半部分可见,下半部分在下一页中)或一半图像,而下一页中的另一部分在下一页中。
如果我无法在当前页面中完全显示该行,如何将其推到下一页?

如果没有明确的答案,您可以:

  • 找到关于epub的全面信息源是这样的吗
  • 尝试在epub创建中进行一些实验,并将其与

EPUB实际上没有页面的概念——它是为满足显示容器尺寸的可回流内容而设计的。所以你的建议有点老套

也就是说,用户对页面很满意,大多数读者实现了页面的一些概念

您需要的是实现类似Knuth的分页算法(这取决于他的段落)和换行算法。查看他的TeX书,了解完整的可读代码(IIRC,它是用Pascal编写的)。(一段代码没有那么复杂——我在多年前编写的一个桌面发布程序中实现了一段代码)

如果你走这条路,这意味着你可能无法使用UIWebView


顺便说一句,Adobe Digital Edition实现了Knuth算法的一种变体。

在底层html中,您可以放置如下内容:

<span style="page-break-after: always" />


我使用这种css样式创建分页符。在Stanza reader(iPhone)和Kindle(转换为Kindle格式后)-1中运行良好,因为epubs肯定希望在章节之前分页符,等等。如何做到这一点:使用css规则,例如div.chapter{page break after:always;}如果css3是一个选项:column family(阅读W3C规范中的详细说明,您将看到如何创建固定高度/宽度的列大小)非常奇妙,只需要一个容器div,其余的是基于“门户”大小的数学(目前在Web视图中使用Java实现)你有Adobe Digital Edition使用Knuth算法的参考资料吗?我知道InDesign,但不是这个。