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。

3.2、界面外观:

输出的界面外观选项设置。

--base-font-size=BASE_FONT_SIZE
基准字体尺寸(单位:pt)。所有输出文件中的文字将以此为基准进行缩放。选择一个较大的基准字体可以将所有文字相应放大,反之亦然。在默认情况下,程序根据您选择的输出配置文件来设定基准字体尺寸。

--disable-font-rescaling
关闭字体缩放功能。

--font-size-mapping=FONT_SIZE_MAPPING
将 CSS 字体名称映射为以 pt 为单位的字体大小。例如 1212141618202224。这些设置是从 xx-smallxx-large 的对应映射,最后的大小作为做对应的最大字体的映射。程序用这些尺寸进行只能文字字体缩放。程序默认使用输出配置文件中指定的映射关系。

--embed-font-family=EMBED_FONT_FAMILY
在书中嵌入指定字体。这指定了书中使用的“基础”字体。如果输入文件自己指定了字体,就有可能覆盖这个基础字体。你可以使用过滤样式信息的选项来去除输入文件的字体。注意,字体嵌入只在一些输出格式中有用,主要是 EPUB、AZW3 和 DOCX。

--subset-embedded-fonts
嵌入所有字体中用到的字。每种嵌入字体缩减到只包含文档中用到的字型。这能减小字体文件的体积。在嵌入某个特别大的,包含大量未使用字的字体时有用(如中文)。

--embed-all-fonts
嵌入输入文档中引用到但未嵌入的字体。软件会在你的系统中查找这些字体,找到了就嵌入。字体嵌入只有当你的目的格式支持才有用,例如 EPUB、AZW3、DOCX 和 PDF。请保证你拥有在文档中嵌入字体的合适授权。

--line-height=LINE_HEIGHT
行高(单位:pt)。控制两行高度距离。仅仅适用于未定义行高的元素。大多数情况下,最小行高值更加有用。默认不进行行高操控。

--minimum-line-height=MINIMUM_LINE_HEIGHT
最小行高,元素字体计算值的百分比。Calibre 将保证行中所有元素至少有此高度,无论输入文档如何定义。设为 0 即禁用。默认 120%。首选项中也有此设定,请注意。否则可能出现双倍行高,达 240%

--linearize-tables
一些布局不佳的源文件使用表格来设置页面布局可能会导致输出文件中的正文超过页面范围。本选项设定程序将内容从表格中提取出并以线型布局排列输出。

--extra-css=EXTRA_CSS
CSS 样式表或原始 CSS 文件路径。该 CSS 样式表将会被添加到源文件的样式规则中,它可以覆盖输入文件中已定义的相同样式。

--filter-css=FILTER_CSS
以逗号分隔的 CSS 属性列表,将移除所有 CSS 样式规则。这是非常有用的,如果存在的一些样式信息,防止覆盖您的的设备上的样式信息。例如:字体系列,颜色,左边距,右边距。

--transform-css-rules=TRANSFORM_CSS_RULES
更改电子书 CSS 样式的规则文件路径。创建一个规则文件最简单的方法是进入带界面的 Calibre,在转换格式界面中找到“界面外观 → Transform Styles”对话框中操作。一旦你创建了规则,你可以使用【导出】按钮导出保存这个规则文件。

--expand-css
Calibre 默认会使用各种 CSS 属性值的简写形式,如 marginpaddingborder 等。打开此选项会使用完全展开的形式替代。注意,当生成采用了 Nook 系列配置文件的 EPUB 文件时,CSS 总是会用展开的形式,这是因为 Nook 无法处理简写的 CSS。

--smarten-punctuation
将错误的引号,破折号和省略号转换排版上的正确形式。相关细节信息可参阅 https://daringfireball.net/projects/smartypants

--unsmarten-punctuation
转换各种形式的引号、破折号和省略号到它们的标准形式。

--margin-top=MARGIN_TOP
设置上边距(单位:pt)。默认值是 5.0。设置的值小于 0 将会导致无边距(原始文档的边距设置将会覆盖)。注意,类似 PDF 和 DOCX 这种面向页面格式具有自己的优先边距设置。

--margin-left=MARGIN_LEFT
设置左边距(单位:pt)。默认值是 5.0。设置的值小于 0 将会导致无边距(原始文档的边距设置将会覆盖)。注意,类似 PDF 和 DOCX 这种面向页面格式具有自己的优先边距设置。

--margin-right=MARGIN_RIGHT
设置右边距(单位:pt)。默认值是 5.0。设置的值小于 0 将会导致无边距(原始文档的边距设置将会覆盖)。注意,类似 PDF 和 DOCX 这种面向页面格式具有自己的优先边距设置。

--margin-bottom=MARGIN_BOTTOM
设置下边距(单位:pt)。默认值是 5.0。设置的值小于 0 将会导致无边距(原始文档的边距设置将会覆盖)。注意,类似 PDF 和 DOCX 这种面向页面格式具有自己的优先边距设置。

--change-justification=CHANGE_JUSTIFICATION
更改文本对齐方式。使用值 left 将转换资源中所有的文本为左对齐(如:非对齐)。使用值 justify 将转换资源中所有的未对齐的文本为对齐。使用值 original(默认)则不更改源文件的对齐方式。请注意,仅部分输出格式支持对齐方式。

--insert-blank-line
在章节之间插入空行。如果源文件不使用章节标记(<p><div> 标记)本选项将不起作用。

--insert-blank-line-size=INSERT_BLANK_LINE_SIZE
设置插入的空白行的高度(单位:em)。段落间的空行高度会是两倍于这个设置值。

--remove-paragraph-spacing
移除段落之间的空行. 同时设置段落缩进为 1.5em。如果源文件不使用段落标记(<p> 或者 <div> 标签)程序将不执行段落空行移除。

--remove-paragraph-spacing-indent-size=REMOVE_PARAGRAPH_SPACING_INDENT_SIZE
当 Calibre 删除段落之间空行时,它会自动设置一个段落缩进,以确保轻松区分段落。此选项控制缩进的宽度(单位:em)。如果您将此值设置为负数,则使用输入文件中自身定义的缩进,换句话说就是 calibre 不进行缩进处理。

--asciiize
把 Unicode 字符转换为 ASCII 表达型式。请谨慎使用这个功能,因为它会把所有的 Unicode 字符转换为 ASCII 字符。比如:它会把 “Михаил Горбачёв” 替换为 “Mikhail Gorbachiov”。并且当一个字符可能有多种表示方式时(比如中文和日文中一些共用的字符),Calibre 会根据当前设置的界面语言类型决定如何去转换这类字符。

--keep-ligatures
保留输入文档中的“印刷连字”。所谓“印刷连字”是指对于 ff、fi、fl 之类的字母组合的一种特殊的展示方式。大部分阅读器在使用默认字体时无法支持“印刷连字”,所以常常无法正常显示。默认情况下,Calibre会把“印刷连字”转换成对应的字母组合。本选项用于选择保留“印刷连字”。

3.3、智能处理:

智能处理表示 Calibre 将扫描书籍,寻找常见的书籍结构信息并修正。“智能”意味着这个过程包含猜测,如果 Calibre 猜错了,可能使转换结果更糟。因此,默认不启用该功能。通常,如果转换没有达到预期的效果,可通过启用智能处理得到改善。

使用常见模式修改文档内容与结构。默认禁用。使用 --enable-heuristics 启用该功能。具体选项可以通过 --disable-* 参数禁用。

--enable-heuristics
启用智能处理。在需要使用任何智能处理选项时都必须先启用这个选项。

--disable-markup-chapter-headings
检测未格式化的章节标题和子标题。把它们从二级标题(<h2>)标签转换为三级标题(<h3>)标签。这个选项不会创建目录,但可以与文档结构检测功能一起使用并创建目录。

--disable-italicize-common-cases
寻找用于表示斜体的常见的词语或模式并把它转换为斜体。

--disable-fix-indents
把多个空格构成的段落缩进转换为 CSS 控制的缩进。

--html-unwrap-factor=HTML_UNWRAP_FACTOR
决定一行字符是否能成为一个新的段落的因子,有效值为 01 之间的小数,默认值是 0.4,即略小于半行的长度。如果文档中只有很少的行需要消除段落内换行,应当减小这个设置值。

--disable-unwrap-lines
决定某行是否为段落内的换行时,使用标点符号和其它格式做为线索。

--disable-delete-blank-paragraphs
移除文档中每个段落间的空白段落。

--disable-format-scene-breaks
对齐左对齐的小节分节符。把多个空白行表示小节分节符替换为水平横线。

--disable-dehyphenate
分析文档中带有连字符的单词。这个文档本身被作为一个词典来确定连字符应该被保留还是被删除。

--disable-renumber-headings
查找顺次出现的 <h1><h2> 标签。这些标签被重新编号以防止在章节头部中间断开。

--replace-scene-breaks=REPLACE_SCENE_BREAKS
把小节分节符替换为指定的文本。在默认情况下,会使用输入文档中的文本。

3.4、查找替换:

以用户预定义的模式修改文档内容和结构。

--sr1-search=SR1_SEARCH
第一项要被替换的搜索模式(正则表达式)。

--sr1-replace=SR1_REPLACE
第一项搜索的替换文本。

--sr2-search=SR2_SEARCH
第二项要被替换的搜索模式(正则表达式)。

--sr2-replace=SR2_REPLACE
第二项搜索的替换文本。

--sr3-search=SR3_SEARCH
第三项要被替换的搜索模式(正则表达式)。

--sr3-replace=SR3_REPLACE
第三项搜索的替换文本。

--search-replace=SEARCH_REPLACE
含有用来查找替换的正则表达式的文件路径。文件必须包含正则表达式交替行,即一行是正则表达式,另一行是要替换的内容(要删除所匹配的内容可留空行)。正则表达式必须使用 Python 正则表达式语法,并且文件必须使用 UTF-8 编码。

3.5、结构检测

设置自动检测文档结构。

--chapter=CHAPTER
用于检测章节标题的 XPath 表达式。 默认情况下,会把包含“章节”、“书”、“章节”、“序言”、“结语”或“部分”等词的 <h1><h2> 标签以及含有 class="chapter" 这个类的标签作为章节标题。表达式会自动生成章节。禁用章节检测使用表达式“/”。进一步使用此功能可参考 Calibre 用户手册中的 XPath 教程。

--chapter-mark=CHAPTER_MARK
设置标注章节的模式。pagebreak 模式会在章节前插入下一页控制符。rule 模式会在章节前插入空行。none 模式不会在章节前插入控制。both 模式会在章节前插入下一页控制符和空行。

--prefer-metadata-cover
使用从源文件中检测到的封面文件。

--remove-first-image
从输入的电子书中删除第一张图片。如果输入文档的封面图像没有被标识为封面,这个选项非常有用。在这种情况下,如果你没有使用此选项,则最终的输出文档将会包含两张封面图片。

--insert-metadata
在电子书的开头插入书籍元数据。这对于不支持直接显示或搜索元数据的电子书阅读器非常有用。

--page-breaks-before=PAGE_BREAKS_BEFORE
XPath 表达式。在指定的元素之前插入分页符。禁止插入分页符使用表达式“/”。

--disable-remove-fake-margins
有些文档通过在每一页上指定左右页边距来指定页面边框大小。 Calibre 会尝试检测并移除这些页边距。有时候 Calibre 会错误的移除不应该移除的页边距,在这种情况下,您可以禁用这项功能。

--start-reading-at=START_READING_AT
一个用于检测电子书阅读开始位置的 XPath 表达式。 一些电子书阅读程序(最明显的是 Kindle)会使用这个位置作为打开书的位置。 关于使用此功能更进一步的帮助,请参阅 Calibre 用户手册中的 XPath 教程。

3.6、目录

设置自动生成目录。默认情况下若源文件有目录,它将被首选自动创建。

--level1-toc=LEVEL1_TOC
指定应添加到目录级别 1 的所有标签的 XPath 表达式。如果指定此项,它会优先于其他自动检测形式。可查阅 Calibre 用户手册中的 XPath 向导。

--level2-toc=LEVEL2_TOC
XPath 表达式指定所有标签应添加在二级目录表。每个条目加入到一级目录条目下。请参阅 Calibre 用户手册中 XPath 教程的例子。

--level3-toc=LEVEL3_TOC
XPath 表达式指定所有标签应添加在三级目录表。每个条目加入到二级目录条目下。请参阅 Calibre 用户手册中 XPath 教程的例子。

--toc-threshold=TOC_THRESHOLD
如果少于默认上限的章节数被检测到, 这些章节的链接将被添加到文件目录,默认值:6

--max-toc-links=MAX_TOC_LINKS
输出文件目录中的最多链接项数量。设置为 0 表示关闭。默认值:50。只有在检测到的章节数量小于该阈值时这些链接项才会被添加到目录中。

--no-chapters-in-toc
不将自动检测到的章节添加到文件目录。

--use-auto-toc
通常情况下,程序会引用源文件中已有的目录。打开本选项来强制使用自动生成的目录。

--toc-filter=TOC_FILTER
从目录中移除匹配该证则表达式的链接项,它们的子项也会被同时移除M。

--duplicate-links-in-toc
在基于输入文档中的链接创建目录时,允许创建重复项。即在目录中允许出现名称重复的项,但它们指向文档中不同的位置。

3.7、元数据

设定输出的元数据选项。

--title=TITLE
设置标题。

--authors=AUTHORS
设置作者。多个作者之间请使用 & 符号分割。

--title-sort=TITLE_SORT
用作排序的书籍标题序列数字。

--author-sort=AUTHOR_SORT
用以进行按作者排序的关键字符串。

--cover=COVER
设置封面为指定文件或 URL。

--comments=COMMENTS
设置电子书描述。

--publisher=PUBLISHER
设置电子书出版商。

--series=SERIES
设置这本电子书所属的丛书。

--series-index=SERIES_INDEX
设置书籍在丛书中的索引位置。

--rating=RATING
设置评分。评荐值为 15 之间的数字。

--isbn=ISBN
设置书籍的 ISBN。

--tags=TAGS
设置书籍的标签。多个标签之间请用逗号隔开。

--book-producer=BOOK_PRODUCER
设置书籍制作人。

--language=LANGUAGE
设置书籍语言。

--pubdate=PUBDATE
设置出版时间(除非指定时区,会使用当地时区)。

--timestamp=TIMESTAMP
设置书籍时间戳(已不再使用)。

-m READ_METADATA_FROM_OPF
--read-metadata-from-opf=READ_METADATA_FROM_OPF
--from-opf=READ_METADATA_FROM_OPF

从指定 OPF 文件中读元数据。读取的元数据将覆盖源文件中定义的其他元数据。

3.8、调试

用于调试转换的选项。

-v 或 --verbose
详细程度。指定多次来提高详细程度:指定两次是最详细,1 次是中等,0 次是最简略。

-d DEBUG_PIPELINE--debug-pipeline=DEBUG_PIPELINE
在转换过程的不同阶段分别保存输出到指定目录。如果您不确定在哪个阶段出了问题,这个选项非常实用。

3.9、处理输入文件 azw3 的选项设置

--input-encoding=INPUT_ENCODING
指定输入文件的编码格式。该设置将覆盖文档声明的编码格式。该设置对于未声明编码格式和错误编码格式的输入文件处理十分有用。

3.10、处理输入文件 mobi 的选项设置

--input-encoding=INPUT_ENCODING
指定输入文件的编码格式。该设置将覆盖文档声明的编码格式。该设置对于未声明编码格式和错误编码格式的输入文件处理十分有用。

3.11、处理输入文件 epub 的选项设置

--input-encoding=INPUT_ENCODING
指定输入文件的编码格式。该设置将覆盖文档声明的编码格式。该设置对于未声明编码格式和错误编码格式的输入文件处理十分有用。

3.12、处理输入文件 txt 的选项设置

--markdown-extensions=MARKDOWN_EXTENSIONS

启用 MarkDown 语法的扩展。扩展的格式不属于标准的 Markdown 格式。默认启用的扩展有:footnotes,tables,toc。 要了解更多关于 MarkDown 扩展的信息,请参阅 https://pythonhosted.org/Markdown/extensions/index.html,启用多个扩展可用逗号分开:
* abbr:简称。
* admonition:支持“警告”。
* attr_list:给HTML标签增加属性。
* def_list:定义列表。
* extra:启用各种常用扩展。
* fenced_code:替代代码块语法。
* footnotes:脚注。
* headerid:允许 ID 作为页眉的一部分。
* meta:在文档中的元数据。
* tables:支持表。
* toc:生成目录。
* wikilinks:Wiki 样式链接。

--input-encoding=INPUT_ENCODING
指定输入文件的编码格式。该设置将覆盖文档声明的编码格式。该设置对于未声明编码格式和错误编码格式的输入文件处理十分有用。

--preserve-spaces
通常情况下,连续的多个空格会被压缩为单个空格。启用该选项后会保留所有的空格。

--formatting-type=FORMATTING_TYPE
在文档中使用的格式处理方式。
* auto:自动决定使用那种格式。
* plain:不处理文档的格式,均视为段落,不应用任何样式。
* heuristic:用探测模式确定诸如章节标题和斜体文本等格式并进行处理。
* textile:使用 Textile 格式进行处理。
* markdown:使用 MarkDown 格式进行处理。 要详细了解 MarkDown 请参阅 https://daringfireball.net/projects/markdown/

--txt-in-remove-indents
通常情况下每行开头的空格会被保留,选中本选项后这些空格会被删除。

--paragraph-type=PARAGRAPH_TYPE
段落结构。
可选项包括:[‘auto’, ‘block’, ‘single’, ‘print’, ‘unformatted’, ‘off’]
* auto:自动检测段落结构。
* block:把空行作为段落分隔。
* single:假定每一行为一个段落。
* print:假定以两个以上空格或 Tab 开头的行为一个段落的开始。
* unformatted:文档中大部分行都是以换行符为结尾,且只有少量空行或缩进。尝试检测文档结构并重新格式化文档元素。
* off:不改变文档段落结构。当文档中包含 Markdown 或 Textile 标记时应使用这个选项以避免格式丢失。

3.13、处理输出 azw3 的选项设置

--toc-title=TOC_TITLE
生成的行内目录标题。

--prefer-author-sort
如果“排序作者”字段值非空,在按作者排序时使用该字段的值排序。

--mobi-toc-at-start
当为书籍添加目录时,添加在书的最前面而不是最后面。不建议启用本选项。

--share-not-sync
在 KINDLE 阅读器中选择通过脸谱网站或其他网站分享书籍的内容,警告:激活这个选项意味着您所阅读的书籍无法在许多设备上自动同步锁定最后阅读点。 关于此问题,可向亚马逊网站咨询。

--extract-to=EXTRACT_TO
解压AZW3文件的内容到指定文件夹。请注意该文件夹会先被清空。

--no-inline-toc
不要为书籍添加目录。如果书籍内容中本身就包括目录,则应启用本选项。

--dont-compress
不压缩文件内容。

--pretty-print
如果开启本选项,输出插件将尽量生成可读的输出内容。对于某些输出插件本选项可能不起作用。

3.14、处理输出 mobi 的选项设置

--no-inline-toc
不要为书籍添加目录。如果书籍内容中本身就包括目录,则应启用本选项。

--share-not-sync
在 KINDLE 阅读器中选择通过脸谱网站或其他网站分享书籍的内容。警告:激活这个选项意味着您所阅读的书籍无法在许多设备上自动同步锁定最后阅读点。 关于此问题,可向亚马逊网站咨询。

--toc-title=TOC_TITLE
生成的行内目录标题。

--mobi-keep-original-images
Calibre 默认将所有图像转换成 JPEG 格式放到输出的 MOBI 文件中。这是为了尽量保证兼容,因为一些旧的 MOBI 查看器显示其他图像格式有问题。这一选项禁止 Calibre 这样做。如果您的文档包含大量 GIF/PNG 图像,转换成 JPEG 会很大,这一选项会有用。

--prefer-author-sort
如果“排序作者”字段值非空,在按作者排序时使用该字段的值排序。

--personal-doc=PERSONAL_DOC
使 MOBI 文件标记为个人文档的标签。该选项在转换时没有效果,仅用于将 MOBI 文件发送到设备时。如果发送的文件有指定这个标签,在发送到 Kindle 时就会被标记为个人文档。

--mobi-toc-at-start
当为书籍添加目录时,添加在书的最前面而不是最后面。不建议启用本选项。

--extract-to=EXTRACT_TO
解压MOBI文件的内容到指定文件夹。请注意该文件夹会先被清空。

--pretty-print
如果开启本选项,输出插件将尽量生成可读的输出内容。对于某些输出插件本选项可能不起作用。

--mobi-file-type=MOBI_FILE_TYPE
默认情况下 Calibre 会生成旧的 MOBI6 格式。此格式适用于所有电子书阅读器设备。但是,你可以更改此设置让 Calibre 生成同时兼容旧的 MOBI6 和新的 KF8 格式,或者仅生成新的 KF8 格式。KF8 格式比 MOBI6 格式拥有更多的特性,但是只能用于新型 Kindle 设备。可选值:oldbothnew

--dont-compress
不压缩文件内容。

--mobi-ignore-margins
忽略输入文档中的页边距。如果未选中,MOBI 输出插件会尝试转换输入文档中的页边距设置,否则就会忽略它们。

3.15、处理输出 epub 的选项设置

--flow-size=FLOW_SIZE
将大于该大小 (以KB为单位)的HTML文件切分。由于很多 EPUB 阅读器无法打开巨大的文件,故此功能十分有用。默认值 260KB 是 Adobe Digital Editions 的文件大小要求。设置为 0 来禁用大小为基准的切分。

--epub-toc-at-end
在书籍的末尾插入内嵌目录,而不是书开头。

--extract-to=EXTRACT_TO
解压EPUB文件的内容到指定文件夹。请注意该文件夹会先被清空。

--dont-split-on-page-breaks
在分页符处关闭分割。通常,输入的文件会被分页符自动分割成独立的文件。这使转换后的电子书解析速度更快,占用资源更少。但是,分割速度会较慢,如果源文件包含大量的分页符,则应使用此可选项。

--epub-flatten
仅在您需要使用 FBReaderJ 阅读 EPUB 文件时使用本选项。启用本选项会消除 EPUB 文件中的目录结构,把所有文件放到同一层目录中。

--no-svg-cover
请不要使用 SVG 作为书籍封面。如果您打算将 EPUB 文件用到不支持 SVG 格式的设备(像 iPhone 或 JetBook Lite)上的话,请使用该选项。不选中此选项的话,这类设备将只能显示封面为一个空白页。

--preserve-cover-aspect-ratio
当使用 SVG 封面时,该选项会导致封面平铺满有效的屏幕区字段,但仍会保持它的纵宽比(宽度和高度的比例)。意思就是说,这可能会在图像顶边或底边处产生空白边界,但是图像本身不会被扭曲变形。不选该选项的话,图像可能会产生轻微的扭曲变形,但优点是不会出现空白边界。

--toc-title=TOC_TITLE
生成的行内目录标题。

--epub-inline-toc
插入的一个内嵌内容的表格会作为图书主内容的一部分出现。

--no-default-epub-cover
正常情况下,如导入的文件无封面并且您也未指定,则会生成一张带有书名、作者等信息的默认封面。选定此选项可以禁止生成默认封面。

--pretty-print
如果开启本选项,输出插件将尽量生成可读的输出内容。对于某些输出插件本选项可能不起作用。

3.16、处理输出 txt 的选项设置

--keep-color
在输出的文档中保留文本颜色。本选项仅当文档输出格式类型设置成 textile 时才有效。Textile 是仅有的一种支持文本颜色的文本标记格式。如果本选项未被选中,则输出文档中不会设置文本颜色,阅读器会用默认的颜色(通常是黑色)来显示文本。

--max-line-length=MAX_LINE_LENGTH
每行最多容纳字符数。程序将会自动寻找行中最后一个空格换行。如果行内无空格,则行宽将会超过超越此值,在下个空格处换行。此外,最小值为 25。使用 0 禁用分行

--pretty-print
如果开启本选项,输出插件将尽量生成可读的输出内容。对于某些输出插件本选项可能不起作用。

--keep-image-references
保留文档中引用的图片。仅当文档输出格式类型未设置成 plain 时才有效,因为在纯文本中,链接总是会被移除。

--txt-output-formatting=TXT_OUTPUT_FORMATTING
文档中所使用的格式化规则。
* plain: 生成纯文本。
* markdown: 生成 Markdown 格式的文本。
* textile: 生成 Textile 格式的文本。

--keep-links
保留文档中的链接。仅当文档输出格式类型未设置成 plain 时才有效,因为在纯文本中,链接总是会被移除。

--txt-output-encoding=TXT_OUTPUT_ENCODING
指定输出文档的字符集编码。默认为 utf-8。

--inline-toc
在书籍开头添加目录。

--force-max-line-length
不存在空格时强制按照最大行宽拆分。同时允许最大行宽低于最小值

--newline=NEWLINE
可供使用的换行符类型。选项是 ['old_mac', 'system', 'unix', 'windows']。 默认是 system。使用 old_mac 会和 Mac OS 9 及更老的版本兼容。而 macOS 可使用 unixsystem 默认为当前操作系统所使用的换行符类型。

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

4、应用场景

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

————–

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

未经允许不得转载:书路 » Calibre 常用命令行工具详解之 ebook-convert

赞 (0) 打赏

评论

5+2=