官方转换工具 Kindle Previewer 和 KindleGen
目录
一、Kindle Previewer – 适用于初级用户
二、KindleGen – 适用于高级用户
1、KindleGen 软件下载
2、KindleGen 安装方法
● Windows 系统
● macOS 系统
● Linux 系统
3、KindleGen 使用方法
亚马逊官方提供了两种电子书转换工具,一个是 Kindle Previewer,带 UI 易操作,适用于初级用户,还有一种是 KindleGen,无 UI 是命令行形式,适用于高级用户,其实 Kindle Previewer 也是调用 KindleGen 进行转换的。小伙伴们可以按照自己的需求选择使用。
和另一款电子书格式转换软件 Calibre 相比,亚马逊提供的转换工具有一个显著的优点,那就是不破坏原有的排版格式,比如一个排版精良的 azw3 格式电子书通过 Calibre 转换后通常会破坏掉原有的排版,如行距变小、内嵌字体丢失等,所以为避免这个问题可以这样做可以先通过 Calibre 将 azw3 转换成 epub 格式(因为这两款软件都不支持直接将 azw3 转换成 mobi),然后再通过这两款软件的任何一个将 epub 格式转换成 mobi,这样就可以保持原有排版风格了。
一、Kindle Previewer – 适用于初级用户
Kindle Previewer 是一个模拟 Kindle 设备和应用程序显示书籍内容的使用界面工具。是亚马逊官方开发的一款kindle系列产品模拟器,可以模拟出kindle系列产品的功能。当然也可以用来阅读.mobi等专有格式的电子书,还可以对部分电子书格式进行格式的转换。
1、Kindle Previewer 软件下载
https://bookfere.com/tools#Kindle_Previewer
2、Kindle Previewer 使用步骤
* 适用于 Kindle Previewer 3 的步骤
- 下载 Kindle Previewer 并安装;
- 安装完成后,打开 Kindle Previewer 3,点击菜单栏的【文件 → 打开】;
- 然后点击菜单栏的【文件 → 导出】,选择保存路径并选择格式“电子书(.mobi)”保存。
* 适用于 Kindle Previewer 2 的步骤
- 下载 Kindle Previewer 并安装;
- 安装完成后,打开 Kindle Previewer 2,单击“Open book”;
- 选择 EPUB/HTML/OPF 文档,按照向导指示转换电子书并进行预览;
- 转换成功的电子书扩展名为“.mobi”,位于与源 HTML/EPUB 相同的文件夹中带有“Compiled-”文件名的文件夹之下。
二、KindleGen – 适用于高级用户
KindleGen 是一个免费的命令行工具,也是亚马逊唯一官方支持的文件转换工具,可通过它把 HTML、XHTML 或 IDPF 2.0 格式(带有 XML.opf 描述文件的 HTML 内容文件)的源文件创建为 Kindle 电子图书。高级用户可以使用命令行工具将 EPUB/HTML 转换为 Kindle 电子书。 您可以在 Windows、Mac 和 Linux 平台上使用此界面。此工具可用于自动批量转换。
1、KindleGen 软件下载
KindleGen 是一款跨平台软件,请下根据自己所使用操作系统选择相应的版本下载:
https://bookfere.com/tools#KindleGen
2、KindleGen 安装方法
KindleGen 是单文件命令行工具,因此不需要安装,但是为了方便在“终端”或“命令提示符”使用它,建议将其放在适当的位置,并添加到系统环境变量。下面是针对不同操作系统的操作方式:
● Windows 系统
如前所示,KindleGen 是单文件程序,可以直接在“命令提示符”中输入 KindleGen 的绝对路径运行它:
- 下载 KindleGen 并解压缩,取出里面的 kindlegen.exe,放到某个位置,如
C:\KindleGen\kindlegen.exe
。 - 依次点击【开始菜单 → 所有程序 → 附件 → 命令提示符】打开“命令提示符”。
- 输入命令
C:\KindleGen\kindlegen.exe
并回车,将会看到 KindleGen 的帮助内容。
如果你不想要每次都输入长长的绝对路径来运行 KindleGen,可以按照如下步骤将其加入系统的环境变量,这样就可以直接在“命令提示符”中直接输入命令 kindlegen
运行它了:
- 鼠标右键点击“计算机”(或“我的电脑”),然后在弹出的菜单中点击“属性”;
- 接着点击弹出窗口左侧的“高级系统设置”,在弹出的窗口中再点击【环境变量…】;
- 在“系统变量”这一栏找到“变量”为“Path”这一项并双击它,在弹出的窗口中点击【新建(N)】,输入 kindlegen.exe 所在目录,如
C:\KindleGen
,最后一路确定就可以了。
● macOS 系统
和 Windows 系统一样,你可以直接在“命令提示符”中输入 KindleGen 的绝对路径运行它:
- 下载 KindleGen 并解压缩,取出里面的 kindlegen 二进制文件;
- 在“应用程序”中找到并运行“终端”,运行命令
mkdir -p /usr/local/bi && open /usr/local/bin
打开自定义可执行程序目录,并将二进制文件 kindlegen 拷贝此目录中,这样就可以直接在终端中运行 kindlegen 命令了; - 输入命令
/user/local/bin/kindlegen
并回车,将会看到 KindleGen 的帮助内容。
如果你不想要每次都输入长长的绝对路径来运行 KindleGen,并且使用的是较新版本的 macOS 系统(大于等于 10.15),一般可以直接输入命令 kindlegen
运行它。如果出现提示 zsh: command not found: ddd
,则需要执行如下命令将 KindleGen 程序所在的路径添加到系统的环境变量:
echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.zshrc
如果你使用的 macOS 版本低于 10.15,则需要运行如下命令添加:
echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bash_profile
● Linux 系统
- 下载 KindleGen 至一个文件夹,例如用户主目录
/home/YOURNAME
(YOURNAME 要换成真实的系统用户名); - 在终端中使用命令
cd ~
进入下载文件所在的用户主目录,然后使用命令tar xvfz kindlegen_linux_2.6_i386_v2_9.tar.gz
解压文件; - 然后运行命令
cp kindlegen_linux_2.6_i386_v2_9/kindlegen /usr/local/bin
将二进制文件拷贝到自定义可执行程序目录,这样就可以直接在终端中运行 kindlegen 命令了; - 输入命令
kindlegen
并回车,将会显示 KindleGen 的帮助内容。
在命令提示符或终端运行 kindlegen
命令,可查看其帮助内容:
*************************************************************
Amazon kindlegen(MAC OSX) V2.9 build 1028-0897292
命令行电子书制作软件
Copyright Amazon.com and its Affiliates 2014
*************************************************************
使用规则:
kindlegen [文件名.opf/.htm/.html/.epub/.zip 或目录] [-c0 或 -c1 或 c2] [-verbose] [-western] [-o <文件名>]
注释:
zip formats are supported for XMDF and FB2 sources
directory formats are supported for XMDF sources
选项:
-c0:不压缩
-c1:标准 DOC 压缩
-c2:Kindle huffdic 压缩
-o :指定输出文件名。输出文件将被创建在与输入文件一样的目录中。 不应该包含目录路径。
-verbose: 在电子书转换过程中提供更多信息
-western:强制创建 Windows-1252 电子书
-releasenotes:显示发行说明
-gif:转换为 GIF 格式的图像(书中没有 JPEG)
-locale : 以选定语言显示消息 ( To display messages in selected language )
en: 英语
de: 德语
fr: 法语
it: 意大利语
es: 西班牙语人
zh: 中文
ja: 日本
pt: 葡萄牙
ru: Russian
nl: Dutch
除了以上所列出的参数之外,KindleGen 还有一个隐藏参数:-dont_append_source
。该参数使得 kindlegen 在生成 mobi 时不再添加源文件到生成的 mobi 文件中,这样可以大大缩减 mobi 的体积,也就不再需要 kindlestrip 来帮助删除 mobi 文件的冗余成分了。具体命令如下所示:
$ kindlegen -dont_append_source xxx.opf
3、KindleGen 使用方法
KindleGen 是命令行工具,没有图形界面,你需要在“终端”或“命令提示符”中使用它。假设要转换的源文件 book.html 放在桌面上,可按照如下步骤要将其转换成 MOBI 格式。
macOS 或 Linux 系统可以通过如下命令进入待转换文件所在目录:
cd ~/Desktop
Windows 系统可以通过如下命令进入待转换文件所在目录(YOURNAME 替换成真实的系统用户名):
cd C:\Users\YOURNAME\Desktop
然后通过输入如下命令进行转换(注意,如果是 Windows 或 macOS 系统,且没有将 KindleGen 添加到系统环境变量,则需要如前文所说的那样,使用程序的绝对路径来运行它):
kindlegen book.html -dont_append_source
如果转换成功,将会在被转换文件所在目录看到名为 book.mobi 的新文件。
Win10系统在输入命令的时候一直提示系统找不到指定的文件,但是只输入路径是可以直接打开文件的,请问这会是因为什么呢?
如果不想使用绝对路径运行命令,你需要设置环境变量。文中提供了设置环境变量的方法,按照步骤操作即可。
感谢回复!尝试了这个操作,可以解决上面的问题。
MacOS在“终端”运行命令 open /usr/local/bin ,提示未找到,请问是什么问题呢
没有的话可以在终端运行如下命令创建该路径:
此外,你还需要执行如下命令,确认输出内容中含有新创建的路径:
如果没有,还需要将该路径添加到 Shell 环境变量中。如果你使用的 macOS 系统版本高于等于 10.15(Catalina),可以运行如下命令添加:
如果低于这个版本,则需要运行如下命令添加:
这样做的好处是不和系统程序混在一起。当然,如果你嫌麻烦且不在乎这个好处的话,也可以直接将 kindlegen 拷贝到如下所示的系统可执行程序目录中:
这样不需要做任何配置就可以直接在终端中使用。
感谢大佬的回复,试了几次还是没法打开bin文件夹,我就还是在Windows里面转换好了,谢谢!
站长,请问为什么使用 kindlegen 默认设置时,在保证其他操作条件基本不变的情况下,部分文件在生成过程中会出现 创建 prc文件警告,请问这个警告有什么影响吗,如果有请问大致是什么作用,如何解决呢?
谢谢站长.
出现警告的原因通常是源文件可能存在不符合 MOBI 格式标准且 KindleGen 无法自动修正的内容格式或元数据 。警告不会像致命错误那样中断 MOBI 文件的生成,是否要处理是具体情况而定。一般 KindleGen 会给出具体的警告原因,你可以根据这些信息来决定是否修正,以及判断问题何在。
mac10.15.7 安装不了kindlegen2.9,提示需要开发者更新
用kindlepreviewer3吧,使用calibre转换txt得到的azw3文件无法打开,提示不支持
啊,感觉我好难啊
你可以尝试在 Kindle Previewer 3 中提取可用的 KindleGen 程序,具体方法见这篇文章。
谢谢回复 终于转换好了 多谢多谢!
只是还有个小问题,我azw3转换出来的mobi传到kindle设备和手机kindle上用都是没问题的,可是就是没法用kindleformac打开,一试就卡退 然后报错,我kindle装的是最近版本的,不知道跟这个有没有关系。
您好 KindleGen 不能在WIN10里用 那么WIN10用哪个版本呢
Windows 10 是可以使用 32 位的 KindleGen 的。你遇到什么错误提示了吗?
kindlegen 打开闪退啊,怎么解决。win10 64位
KindleGen 是命令行工具,Windows 下你需要在“命令提示符”或“PowerShell”中通过命令的方式使用,使用方法文中已介绍。
要是有安卓版的kindlegen就好了
请问,已经把书籍通过kindlegen转码kf8格式了,
也能应用为第三方字体,但是退出再进入书籍又变成了默认的的黑体,其他书籍都正常
preview 把40M的转成了100M,发不到kindle个人文档了。。。。
Kindle Previewer 3 导出的 MOBI 文件是带源文件的,所以会比转换前的文件大一倍多。对于这种 MOBI 文件,可参考《KindleStrip:大幅精简压缩 mobi 文件体积》这篇文章提供的方法剔除源文件。
为避免这个麻烦,建议直接使用 KindleGen,并在执行命令时添加
-dont_append_source
参数来禁止它在转换格式时附加源文件。如果转换前的文件格式是 AZW3,可参考《将 AZW3 格式转换为 MOBI 格式并保持原有排版格式》这篇文章,里面提供了一些有用的建议。感谢回复,试着用KindleGen加了这条命令,但还是比较大,又加了压缩命令,C1没啥变化,用了C2,明显变小,但图片又压缩的太厉害了,有没有按百分比压缩的呢,就是压缩为原图的 xx%,感觉这样比较好,但估计没有~
我要解决的初始问题是,想传到 kindle服务器 的 mobi 文件目录跳转不对,也不太懂怎么改,直接用 calibre 把不正常的 toc文件用正常目录的 toc 覆盖掉,但依然不行,所以才想着用转换,calibre转换的大小合适,但 kindle服务器收不到,也没有提示,然后就搜到这儿了
KindleGen 的压缩模式貌似没有更精细的控制参数可用。
目录有问题建议通过转换重新生成,手工修改比较麻烦。
Calibre 转换的过程MOBI 格式只有选择 old 模式才能正常推送。
对于推送没成功的问题,需要注意,有些电子邮箱的普通附件大小是有限制的,大于 20MB 的附件会用所谓的云附件发送,这种附件并不是真正的文件附件而只是一个连接,是无法推送成功的。
因为你的原始文件大小就有 40MB,除非降低书中图片的品质,应该是无法大幅度降低它的大小。
原文件 epub,轉換後用 Kindle Paperwhite (第10世代) 打開文件發現字體好細,而且不能調較大小,請問怎麼解決?
这应该是因为 EPUB 里面的 CSS 文件强制设定了字体样式,建议用 Calibre 编辑 EPUB 文件,将 CSS 文件里面的 font 或 font-family 这种属性全部删除,然后再进行转换。或者在转换时,在转换设置中,切换到“界面外观”项,然后切换到“样式”选项卡,找到“过滤样式信息”这一项,勾选其中的“字体”,这样也能移除字体相关的 CSS 样式。
按照了你的方法成功了,感謝解答。
最新版本的Kindle Previewer 3无法打开,Win7,64
为什么会提示:由于出现错误,无法生成MOBI域名文件。
会什么会有这种情况出现呢?请问这样子应该怎么解决?
命令提示符上应该是有具体的错误提示的(注意 Error 字样),有具体提示才好判断问题所在。
错误那一行提示:无法解析目录中的超链接,无法创建目录。
这样子的话应该怎么解决呢?
那是因为目录文件中的链接有误,它指向的和内容中实际目标不匹配。你应该能看到具体链接,一般是 # 之后的 ID 有错误,把它修正或删除就可以了。
有些文件用kindlegen转换后会出现乱码,请问怎么办?
源文件是什么格式呢?建议编辑源文件的 opf 格式的元数据文件,确保
<metadata> ... </metadata>
代码块中有下面这行代码,如果没有的话就加上去再转换。原文件是azw3格式的,您说的代码我看了是有的。请您看一下这个文件吧。
把下面链接drop@box中间的@去掉就是文件的链接。
https://www.drop@box.com/s/j6j5h8ab7nu5mm9/%E5%BD%93%E4%B8%8B%E7%9A%84%E5%90%AF%E8%92%99_Enlightenment%20Now_%5B%E7%BE%8E%5DSteven%20Pinker.azw3?dl=0
这个问题出在具体页面的编码上,要修改拆解后的 Text 文件夹中的所有 .xhtml 文件,在其中的 <head> 标签中添加下面这行代码,来指定它的文档编码:
这个链接是转换后的文件:Firefox Send 下载(有效期7天)
谢书伴君神助!我看看能不能照葫芦画瓢改一下其他同样问题的书。
你好,关于kindlegen不再添加源文件的参数,应该如何添加呢?不明白这行$ kindlegen -dont_append_source xxx.opf 应该添加在哪个步骤。
这不是一个步骤,只是一个示例。假设你要用 kindlegen 转换一个名为 a.opf 的电子书源文件,如果要包含源文件,就用
kindlegen a.opf
这样的命令。如果不想包含源文件,那就用kindlegen -dont_append_source a.opf
这样的命令。后者和前者的区别就是加上了-dont_append_source
参数。万分感谢!已经会使用了,确实比以前体积小了,谢谢!
请问win10闪退怎么办,就跳出来界面后马上关闭o(╥﹏╥)o
请问你指的是 Kindle Previewer 还是 KindleGen?
哇这么晚还有人!!我已经解决惹,谢谢你√
大佬人还在吗,请教一下是怎么解决的啊/(ㄒoㄒ)/~~
用kindle previewer3转换EQUB成MOBI成功打开了,但是无法导出,说不支持导出阿拉伯语和印度语的书籍。。。书本身是中文的。请问这个要怎么办呢?
改用calibre吧。