KindleGen:亚马逊官方 Kindle 电子书格式转换工具
KindleGen 是亚马逊官方提供的电子书格式转换工具,可以将 EPUB、HTML 等格式转换成适用于 Kindle 的 MOBI 格式。亚马逊提供的另一款软件 Kindle Previewer 也带有电子书格式转换功能,其内部也是调用 KindleGen 进行转换的。
KindleGen 支持将 EPUB、HTML、XHTML 格式转换成 MOBI 格式。与 Calibre 等第三方电子书格式转换工具相比,KindleGen 具备显著的优势,不仅可以避免破坏电子书原有的排版,如行距变小、内嵌字体丢失等,由于是官方出品,与 Kindle 设备的兼容性也是最佳的。
一、KindleGen 软件下载
KindleGen 是一款跨平台软件,请下根据自己所使用操作系统选择相应的版本下载:
https://bookfere.com/tools#KindleGen
现在亚马逊官方已停止提供 KindleGen 的下载,你也可以从 Kindle Previewer 软件中提取最新版 KindleGen,目前 macOS 版有 64 位程序,windows 版只有 32 位程序。
二、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/bin && open /usr/local/bin
打开自定义程序目录,并将二进制文件 kindlegen 拷贝到此目录中; - 在“终端”输入命令
/user/local/bin/kindlegen
并回车,将会看到 KindleGen 的帮助内容。
* 提示:如果在运行 kindlegen 命令时出现错误提示“permission denied”,可以运行命令 chmod +x /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 book.epub -dont_append_source
三、KindleGen 使用方法
KindleGen 是命令行工具,没有图形界面,你需要在“终端”或“命令提示符”中使用它。假设要转换的源文件 book.html 放在桌面上,可按照如下步骤要将其转换成 MOBI 格式。
macOS 或 Linux 系统可以通过如下命令进入待转换文件所在目录:
cd ~/Desktop
Windows 系统可以通过如下命令进入待转换文件所在目录(YOURNAME 替换成真实的系统用户名):
cd C:\Users\YOURNAME\Desktop
然后通过输入如下命令进行转换,注意要把 book.epub 换成实际要转换的电子书文件名(如果没有将 KindleGen 添加到系统环境变量,则需要如前文所说的那样,使用程序的绝对路径来运行它):
kindlegen book.epub -dont_append_source
如果转换成功,将会在被转换文件所在目录看到名为 book.mobi 的新文件。
© 「书伴」原创文章,转载请注明出处及原文链接:https://bookfere.com/post/92.html
“转换电子书格式”相关阅读
- Calibre使用教程之为电子书添加或修改封面
- 乐书:在线 Kindle 电子书制作和转换工具
- 如何把 Kindle 电子书的横排文字改成竖排
- Kindle 漫画制作软件 ChainLP 简明教程
- Calibre 使用教程之转换电子书格式
- EasyPub:把 TXT 文档转成带目录的 MOBI 格式
- 如何把 KFX 格式转换成 MOBI 等其它电子书格式
- Calibre 使用教程之优化电子书的排版
- Calibre 使用教程之为电子书添加更换字体
- 把 TXT 文档转换成带目录的 MOBI 格式电子书
- Kindle Comic Converter:最简单的漫画转换工具
- Kindle Comic Creator:亚马逊官方漫画转换工具
- Calibre 使用教程之电子书繁体字转简体字
- EpubPress:把打开的多个网页转成一本电子书
- 如何将 AZW3 格式无损转换为 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吧。