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
,请添加一个对比!
文档生成¶
有一些(Python)工具用于生成 PDF 文档,而 pypdf 不是其中之一。
CLI 应用程序¶
pypdf 是一个纯 Python 的 PDF 库。如果你正在寻找一个可以从终端使用的应用程序,可以试试 pdfly
。