Calibre 是一款 Windows 和 macOS 端的电子书本地管理工具,在电子书方面,只有它做到了一站式的服务。
关于 Calibre 基础操作先可以看这一篇 @sainho 写的《最强大的本地电子书管理工具:Calibre 使用指南》。其中讲到了电子书的基本管理、信息修订、阅读清单等基础功能,这里总结一下——
- 基本管理:导入、管理、编辑电子书和电子书内容。
- 信息修订:从豆瓣、Open Library、Amazon 等网站下载抓取电子书信息,补全作者、出版社、评分等信息。
- 阅读清单:建立虚拟书库,将想阅读的内容(包括没有的图书)制作成一份清单。
这些功能在 Calibre 中都可以轻松实现,让 Calibre 足以承担「管理电子书」这一重任。其实 Calibre 在电子书的处理方面同样完成的很棒,本文要讲的是「处理图书、优化格式、推送图书」这三个部分的内容。
处理图书
电子书的获取途径有很多,因而图书本身的质量并不能得到保障,往往会出现图书信息不全、内容排版差、不包含目录等问题。利用 Calibre 就能为原本质量低、排版差的电子书进行信息补全和重新排版。
补全图书信息
抓取电子书信息是 Calibre 的基础功能之一,默认可以从 Amazon.com、Open Library、Google 这些数据源中获取数据。
为了提升中文书籍的检索质量,我们可以再添加一个豆瓣源,它在 Calibre 中被默认关闭。
在「右键图书 - 下载元数据和封面 - 配置下载参数」中,启用「Douban Books」后确认,再「下载数据与封面」。就能为大部分图书添加图书信息。
小部分无法被直接添加的图书,可以利用图书的 ISBN 码(国际标准书号)在豆瓣上进行搜索,来获取更为精准的书籍信息。
小知识:ISBN 码是什么?
凡是 2007 年之后出版的书,你都可以在实体书条形码位置上方看到一个 13 位的数字(之前的是 10 位),这就是 ISBN 码。
国际标准书号(英语:International Standard Book Number,缩写为 ISBN),是国际通用的图书、独立出版物的代码。一本书每发行一版,都能申请到一个新的国际标准书号(即使是平装版和精装版也不同)。你可以把 ISBN 码看作是每本书在全球范围内的身份证。
如果你在书店看到了某本感兴趣的书,就可以拍照记录下这本书的 ISBN 码,回家后再到网上寻找它的电子书购买渠道。
繁简互转插件
有时候一本较新的英文著作可能被先翻译成了繁体中文版本,而简体中文尚未出版。我们可以先购买繁体中文版的电子书,对其进行简体转换后阅读。
方法一:书伴提供了一种方法,可以将一本繁体书通过查找和替换的方法转换为简体书:《电子书繁体字转简体字》,其中采用的方法是通过词库规则(查找和替换)来实现新字词、繁简对换、修改规则、重排、全词库去重。发布该方法的原贴在 2015 年就不再更新了,不过转换质量依然很高。
方法二:这里要介绍的是另一种较新的方法,即通过繁简转换插件:Chinese Text Conversion 来实现。这一方法需要 Calibre 的版本在 3.37.0 以上。
首先在 Github 下载 Chinese Text Conversion - TradSimpChinese 插件的最新版本,不用解压缩。然后在「Calibre - 首选项 - 插件 - 从文件加载插件」,来加载这一插件的 zip 压缩包。
安装完毕后,「右键图书 - 编辑图书」,进入编辑图书的界面。界面上方的最右侧会出现一个「文」的图标,点击图标就会显示这一插件的界面。
插件的选项分别对应繁体转简体、简体转繁体、繁体转繁体等。针对香港、台湾的繁体还有特定的优化,还能将所有的引号 “ ” 转换为直角引号「」。最后一项要选择 Entire eBook 来转换整本书,转换完成后关闭窗口即可。
这样就可以完成繁体简体书的互相转换,两种方法都能很好地实现。第二种方案较新,更推荐一些。
优化样式
Calibre 的格式转换功能也非常强大,能够将常见的 epub、azw3、mobi、docx、txt、pdf 等格式的电子书互相转换。这一点在很多文章中都有提及。
不过在默认情况下只会对格式进行转换,不会对内容、行间距、目录等内容进行优化。我们可以通过一些手段来获得更好的阅读体验。这里主要讲讲目录的添加和图书的样式。
添加可跳转的目录
上面添加了图书信息,就相当于为这本电子书添加了封面和简介。但这还不够,我们需要为电子书的内容进行一些改进。
最典型也是最原始的电子书有不少是 TXT 格式,由于纯文本格式的限制,通常不包含内容之外的其他信息。行间距、显示效果之类的倒是还在其次,毕竟可以用阅读软件进行调整。而目录的缺失则是一个严重的问题,毕竟没有目录就不能跳过某些章节,只能手动翻页。
为了解决这一问题,我们需要先找到书内标题格式的一些规律,比如——
第一章 夏洛克·福尔摩斯先生
第二章 演绎法
第三章 劳瑞斯顿花园街的惨案
……
因此,我们可以使用正则表达对这些章节号进行替换,但在 Calibre 中无法直接编辑 AZW3 或 EPUB 格式以外的格式,而我们又想借助 Calibre,为 TXT 文件添加目录,这应该怎么办呢?
思路也很简单,Calibre 在转换格式时能够识别特定的 HTML 标签,将其作为目录 TAG。最简单的自然是 #
、##
这类 Markdown 中用来表示一级二级目录的符号,Calibre 会将其识别为 h1、h2 标签。因此只要在每一章标题的前面加上这些字符,就能让 Calibre 完成自动添加目录的工作了。
首先我们需要一款支持正则表达式替换的编辑器,代码编辑器可以很好的胜任这项工作,比如 NotePad++、Sublime Text 等(尽管 Calibre 提供了正则搜索替换功能,但无法保证输出结果是正确的,在编辑器中修改最直观)。
以 NotePad++ 为例,首先按下 Ctrl + H
打开文本替换工具,界面中启用「正则表达式」。然后进行以下操作——
- 查找目标:
^第(.*)章
- 替换为:
## 第\1章
然后点击「全部替换」,就能将 TXT 内所有以「第X章」开头的文本,替换为「## 第X章」。其中 X 即为 (.*)
的内容;\1
指的是「第几个(.*)
的内容」,如果有多个,则依次是 \2
、\3
……
以此类推,如果文章中还有「第一卷」之类的一级标题——
- 查找目标:
^第(.*)卷
- 替换为:
# 第\1卷
或是「第一卷 第二章」之类的长标题——
- 查找目标:
^第(.*)卷(.*)第(.*)章
- 替换为:
## 第\1卷\2第\3章
用这些方法实现替换后,我们就为 TXT 添加了目录 TAG,接下来要做的事情就简单很多,把处理完毕的 TXT 添加到 Calibre 中,然后「右键图书 - 转换图书 - 逐个转换 - 目录内容」。选择右上角的输出格式,通常选择导出为 Epub 和 mobi 格式。
然后点击右侧的图标,选择需要匹配的 HTML 标签名为 h1、h2,对应为一级标题和二级标题,然后转换。(这里 Calibre 采用的是 XPath 查询语言,更具体的用法可以在《Calibre 的 XPath 教程》中学习。)
确认后点击确定,就可以为电子书添加可供跳转的目录了。
优化图书样式
搞定了图书的目录,接下来就想想怎么把图书做得更美观吧。要知道,有不少电子书并没有考虑到读者的感受,把字排列的密密麻麻,看一眼都让人犯困。
首先选中图书,「右键图书 - 转换书籍 - 逐个转换」,进入 Calibre 自带的格式转换界面。我们需要进行这些调整——
- 勾选「界面外观 - 文本 - 规范标点」。
- 分别勾选「界面外观 - 布局 - 删除段间空行」「在段落间插入空白行」,右侧的缩进宽度、行间距可以略高一些,比如 2.0 em 和 1.0 em。
- 在「界面外观 - 样式」中,为电子书加上 CSS 样式。把 CSS 文本直接复制进文本框即可。
- 除了排版糟糕之外,还有一些网络小说可能会出现无故换行、无故空格、标题不规范等情况(TXT 常见)。那可以在「启发式处理」中启用「智能处理」,看看能否解决这一问题。
CSS 样式部分其实灵活性非常高,因为它可以控制书中几乎所有的元素和显示样式。关于 CSS 样式的选择,这里要推荐一下 @Minja 的 《简单又好看,你的 Markdown 文稿也能加上个性化主题》,提供了五种好看的 CSS 样式,本文使用的就是其中的「少数派经典 CSS」,点击可以直接下载。
如果你不满足于现有的 CSS 样式,还想修改字体,可以看看@PlatyHsu 的《无需越狱,中英混排的 Kindle 电子书也能拥有好看的排版》。
还有很多文章中提到了要选择「输出配置文件」,但其实这一配置文件主要是针对屏幕大小对图片进行缩放,除非是 PDF 文件,否则多数情况下几乎没有必要刻意修改它,也不必为不同的设备区分配置文件。
推送图书
完成了内容的处理和格式的转换,接下来就应该将电子书发送到各种设备上了。
将电子书推送到 Kindle
Kindle 是专用的阅读设备,Calibre 提供了两种方法将图书发送到 Kindle。
方法一:通过邮件。Calibre 提供利用邮件发送图书的功能,在上方选择「连接/共享」。我们需要对其进行一些设置,上方填写 Kindle 的接收邮箱,下方填写用于发送图书的邮箱。邮件服务器的配置信息各不相同,你需要在各大邮件服务商的说明中寻找。
以 Outlook 邮箱为例,主机名为 smtp-mail.outlook.com
端口 587
加密类型:TLS
,然后测试邮件推送,如果提示「邮件已发送」说明推送成功。
方法二:通过数据线。数据线传输更是方便,在将 Kindle 连接到电脑后,Calibre 上方会出现一个「发送到设备」的按钮,点击即可将电子书发送到 Kindle。
值得注意的是,Kindle 不支持 epub 格式的图书,这给我们多少带来了一些麻烦。因此在发送之前要注意将图书转换为 mobi 格式。
将电子书分享到局域网
在 Kindle 之外,iPhone、iPad、Android 等设备对网页、局域网支持良好,不必通过邮件、数据线等方式实现。除了使用方法一样的数据线法以外,Calibre 还可以用内容服务器的方法,在移动设备上获取电子书。
在 Calibre 中「链接/共享 - 启用内容服务器」,会得到一个 IP 地址和端口,比如 192.168.1.188:8080
。
在移动设备上打开浏览器,在浏览器中输入192.168.1.188:8080
,就可以看到由 Calibre 创建的分享页面。
将电子书批量传输
以上两种方法都依赖于 Calibre,其中第二种内容服务器的方法只适用于少量图书的分享,不能批量操作,是个比较麻烦的问题。
因此这里给出第三种方法,那就是通过手机端的第三方应用开启 WebDAV 服务,再将图书批量上传到手机端。这一方法在手机端的 Documents、多看阅读(被称为 WiFi 传书)中均能实现,主要操作是找到软件中的 WebDAV 服务设置,将其开启后,在电脑端浏览器中打开这一链接,输入相应的账号密码,就能对应用中的文件进行上传和下载。
这在《用好 WebDAV,我是如何在 Windows 和手机之间传输文件的 | 工作日志》中有较为详细的说明。
在传输时可能还会遇到另一个问题:无法直接从 Calibre 中拖拽图书。这是因为 Calibre 对图书的组织形式不同,你需要首先在 Calibre 中选中你想要传输的图书,「右键 - 保存到磁盘单个目录」,这样才能一次性将特定格式的电子书传输到手机中。这样书籍的名称会正常显示中文,而不是显示拼音,因此这一方法也是比较推荐的方法。
总结
本文介绍了电子书处理的整个流程——处理图书、优化样式、推送图书。每个步骤中都有一些能将任务完成得更好的小技巧,比如繁简转换、为 TXT 添加目录、批量传输到手机等。
Calibre 本身功能非常强大,但由于界面设计的原因,很多功能被藏在了软件的背后,一些有用的设置也未被标记出来,经过这些调整之后,可以解决不少电子书处理方面的问题。