您有没有想过如何在EPUB阅读器中实现“分页”功能? .EPUB文件本质上就是HTML页面,而EPUB阅读器会渲染这些HTML页面。 但我很好奇为什么像Adobe Digital Edition这样的一些EPUB阅读器可以实现分页。 如果我们跳转到任何一页,您将不会发现半个显示的行(即只有字母的上半部分可见,下半部分在下一页),或者只有一半的图片在当前页上,另一半在下一页上。 如果我不能完整地在当前页面上显示某行内容,如何将其推送到下一页?
您有没有想过如何在EPUB阅读器中实现“分页”功能? .EPUB文件本质上就是HTML页面,而EPUB阅读器会渲染这些HTML页面。 但我很好奇为什么像Adobe Digital Edition这样的一些EPUB阅读器可以实现分页。 如果我们跳转到任何一页,您将不会发现半个显示的行(即只有字母的上半部分可见,下半部分在下一页),或者只有一半的图片在当前页上,另一半在下一页上。 如果我不能完整地在当前页面上显示某行内容,如何将其推送到下一页?
<span style="page-break-after: always" />
EPUB实际上没有页面的概念——它适用于可重排内容,以适应显示容器的尺寸。因此,您提出的建议有点像是一种hack。
话虽如此,用户习惯于页面,大多数阅读器都实现了某种页面概念。
您需要实现类似Knuth的分页算法,这又依赖于他的段落和行断字算法。请参阅他的TeX书籍以获取完整的文学代码(如果我没记错的话,它是用Pascal编写的)。 (这不是非常复杂的代码——我在很多年前编写的桌面出版程序中实现了一个)。
如果您选择这条路,这意味着您可能无法使用UIWebView。
顺便说一下,Adobe Digital Edition实现了Knuth算法的变体。