官方转换工具 Kindle Previewer 和 KindleGen

目录

一、Kindle Previewer – 适用于初级用户
二、KindleGen – 适用于高级用户
1、适用于 Windows (XP, Vista, 7, 8) 的 KindleGen
2、适用于 Mac OS 10.5 和 i386 以上版本的 KindleGen
3、适用于 Linux 2.6 i386 的 KindleGen

亚马逊官方提供了两种电子书转换工具,一个是 Kindle Previewer,带 UI 易操作,适用于初级用户,还有一种是 KindleGen,无 UI 是命令行形式,适用于高级用户,其实 Kindle Previewer 也是调用 KindleGen 进行转换的。小伙伴们可以按照自己的需求选择使用。

和另一款电子书格式转换软件 Calibre 相比,亚马逊提供的转换工具有一个显著的优点,那就是不破坏原有的排版格式,比如一个排版精良的 azw3 格式电子书通过 Calibre 转换后通常会破坏掉原有的排版,如行距变小、内嵌字体丢失等,所以为避免这个问题可以这样做可以先通过 Calibre 将 azw3 转换成 epub 格式(因为这两款软件都不支持直接将 azw3 转换成 mobi),然后在通过这两款软件的任何一个将 epub 格式转换成 mobi,这样就可以保持原有排版风格了。

一、Kindle Previewer – 适用于初级用户

Kindle Previewer

Kindle Previewer 是一个模拟 Kindle 设备和应用程序显示书籍内容的使用界面工具。是亚马逊官方开发的一款kindle系列产品模拟器,可以模拟出kindle系列产品的功能。当然也可以用来阅读.mobi等专有格式的电子书,还可以对部分电子书格式进行格式的转换。

1、Kindle Previewer 软件下载

https://bookfere.com/tools#Kindle_Previewer

2、Kindle Previewer 使用步骤

  1. 下载 Kindle Previewer 并安装;
  2. 安装完成后,打开 Kindle Previewer,单击“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 软件下载

https://bookfere.com/tools#KindleGen

2、KindleGen 使用步骤:

● 适用于 Windows (XP, Vista, 7, 8) 的 KindleGen

  1. 下载 KindleGen 并解压缩到 C:\KindleGen
  2. 通过选择 Start menu(开始菜单)> All Programs(所有程序)> Accessories(附件)> Command Prompt(命令提示符),打开一个命令提示符。
  3. 输入 C:\KindleGen\kindlegen。 系统将显示如何运行 KindleGen 的指导。
  4. 转换示例:要转换一个名为 book.html 的文件,请进入书所在的目录文件,例如 cd desktop,然后输入 C:\KindleGen\kindlegen book.html。 如果转换成功,一个名为 book.mobi 的新文件将显示在桌面。
  5. 请注意:我们建议您遵循这些步骤运行 KindleGen。 双击 KindleGen 图标不能打开此程序。运行上述命令时不带引号。如果您将某个文件拖至 kindlegen 可执行文件,该工具将为您转换文件,但是您无法获得输出日志,因此,我们不推荐此操作。

● 适用于 Mac OS 10.5 和 i386 以上版本的 KindleGen

  1. 下载 KindleGen 并解压缩。
  2. 在“应用程序”中找到并运行 Terminal(终端)。
  3. 要查看如何运行 KindleGen 的指导,将解压后的 kindlegen 程序拖放到 Terminal(终端)窗口中并按 Enter(输入)即可查看指导。也可以在终端输入命令 cd ~/Downloads/KindleGen_Mac_i386_v2,然后输入命令 kindlegen,以查看指导。
  4. 转换示例:要转换名为 book.epub 的文件,先打开 Terminal(终端),然后将 kindlegen 程序拖放到 Terminal(终端)窗口,然后再把 book.epub 文件拖放到 Terminal(终端)窗口,最后按 Enter(回车)即可开始进行转换。如果转换成功,将会在源文件所在目录生成一个名为 book.mobi 的新文件。

● 适用于 Linux 2.6 i386 的 KindleGen

  1. 下载 KindleGen 至一个文件夹,例如主目录中的 Kindlegen (~/KindleGen)。
  2. 解压文件的内容至 ~/KindleGen。打开终端,使用命令 cd ~/KindleGen 移至包含下载文件的文件夹,然后使用命令 tar xvfz kindlegen_linux_2.6_i386_v2.tar.gz 解压内容。
  3. 打开终端应用程序,并输入 ~/KindleGen/kindlegen。系统将显示如何运行 KindleGen 的指导。
  4. 转换示例:要转换一个名为 book.html 的文件,请进入书所在的目录文件,例如 cd desktop,然后输入 ~/KindleGen/kindlegen book.html。如果转换成功,一个名为 book.mobi 的新文件将显示在桌面。

3、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

4、关于 kindlegen 生成的 mobi 文件

使用 kindlegen 的默认设置生成的 mobi 文件主要包含四部分:

  • 一部分为 MOBI7(azw) 专属文件(html 主文件,内容相关的 opf 文档及目录相关的 ncx 文档);
  • 一部分为 KF8(azw3) 专属文件(典型的 epub 文件树,包含 css 样式表);
  • 一部分为 mobi7 和 KF8 格式共用的图片池,包含了所有 html/xhtml 文件链接的图片文件;
  • 最后一部分是转换前的源文件的打包存档(仅供调试之用,推送时不会看到),大小和转换前的 epub 文件相同,这部分对于阅读纯属冗余项,清除对阅读无丝毫影响,kindlestrip 的作用就是将 kindlegen 生成的 mobi 中这部分删除,以求更小的文件体积。

图片池部分有可选的附属部分 —— HD 图片池。当源文件中含大小超过 127KB 的图片时 kindlegen 会自动压缩图片至 127KB 以下(儿童电子书的图片大小为 255KB,这是亚马逊电子书标准所规定的图片体积上限),同时将原图保存在 HD 图片池中(但如果原图超过 2MB 的话还是会压缩至 2MB 以下,2MB 是亚马逊电子书标准中 HD 图片的大小上限)。

云端服务器会识别接收设备,将原始 mobi 文件切分后推送。kindle3 及之前的设备推送 MOBI7(azw) 文件;kindle4 之后的设备推送 KF8(azw3) 文件。MOBI7 格式较简陋,对设备性能要求较低,KF8 格式则更先进,基本支持了 epub 的各个特性,有独立的样式表使得排版更好。这两个文件共同之处在于都使用压缩后的普通图片池以适应电子墨水屏的阅读。而 HD 图片池将在推送至 kindlefire hdx 这样的高清屏设备时,再添加进推送的电子书文件中,以获得更佳的阅读效果。KindleUnpack 中的 HD image 选项正是用 HD 图片(若是有的话)替换压缩后的图片,生成的 epub 中的图片更高清。via

有帮助,[ 捐助本站 ] 或分享给小伙伴:

发表评论

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

小伙伴们发表了 45 条评论

  1. 你好,我的电脑是win10系统的,安装了Kindle Previewer 3,但就是打不开,点图标没反应,到安装目录里点那个应用程序图标也没反应,是怎么回事呢?

  2. 站长,下载Calibre的时候,出现
    Python funtion terminated unexpectedly DLL load
    是怎么回事,是我的电脑系统不匹配,还是缺少什么插件之类的嘛

    • KindleGen 本身没有批量转换功能,需要配合批处理(Windows)或 Shell 脚本(macOS 或 Linux)实现批量处理功能。

  3. 我整理了以下的情況。發現各種方式轉換後的mobi檔都會存在「多頁數、卷數的書,有時無法回前頁」或是「無法執行查找功能」的問題。各情況整理如下:

    情況一 :

    我把epub檔,利用calibre轉換成mobi檔,輸出類型選old, 轉出的mobi檔在多卷數的書籍會發生無法回前頁的問題,但卻可選擇一個或一句文字並可執行標註,查字典,查找功能

    情況二:

    我把epub檔,利用calibre轉換成mobi檔,輸出類型選both, 轉出的mobi檔在多卷數的書籍不會發生無法回前頁的問題,也可選取一個字或一句文字,但無法執行查找功能。(可執行標註、查字典,無法執行查找功能)

    情況三:

    我把epub檔,利用calibre轉換成mobi檔,輸出類型選new, 轉出的mobi檔無法在kindle中開啟。

    情況四:

    我把epub檔,利用kindlegen v1.1版轉換成mobi檔,轉出的mobi檔在多卷數的書籍會發生無法回前頁的問題,但卻可選擇一個或一句文字並可執行標註,查字典,查找功能

    情況五:

    我把epub檔,利用kindlegen v2.9版轉換成mobi檔,轉出的mobi檔在多卷數的書籍不會發生無法回前頁的問題,也可選取一個字或一句文字,但無法執行查找功能。(可執行標註、查字典,無法執行查找功能)

    請問您能否有一種轉換或解決方式,可以解決各種mobi格式的不同問題(無法回前頁,無法執行查找功能 ),產出一個不會有以上問題的mobi檔。

  4. 根据贴吧上的kindlegen批量转换教程:
    http://tieba.baidu.com/p/2828689812

    稍微改了一下bat文件,添加了-dont_append_source参数,批量转换时也不会添加源文件了。
    拿17本狼辛测试了一下,无论是转换时间还是最终生成的mobi文件体积都减少约四成。

    修改后的bat文件,链接:http://pan.baidu.com/s/1bpEIIOR 密码:g705
    教程见原贴吧教程网址。

  5. kindle Gen在Win10 可以用吗,而且官网链接和网盘都不能下载啊。官网说不支持中国下载··什么情况

    • 阿七1928 您好。KindleGen 可以在 Win10 系统上使用。官网不提供中国区下载。如果网盘不能下载请提供具体的提示。

    • 公瑾同学 您好。如果出现乱码就说明是编码问题,请使用 Sigil 或 Calibre 编辑 epub 文件,看看 opf 文件中的 <metadata> ... </metadata> 代码块中有没有如下所示这行代码:

      <meta name="output encoding" content="utf-8" />

      如果没有的话就加上去,保存,然后再用 Kindle Previewer 就不会出现乱码了。

  6. 文中的——“转换示例:要转换一个名为 book.html 的文件,请进入书所在的目录文件,例如 cd desktop,然后输入 c:\KindleGen\kindlegen book.html。 如果转换成功,一个名为 book.mobi 的新文件将显示在桌面。”——这一个操作我实在是不明白啊,文件目录怎么输入啊?我把文件(如2.opf等)都放到软件目录里了,然后按着文章中的形式输入,结果显示没有找到2.opf……请问具体怎么做呢?谢谢

    • Chika 您好。请问您不明白的是什么呢?简单讲,一条命令包涵“执行程序”和“处理内容”,两者的路径都必须正确,任何一个没找到就说明输入错误。再详细点儿,比如执行程序是 KindleGen,而处理内容是 xxx.opf,如果其中 KindleGen 的路径是 C:\KindleGen\kindlegen,xxx.opf 文件的路径是 D:\mybook\xxx.opf。那么命令应该是下面这样的:

      c:\KindleGen\kindlegen D:\mybook\xxx.opf

      如果已经使用了cd 命令定位到了 D:\mybook 这个目录,就可以使用相对路径,命令可以这样写:

      C:\KindleGen\kindlegen xxx.opf

      因为 KindleGen 是命令行工具,需要一点点命令行操作方面的知识,如果您不懂得如何使用,可以查找相关资料稍微了解一下。否则请使用更容易操作的 Kindle Previewer。

      • 管理员这么仔细一说才明白了,刚才一直没输对,小白菜对于这种命令行形式真不大会,幸好我翻到下面看了一下评论!

  7. 好,我在用kindlepreviewer转换的时候老是会遇到错误无法完成转换,查看日志的时候发现报错信息是这样的:
    Error(prcgen):E24010: Hyperlink not resolved in toc (One possible reason can be that the link points to a tag with style display:none):C:\Users\phzha\AppData\Local\Temp\mbp_7E0_7_E_F_39_3B_33A_4970_1F80_1\OEBPS\Text\part0000.xhtml#aid-1

    Error(prcgen):E24001: The table of content could not be built.

    请问该如何解决?
    麻烦您了

  8. 我用的是Mac,但是2.9版本并没有发现隐藏的dont_append_source的参数啊,显示“错误(kindlegen):E30010: 不受支持的自变量 -dont_append_source/”,是不是已经被砍掉了这个参数?还有会不会是我的操作失误?以前没用到“终端”这么高级的软件啊
    希望有人能解答谢谢

    • leo vasilev 您好。2.9 版本的 KindleGen 是支持这个参数的。如果出现错误,请完整贴出您输入的命令。

      • 嗯,那您看看是不是错了??
        leodeMacBook-Pro:~ leovasilev$ /Users/leovasilev/Downloads/KindleGen_Mac_i386_v2_9/kindlegen -dont_append_source/Users/leovasilev/Downloads/Animal\ Farm\ -\ George\ Orwell.epub

      • 啊啊不好意思,我弄反了,参数是最后输入的,指导里面有说明,谢谢小编哪,麻烦了!!

  9. 我有一个译本、排版都非常好的《基督山伯爵》,epub格式,体积只有1.35M,就是下面这个链接:
    http://pan.baidu.com/s/1bD7Ufs

    用Calibre转换成MOBI格式后,注释功能完全失效。
    用Calibre转换成azw3后(体积超过了40M),在我的kindle touch上卡到报错,在paperwhite3上倒是没有大问题,注释也正常可以点击(但是以链接的效果跳转到章节末尾处,而不是弹窗的形式)

    又用了KindleGen转,这次在touch上终于能看了,注释也能用(同样的链接效果)。
    但是字典功能又出了问题~每次都是弹出英汉字典,然后自然查无次词
    最后又仔细看了下KindleGen的详细参数设定,发现有一个“-locale”参数,但是加上“-locale zh”转换成功后还是一样弹出英汉字典……

    不知如何解决了,请高人指点

    • SACR 您好。KindleGen 中 -locale 这个参数的解释为“以选定语言显示消息 ( To display messages in selected language )”,而不是您所认为的改变电子书的语言。

      如果中文电子书弹出英文词典,可能是电子书在制作时语言指定成了英文,这个可以自己修改一下。解决思路为:先用 KindleUnpack 把电子书拆解成源文件,找到并编辑 content.opf 文件,在头部找到 <dc:Language>en</dc:Language> 这一行代码,把将里面的 en 改成 zh,最后用 KindleGen 把 content.opf 转换成 mobi 文件即可。

      • 首先非常感谢如此详细的解答!

        刚刚我也在贵站的另一篇帖子“查词时 Kindle 字典在中英文电子书中的不同表现”中看到了类似的问题:
        https://kindlefere.com/post/182.html

        然后按照文中最后给出的解决办法在Calibre中修改了元数据并保存,但是在kindle中问题依旧

        后来只好还是用了拆包的办法,发现拆包后包含了两个目录~一个mobi7和一个mobi8,Calibre只是把mobi7中的opf文件改成了zh,mobi8中的还是en。最后都改好重新打包后果然字典正常了!

        看来Calibre不完善的地方还是有很多啊

  10. Windows用户直接用鼠标把epub文档拖到kindlegen.exe程序上就可以完成转换,不用手工输入命令的。

    • 5、请注意:我们建议您遵循这些步骤运行 KindleGen。 双击 KindleGen 图标不能打开此程序。运行上述命令时不带引号。 如果您将某个文件拖至 kindlegen 可执行文件,该工具将为您转换文件,但是您无法获得输出日志,因此,我们不推荐此操作。

        • 是的,站长可以找一本高清Mobi漫画,然后将其转成epub之后解压,你会发现图片分辨率基本400*300多的水平,而一般高清最少会有一个1000*800

  11. MAC版用Kindle Previewer打开EPUB后没有生成.MOBI文件,而是生成了一个converted-(原始文件名).EPUB的文件,请问是什么原因?

  12. kindlegen 要好好宣传下,网络上大部分的 mobi 是用 calibre 转的,由于 calibre 转换的原理,存在很多问题:目录层级丢失、段落间隔很小、丢失50%的样式等。

    kindlegen 可使用 -c1 或 -c2 压缩的方式,转换速度变慢,但文件可以小很多。
    原版 kindlegen 转换后的 mobi 包含源文件, 可用 kindlestrip(是个python脚本)去除。下载链接 http://pan.baidu.com/wap/link?uk=3928744097&shareid=354238&third=0