py-pdf/pypdf

A pure-python PDF library capable of splitting, merging, cropping, and transforming the pages of PDF files

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 29 minutes ago
Added to GitGenius on September 6th, 2026
Created on January 6th, 2012
Open Issues & Pull Requests: 131 (+0)
GitHub issues: Enabled
Number of forks: 1,620
Total Stargazers: 10,195 (+0)
Total Subscribers: 143 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 2.5 hours
Mean response time: 32.5 days
90th percentile: 54.3 days
Tracked items: 369

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 53% of open issues come from outside the core team, a mix of external reports and the maintainers' own roadmap. Only 7% of issues opened in the past year have been closed. Three people close 93% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 75
New in 7 days: 1
Closed in 7 days: 1
Avg open age: 639 days
Stale 30+ days: 62
Stale 90+ days: 55

Recent activity

Opened in 7 days: 0
Closed in 7 days: 1
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • is-bug (53)
  • workflow-text-extraction (52)
  • is-robustness-issue (48)
  • is-feature (45)
  • PdfWriter (30)
  • workflow-images (24)
  • nf-documentation (22)
  • workflow-forms (21)

Detailed Description

pypdf is a pure-Python PDF library capable of splitting, merging, cropping, and transforming the pages of PDF files.

The library addresses the need to programmatically manipulate PDF documents without external dependencies. It works by providing a pure-Python implementation that can read, parse, and modify PDF structures directly. Beyond page manipulation, it supports extracting text and metadata from PDFs, adding custom data and viewing options, and applying encryption and decryption with password protection.

Developers should choose pypdf for projects requiring PDF manipulation within Python applications where a lightweight, dependency-free solution is preferred. It suits workflows involving batch processing of PDFs, document assembly, or integration into larger Python systems. The library is particularly useful when AES encryption or decryption is needed, though this requires installing optional dependencies. The project maintains a CLI tool called pdfly for command-line PDF interactions.

The project actively solicits contributions across documentation, issue triage, and code submissions, with a stated preference for smaller pull requests that can be merged more quickly. The maintainers emphasize the importance of minimal reproducible examples in bug reports, requiring both code and example PDFs that demonstrate issues. The test suite is executed with pytest, and contributors are encouraged to add unit tests for new features and test cases for bug fixes. Community engagement occurs through StackOverflow questions, GitHub discussions, and issue tracking, with contributors helping users provide complete and verifiable examples.