Ebook Tools Directory/PDF Tools/pypdf
PDF ToolsVerified Authentic ReleaseNOASSERTION

pypdf

Pure-Python PDF manipulation library capable of splitting, merging, encrypting, and transforming PDFs.

10,291 Stars1,690 ForksPythonRelease: 7.0.0

Tool Overview

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. Because it is 100% pure Python, it runs seamlessly in serverless environments like AWS Lambda and Vercel without compiling C extensions.

System Requirements: Python 3.6+

Key Capabilities & Features

100% pure Python with zero external C dependencies
High-speed PDF page splitting, appending, rotating, and merging
Extract plain text and embedded metadata (author, title, producer)
AES-128 and AES-256 encryption, decryption, and permission enforcement
Watermarking and overlaying stamps across pages
Form field reading, automated form filling, and flattening

Package Manager & CLI Installation

Install and update pypdf using your preferred operating system package manager or container runtime:

$ pip install pypdf

Verified Official Release Downloads

7.0.0

All binaries are sourced directly from the official developer release assets without re-packaging or modifications.

Source Code ZIPVerified
pypdf-7.0.0-source.zip
Size: GitHub Archive
Download Source

Client-Side SHA-256 Binary Integrity Verifier

100% Client-Side. Verified locally in your browser using the Web Crypto API. No files are uploaded.

Drag & drop downloaded binary here, or browse file

Computes SHA-256 hash in real-time to guarantee file authenticity against developer releases.

Security Verification Status: Verified Open Source Safe

Downloads link directly to the official GitHub releases hosted by py-pdf/pypdf. Files are checked for authentic digital developer signatures and verified against open-source repository tags.

Latest Release Changelog (7.0.0)

## What's new ### Security (SEC) - Make file identifiers non-deterministic (#4366) by @stefan6419846 - Block not strictly increasing offsets in object streams (#4364) by @stefan6419846 - Limit XFA form decoding work (#4363) by @stefan6419846 - Apply image size limits more strictly (#4361) by @stefan6419846 ### Deprecations (DEP) - Cleanup deprecations for the next major release (#4306) by @stefan6419846 - Remove support for cryptography<43 (#4304) by @stefan6419846 - Drop support for Python 3.9 (#4292) by @stefan6419846 ### New Features (ENH) - Allow setting border color for rectangle annotations (#4297) by @Ak4shh ### Performance Improvements (PI) - Speed up LZW decoding for clear table markers (#4354) by @stefan6419846 - Build right-to-left text runs with a single join (#4344) by @kholdrex - Read every page label number tree once for all pages (#4321) by @kholdrex - Decode the PNG Up predictor a row at a time (#4312) by @MartinThoma ### Bug Fixes (BUG) - Fix cloning of objects that require constructor arguments (#4262) by @Ak4shh - Serialize XMP packets without an XML declaration (#4296) by @Ak4shh ### Maintenance (MAINT) - Generate Symbol and ZapfDingbats encodings from Ad