有没有一种方法可以将PDF文件转换为ePUB格式,而不使用Calibre?

我会清楚而大声地告诉你:我不喜欢Calibre!那么,如果没有它,我该如何将PDF转换为ePUB呢?
6个回答

我们知道你不喜欢Calibre...但是你试过它的命令行转换工具吗?
Calibre安装包提供了一个名为"ebook-convert"的命令,可以满足你的需求,而且无需运行Calibre。
ebook-convert file.pdf file.epub

只需要这样就可以了。
如果输出看起来有点不对劲 - 试试这个。
ebook-convert file.pdf file.epub --enable-heuristics

它将尝试一种“智能”的转换方式。虽然不完美,但在大多数转换中可以很好地发挥作用。

1有没有办法让它适用于双栏文档?“--enable-heuristics”标志在这方面效果不佳。 - zakkak
1根据他们的网站,不支持多列PDF。 - Drac Noc
5哇,谢谢。对于文件夹中的多个PDF文件,我在cd到目录后使用了以下命令:find ./ -iname "*pdf" -type f | while read f; do echo -e "\e[1mConverting file $f \e[0m" ; ebook-convert "$f" "${f%.pdf}.epub" --enable-heuristics ; done - Wilf
@DracNoc Windows机器怎么样? - Prashant Tapase
1请注意,如果您没有 ebook-convert 命令,则可能已通过 flatpak 或 snap 安装了 calibre。请通过软件中心、flatpak remove 或 snap remove 卸载现有的 calibre,然后使用 apt 进行安装。 - Ace.C
1@PrashantTapase - 我不明白你为什么会有任何困扰。图形用户界面(GUI)提供与命令行界面(CLI)相同的选项。GUI具有更多针对每个设备的规则设置。根据您插入的阅读器,您可以选择在传输文件时如何进行转换。Kobo阅读器使用epub格式,Kindle使用mobi格式。Calibre应该会自动识别,但您始终可以使用转换图标来微调您的图书馆中的内容。 - Drac Noc
嗯,Calibre的转换器实在是太糟糕了。在一个PDF中,文字表现形式为图像,但实际上文字本身也是存储的情况下,Calibre(和ebook-convert)会完全丢弃文本,而是存储质量差的缩小版本的图像页面。 - Daniel Ziltener

LibreOffice有一个epub导出器extension,因此您可以安装LibreOffice PDF导入器扩展,导入您的PDF文件,然后导出为epub。

去看看www.convertfiles.com,你可以使用他们的免费在线转换工具轻松将.pdf转换为.epub

这不是对问题的直接回答,但对于想在电子阅读器上阅读PDF并且觉得麻烦的人来说,一个解决办法可能是裁剪PDF的边距,并以横向模式阅读。无论如何,在我的电子阅读器上,这种方法效果还算可以。市面上有很多PDF裁剪工具,只需搜索“pdf crop”或“pdf trim”。

2epub.com - 同样的在线转换器,具有批处理和输出压缩文件功能


我已成功从Calibre中剪裁出ebook-convert(可能由于某些原因,需要Qt进行图像处理),并获得了一个仅限命令行界面的工具,以便在无头/服务器机器上使用该工具。
涉及的步骤是从calibre软件包(deb、rpm或其他)中提取这些目录:
/usr/bin/ebook-convert
/usr/lib/calibre
/usr/share/calibre

安装一些缺失的Python模块(通过运行转换命令ebook-convert inputfile outputfile来找出),在我的情况下:
python3-msgpack
python3-dateutil
python3-lxml
python3-css-parser
python3-pil

等等。
我还需要指定一个命令行选项--mobi-keep-original-images,因为我希望使用以下命令将epub转换为mobi格式:ebook-convert ~/test.epub ~/test.mobi --mobi-keep-original-images

最后一部分是最痛苦的,因为它涉及修改一些使用Qt(然后需要一些X11库)进行图像处理的Python实用程序脚本,并且我们希望在服务器/无头机器上避免这种情况。基本上,我删除了Qt导入并通过使这两个文件中的那些函数为空(或抛出异常)来修复脚本中剩余的错误(在我的情况下)。
/usr/lib/calibre/calibre/utils/img.py
/usr/lib/calibre/calibre/ebooks/conversion/plugins/mobi_output.py

简而言之,转换工具仅使用Qt进行图像处理操作。如果您可以接受来自原始书籍的未修改图像,并且不需要压缩/调整这些图像大小,那么您很幸运,因为您可以避免使用Qt/X11。
calibre开发者的一点说明:您为什么没有使用标准的图像处理库?为什么选择一个针对GUI的沉重框架(如Qt)进行简单的图像操作?在我看来,这是一个相当糟糕的决定,对于如此优秀的软件包(calibre)来说...