一个纯Python PDF库,能够分割、合并、裁剪和转换PDF文件
项目描述
注意: PyPDF2项目将回归其根源。PyPDF2==3.0.X将是PyPDF2的最后一个版本。开发将继续使用pypdf==3.1.0
。
PyPDF2
PyPDF2 是一个免费且开源的纯 Python PDF 库,能够拆分、合并、裁剪和转换 PDF 文件的页面。它还可以为 PDF 文件添加自定义数据、查看选项和密码。PyPDF2 还可以从 PDF 中检索文本和元数据。
安装
您可以通过 pip 安装 PyPDF2。
pip install PyPDF2
如果您计划使用 PyPDF2 加密或解密使用 AES 的 PDF,您需要安装一些额外的依赖项。使用常规安装支持使用 RC4 进行加密。
pip install PyPDF2[crypto]
用法
from PyPDF2 import PdfReader
reader = PdfReader("example.pdf")
number_of_pages = len(reader.pages)
page = reader.pages[0]
text = page.extract_text()
PyPDF2 可以做更多的事情,例如拆分、合并、阅读和创建批注、解密和加密等。
有关更多用法示例,请参阅文档!
许多问题在 StackOverflow 上被提问和解答。
贡献
维护 PyPDF2 是一个协作的努力。您可以通过编写文档、帮助缩小问题范围和添加代码来支持 PyPDF2。
问答
PyPDF2 用户的经验涵盖了从想要使生活更简单的初学者到在 PDF 存在之前就已经开发软件的专家的整个范围。您可以通过在 StackOverflow 上回答问题、在 讨论 中提供帮助以及请求报告问题的用户提供 MCVE(代码 + 示例 PDF)来为 PyPDF2 社区做出贡献。
问题
一个好的错误报告应包括一个 MCVE - 一个最小完整可验证示例。对于 PyPDF2,这意味着您必须上传导致错误发生的 PDF 以及您正在执行的代码和所有输出。使用 print(PyPDF2.__version__)
告诉我们您正在使用哪个版本。
代码
所有代码贡献都受欢迎,但较小的贡献更有可能及时被包含。为新功能添加单元测试或为修复的漏洞添加测试用例可以帮助我们确保拉取请求(PR)是正确的。
PyPDF2 包含一个测试套件,可以使用 pytest
执行。
$ pytest
===================== test session starts =====================
platform linux -- Python 3.6.15, pytest-7.0.1, pluggy-1.0.0
rootdir: /home/moose/GitHub/Martin/PyPDF2
plugins: cov-3.0.0
collected 233 items
tests/test_basic_features.py .. [ 0%]
tests/test_constants.py . [ 1%]
tests/test_filters.py .................x..... [ 11%]
tests/test_generic.py ................................. [ 25%]
............. [ 30%]
tests/test_javascript.py .. [ 31%]
tests/test_merger.py . [ 32%]
tests/test_page.py ......................... [ 42%]
tests/test_pagerange.py ................ [ 49%]
tests/test_papersizes.py .................. [ 57%]
tests/test_reader.py .................................. [ 72%]
............... [ 78%]
tests/test_utils.py .................... [ 87%]
tests/test_workflows.py .......... [ 91%]
tests/test_writer.py ................. [ 98%]
tests/test_xmp.py ... [100%]
========== 232 passed, 1 xfailed, 1 warning in 4.52s ==========
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。