简介
Kepuber 是一个 Node.js 包,可以将 EPUB 文件转换成 KEPUB 格式,从而在 Kobo 阅读器上阅读。
EPUB 是电子出版物的开放标准,可用于数字杂志、电子书等。唯一的问题是,很多阅读器无法处理 EPUB 格式,例如 Kobo。
KEPUB 是 Kobo 推出的专有格式,专门优化了阅读体验。您可以以一种更流畅、更舒适的方式阅读。
在本教程中,我们将介绍如何在前端应用中使用 kepuber。
安装和基础使用
首先,你需要在你的项目里下载 kepuber
:
npm install kepuber
在你的代码里使用 kepuber:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- -------- - ------------------------------- ----- --------- - --------------------------------------------------- -- ------ -- -------- -- ------- ----- ------- - --- ---------- -- ------- --- ---- ------------------------- ---------- -------- -- - ----------------------- ----------- -- -------------- -- - ----------------------- -------- ------- ---
这将把你的 EPUB 文件转换为 KEPUB 格式,并在 kepubPath
保存文件。
解释
我们现在来看看这段代码是如何工作的。
首先,我们需要导入 kepuber
:
const Kepuber = require("kepuber");
接下来,定义你的 EPUB 文件和你想保存的 KEPUB 文件的路径。
const epubPath = "/path/to/your/epub/file.epub"; const kepubPath = "/path/to/where/you/want/to/save/kepub/file.kepub";
现在我们可以创建一个新的 Kepuber
实例。
const kepuber = new Kepuber();
必要时,还可以将信息传递给构造函数,例如:
const kepuber = new Kepuber({ silent: true });
接下来,我们可以使用 convert
方法将 EPUB 文件转换为 KEPUB:
kepuber.convert(epubPath, kepubPath) .then(() => { console.log("Conversion complete"); }) .catch((error) => { console.log("Conversion failed", error); });
convert
方法需要定义两个参数: epubPath
和 kepubPath
。方法返回 promise。
如果您的转换成功,它将通过 then
方法返回结果。如果转换失败,它将通过 catch
方法返回错误。
更多高级用法
多线程转换
默认情况下,kepuber 会使用您的机器上的所有 CPU 核心来转换文件。但是,如果您想精细控制多线程转换处理,可以使用 workers
选项。
kepuber.convert(epubPath, kepubPath, { workers: 2 })
在这个实例中,workers
参数设置为 2
。这意味着 kepuber 只会使用两个线程进行转换处理。 您可以根据需要将其设置为更高或更低的数字。
转换选项
如果您有特殊要求的话,kepuber 提供了许多转换选项。你可以通过向 convert
方法添加第三个参数来定义。
kepuber.convert(epubPath, kepubPath, { option: value })
例如,将允许右键单击缩放:
kepuber.convert(epubPath, kepubPath, { "enable-click-hint": true })
在 kepuber Github 页面,您可以找到完整的列表并描述了每个选项。
结论
转换 EPUB 文件以在 Kobo 阅读器上阅读的一个普遍问题往往会让人感到不便。 然而,使用 kepuber 进行转换处理成功地解决了这个问题。 在这篇文章中,我们详细讲解了如何在前端应用程序中使用 kepuber,并提供了多个高级用法的示例。 现在,你可以去转换你自己的文件了!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066efc4c49986ca68d8a02