KindleUnpack:拆解 Kindle 电子书文件的利器

延伸阅读

给这篇文章写一条留言

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

小伙伴们写下了 73 条留言

  1. 我下载了一些以图片为主的azw文件,想尝试打印出来,但无论如何只要把它转换成pdf,排版就会变乱,图片会变形,我试着用这个插件确实可以把图片全部提取出来,但是我要打印的话,除非自己用这些图片再按照azw的排版重新制作一本电子书,否则还是无法获得一份完美的pdf,不知道怎样才能把azw按照原本的排版完美的转换成pdf。

    • 你可以尝试用网页浏览器(如 Chrome)打开拆解出来的 XHTML 文件,然后用浏览器的打印功能将其打印成 PDF 文件,应该能保持原来的排版。

      • 我查看了一下xhtml文件,一本书解开后会有很多个这种文件,只能挨个打印,无法变成有多页的PDF文件。这个问题我研究了一下,发现归根结底是在于azw/epub/mobi这几种格式和PDF格式在根本上是不同的,这些格式都属于电子书文件,是针对电子屏幕设计的格式,而PDF格式是针对打印输出的格式,PDF格式无法编辑,或者说编辑起来很困难,是因为他每一个元素的位置、大小、样式都是固定死了的,这样在所有的设备上查看起来都是一个样子的,打印出来也是跟在电脑屏幕上看到的一模一样,所以用kindle这类小屏幕的设备看PDF就会字很小,如果要正常查看,必须重排版。PDF文件的页数,每一页多少行,每行多少字是固定不变的,打印出来自然就十分美观,电脑上无论什么文件点击打印后都会生成一个PDF发送到打印机。

        而相反,azw/epub/mobi文件则是没有固定的页数,每一个多少行,每行多少字都是不固定的,这些格式就类似网页,一个很长的网页你说他有多少页,说不出来,因为这个取决于屏幕的大小,屏幕越大,每一屏(页)显示的内容就越多,页数就更少,每一行有多少字,取决于屏幕宽度,在不同的设备上打开这类文件,他都会实时重新排版以适应屏幕,PDF格式则是无论如何都保持一样的排版,不会重排版。

        所以结论就是,如果是纯文本的电子书,转换成PDF格式重新排版是很容易的,无非是每一页的行数和字数变一下。但我需要将一些全是图片的电子书变成PDF,排版就一定会乱,因为图片有大有小,在电子屏幕上查看,无论大小都可以自动缩放以适应屏幕显示,但转成PDF格式之后,图片不会自动缩放,就会造成一张大图片会被分到两页显示,每一页只有半张图,这就没法看了。要想将这类电子书完美的转成PDF格式,用任何自动转换软件都无法实现,只能将电子书拆解开之后,用排版软件将图片放进去,手工排版。azw/epub/mobi生来就是为电子屏幕显示的, 他就不是针对打印设计的,强行将其打印出来,只能是强人所难,无法实现。

  2. 你好,calibre v6.25版本,安装插件后右上角没有相关按钮,是否已经不可用了?

  3. 简单写了一个使用KindleUnpack批量处理电子书的powershell脚本(Windows平台),有需要的朋友可以拿来修改一下使用:https://gist.github.com/chthollyphile/6de97cb97e944e96c08a7df9ba46369c

  4. 站长知道有什么工具可以批量unpack吗?中亚买的书比较多,一本一本点太麻烦了。

    • 如果你熟悉命令行工具,可以通过“终端”或“命令提示符”实现批量处理。如果想要界面版的,好像没有现成的。如果你对前者有兴趣,我可以告诉你怎么做。如果只喜欢带界面的,书伴有打算给 KindleUnpack 写一个带批量处理功能的界面,你需要等等。

        • 首先确保你的操作系统安装了 Python,并且已经下载好了 KindleUnpack 压缩包。

          这里假设 KindleUnpack 文件夹(比如这里解压后得到的是 KindleUnpack-083)和存放电子书的名为 ebooks 的文件夹都存放在桌面上,比如 C:\Users\YOURNAME\Desktop(注意要将 YOURNANE 更改成你实际的系统用户名)。

          如果你用的是 Windows 系统,打开 PowerShell,运行以下命令:

          Set-Location C:\Users\YOURNAME\Desktop; Get-ChildItem ebooks | % { python3 KindleUnpack-083\lib\kindleunpack.py $_.FullName }

          如果你用的是 macOS 系统,打开终端,运行以下命令:

          cd /Users/YOURNAME/Desktop; for file in ebooks/*; do python3 KindleUnpack-083\lib\kindleunpack.py "$file"; done
  5. mac 2020air 下载了64位的kindleunpack,但是拖拽文件到app上没有反应,也没有新的电子书出来。。不知道为啥

  6. 站长老师,这个软件在2.7脚本上打不开,3.9脚本下能打开,但是没法解包,每次都是解包失败。

  7. Input Path = “D:\電子書籍(繁體竪排).mobi\言情小說\瓊瑤\《白狐》.mobi”
    Output Path = “E:\迅雷下载\KindleUnpack-081”
    Epub Output Type Set To: ePub 2

    Please Wait …

    Error: Unpacking Failed

    总是解包失败,这个软件不能用了