【发布时间】:2013-06-05 06:34:51
【问题描述】:
如何使用 javascript 读取 epub 文件?
我尝试了 epubjs,但这不适合我的要求。是否有其他可用的替代 JavaScript 库?
【问题讨论】:
标签: javascript epub client-side
如何使用 javascript 读取 epub 文件?
我尝试了 epubjs,但这不适合我的要求。是否有其他可用的替代 JavaScript 库?
【问题讨论】:
标签: javascript epub client-side
Readium Foundation 刚刚发布了 Readium Web Components:见 http://readium.org/news/announcing-readiumjs-a-javascript-library-for-browser-based-epub-3-reading(代码:https://github.com/readium/Readium-Web-Components)
或者,您可能想看看 FuturePress:http://www.futurepress.org/(代码:https://github.com/fchasen/epub.js/)
最后,TEA 还有一些你可能会感兴趣的东西:https://github.com/TEA-ebook/teabook-open-reader
【讨论】:
很老的问题,TreineticEpubReader 是我编写的readium-js-viewer 的一个流行分支,它提供了一个非常简单的 api 来与 epub 文件交互,
https://github.com/Treinetic/TreineticEpubReader
库是纯 javascript,因此您可以与任何现代框架混合和混合,这是一个示例代码,您还可以查看 dist 内的 sample 文件夹以找到一个工作演示
<div id="epub-reader-frame"></div>
var exControls = TreineticEpubReader.handler();
exControls.registerEvent("onEpubLoadSuccess", function () {
});
exControls.registerEvent("onEpubLoadFail", function () {
});
exControls.registerEvent("onTOCLoaded", function (hasTOC) {
if (!hasTOC) {
let toc = exControls.getTOCJson();
}
// you can use following api calls after this
/**
exControls.hasNextPage()
exControls.nextPage();
exControls.hasPrevPage()
exControls.prevPage();
exControls.makeBookMark();
exControls.changeFontSize(int);
exControls.changeColumnMaxWidth(int);
exControls.setTheme("theme-id-goes-here");
exControls.setScrollMode("scroll-type-id-goes-here");
exControls.setDisplayFormat("display-format-id-goes-here");
extcontrols.getRecommendedFontSizeRange()
extcontrols.getRecommendedColumnWidthRange()
var list = extcontrols.getAvailableThemes();
var list = extcontrols.getAvailableScrollModes();
var list = extcontrols.getAvailableDisplayFormats();
var settings = extcontrols.getCurrentReaderSettings();
**/
});
var config = TreineticEpubReader.config();
config.jsLibRoot = "src/ZIPJS/";
TreineticEpubReader.create("#epub-reader-frame");
TreineticEpubReader.open("assets/epub/epub_1.epub");
【讨论】: