下载一本azw3格式的电子书,经过邮箱推送到kindle时,邮件会被退信,提示不支持的格式,所以须要将azw格式转为mobi格式。html
在kindle伴侣网上看到转换方法linux
Calibre 下载:http://kindlefere.com/tools#calibre
Kindlegen 下载:http://kindlefere.com/tools#KindleGenpost
一、安装并打开 Calibre,将 azw3 格式的电子书拖进 Calibre;
二、右键点击它,依次展开菜单“转换书籍” -> “逐个转换”(多本也可选择“批量转换”);
三、在弹出的窗口中将“输出格式”选择为“EPUB”,点击肯定开始转换;
四、转换完成后,再次右键点击这本书,点击菜单中的“打开所在目录”获得 epub 格式电子书;
五、将此 epub 格式电子书复制到桌面上备用。ui
* 若是电子书原本就是 epub 格式可略过这一步。把电子书放到桌面上是为了方便演示,若是愿意您能够将它放到任何位置。spa
一、将下载的 KindleGen 压缩包解压,获得 kindlegen.exe 并放置到桌面上;
二、打开“命令提示符”(Mac OS X 系统打开“终端”),输入下面的命令将目录定位到桌面:code
cd desktop
htm
三、输入下面的命令将 epub 格式电子书转换成 mobi 格式:文档
Windows 系统请输入:kindlegen.exe "bookname.epub"
get
Mac OS X 系统请输入:/users/你的用户名/desktop/kindlegen "bookname.epub"
* 注意为避免文件名中的字符致使错误,文件名如 bookname.epub 最好用英文双引号包裹。it
* Windows 系统用户也能够将电子书直接拖放到 kindlegen.exe 文件上实现转换。
四、获得最终的 mobi 格式电子书,能够推送或拷贝到 Kindle 中阅读。
--------------------------------------------------------------------------------------------------------
在经过kindlegen将epub转换为mobi时,系统会提示错误
```
Warning(prcgen):W14001: Hyperlink not resolved: /home/xxx/Downloads/kindlegen_linux_2.6_i386_v2_9/jingjin_FILES/text/part0000.html#0-c6789ac79b5c427b831de25d238bf6fa
Warning(prcgen):W14001: Hyperlink not resolved: /home/xxx/Downloads/kindlegen_linux_2.6_i386_v2_9/jingjin_FILES/text/part0001.html#UGI0-c6789ac79b5c427b831de25d238bf6fa
Warning(prcgen):W14002: Some hyperlinks could not be resolved.
Info(prcgen):I1008: Resolving start reading location
Info(prcgen):I1049: Building table of content URL: /home/xxx/Downloads/kindlegen_linux_2.6_i386_v2_9/jingjin_FILES/toc.ncx
Error(prcgen):E24010: Hyperlink not resolved in toc (One possible reason can be that the link points to a tag with style display:none):/home/xxx/Downloads/kindlegen_linux_2.6_i386_v2_9/jingjin_FILES/text/part0000.html#0-c6789ac79b5c427b831de25d238bf6fa
````
将epub文件解压后,文档连接所指向的id时存在的,只是id值0-c6789ac79b5c427b831de25d238bf6fa值对应的tag是part0000.html的<body>,须要将body修改成div标签kindlegen才认识,同时额外在外层补一个<body>.
再次经过
`kindlegen 解压epub文件目录/conten.opf -o xxx.mobi`
便可成功生成mobi文件,这个文件比直接使用Calibre转换获得的文件大一点