解决 Kindle 无法修改字体、显示封面的问题
本文耗时三天,历经几十次实验,终于摸索出 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
,双击运行即可解决。1
2
3
4
5
6
7@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
)
九、[可选]修改 Calibre 源码以使「发送到设备」输出中文文件名
如果按以下方式修改 Calibre 源码,可省略第五步「导出书籍至 Kindle」,直接将书籍以中文名发送至 Kindle。
十、[可选]Kindle 锁屏显示书籍封面
十一、参考资料
为什么 Kindle 里有些书换不了字体? - 彭祎的回答 - 知乎
Calibre管理电子书怎样和原来的命名规则相结合? - Bowman Church的回答 - 知乎
用 calibre 将书籍发送到kindlepaperwhite后如何显示中文书名? - wh ddouble的回答 - 知乎
为什么我使用Calibre为azw3排版后不显示封面了? - wh ddouble的回答 - 知乎
文件名和文件夹的bat批量重命名替换关键字和删除关键字
怎样用批处理将文件名长度超过166个字节后的部分删掉?