pypdf 与 X 的对比

pypdf 是一个 [免费的] 开源纯 Python PDF 库,能够分割、合并、裁剪和转换 PDF 文件的页面。它还可以向 PDF 文件中添加自定义数据、查看选项和密码。pypdf 还可以从 PDF 文件中提取文本和元数据。

PyMuPDF 和 PikePDF

PyMuPDF 是一个连接 MuPDF 的 Python 绑定,PikePDF 是一个连接 QPDF 的 Python 绑定。

虽然这两个库在各种用例中表现优秀,但即使它们支持某个用例,使用它们也不总是可行的。这两个库都依赖于 C 库,这使得安装变得更加复杂,并可能引发安全问题。对于 MuPDF,你可能还需要购买商业许可证。

pypdf 的一个核心特性是它是纯 Python 编写的。这意味着没有 C 的依赖。它已经被使用超过 10 年,因此有大量通过 StackOverflow 和互联网上的示例提供的支持。

pypdf

PyPDF2 已经合并回 pypdf。开发继续在 pypdf 上进行。

PyPDF3 和 PyPDF4

开发和维护开源软件是非常耗时的,尤其是在 pypdf 这种完全没有报酬的情况下。持续的支持非常困难。

pypdf 最初于 2012 年在 PyPI 上发布,并持续发布更新直到 2016 年。从 2016 年到 2022 年没有更新——但人们仍在使用它。

作为一款免费软件,曾有人尝试分叉并继续开发它。PyPDF3 首次发布于 2018 年,至今仍在更新。PyPDF4 只有 2018 年的一次发布。

我(Martin Thoma,pypdf 和 PyPDF2 的当前维护者)希望我们能够将社区重新聚焦于一个开发路径。我已经弃用了 PyPDF2,转而支持 pypdf,现在 pypdf 拥有比 PyPDF2 更多的功能和更清晰的接口。请参见 pypdf 的历史

pdfminer.six 和 pdfplumber

pdfminer.six 能够提取 字体大小 / 字体粗细(加粗)。它没有写入 PDF 文件的能力。

pdfplumber 是一个专注于从 PDF 文档中提取数据的库。由于 pdfplumber 是基于 pdfminer.six 构建的,因此它 没有导出或修改 PDF 文件的能力(参见 #440 (讨论))。然而,pdfplumber 能够将 PDF 文件转换为图像,在图像上绘制线条和矩形,并将其保存为图像文件。请注意,图像转换是通过 ImageMagick 完成的(参见 pdfplumber 的文档)。

pdfplumber 社区在回答问题方面非常活跃,且该库在 2023 年 5 月仍在维护中。

pdfrw / pdfrw2

我没有使用这些库的经验。如果你了解 pypdf 和 pdfrw,请添加一个对比!

请注意,还有 pdfminer 库,它已经不再维护。另外,还有 pdfrw2,但它没有强大的社区支持。

文档生成

有一些(Python)工具用于生成 PDF 文档,而 pypdf 不是其中之一。

CLI 应用程序

pypdf 是一个纯 Python 的 PDF 库。如果你正在寻找一个可以从终端使用的应用程序,可以试试 pdfly