本文耗时三天,历经几十次实验,终于摸索出 Kindle 中字体、封面的有关规律,适用于以下情况:
- Kindle 部分书籍无法修改字体
- Kindle 部分书籍无法显示封面
- Calibre 无法批量保存中文书名
- Kindle 锁屏不显示书籍封面
- Kindle 部分书籍无法生字注音
按本教程操作后,所有书籍都可支持切换字体、加粗、生字注音并正常显示封面。
一、下载 Calibre#
Windows 平台下载地址:calibre - Download for Windows ↗
其他平台下载地址:calibre - Download calibre ↗
二、设置 Calibre#
- 打开「首选项-保存书籍至磁盘」;
① 取消勾选:分别保存封面(M)、在独立的 OPF 文件中保存元数据;
② [可选]保存模板(文件名默认格式为「爱的艺术 - 〔美〕弗洛姆」)可根据需要自行修改,如:
日期格式:
%Y,保存模板:{title}.{authors}.{publisher}.{pubdate}文件名将显示为:爱的艺术.〔美〕弗洛姆.上海译文出版社.2011 注意事项:须确保变量所对应书籍元数据完整;文件名夹杂中文时,若超过 83 个字符,将导致 Kindle 无法读取书籍;解决方法参见「七、[可选]书籍文件名清洗」
- 打开「首选项-输出格式选项-MOBI 输出」,将「MOBI文件类型(T)」改为
both; - 打开「首选项-通用选项-界面外观-字体(F)」,勾选:
关闭字号缩放(D); - 打开「首选项-通用选项-结构检测」,取消勾选:
移除无效的页边距(F)。
三、[可选]补充书籍元数据#
Calibre中文书元数据下载插件 ↗/群晖NAS使用最新calibre-web并配置豆瓣元数据 ↗
四、清除书籍原字体样式#
AZW3 格式为 KF8 标准,一定支持自定义字体,因此只需要转换 AZW、MOBI 两种格式的书籍即可。
- 点击「添加书籍」,将全部图书添加进「Calibre 书库」中(Ctrl+A 可全选文件);
- 点击左侧分类栏中的「格式」,按下「Ctrl」同时选择
AZW、MOBI,全选列表中所有书籍,点击「转换书籍」,点击「√确定」; - 任务完成后,书籍原字体格式就被清除了。
五、导出书籍至 Kindle#
- 将 Kindle 连接至电脑;
- 点击左侧分类栏中的「格式」,按下「Ctrl」同时选择
AZW、MOBI,「Ctrl+A」全选列表中所有书籍,点击「保存到磁盘」旁下三角「▼」,选择「仅保存 MOBI 格式文件到磁盘」,点击「√确定」,选择Kindle:\documents; - 点击左侧分类栏中的「格式」,选择
AZW3,全选列表中所有书籍,点击「保存到磁盘」旁下三角「▼」,选择「以单一格式保存到磁盘…」,选择AZW3,点击「√确定」,选择Kindle:\documents; - 任务完成后,书籍就以中文名导出到 Kindle 了。
六、更新书籍元数据#
经转换后的书籍将重新生成 mobi-asin,与原始文件不同,导致原封面无法匹配转换后书籍,因此需要更新书库列表中书籍的元数据。
- 点击左侧分类栏中的「格式」,按下「Ctrl」同时选择
AZW、MOBI,「Ctrl+A」全选书库列表所有书籍,点击「编辑元数据-批量修改元数据」; - 勾选
从电子书文件中设置元数据(除了封面)(M); - 点击「√确定」,即可更新
mobi-asin。
七、修复书籍封面#
Kindle 按 mobi-asin 下载封面,存放在 Kindle:\thumbnails,转换后书籍的 mobi-asin 已变更,无法自动下载,只能使用 Calibre 手动添加封面,但 Calibre 没有单独发送封面功能,必须同时发送「拼音命名的书籍文件」和「封面文件」,因此可以待发送后删除「拼音命名的书籍文件」以曲线救国,方法如下:
- 点击左侧分类栏中的「格式」,按下「Ctrl」同时选择
AZW、MOBI,「Ctrl+A」全选列表中所有书籍,点击「发送到设备」; - 待全部发送完毕后,打开
Kindle:\documents文件夹,右键空白区域,选择排序方式(O)-修改日期; - 根据修改日期,将刚才发送的以拼音命名的文件夹全部删除。
注意事项:若将
.mobi文件以邮箱推送到设备上,也可尝试此补充封面方法,有效与否自测;部分.azw3文件因自带封面太小而无法识别,需要下载 325*500 分辨率封面按格式重命名存放在Kindle:\thumbnails内。
八、[可选]书籍文件名清洗#
若按 2.2 将保存模板设置为:{title}.{authors}.{publisher}.{pubdate}
- 可能因元数据缺失使分隔符冗余;
- 可能因文件名超过 83 个字符导致 Kindle 无法读取书籍,可在
Kindle:\documents文件夹下新建文本文件,将以下代码粘贴至文件并保存,将文件扩展名改为.bat,双击运行即可解决。
@echo off & setlocal enabledelayedexpansion
set "dots=.."
set "dot=."
for /f "delims=" %%i in ('dir /b /a-d *.*') do (
set "var=%%i" & ren "%%i" "!var:%dots%=%dot%!"
set "str=%%~ni" & ren "%%i" "!str:~0,83!%%~xi
)shell九、[可选]修改 Calibre 源码以使「发送到设备」输出中文文件名#
如果按以下方式修改 Calibre 源码,可省略第五步「导出书籍至 Kindle」,直接将书籍以中文名发送至 Kindle。