如何将 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
“转换电子书格式”相关阅读
- Kindle 漫画制作软件 ChainLP 简明教程
- Kindle Comic Converter:最简单的漫画转换工具
- 乐书:在线 Kindle 电子书制作和转换工具
- Calibre 使用教程之转换电子书格式
- EasyPub:把 TXT 文档转成带目录的 MOBI 格式
- 如何将 AZW3 格式无损转换为 EPUB 格式并保持原有排版
- 在 Kindle 中阅读 EPUB 格式电子书的两种有效方法
- Calibre 使用教程之优化电子书的排版
- Calibre 使用教程之为电子书添加更换字体
- 如何把 Kindle 电子书转换成增强型排版的 KFX 格式
- 如何把 Kindle 电子书的横排文字改成竖排
- KindleGen:亚马逊官方 Kindle 电子书格式转换工具
- EpubPress:把打开的多个网页转成一本电子书
- Calibre 使用教程之电子书繁体字转简体字
- 如何把 KFX 格式转换成 MOBI 等其它电子书格式
站长请问一下我用第二种方法转换出来的书里面的图片都会变糊
运行 KindleGen 时添加一个不压缩选项
-c0
看能否解决。没办法解决,转出来的mobi文件显示16m邮箱传书后管理我的内容里面显示只有2.3m
你是指通过邮箱推送后图片被压缩了?通过 USB 数据线拷贝有问题吗?
我试了下usb就不会,我平时都是多个设备包括Kindle app一起使用的,邮箱压缩的话有什么办法能解决吗?
这就可以确定是亚马逊服务器压缩图片了。据我所知,亚马逊的 Kindle 个人文档服务只提供了一个指令,就是在邮件主题填写“convert”来强制将其它格式转换成 Kindle 格式,并没有提供可以控制是否压缩的指令,所以这个问题应该是无解的。
为什么我用Kindle Previewer 3将azw3转换成mobi时,文件大小丝毫没变,而且生成的mobi不能发送到kindle呢
发送邮件后收到什么自动回复了吗?
你好,收到了,然后显示文件出现问题,格式不对
你可以尝试一下把 AZW3 用户KindleUnpack 拆解成源文件,然后再用 KindleGen 将其转换成 MOBI 文件,看能不能行。
使用 calibre 将 azw3 转换为 both mobi(显示KF8)格式(这2本电子书在calibre上预览,排版没有明显区别,但传输至kindle时格式走样),图书能够通过邮件正常传输至 kindle
但是同样的azw3源文件通过kindle previewer 3 转换为 mobi 时,邮箱传输屡试屡 bug
另外使用kindle preview 3 时总是提示 “由于该电子书是由较旧版本的Kindle Gen 或第三方工具创建的Mobi文件,因此不支持在启用增强排版功能的情况下进行预览” 且在导出时,只有旧的mobi与ios2种导出方式。不知与提示是否有关,生成的依然是KF7标准导致不能邮传
不必劳烦站长了 个人通过尝试先unpack再kindlegen 如果有人有将转换的mobi邮箱推送的需求,建议尝试第二种方法
请问怎么把KF7编码的mobi文件转为KF8编码的mobi文件?
建议先用 Calibre 将其转换成 EPUB 格式,然后再用 KindleGen 把 EPUB 格式转换成 KF8 标准的 MOBI 格式。
KindleGen的命令符看的不是很明白,就用的直接拖动文件到kindlegen.exe运行的方法,请问这种方法方法转换出的mobi是KF8标准吗?
是的。只要你使用的 KindleGen 版本是 2.9(当前最新版),转换出来的 MOBI 格式就是 KF8 标准。
好的,谢谢啦!
看转换日志记录,里面提到生成的mobi包含两种格式,一个v6,一个v8,通过邮箱推送到终端app上的只有v6,v8的一大堆css即html属性没看到, 是我操作错了么
你的操作没错,选择 v6 格式还是 v8 格式是亚马逊服务器选择的,它可能会根据终端软件版本推送它认为合适的格式。装有新版本固件的较新型号的 Kindle 设备会接受 v8 格式,但是不清楚 Kindle APP 是否也是这样。你可以检查一下你下载的 Kindle APP 是否最新版本,如果确认是新版本仍然只能接收 v6 格式,那就是亚马逊服务器的问题了。
请问是否有办法将自己制作的epub和mobi加密?又是怎么个读取形式……似乎是我想多了
如果只是为了避免外泄,可以直接打包成加密的 ZIP 或 RAR,告诉允许阅读的人密码即可。如果是为了避免盗版,那就用 DRM 技术,包括亚马逊在内的所有电子出版商就在用,只允许专有设备阅读专有内容。
请问怎么修改电子书书名?我在使用了“拆书”功能后,发现拆分的两本是以开始的第一卷为书名的
修改电子书的书名需要修改它元数据里面的书名。不知道你所说的“拆书”功能是怎么实现的,如果使用的的是 Calibre 的插件,可以在转换时修改电子书名,如果是修改的电子书源文件,需要修改 .opf 文件中的这个标签中的文字:
<dc:Title>Book title</dc:Title>
。站长,你好,我在vol上推送的漫画是awz3的,我想改一下名字,就复制粘贴到这个软件里,转为mobi格式后推送到kindle上以后,乱了,出现了两种情况,一种是原本漫画有212页,转格式之后多了好多空白页,另一个是所有漫画图片之后出现了”第X页(漫画有多少页,X最多有几页)”,这是怎么回事?有没有解决办法?
漫画格式算是一种特殊电子书格式,直接用 Calibre 转换会破坏它的排版。不知道你有没有尝试本文提供的第一种方式:先用 KindleUnpack 拆解,修改好内容后,再用 Kindle 转换。这种方式可能不会破坏原格式的信息。
谢谢书伴的介绍,但是您写得文章还可以更好懂一些,反正我是折腾尝试了很久!不想其它Mac用户再走我的老路了。如果是Mac用户可以参考下这篇小白简易。Windows上kindle unpack总是说拆解失败,大家留言的问题我都排除了,可能是Python版本不适配,有明白的可以指导下。
…………………………………………
Mac上操作《将 AZW3 格式转换为 MOBI 格式并保持原有排版格式》
⑴kindle unpack
去这个网站下载独立UI版本。
https://www.mobileread.com/forums/showpost.php?p=654996&postcount=1
KindleUnpack v0.81.app.zip (442.4 KB, 247 views) 是AppleScript version
KindleUnpack 64 v0.81.app.zip (437.5 KB, 414 views) 是 64-bit AppleScript version fo Mac OS X 10.6 and later
操作:打开独立的UI版本,把azw3的书直接拖拽到APP图标上。
⑵kindlegen
用脚本版本,不用UI版本,就不用缩小体积那个很可能用不了的脚本了!UI版不支持缩小体积!
官网下载链接如下。
http://kindlegen.s3.amazonaws.com/KindleGen_Mac_i386_v2_9.zip
①打开终端
②拖拽KindleGen_Mac_i386_v2文件夹里的kindlegen这个exe文件到终端
③拖拽kindle unpack解压后的mobi8文件夹下的书名.epub或者mobi8→OEBPS→content.opf这个文件到终端。哪个都一样!试过了!
④输入这行命令
-dont_append_source
⑤回车键
这样就能得到保持原有排版格式的mobi,和原文件在同一路径。如果是content.opf转的还要改文件名。
谢谢反馈。主要是哪一块不清楚呢,运行命令方面还是其它什么操作?
今天总结了一下Windows的方法,依然是面向电脑小白的。
Windows上KindleGen的使用方法。
①下载的kindlegen压缩文档解压,只把文件夹里的kindlegen.exe单独拿出来放到桌面。
②打开CMD,输入下面命令回车。
cd desktop
③把书名都改成book.epub,放到桌面上。
④输入下面命令回车。
kindlegen.exe “book.epub” -dont_append_source
感谢这篇教程,成功的转换了书籍,不过文章是15年的,现在版本的Calibre在使用起来更简单一些,没有教程里面的那么复杂而且是中文版了。
azw3转换 源文件的时候失败 了
您好,我遇到一个非常恼人的问题,希望能够得到您的帮助,具体问题如下:
我按照文中所示的两种方法,都试过了,推送到kindle和手机app上都没有问题,kindle上的排版是正常的,但是推送到手机上的书打开后的行间距非常窄,而且亚马逊app自带的调整行间距的功能直接失效,导致在app上看书非常难受,请问有好的解决方法吗?
注:我是把mobi格式的书进行排版并转化为azw3,并且再用kindlegen转换为mobi格式
如果导致调整行间距的功能失效,一般是电子书的 CSS 强制设定行距导致的,建议用 Calibre 的编辑器检查一下电子书的 CSS 文件中,有没有类似 line-height 属性强制设定行距。
感谢回复
我的css文件确实设置了line height,这也是我本人自己使用calibre通过设置最小行高导致的,然而这正是我排版的目的,如果取消了这个设置固然能在手机上调整行间距,但是与我的初衷不符,我希望能够在手机端能够看到行间距排版良好的书本(话说为什么在kindle上就没问题呢?)
另外您的回答给了我启发,我决定去看看排版优良的书本的css,另外期待您的再次解答。
把awz3格式,转换成mobi,推送kindle中为什么就没有封面?calibre中显示封面正常,但是kindle里不显示封面,请问这个怎么弄呢?
首先你把 AZW3 文件拷贝到 Kindle 看看能不能显示封面,如果显示就说明这本书的封面没问题。然后排查,你使用什么转换成 MOBI 格式的,如果使用的是 Calibre,必须转换成老的 mobi7 标准的 MOBI 格式(也就是转换时“MOBI 输出”的“Kindle选项”选择的“MOBI文件类型”是“old”),这样推送后才能显示封面;如果使用的是 2.* 版本的 KindleGen 转换的,是新的 KF8 格式,推送后是不显示封面的。
如果 MOBI 文件标准没问题,还需要注意,Kindle 显示封面有时候很慢,可以尝试重启一下设备,多等等看,或者多用几本电子书测试一下。
Calibre的转换日版书的效果并不理想,我之前都是用Calibre转成Epub再用kindlegen。但是Calibre转出来的Epub不能直接转mobi,kindlegen会报错,所以还得拆开包找错误。
西桑 您好。个人比较推荐第一种方法,先接用 KindleUnpack 拆解,再用 KindleGen 转换。
请问使用方法一转换的mobi文件,通过邮箱推送到kindle是不是不会显示封面?
是的。KF8 标准的 MOBI 电子书推送到 Kindle 都不会显示封面。
为什么电子书推送到kindle都不会显示封面,我只用old的模式成功过一次
笑沧海 您好。KF8 标准的电子书直接拷贝到 Kindle 中即可显示封面,mobi7 需要用邮件推送到 Kindle 或用 Calibre 传输到 Kindle 才显示封面。
原来如此!我基本上都是邮箱推送,这样可以保存进度,谢谢解答!
用easypub制作成mobi2.8版本的,应该是kf8标准吧……然后直接拷进kindle并没有显示封面,请问这个怎么解决呢?
如果 MOBI 文件自身没问题,可能就是 Kindle 读取封面的问题。有时候 Kindle 显示封面很慢,可以尝试重启一下设备,多等等看,或者多用几本电子书测试一下。
遇到这个错误提示了:
错误:E20004:Spine 中的 ID 与 manifest 中的任何项均不匹配:x_cover.xhtml
于是Kindlegen转换不成功