Ereader风格的分页

时间:2010-11-17 19:41:01

标签: objective-c xml ios uiwebview epub

我从XML文件中获取文本数据,并希望它在iPad上的UIWebView内以书页式格式显示。 XML文件来自.epub,每个文件都包含一本书的一章,仅由p标签分隔。

我希望根据UIWebView的大小(这是一个完整的iPad屏幕)以及用户选择的字体大小,将这些文件动态分页为类似书的页面。我目前正在将一个带有相关css的空白html页面加载到UIWebView中,根据XML中的字符串数量抓取段落,然后使用StringByEvaluatingJavaScriptFromString和innerHTML属性将它们打印到html中。 / p>

显然,按字符数量执行此操作会产生间隔不当,格式错误的页面,但我不确定如何“分页”文本。

我希望做的事情类似于iPad上的应用程序“eReader”:http://www.ereader.com/。它们似乎将单个文件动态分解为页面,并将其加载到UIWebView中。这是怎么做到的?

3 个答案:

答案 0 :(得分:2)

大多数基于UIWebView的EPUB阅读器只使用CSS3列对文档进行分页。

您可以在http://www.quirksmode.org/css/multicolumn.html

看到这一点

基本的想法是,您将文档“列化”,然后水平滚动显示该文档以显示特定页面。

在iPhone和iPad上为一个流行的(加拿大)电子阅读器应用程序完成此操作后,我可以告诉您该技术有效,但它远非理想。

答案 1 :(得分:1)

代码已经完成。它被称为epubjs。它只是Javascript的epub阅读器。

答案 2 :(得分:0)

将UITextView与PageviewController一起使用。 (如果有的话,请说明你的疑虑)