一个纯Python PDF库,能够分割、合并、裁剪和转换PDF文件
项目描述
PyPDF
PyPDF是一个免费和开源的纯Python PDF库,能够分割、合并、裁剪和转换PDF文件的页面。它还可以向PDF文件添加自定义数据、查看选项和密码。PyPDF还可以从PDF中检索文本和元数据。
有关使用PyPDF与PDF交互的CLI应用程序,请参阅pdfly。
安装
使用pip安装PyPDF
pip install pypdf
要使用PyPDF进行AES加密或解密,请安装额外的依赖项
pip install pypdf[crypto]
注意:
pypdf
3.1.0 及以上版本相比之前的版本有显著改进。请参考迁移指南获取更多信息。
使用方法
from pypdf import PdfReader
reader = PdfReader("example.pdf")
number_of_pages = len(reader.pages)
page = reader.pages[0]
text = page.extract_text()
pypdf 功能强大,例如:拆分、合并、读取和创建注释、解密和加密等。查看文档获取更多使用示例!
有关问题和解答,请访问StackOverflow(标签为 pypdf)。
贡献
维护 pypdf 是一项协作努力。您可以通过编写文档、帮助缩小问题范围以及提交代码来支持项目。有关更多信息,请参阅CONTRIBUTING.md 文件。
问答
pypdf 用户的经验涵盖了从希望使生活更简单的初学者到在 PDF 存在之前开发过软件的专家的全范围。您可以通过在StackOverflow上回答问题、在讨论中帮助以及请求报告问题的用户提供MCVE(代码 + 示例 PDF!)来为 pypdf 社区做出贡献。
问题
一个好的问题报告包括一个 MCVE - 一个最小完整可验证示例。对于 pypdf,这意味着您必须上传一个导致错误的 PDF 文件以及您正在执行的代码和所有输出。使用 print(pypdf.__version__)
来告诉我们您使用的是哪个版本。
代码
所有代码贡献都受到欢迎,但较小的贡献更有可能及时被包含在内。为新功能添加单元测试或为已修复的漏洞添加测试用例有助于我们确保拉取请求(PR)是正确的。
pypdf 包含一个测试套件,可以使用 pytest
执行。
$ pytest
===================== test session starts =====================
platform linux -- Python 3.6.15, pytest-7.0.1, pluggy-1.0.0
rootdir: /home/moose/GitHub/Martin/pypdf
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 ==========
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分发
构建发行版
pypdf-5.0.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a361c3c372b4a659f9c8dd438d5ce29a753c79c620dc6e1fd66977651f5547ea |
|
MD5 | 3530c71d929a9122b9f1b9c8edf91c03 |
|
BLAKE2b-256 | 9d286bc2ca8a521512f2904e6aa3028af43a864fe2b66c77ea01bbbc97f52b98 |
pypdf-5.0.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ff8a32da6c7a63fea9c32fa4dd837cdd0db7966adf6c14f043e3f12592e992db |
|
MD5 | fa1a0b1f6637a04d6c4575a3566a13d8 |
|
BLAKE2b-256 | 488f9bbf22ba6a00001a45dbc54337e5bbbd43e7d8f34c8158c92cddc45736af |