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

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

给这篇文章写一条留言

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

小伙伴们写下了 124 条留言

  1. Win10系统在输入命令的时候一直提示系统找不到指定的文件,但是只输入路径是可以直接打开文件的,请问这会是因为什么呢?

    • 如果不想使用绝对路径运行命令,你需要设置环境变量。文中提供了设置环境变量的方法,按照步骤操作即可。

  2. MacOS在“终端”运行命令 open /usr/local/bin ,提示未找到,请问是什么问题呢

    • 没有的话可以在终端运行如下命令创建该路径:

      mkdir -p /usr/local/bin

      此外,你还需要执行如下命令,确认输出内容中含有新创建的路径:

      echo $PATH

      如果没有,还需要将该路径添加到 Shell 环境变量中。如果你使用的 macOS 系统版本高于等于 10.15(Catalina),可以运行如下命令添加:

      echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.zshrc

      如果低于这个版本,则需要运行如下命令添加:

      echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bash_profile

      这样做的好处是不和系统程序混在一起。当然,如果你嫌麻烦且不在乎这个好处的话,也可以直接将 kindlegen 拷贝到如下所示的系统可执行程序目录中:

      /usr/bin

      这样不需要做任何配置就可以直接在终端中使用。

      • 感谢大佬的回复,试了几次还是没法打开bin文件夹,我就还是在Windows里面转换好了,谢谢!

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

    谢谢站长.

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

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

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

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

  5. 请问,已经把书籍通过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,除非降低书中图片的品质,应该是无法大幅度降低它的大小。

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

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

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

    • 命令提示符上应该是有具体的错误提示的(注意 Error 字样),有具体提示才好判断问题所在。

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

        • 那是因为目录文件中的链接有误,它指向的和内容中实际目标不匹配。你应该能看到具体链接,一般是 # 之后的 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天)

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

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

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