
Security News
Maven Central Adds Sigstore Signature Validation
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.
pikepdf is a Python library for reading and writing PDF files.
pikepdf is based on qpdf, a powerful PDF manipulation and repair library.
Python + qpdf = "py" + "qpdf" = "pyqpdf", which looks like a dyslexia test. Say it out loud, and it sounds like "pikepdf".
# Elegant, Pythonic API
with pikepdf.open('input.pdf') as pdf:
num_pages = len(pdf.pages)
del pdf.pages[-1]
pdf.save('output.pdf')
To install:
pip install pikepdf
For users who want to build from source, see installation.
pikepdf is documented and actively maintained. Binary wheels are available for all common platforms, both x86-64 and ARM64/Apple Silicon. For information on the latest changes, see the release notes.
Commercial support is available.
This library is similar to pypdf (formerly PyPDF2) - it provides low level access to PDF features and allows editing and content transformation of existing PDFs. Some knowledge of the PDF specification may be helpful. It does not have the capability to render a PDF to image.
Feature | pikepdf | pypdf (PyPDF2) |
---|---|---|
Editing, manipulation and transformation of existing PDFs | ✔ | ✔ |
Based on an existing, mature PDF library | qpdf | ✘ |
Implementation | C++ and Python | Python |
PDF versions supported | 1.1 to 1.7 | 1.1 to 1.7 |
Save and load password protected (encrypted) PDFs | ✔ (except public key) | ✔ (except public key) |
Creates linearized ("fast web view") PDFs | ✔ | ✘ |
Test suite coverage | ||
Creates PDFs that pass PDF validation tests | ✔ | ✘ |
Modifies PDF/A without breaking PDF/A compliance | ✔ | ✘ |
PDF XMP metadata editing | ✔ | read-only |
Integrates with Jupyter and IPython notebooks for rapid development | ✔ | ✘ |
I decided to try writing a quick Python program with pikepdf to automate [something] and it "just worked". –Jay Berkenbilt, creator of qpdf
"Thanks for creating a great pdf library, I tested out several and this is the one that was best able to work with whatever I threw at it." –@cfcurtis
OCRmyPDF uses pikepdf to graft OCR text layers onto existing PDFs, to examine the contents of input PDFs, and to optimize PDFs.
PDF Arranger is a small Python application that provides a graphical user interface to rotate, crop and rearrange PDFs.
PDFStitcher is a utility for stitching PDF pages into a single document (i.e. N-up or page imposition).
pikepdf is licensed under the Mozilla Public License 2.0 license (MPL-2.0) that can be found in the LICENSE file. By using, distributing, or contributing to this project, you agree to the terms and conditions of this license. MPL 2.0 permits you to combine the software with other work, including commercial and closed source software, but asks you to publish source-level modifications you make to pikepdf itself.
Some components of the project may be under other license agreements, as indicated in their SPDX license header or the REUSE.toml
file.
FAQs
Read and write PDFs with Python, powered by qpdf
We found that pikepdf demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.
Security News
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
Research
Security News
Socket researchers uncovered a backdoored typosquat of BoltDB in the Go ecosystem, exploiting Go Module Proxy caching to persist undetected for years.