17

是否可以使用纯 HTML5、CSS 和 Jquery 在 Web 浏览器中显示 epub 格式的书籍?有人可以建议我该怎么做吗?我还必须使其具有响应性才能使其在 iPad 上运行。我知道,但我不知道如何使用 HTML 和 Javascript 阅读 epub。

epub 可能包含一些数学函数,我也需要正确显示它们。

4

2 回答 2

23

是否可以使用纯 HTML5、CSS 和 jQuery 在 Web 浏览器中显示 epub 格式的书籍?

是的,有可能。

为什么要写一个 epub 阅读器?那里已经有很多了。

无论如何,您的问题是通用问题的特定形式,是否可以为 epubs 编写电子书阅读器?显然,是的,可能已经写好了。如果你可以用一种语言或一个平台编写它,你可以用另一种语言编写它。

但实际上,您甚至不需要编写阅读器,因为 epub 只是罐头中的小网站。将 epub 文件解压缩到服务器上的某个位置,然后将浏览器导航到其中一个页面。瞧,你在读。你想要一个目录?导航到 toc.xhtml 或等效文件,然后就可以了。

从一页移动到下一页怎么样?您需要知道页面应该以什么顺序显示。编写一个小型服务器组件来解析通常称为 content.opf 的文件,并根据清单元素中文件的顺序,发出一些 HTML一个前进和后退按钮和一个 iframe 来显示内容。当你在做的时候,解析出标题和其他有趣的元数据。这一切本质上就是 epubjs 所做的。

但是我从您的问题中直觉到您想完全在客户端/浏览器端执行此操作。好吧,这也已经以 Readium 的形式完成了,您应该看看。使用您最喜欢的 JS 解压缩库(警告,可能会很慢)解压缩 epub 文件,并编写一些 JS 来解析元数据并抛出页面,这很可能是在 iframe 中,周围有一些 chrome。

但是,如果您想要分页输出,人们对电子书阅读器的期望是什么?这是事情开始变得棘手的地方,并且可能是退后一步并再次问自己为什么要这样做的好地方。无论如何,如果你决定你真的想要分页显示,那么你将需要找出一些逻辑组合,包括窗口、框架、剪辑、偏移和/或使用“区域”来帮助你。一些电子书阅读器只是在这里踢,说,滚动/未分页输出有什么问题?

但是电子书阅读器还有很多其他的功能。例如,大多数都允许您更改行距、边距或字体大小。这些用户设置如何与本书的 CSS 文件中的样式交互?一些读者采用解析 CSS 的方法(也有相应的库)并重写它以获得您或您的用户想要的结果。

更喜欢应用程序而不是浏览器应用程序?将整个 shebang 包裹在 PhoneGap 中。

要成为称职的读者,您将不得不担心许多其他事情。就在我的脑海中,这包括显示某些书籍指定的“指南”或“地标”,在会话之间记住阅读位置和用户选项,并且可能提供某种书架功能。

尽管某些客户端电子书阅读器确实使用 jQuery,但请记住,由于 epub 是 HTML5/CSS2.5/JS,因此内容本身只能由现代浏览器可靠地显示。但是如果你有一个现代浏览器,你不需要 jQuery 中 90% 的头发,它是为跨浏览器兼容性而设计的。您最好使用更轻量级的组件,例如 Backbone 和/或 Underscore。您可能甚至不需要选择器库,因为您将拥有 querySelector。

祝你好运!

于 2013-01-28T13:56:38.497 回答
4

对于科学论文(期刊文章),有一个“最佳解决方案”可以在 browser 上模拟 EPUB 阅读器。它可以使用 XML ( JATS ) 或 XHTML(来自 EPUB)内容。PubReader使用 HTML5 和 CSS3 中可用的特性和功能。

通过 CSS 和 Javascript,它实现了格式化、分页、导航和文本重排。整篇文章作为单个 HTML 页面加载到浏览器中,并在本地处理分页等。看:

PS:PubReader 类似于@torazaburo 的建议,EPUB-Readium 浏览器界面

于 2013-07-13T12:18:13.670 回答