如何为iPad / iPhone应用程序实现ePub阅读器

时间:2012-09-03 05:37:49

标签: iphone ios xcode ipad epub

我想为iOS平台实现一个ePub阅读器。请为推荐动画,书签,字体大小自定义和单页视图(无滚动条)推荐任何开源代码。

4 个答案:

答案 0 :(得分:4)

正如前一篇文章所指出的那样,没有API可以让ePub显示它 - 你需要做一些工作:

  1. 解压缩ePub
  2. 阅读清单文件和元数据文件以查找要显示的xhtml文档
  3. 使用file:///解压缩文档的URL将xhtml文档加载到UIWebView中
  4. 如果您想确保文档没有到达网络,您需要实现自定义NSURLProtocol并自行为文件提供字节,因为file:///允许跨域访问。

    这将显示内容很好,但“硬”部分在文档之间移动(通常代表整个章节)。这是iBooks和其他应用程序为您所做的工作。

    注意:要使UIWebView正确显示内容,您必须确保在使用file:/// urls时该文件具有.xhtml扩展名。如果您实现自己的URL协议处理程序,则需要确保协议处理程序为xhtml返回正确的xml内容类型,即:

    应用/ XHTML + xml的

答案 1 :(得分:4)

使用ePub包装格式和开源阅读器作为参考:

答案 2 :(得分:1)

尝试以下步骤:

源代码: AePubReader


<强>实施

第1步:使用UIWebView

创建视图

第2步:下载 EPUB 文件并导入您的项目

第3步: EPUB 文件解压缩到应用文档文件夹中的子目录。

第4步:解析目录XML中的META-INF/container.xml文件。如果此文件目录不存在,则意味着您的EPUB文件无效。

第5步:在此XML中,找到第一个媒体类型为rootfile的“application/oebps-package+xml”。这是本书的OPF文件。

第6步:解析OPF文件(也是XML)

第7步:现在您需要知道本书的第一章是什么。

  • 元素中的每个元素都有一个id和一个href。将它们存储在NSDictionary中,其中键是id,对象是href。
  • 看看第一个。它具有idref属性,该属性对应于(步骤7a)中的一个ID。在NSDictionary中查找该ID,您将获得一个href。
  • 这是显示用户的第一章的文件。弄清楚完整路径是什么(提示:无论你将zip文件解压缩到哪里(步骤3),再加上OPF文件的基础NSDictionary(步骤6)。

步骤8:使用fileURLWithPath:创建NSURL,其中路径是完整路径(步骤7c)。使用您在(步骤1)中创建的UIWebView加载此请求。

第9步:您需要实施forward / backward按钮或swipes或其他内容,以便用户可以从一个章节移动到另一个章节。使用它来确定下一个要显示的文件。然后XML按照他们应该向读者显示的顺序。

这个步骤是从link

引用的

答案 3 :(得分:1)

将UITextView与网页浏览控制器一起使用。 (指明您的疑虑,如果有的话)