Calibre 常用命令行工具详解之 ebook-convert

全能型电子书管理软件 Calibre 除了有可视化操作界面,还附带了一系列命令行工具(Command Line Interface),这些工具功能独立且实用。如果你熟悉命令行的使用,并且想要在处理电子书方面提高效率,抑或想要把一些和电子书处理相关的工作自动化,这些工具将会对你很有帮助。本文从 Calibre 提供的这些命令行工具中挑选了常用的 3 款,分别为:ebook-metaebook-convertcalibre-smtp,详细介绍它们如何使用,以及都适用于哪些应用场景。这些内容需要你懂一点点命令行知识。

目录

一、元数据命令:ebook-meta
1、读取电子书元数据
2、写入电子书元数据
二、格式转换命令:ebook-convert
1、基本用法
2、转换示例
3、可用选项
4、应用场景
三、邮件推送命令:calibre-smtp
1、基本用法
2、转换示例
3、可用选项
4、应用场景

本文涉及的命令行工具需要在“命令提示符”(Windows 系统)或“终端”(macOS 或 Linux 系统)中使用。如果电脑是 Windows 系统,一般在安装好 Calibre 之后就可以使用。如果电脑是 macOS 或 Linux 系统,安装 Calibre 之后需要手动把命令行工具的路径添加到系统变量中才能直接使用。

二、格式转换命令:ebook-convert

ebook-convert 可以说是 Calibre 最为核心的一个功能,也是小伙伴最常用到的功能,它的作用就是把一本电子书从一种格式转换成另一种格式,带界面的 Calibre 转换电子书格式也是通过调用它来实现的。其实命令行下的 ebook-convert 用起来更快捷,占用资源更小。下面就随书伴来详细了解一下吧。

1、基本用法

Calibre 官方文档给出的 ebook-convert 的指令用法如下:

ebook-convert input_file output_file [options]

转换格式指令有 2 个必填参数和多个可选项。其中 input_file 是输入文件格式,output_file 是输出文件格式,[options] 是针对输入、输出文件格式的可用选项,在未手动定义可选项的情况下,这些可选项均会采用默认值,默认值会随着不同输入输出格式而变化。后面会对这些可选项做详细解释。

ebook-convert 默认支持的输入文件格式包括:azw4, chm, comic, djvu, docx, epub, fb2, htlz, html, lit, lrf, mobi, odt, pdb, pdf, pml, rb, rtf, recipe, snb, tcr, txt;默认支持的输出文件格式包括:azw3, docx, epub, fb2, html, htmlz, lit, lrf, mobi, oeb, pdb, pdf, pml, rb, rtf, snb, tcr, txt, txtz。

ebook-convert 输出文件的格式是通过指定输出文件名的后缀确定的。比如你在指令中把输出文件名指定为 example.azw3,那么输出的文件就是 AZW3 格式,指定为 example.mobi 就是 MOBI 格式。

如果输出文件名没有指定后缀名,ebook-convert 就会视其为文件夹(不能存在的会自动创建),并将输入的电子书文件转换成由 HTML 文件组成的 Open eBook(OEB)输出到此文件夹中,这些文件通常会被传给输出插件。这种操作很像 KindleUnpack 的功能,能把电子书拆解成源文件。

注意,不论输入还是输出,其路径或文件名均不能以连字符“-”开头,含有空格的须将其放入引号。

2、转换示例

假设把文件名为“example.epub”的 ePub 格式电子书转换成 MOBI 格式,可直接执行以下指令:

ebook-convert example.epub example.mobi

这里有个小技巧,如果想要让转换前后的文件名相同,输出文件名只需要输入后缀名即可,如下所示:

ebook-convert example.epub .mobi

除了不同格式之间相互转换,ebook-convert 还能利用脚本抓取 RSS 或抓取 HTML 页面制成电子书。书伴之前曾写过一个 ebook-convert 的用例,即《Calibre 使用教程之抓取网站页面制成电子书》这篇文章,里面介绍了如何通过编写的 Recipe 脚本转制电子书。除了手动编写脚本,Calibre 还内置了一些现成的脚本,这些内置脚本可以通过 ebook-convert 的一个特殊可选项 --list-recipes 列出,指令如下所示:

ebook-convert --list-recipts

* 注:在 macOS 或 Linux 系统中,为方便在终端中浏览较长的列表,可以在指令后面加个参数 | less

和自己编写脚本不同得是,这些内置的脚本不需要指定路径,可以直接被 ebook-convert 调用,比如你找到了感兴趣的内容源,直接在源名加 .recipe 就可以将其转换成电子书了,指令如下所示:

ebook-convert 'The Economist.recipe' 'The Economist.mobi'

需要注意的是,这些内容源大都来自国外站点,有一些内容源的脚本可能需要科学上网才能正常使用。

3、可用选项

ebook-convert 指令中的 [options],其作用是通过指定不同的可选项来自定义当前的转换,你可以通过这些预置的可选项更精确地控制输入输出。这些可选项有通用可选项,还有针对取决于不同输入输出格式的可选项。在执行转换指令时,可在其后加上一个参数 -h 查看可用选项的详细解释,如下所示:

ebook-convert example.txt example.mobi -h

比如当你输入上面这条指令,就可以看到有关输入文件格式 TXT 和输出文件格式 MOBI 相关的可选项及其详细说明。当然如果你想了解所有可选项的详细说明,也可以前往 Calibre 官方帮助页面浏览。

为方便查询,书伴把 ebook-convert 的通用可选项(包含:界面外观、智能处理、查找并替换、结构检测、目录、元数据、调试)以及和 Kindle 电子书格式转换相关可选项的详细解释罗列如下:

3.1、适配设置:

--input-profile=INPUT_PROFILE
设置输入配置文件。此配置文件让程序了解如何解析输入文件并进行转换。例如页面分辨率(i.e. 以像素为单位)。可选项有:cybookg3、cybook_opus、default、hanlinv3、hanlinv5、illiad、irexdr1000、irexdr800、kindle、msreader、mobipocket、nook、sony、sony300、sony900。

--output-profile=OUTPUT_PROFILE
设置输出配置文件。输出配置文件可以让转换系统针对指定的设备优化文档(例如通过根据设备屏幕大小缩放图片)。在某些情况下,可以用输出配置文件对特定设备优化输出,但几乎没有必要。可选项有:cybookg3、cybook_opus、default、generic_eink、generic_eink_hd、generic_eink_large、hanlinv3、hanlinv5、illiad、ipad、ipad3、irexdr1000、irexdr800、jetbook5、kindle、kindle_dx、kindle_fire、kindle_oasis、kindle_pw、kindle_pw3、kindle_voyage、kobo、msreader、mobipocket、nook、nook_color、nook_hd_plus、pocketbook_900、pocketbook_pro_912、galaxy、sony、sony300、sony900、sony-landscape、sonyt3、tablet。

【 可用项内容较长,默认已隐藏,点我展开 】

以上这些 ebook-convert 的可选项的中文解释均摘自其命令提示符中的帮助文档,原文档中未译成中文的不分由书伴翻译,可能有不准确的地方,如在阅读的过程中看到敬请指出。

4、应用场景

灵活使用 ebook-convert 这个命令行工具可以在很多自动化工作中发挥作用,比如使用脚本批量转换电子书,定时执行脚本抓取新闻并推送到 Kindle 中等。具体如何应用,今后书伴会陆续推出相关文章。

————–

接下来要介绍的是 calibre-smtp。未完待续……

有帮助,[ 捐助本站 ] 或分享给小伙伴:

发表评论

标注为 * 的是必填项。您填写的邮箱地址将会被保密。如果是在本站首次留言,审核后才能显示。
若提问,请务必描述清楚该问题的前因后果,提供尽可能多的对分析该问题有帮助的线索。

小伙伴们发表了 7 条评论

  1. calibre转换过后的书封面总是比原来的AZW3格式的模糊,请问这是那个参数设置错误了吗?

    • Calibre 不会对封面图片进行压缩处理。想要确认,建议你把转换前后的电子书中的封面图片提取出来(比如用 KindleUnpack 拆解),对比一下两个封面图片的 MD5 看是否相同,如果相同说明没有对图片做处理。

      • 谢谢回复。请问:我用calibre将自己买的AZW3格式的电子书转成mobi的过程中需要注意设置那几个参数来保证转换后的图片不被压缩成模糊的呢? 谢谢

          • 对不起,我没解释清楚。我的意思是除了封面意外的其他图片,我转换出来的书格式和原来买的AZW有挺多不一样

            • 看到你的留言后我特意测试了一下,把一个 AZW3 格式转换成 MOBI7 格式,然后把这两个文件分别拆解开,并对比两者的图片(包括封面和内文图片),其 MD5 值是一模一样的,这说明 Calibre 确实没有在转换过程中对图片做压缩处理。

              你说的转换后的格式图片显示和源格式有差异,我猜测这很可能是因为 CSS 等控制图片显示的大小导致的。如方便可以把转换前后的两本电子书发给书伴邮箱(页面底部“联系”处获取),我用实机测试然后分析一下具体原因。