KindleGen:亚马逊官方 Kindle 电子书格式转换工具

“转换电子书格式”相关阅读

给这篇文章写一条留言

提示:带 * 标记的是必填项。您填写的邮箱地址将会被保密。首次留言将会在通过人工审核后显示。如果是提出问题,请务必提供尽可能多信息,这有助于他人更好地理解你所提出的问题。

小伙伴们写下了 124 条留言

  1. 想问下有没有参数指定只生成kf8的?
    用EasyPub可以指定,但是不能批量,那个东西应该也是用的kindlegen。不知道是否有这个么参数
    用kindlegen默认生成的差不多是EasyPub的三倍,应该就是源文件,KF8,KF7三个了。用了-dont_append_source还有差不多两倍。

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

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

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

        • Windows 的批处理脚本比较简单,你可以打开文本文档,将下面的代码粘贴进去,另存为后缀为 .bat 的批处理文件(如 KindleGen.bat),然后下载 kindlegen.exe,放到与脚本相同的位置,再在相同的位置新建一个 ebooks 文件夹,把要转换的电子书放进去,最后双击运行 .bat 脚本就可以批量转换了。

          @echo off & color 0A
          echo =============================================================
          echo.
          echo KindleGen批处理(支持.epub、.htm、.html、.xhtml、.opf、.zip)
          echo.
          echo =============================================================
          if not exist ebooks (
              md ebooks
              echo.
              echo 没有找到ebooks文件夹。脚本已在同级目录下新建ebooks文件夹,
              echo 请把要转换的电子书放入此文件夹,再重新运行此脚本。
              echo.
              echo =============================================================
              echo.
              pause
              exit
          )
          for /R ebooks %%i in (*.epub *.htm *.xhtml *.opf *.zip) do (
              echo.
              echo 开始转换:%%i
              kindlegen.exe -dont_append_source "%%i"
              echo.
              echo -------------------------------------------------------------
          )
          echo.
          echo 全部转换完毕!
          echo.
          echo =============================================================
          echo.
          pause
  4. 我整理了以下的情況。發現各種方式轉換後的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檔。

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

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

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

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

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

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

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

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

  7. 文中的——“转换示例:要转换一个名为 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。

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

  8. 好,我在用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.

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

  9. 我用的是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

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

  10. 我有一个译本、排版都非常好的《基督山伯爵》,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://bookfere.com/post/182.html

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

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

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

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

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

    • 站长,calibre将mobi转epub会损伤图片质量,请问这个软件可以无损转换吗

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

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

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

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