前几天下单了小米电纸书,虽然可以装 kindle apk,但是性能捉急体验极差电量掉得也快。
准备把 kindle 账号上的漫画导出来看。
导出个人文档
首先 Kindle 个人文档不能直接在 kindle 内容管理页面下载(至少我没发现)。
我是在手机上下载好,然后到 /sdcard/kindle/
目录下复制出来的。
PRC 转 EPUB 格式
使用 Calibre 进行格式转换。因为我是漫画,在样式上出现一些问题。
漫画从 prc 转成 epub 后,只有封面展示正常,内容部分在电子书上渲染出来,有错位空白页等问题。
用 Calibre 电子书编辑器打开,发现是 calibre 提供的 css 样式导致的问题。
1 | <div class="fs"> |
举个例子,这是其中一页内容。不是特别了解 css 和 epub 电子书格式,总之是 calibre 默认的样式并不适合漫画电子书渲染。
找到问题,修改样式肯定是可以的,但几十本书手动改可太蠢了。
研究了半天 calibre 的功能,转换工具提供的 css 自定义并不会用,正则匹配替换感觉也有些复杂。
还好搜索过程中发现了一个多看电子书的 feature。
添加多看漫画样式
上下居中图
这个属性在多看漫画书中用的比较多,当然你也可以用到普通的书里面。语法如下:
1
2
3
4 <spine>
<itemref idref="coverpage" properties="duokan-page-fullscreen">
……
</spine>
同样,对应的html文件只需要一张图片即可,不需要别的文字或者代码,就算写了多看也不会显示出来,而只会将图片上下居中显示。
解压电子书,给 /EPUB/conten.opf
文件 spine 下的 itemref 加上 duokan-page-fullscreen
属性即可。
我们使用 EbookLib 这个库写段脚本。
目前并没有提供接口直接编辑 content.opf
,直接暴力在源码里把这个属性加上了。
修改 EbookLib 源文件
1 | # epub.py |
convert 脚本
1 | import glob |
over~