Skip to content
dialegein

pikepdf

Python wrapper around qpdf for reading, repairing and structurally editing PDFs.

Jobs Protect Merge Edit Compress

Since 2017

Where your files are processed

No server involved

An in-process Python extension that compiles qpdf into the wheel. There is no hosted component at all. That is a property of the library itself: what an application built with it does with your file depends on that application, not on this.

Architectural: an in-process Python extension that compiles qpdf into the wheel. There is no hosted component, so files are opened and written on the local filesystem only.

What it does

pikepdf exposes the qpdf engine to Python, giving object-level access to a PDF's dictionaries, arrays, streams and page tree rather than a rendered view. It opens and repairs damaged files, merges, splits, rotates and reorders pages, edits metadata, extracts and replaces images losslessly, linearises for web delivery, and reads and writes password encryption. What it does with the structure it can rewrite or linearise for web delivery, which the project’s own overview distinguishes from rendering and from converting a document to another format. It deliberately excludes rendering, text extraction and conversion to other formats.

Best for: Python developers doing structural PDF surgery, batch repair or metadata sanitisation who want a permissive licence rather than AGPL.

Worth knowing: It cannot reliably redact — the project's own documentation says so plainly, and explains that no purely programmatic tool operating on a file's structure can. There is also no command-line entry point; the surface is the Python library.

Details, and where each comes from

Vendor statements, our own reading of their pages, and the things nobody has established yet, each answered separately. Where we have not confirmed something it says so rather than guessing, and a row nobody has established is greyed out.

Versions covered
Windows · macOS · Linux · Self-hosted
Website
pikepdf.readthedocs.io
Requires an account
Not applicable
Watermark on the free tier
Not verified
Maximum file size
Not verified
Batch processing
Yes
Data residency
Self-hosted
Open source
Yes
Self-hostable
Yes
Licence
MPL-2.0
Redaction
No redaction feature
Programmatic access
Embeddable library
Last availability check
Responded in 242 ms 16 October 2026

Checked automatically by our own runner, not reported by the vendor. 100% of our last 30 checks got a response.

What the redaction verdict rests on

Established by inspecting the software's own interface on 17 September 2026.

What that does not establish: Established by inspecting the installed library rather than by testing a document: no method containing "redact" exists at any level of its API. That establishes the absence of a feature, which is a different and firmer kind of claim than a mechanism working. The project documents that purely programmatic redaction of a PDF cannot be reliable.

https://pikepdf.readthedocs.io/

What the vendor says

Claims are labelled rather than repeated as fact. Where we have checked something ourselves, it says so and shows when. Checked means we read the vendor's own page and it says what we recorded — not that we tested the behaviour, unless the note says we did.

  • “pikepdf cannot reliably redact text or images from a PDF, and neither can any purely programmatic tool that operates on the file's structure.”

    Checked by us — the source says this Read 22 September 2026

    Confirmed verbatim. Under a heading called 'The limits of programmatic redaction', inside a warning box, the page states: "pikepdf cannot reliably redact text or images from a PDF, and neither can any purely programmatic tool that operates on the file's structure." The claim is that sentence unaltered. This is an unusual claim for this index because it is a vendor arguing against their own product's suitability for a job, and it is the only claim here we have corroborated two ways: the wording says it, and the library we have installed exposes no redaction API at all. The page goes on to list why structural removal fails — text split across drawing operators, text hidden behind clipping paths or overlapping white rectangles, invisible OCR layers, embedded search indexes, thumbnails and form XObjects — and recommends redacting physically for genuinely sensitive documents. That reasoning is worth carrying because it applies to every tool in this index that claims structural redaction.

    Standing: Re-read, and the recorded hash was not reproduced

    Check it yourself: the source, the SHA-256, and how we checked
    From
    the text a browser renders
    SHA-256
    d2fa9fc6f078af799509851342f65924ab7eda22cd2e86a55c34952d1e42b27e
    Note
    no saved artifact matches this hash, so there is nothing to normalise towards. Both a raw fetch and a render of the documentation home fail to reproduce it.

    How we checked: Re-verified verbatim on 2026-09-22: https://pikepdf.readthedocs.io/en/stable/topics/sanitize.html re-rendered in headless Chrome with scripts/render-page.mjs and the claim's wording found in the rendered text. Originally verified on 2026-09-21. sourceHash is the SHA-256 of the re-rendered text, held as rv-pikepdf-readthedocs-io-en-stable-topics-sanitize-html-e0f29d90.txt.

    What this hash proves, and what it does not

  • “pikepdf is a Python library allowing creation, manipulation and repair of PDFs. It provides a Pythonic wrapper around the C++ PDF content transformation library qpdf.”

    Checked by us — the source says this Read 22 September 2026

    Confirmed verbatim: the sentence is the first paragraph of the documentation home page. It names qpdf as the engine, which is the same library this index records separately as a command-line tool, so a reader can see the relationship between two entries rather than guessing. This is the third pikepdf claim recorded and the campaign's earlier work on this project included an inspection of its installed API surface rather than a page read — the redaction finding that no method containing "redact" exists — so the index holds both a documented description and an inspection of the same library.

    Standing: Re-read and matched byte for byte

    Check it yourself: the source, the SHA-256, and how we checked
    From
    the text a browser renders
    SHA-256
    7619e458a50146082b044086830a3f947f43f1837c6b303c6e87b90ab9a2c54b

    How we checked: Re-verified verbatim on 2026-09-22: https://pikepdf.readthedocs.io/ re-rendered in headless Chrome with scripts/render-page.mjs and the claim's wording found in the rendered text. Originally verified on 2026-09-21. sourceHash is the SHA-256 of the re-rendered text, held as rv-pikepdf-readthedocs-io-e3a3277d.txt.

    What this hash proves, and what it does not

  • “pikepdf cannot reliably redact text or images from a PDF, "and neither can any purely programmatic tool that operates on the file's structure".”

    Checked by us — the source says this Read 22 September 2026

    There is no redaction API. No name containing "redact" exists at module level, on PdfPage, or on a page instance, so the classification of `none` is correct and the maintainer's warning is not modesty. This is a different kind of evidence from the canary tests elsewhere in this index — it establishes the absence of a feature by inspecting the API surface rather than establishing a behaviour by watching it — and it is recorded as such.

    Standing: Re-read and matched byte for byte

    Check it yourself: the source, the SHA-256, and how we checked
    From
    the raw HTTP response
    SHA-256
    d2fa9fc6f078af799509851342f65924ab7eda22cd2e86a55c34952d1e42b27e

    How we checked: Re-verified verbatim on 2026-09-22: https://pikepdf.readthedocs.io/en/stable/topics/sanitize.html re-rendered in headless Chrome with scripts/render-page.mjs and the claim's wording found in the rendered text. Originally verified on 2026-09-17. sourceHash is the SHA-256 of the re-rendered text, held as rv-pikepdf-readthedocs-io-en-stable-topics-sanitize-html-e0f29d90.txt.

    What this hash proves, and what it does not

Each claim is quoted from the vendor's own pages. This section describes what we have and have not checked — it is not a judgement about anyone.

Sponsorship is distribution, not an endorsement or a promise of search rankings, AI citations, traffic, or sales. This listing is a free entry, compiled from published sources.

Visit pikepdf Report a problem

Related reading

How this record was put together

Editorial review.
No editor has signed this record off. That is not the same as nothing having been checked, and the lines below say what has.
Source reading.
3 claims taken from the vendor's own pages, read between 22 September 2026 and 22 September 2026.
Website availability.
The vendor's site was last checked on 16 October 2026.
Behaviour testing.
We ran this ourselves. The file handling was watched directly.

Sources: pikepdf.readthedocs.io (home, sanitize topic); the repository LICENSE and pyproject.toml; PyPI metadata; GitHub API metadata.