pypdf README

The project's README from github.com/py-pdf/pypdf. As one markdown file: README.md.

PyPI version Python Support GitHub last commit codecov

pypdf

pypdf is a free and open-source pure-python PDF library capable of splitting, merging, cropping, and transforming the pages of PDF files. It can also add custom data, viewing options, and passwords to PDF files. pypdf can retrieve text and metadata from PDFs as well.

See pdfly for a CLI application that uses pypdf to interact with PDFs.

Installation

Install pypdf using pip:

pip install pypdf

For using pypdf with AES encryption or decryption, install extra dependencies:

pip install pypdf[crypto]

NOTE: pypdf 3.1.0 and above include significant improvements compared to previous versions. Please refer to the migration guide for more information.

Usage

from pypdf import PdfReader

reader = PdfReader("example.pdf")
number_of_pages = len(reader.pages)
page = reader.pages[0]
text = page.extract_text()

pypdf can do a lot more, e.g. splitting, merging, reading and creating annotations, decrypting and encrypting. Check out the documentation for additional usage examples!

For questions and answers, visit StackOverflow (tagged with pypdf).

Contributions

Maintaining pypdf is a collaborative effort. You can support the project by writing documentation, helping to narrow down issues, and submitting code. See the CONTRIBUTING.md file for more information.

Q&A

The experience pypdf users have covers the whole range from beginner to expert. You can contribute to the pypdf community by answering questions on StackOverflow, helping in discussions, and asking users who report issues for MCVE's (Code + example PDF!).

Issues

A good bug ticket includes a MCVE - a minimal complete verifiable example. For pypdf, this means that you must upload a PDF that causes the bug to occur as well as the code you're executing with all of the output. Use print(pypdf.__version__) to tell us which version you're using.

Code

All code contributions are welcome, but smaller ones have a better chance to get included in a timely manner. Adding unit tests for new features or test cases for bugs you've fixed help us to ensure that the Pull Request (PR) is fine.

pypdf includes a test suite which can be executed with 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 (py-pdf/pypdf)

Searching Database…

10.3K ·GitHub
这是什么?一个免费开源的纯 Python PDF 库:它可以拆分、合并、裁剪和转换 PDF 文件的页面,还能向文件中添加自定义数据、查看选项和密码。
它是我在代码里导入的库,还是一个可以直接运行的程序?是一个库:你在自己的 Python 代码中导入 pypdf 并调用它的函数——它不会自己运行,也没有图形界面或可启动的命令。
怎么把它加到项目里?一条命令就行:'pip install pypdf'。
它需要安装其他东西才能用吗?核心部分是纯 Python 编写的,不需要任何 PDF 引擎或系统工具。唯一的例外:AES 加密和解密需要额外安装一些依赖。
版本方面有什么需要留意的吗?pypdf 3.1.0 及以上版本相比之前的版本有重大改进,如果你用的是更早的版本,建议先看一下迁移指南。
它能从 PDF 里提取文字吗?可以——除了页面操作之外,它还内置了文字提取和元数据读取功能:pypdf 能够从 PDF 文件中获取文字和元数据。
它还能对 PDF 做什么?除了拆分、合并和裁剪之外,它还能读取和创建注释,并且可以解密和加密文档——包括设置密码保护。
有没有基于它做好的命令行工具?有——pdfly 是一个独立的命令行应用,它使用 pypdf 来处理 PDF,不用写脚本就能完成常见操作。
这个项目成熟吗?它从 2012 年开始开发,在 GitHub 上已有一万多个 star。项目维护是协作式的,欢迎参与文档编写、问题分类和代码贡献。
Creator
py-pdf
Size
42.8 MB
Stars
10.3K
Age
14y
Commits · 90 Days