官方转换工具 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 的步骤

  1. 下载 Kindle Previewer 并安装;
  2. 安装完成后,打开 Kindle Previewer 3,点击菜单栏的【文件 → 打开】;
  3. 然后点击菜单栏的【文件 → 导出】,选择保存路径并选择格式“电子书(.mobi)”保存。

* 适用于 Kindle Previewer 2 的步骤

  1. 下载 Kindle Previewer 并安装;
  2. 安装完成后,打开 Kindle Previewer 2,单击“Open book”;
  3. 选择 EPUB/HTML/OPF 文档,按照向导指示转换电子书并进行预览;
  4. 转换成功的电子书扩展名为“.mobi”,位于与源 HTML/EPUB 相同的文件夹中带有“Compiled-”文件名的文件夹之下。

二、KindleGen – 适用于高级用户

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 系统

  1. 下载 KindleGen 并解压缩,取出里面的 kindlegen.exe,放到某个位置,如 C:\KindleGen\kindlegen.exe
  2. 依次点击【开始菜单 → 所有程序 → 附件 → 命令提示符】打开“命令提示符”。
  3. 输入命令 C:\KindleGen\kindlegen.exe 并回车,将会显示 KindleGen 的帮助内容。

* 注:如果想要通过直接输入 kindlegen 而不是 C:\KindleGen\kindlegen 这种绝对路径的形式,需要将 KindleGen 添加至系统环境变量。具体方法为:鼠标右键点击“计算机”(或“我的电脑”),然后在弹出的菜单中点击“属性”;接着点击弹出窗口左侧的“高级系统设置”,在弹出的窗口中再点击【环境变量…】;在“系统变量”这一栏找到“变量”为“Path”这一项并双击它,在弹出的窗口中点击【新建(N)】,输入 kindlegen.exe 所在目录,如 C:\KindleGen,最后一路确定就可以了。

● macOS 系统

  1. 下载 KindleGen 并解压缩,取出里面的 kindlegen 二进制文件;
  2. 在“应用程序”中找到并运行“终端”,运行命令 open /usr/local/bin 打开自定义可执行程序目录,并将二进制文件 kindlegen 拷贝此目录中,这样就可以直接在终端中运行 kindlegen 命令了;
  3. 输入命令 kindlegen 并回车,将会显示 KindleGen 的帮助内容。

● Linux 系统

  1. 下载 KindleGen 至一个文件夹,例如用户主目录 /home/YOURNAME(YOURNAME 要换成真实的系统用户名);
  2. 在终端中使用命令 cd ~ 进入下载文件所在的用户主目录,然后使用命令 tar xvfz kindlegen_linux_2.6_i386_v2_9.tar.gz 解压文件;
  3. 然后运行命令 cp kindlegen_linux_2.6_i386_v2_9/kindlegen /usr/local/bin 将二进制文件拷贝到自定义可执行程序目录,这样就可以直接在终端中运行 kindlegen 命令了;
  4. 输入命令 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 使用方法

假设要转换的文件 book.html 转换 Kindle 格式电子书放在桌面,可通过如下步骤转换格式。

macOS 或 Linux 系统可以通过如下命令进入待转换文件所在目录:

cd ~/Desktop

Windows 系统可以通过如下命令进入待转换文件所在目录(YOURNAME 替换成真实的系统用户名):

cd C:\Users\YOURNAME\Desktop

然后通过输入如下命令进行转换(注意,如果是 Windows 系统,且没有将 KindleGen 添加到系统环境变量,则命令需要使用程序的绝对路径,如 C:\KindleGen\kindlegen.exe):

kindlegen book.html -dont_append_source

如果转换成功,将会在被转换文件所在目录看到名为 book.mobi 的新文件。

有帮助,分享给其他小伙伴:

发表评论

标注为 * 的是必填项。您填写的邮箱地址将会被保密。如果是在本站首次留言,审核后才能显示。
若提问,请务必描述清楚该问题的前因后果,提供尽可能多的对分析该问题有帮助的线索。

小伙伴们发表了 88 条评论

  1. 站长,请问为什么使用 kindlegen 默认设置时,在保证其他操作条件基本不变的情况下,部分文件在生成过程中会出现 创建 prc文件警告,请问这个警告有什么影响吗,如果有请问大致是什么作用,如何解决呢?

    谢谢站长.

    • 出现警告的原因通常是源文件可能存在不符合 MOBI 格式标准且 KindleGen 无法自动修正的内容格式或元数据 。警告不会像致命错误那样中断 MOBI 文件的生成,是否要处理是具体情况而定。一般 KindleGen 会给出具体的警告原因,你可以根据这些信息来决定是否修正,以及判断问题何在。

  2. mac10.15.7 安装不了kindlegen2.9,提示需要开发者更新
    用kindlepreviewer3吧,使用calibre转换txt得到的azw3文件无法打开,提示不支持
    啊,感觉我好难啊

      • 谢谢回复 终于转换好了 多谢多谢!
        只是还有个小问题,我azw3转换出来的mobi传到kindle设备和手机kindle上用都是没问题的,可是就是没法用kindleformac打开,一试就卡退 然后报错,我kindle装的是最近版本的,不知道跟这个有没有关系。

    • KindleGen 是命令行工具,Windows 下你需要在“命令提示符”或“PowerShell”中通过命令的方式使用,使用方法文中已介绍。

  3. 请问,已经把书籍通过kindlegen转码kf8格式了,
    也能应用为第三方字体,但是退出再进入书籍又变成了默认的的黑体,其他书籍都正常

    • 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,除非降低书中图片的品质,应该是无法大幅度降低它的大小。

  4. 原文件 epub,轉換後用 Kindle Paperwhite (第10世代) 打開文件發現字體好細,而且不能調較大小,請問怎麼解決?

    • 这应该是因为 EPUB 里面的 CSS 文件强制设定了字体样式,建议用 Calibre 编辑 EPUB 文件,将 CSS 文件里面的 font 或 font-family 这种属性全部删除,然后再进行转换。或者在转换时,在转换设置中,切换到“界面外观”项,然后切换到“样式”选项卡,找到“过滤样式信息”这一项,勾选其中的“字体”,这样也能移除字体相关的 CSS 样式。

  5. 为什么会提示:由于出现错误,无法生成MOBI域名文件。
    会什么会有这种情况出现呢?请问这样子应该怎么解决?

      • 错误那一行提示:无法解析目录中的超链接,无法创建目录。
        这样子的话应该怎么解决呢?

        • 那是因为目录文件中的链接有误,它指向的和内容中实际目标不匹配。你应该能看到具体链接,一般是 # 之后的 ID 有错误,把它修正或删除就可以了。

    • 源文件是什么格式呢?建议编辑源文件的 opf 格式的元数据文件,确保 <metadata> ... </metadata> 代码块中有下面这行代码,如果没有的话就加上去再转换。

      <meta name="output encoding" content="utf-8" />
      • 原文件是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> 标签中添加下面这行代码,来指定它的文档编码:

          <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

          这个链接是转换后的文件:Firefox Send 下载(有效期7天)

  6. 你好,关于kindlegen不再添加源文件的参数,应该如何添加呢?不明白这行$ kindlegen -dont_append_source xxx.opf 应该添加在哪个步骤。

    • 这不是一个步骤,只是一个示例。假设你要用 kindlegen 转换一个名为 a.opf 的电子书源文件,如果要包含源文件,就用 kindlegen a.opf 这样的命令。如果不想包含源文件,那就用 kindlegen -dont_append_source a.opf 这样的命令。后者和前者的区别就是加上了 -dont_append_source 参数。

  7. 用kindle previewer3转换EQUB成MOBI成功打开了,但是无法导出,说不支持导出阿拉伯语和印度语的书籍。。。书本身是中文的。请问这个要怎么办呢?