如何将 AZW3 格式无损转换为 MOBI 格式并保持原有排版
Kindle 现已支持推送 EPUB 格式,你也可以将 AZW3 格式无损转换成 EPUB 格式。
小伙伴多次向书伴提出一个问题,那就是通过 Calibre 将排版精美的 AZW3 格式电子书转换成 MOBI 格式后推送到 Kindle,排版格式会发生很大的变化,比如行距过窄、内嵌字体丢失等等。
这是因为 AZW3 格式是 KF8 标准的 Kindle 电子书(也可以说是 MOBI8 格式),由于支持丰富的 CSS 样式才有了丰富的排版效果。但是要是转换成老的 MOBI7 格式,排版效果就会消失。如果用 Calibre 转换格式时,在转换设置的“MOBI 输出”选项里把“MOBI文件类型“选成了 old 就会转换成 MOBI7 格式。
有没有方法避免这种情况呢?答案当然是肯定的。下面为小伙伴们提供了三种方法。
方法一:用 Kindle Previewer 3 转换成 MOBI(推荐)
Kindle Previewer 3 是亚马逊官方推出的一款电子书预览工具,其中的导出功能支持将 .azw3 格式转换为 .mobi 格式(支持的其它格式还有:.epub、.mobi、.htm、.html、.xhtml、.opf、.kpf、.doc、.docx)。
- Kindle Previewer 3 下载:https://bookfere.com/tools#Kindle_Previewer
下载、安装并打开 Kindle Previewer 3,将电子书文件拖放到窗口的虚线框区域(或通过菜单栏中的【文件 > 打开电子书】)打开电子书,然后点击菜单栏中的【文件 > 导出】,文件格式选择“电子书(.mobi)”,并选择存放位置进行导出。得到的电子书文件就是 KF8 标准的 MOBI 格式电子书了。
* 注意,此方法本质上是使用 KindleGen 转换的 MOBI 格式文件,所以默认会包含源文件,从而导致转换后的文件比转换前的文件大一倍多。如果想避免此情况,可以使用 KindleStrip 这个小软件将其处理一下,获取精简的 MOBI 文件。或者直接使用“方法二”,在使用 KindleGen 命令时添加参数 -dont_append_source
来禁止在转换的过程中附加源文件。
方法二:用 KindleGen 将源文件再转换成 MOBI
其实此方法与方法一是同一性质,因为 Kindle Previwer 3 实际上也是利用 KindleGen 转换格式的。
此方法的思路是,首先用 KindleUnpack 把 azw3 文件拆解成源文件,然后再用亚马逊官方的转换软件 KindleGen 把源文件转换成 MOBI 格式。因为 KindleGen 这款转换软件是亚马逊官方提供的,所以生成的 MOBI 文件排版和 AZW3 是一模一样的。下面是具体步骤。
1、准备相关软件
- KindleUnpack 下载:https://bookfere.com/tools#ku(使用教程)
- KindleGen 下载:https://bookfere.com/tools#KindleGen(使用教程)
注意,KindleGen 是命令行工具,Windows 版需要在“命令提示符”中使用,macOS 和 Linux 版本需要在“终端”上使用。对于 macOS 来说,如果不喜欢用终端,也可以下载带 UI 界面的版本。
2、拆解 AZW3 文件
先使用 KindleUnpack 把 AZW3 格式电子书文件拆解成源文件。拆解完毕后会在电子书所在目录下生成一个同名文件夹。在这个文件夹中的 mobi8 文件夹里可以找到两种源文件,一种是 EPUB 格式,另一种是存放在 OEBPS 文件夹中的 OPF 格式,你可以任选其一作为转换成 MOBI 格式的源文件。
电子书名/mobi8/电子书名.epub
电子书名/mobi8/OEBPS/content.opf
* 注意,“电子书名”是指拆解的那本电子书的真实电子书名。
3、转换成 MOBI
最后使用 KindleGen 把 EPUB 格式或 OPF 格式转换成 MOBI 格式。如果使用命令行模式,可以输入以下任一命令进行转换。注意如果命令行当前目录和源文件不在同一目录,需要使用绝对路径。
kindlegen 电子书名/mobi8/电子书名.epub
kindlegen 电子书名/mobi8/OEBPS/content.opf
如果嫌命令提示符麻烦,也可以使用更简单的转换步骤,具体步骤如下:
- Windows 系统:把源文件直接拖放到 kindlegen.exe 文件上进行转换。
- Mac OS X 系统:把源文件直接拖放到打开的 UI 版 KindleGen 上进行转换。
转换完成后,在源文件所在的文件夹即可得到最终的 MOBI 格式文件。
* 注意,使用 KindleGen 转换 MOBI 默认会包含源文件,所以会比较大,可以使用 KindleStrip 这个小软件将其处理一下,即可得到精简的 MOBI 文件。使用命令行的,也可以通过添加 -dont_append_source
参数阻止附带源文件。
方法三:直接使用 Calibre 转换成 MOBI
使用 Calibre 也可以直接把 AZW3 格式转换成 MOBI 格式,也是最简单的一种方法。但是需要注意的是,由于 Calibre 转换的 MOBI 所使用的是 Calibre 的私有算法,和亚马逊官方的算法还是有差别的,所以转换出的 MOBI 文件还是会改变一点点排版。最直观的变化是边距比 KindleGen 转换的要大一些。
1、准备相关软件
Calibre 下载:https://bookfere.com/tools#calibre
2、转换成 MOBI
- 安装并打开 Calibre 软件,将 AZW3 格式的电子书文件拖进 Calibre 书库中;
- 右键点击它,依次展开菜单“转换书籍 → 逐个转换”(多本也可选择“批量转换”);
- 在弹出的窗口中将“输出格式”选择为“MOBI”,在“MOBI 输出”中把“MOBI 文件类型”改为“both”;
点击【确定】并等待转换完毕。最后得到的 MOBI 文件可以保留和 AZW3 格式较为一致的排版。
用以上两种方法转换的 MOBI 格式可以在不同程度上保持电子书原有排版。如果在过程中遇到任何问题请留言提出。另外如果您有更好的方法也请留言分享。
© 「书伴」原创文章,转载请注明出处及原文链接:https://bookfere.com/post/102.html
“转换电子书格式”相关阅读
- KindleGen:亚马逊官方 Kindle 电子书格式转换工具
- 如何把 Kindle 电子书的横排文字改成竖排
- Kindle Comic Creator:亚马逊官方漫画转换工具
- 亚马逊 Kindle Convert:纸质书无损转换电子书
- 在 Kindle 中阅读 EPUB 格式电子书的两种有效方法
- Kindle Comic Converter:最简单的漫画转换工具
- 如何直接推送 EPUB 格式电子书到 Kindle 邮箱
- EpubPress:把打开的多个网页转成一本电子书
- 如何将 AZW3 格式无损转换为 EPUB 格式并保持原有排版
- 如何把 Kindle 电子书转换成增强型排版的 KFX 格式
- Calibre使用教程之为电子书添加或修改封面
- Calibre 使用教程之转换电子书格式
- EasyPub:把 TXT 文档转成带目录的 MOBI 格式
- 把 TXT 文档转换成带目录的 MOBI 格式电子书
- Calibre 常用命令行工具详解之 ebook-convert
您好,这篇文章对我的帮助很大!
但是我发现当我将嵌入字体的mobi重新通过电子邮箱发送到kindle上时,转换出来的azw3格式的文件在kindle paperwhite 2上无法显示封面,但在iPad、iPhone客户端上能完美显示封面,请问这是怎么回事呢?谢谢!
smartmyself 您好。因为电子书不显示封面的原因很不明确,有时候不同的电子书的表现也不一样,建议您将电子书发送到我们的邮箱,我帮您看一下。
好的,已发送,谢谢!
猜测是亚马逊接受服务器在转换中就忽略了封面
我手里有本冰与火这个的azw3电子书,里面包含了X-RAY功能,请问通过上述的方法能推送后,仍然保留X-RAY吗?
我用其他的软件同样先将azw3转换为epub,最后转换为MOBI格式,再通过邮箱发送到亚马逊。但是推送到kindle里面的书籍却丢失了X-RAY功能。
请问有什么办法可以保留X-RAY吗?
备注:主要是希望让电子书同时具备X-RAY和多设备阅读进度同步功能
贰天 您好。X-Ray 是亚马逊正版电子书的一个私有功能,转换成其他格式可能会造成 X-Ray 的丢失。只有在亚马逊电子书商城购买的电子书才能同时具备 X-RAY 功能和同步阅读进度。
其实把要转换的epub文档直接用鼠标拖到kindlegen.exe软件上就可以转换了,不用手工输入命令的。
你好!win7系统,双击 kindlegen.exe后页面一闪而过之后便没有了,不知道是什么问题?
tzb 您好。KindleGen 不是直接双击打开使用的哦,请按照本文的步骤使用 KindleGen。
用Calibre 将 azw3 转成 epub后排版格式有细微的变化,但是比转mobi是好得多了。再将epub转成mobi是否也会有变化这个倒是没怎么注意。因为上文说的是“原汁原味”,我本以为是一模一样的。
为什么我用 Calibre把 azw3 转换成 epub后排版还是有些不一样?
丕平 您好,您是指在通过 Calibre 将 azw3 转成 epub,再用 KindleGen 转成 mobi,放到 Kindle 中阅读排版发生了变化是吗?
方法失效了
北风之神 您好,“方法失效”的意思是?
为什么不提一句Kindle Previewer呢
Kindle Previewer 当然也可以,其实它也是调用 Kindlegen 完成转换的
学习了。
这是我改进的 “无损转为mobi” 工具。如果是 azw3 先用 kindleunpack 解出 epub,再用 kindlegen 转换,然后精简(kindlegen 转换的mobi包含源文件)。如果是 epub,直接转换。
链接: http://pan.baidu.com/s/1eQEOsJC 密码: b3gr
我本人用更加简单的一套 “自定义菜单” 系统。
你好,我用你的工具之后发现转出来的mobi文档大小还是比原文档azw3大了将近1倍,请问这是怎么回事?是不是我少了精简的步骤?
上面的版本我后来发现有个缺陷:由于原 kindlestrip.py 脚本并未对路径中的特殊字符进行处理(windows下),例如人名“凯伦•伯格”,造成部分文件无法精简。
修正后新链接,有问题请回复。
链接: http://pan.baidu.com/s/1nSkLS 密码: d450
“无损转为mobi” 新版链接:http://pan.baidu.com/s/1o6r76GU
你好,请问8号的版本跟今天的版本有什么不同?下午我用了8号的版本,发现跟你未改良前的版本转出来的mobi大小基本是一样的。不过相对来说比单纯的用kindlegen直接转出来的mobi还是小了不少。如果用比例来说原文档大小是单位1的话,kindlegen版本就是3而用你的工具就是2。
看来非要让转出来的mobi要接近原文档大小似乎是不可能。
mobi 文件一般来说会比 epub 大,至于大多少,这个要看具体文件。有的大一点点,有的大较多。如果采用 kindlegen 的 -c2 压缩,虽然有些情况下会小一点,但速度又会变得很慢。所以综合考虑,这样已经是最好的选择。
感谢你的解答以及分享!
谢谢您的无私分享工具。请问我能转载这个工具去kindle114论坛么?让更多的爱好者看到,能够方便无损转换格式。谢谢~
层主你好,我想问一下该精简工具是不是推出新版本了?我看hipa论坛上有人提供了一个版本日期5.7的版本,是不是也是出自您手?
优化epub大小可以用JayXon的leanify工具;用你的批处理脚本同样原理可以用-c2参数重新压缩mobi(用kindleunpack解压mobi文件大多数情况得到的是不是mobi8\*.epub而是mobi7目录下的一堆源文件,这堆玩意直接zip打包成epub在电脑上部分阅读软件比如alreader2可以看,但sumatrapdf等阅读器不行,毕竟缺很多东西不是标准epub,估计手机上都没法看。但最终kindlegen -c2重新压缩的mobi应该是没问题的……)
补充:经过试验,mobi-> (kindleunpack解压成mobi7\*.*) -> 打包成半成品epub -> kindlegen转成mobi -> 再一次kindleunpack,最后得到的是正确的epub格式。
是有这个版,固定链接
http://pan.baidu.com/s/1o6r76GU
请问一下,5月9日的版本,调用的是 kindleunpack 是0.72,还是最新的0.81.1?多谢!
@nJoy 由于层数太多,无法回复你。
我用的 kindleunpack 是 0.77 版,目前最新的 0.80 版是改成兼容 python3。不知道你的 0.81.1 是哪里来的。
这是作者地址
https://github.com/kevinhendricks/KindleUnpack
请教,包含(kf8和mobi)的mobi推送后无法显示封面。分解出纯mobi后可以显示封面,但排版不如kf8给力⋯⋯请教良策,叩谢大神!
Calibre 提示有kindleunpack 有0.81.1,在线更新不成功,我最后google到0.81.1的安装文件了。
请问你的kindleunpack的exe文件是怎么生成的,我自己生成的运行时有importError
我发现直接把epub文件拖到kindlegen.exe上面就可以直接转换成mobi了,可以省去了编写命令提示符的步骤了。
感谢您的提示,已将您提供的方法更新至本文。^_^
你好,请问下,那个kindlegen怎么用的啊,我按照你说的做,它提示我“不是内部或外部命令,也不是可运行的程序或批处理文件”,我已经把它都解压在桌面上了,而且要转换的文件也在桌面上啊!我的是win8.1系统,哪儿出了问题啊?谢谢,帮忙解答下。。。
浮生 您好,按照本文的步骤做就可以。首先确认 KindleGen 和要转换的 epub 格式电子书都放在桌面上。打开命令提示符,会显示:
C:\Users\你自己的用户名>
然后输入“cd desktop”回车,以定位到桌面:
C:\Users\你自己的用户名>cd desktop
然后输入“kindlegen xxxxx.epub”回车:
C:\Users\你自己的用户名\Desktop>kindlegen xxxxx.epub
接着就开始转换了。如果步骤没错还是显示“不是内部或外部命令,也不是可运行的程序或批处理文件”,试着将 kindlegen 改成 kindlegen.exe。
蒽,好了,就是把kindlegen改成kindlegen.exe就行了!非常感谢啊,以后会多多的来支持kindle伴侣的。。。谢谢
有一点想不明白:如果是原生系统,直接用azw3格式就能看;如果用多看系统,转到epub格式就行了,何必执拗于转到mobi呢,epub的兼容性更好些~~
小张 您好,之所以要转成 mobi 格式,是因为很多小伙伴不喜欢使用多看系统,也不习惯直接将电子书拷贝到 Kindle 中阅读,而是喜欢推送到云端再同步到 Kindle(防止丢失、可随时调取),但是亚马逊的推送又不支持 azw、epub格式,所以才需要这种方法。
当然,就像您所说的这样,没有这个需要的当然就可以不用做这些工作了啦。
为什么还要另用kendlegen来转换呢?直接再用calibre把epub转成mobi不就好了?
踢 您好,因为 Calibre 转换的 mobi 会丢失排版格式。
我上次就是为了推送,在calibre完成azw3到mobi转换,发现格式跟之前有点不同,原来是这个原因。谢谢指导。
能不能把azw3 直接转换为 mobi?
Steve 您好,之所以先把 azw3 转成 epub,就是因为 KindleGen 不支持直接转换 azw3 格式。
这个方法不错,只不过要是能把购买的多看书转换过来就更好了