Skip to content
dialegein

qpdf

Apache-2.0 C++ library and command-line tool for structural PDF transformations.

Operated by Jay Berkenbilt and Manfred Holger

Visit qpdf

Opens the vendor's own site.

Jobs covered

Open a task to see exactly what the vendor documentation supports.

Merge Browse all merge tools

merging, splitting and selecting pages with qpdf, where the command-line documentation documents --pages for selecting page ranges from one or more input files, --collate for collating rather than concatenating selected pages, --split-pages for writing each page or group of pages to separate output files, and page-selection support for operations such as splitting, merging and collating; the scope records the documented page selection, concatenation, collation and split operations and makes no claim about editing page content or preserving signatures, forms, links or annotations beyond qpdf's structural handling

Compress Browse all compress tools

compressing and structurally transforming PDFs with qpdf, where the command-line documentation documents --compress-streams for flate compression, --decode-level and --recompress-flate for stream decoding and recompression, --object-streams=generate/disable for object streams, --optimize-images and --jpeg-quality for image recompression, --linearize for progressive viewing, and the JSON documentation documents --json/--json-output and --json-input/--update-from-json for inspecting and modifying the PDF object structure and converting it back to PDF.

The scope records the documented compression, linearisation, object-stream, image-optimisation and JSON structural operations, notes that JPEG recompression can introduce additional image loss, and makes no lossless, size-reduction or percentage guarantee and no claim to edit page content or convert to other document formats

Protect Browse all protect tools

protecting PDFs with qpdf, where the command-line and encryption documentation document --encrypt with user and owner passwords, permission flags for printing, modification, extraction, annotations and form filling, 40-bit and 128-bit RC4 and AES-128/AES-256 encryption options depending on the encryption revision, --decrypt, --copy-encryption and --remove-restrictions; the documentation is explicit that permission restrictions are enforced only by the software that opens the file and can be ignored by a modified reader, that 40-bit and default 128-bit RC4 encryption are insecure, and that qpdf does not distinguish which password opens a file.

The scope records the documented password, encryption, permission and decryption controls and makes no universal reader-enforcement, unbreakable-encryption, signing, certificate-trust or legal-security guarantee

Where your files are processed

No server involved

Command-line tool and library. It reads and writes local files; there is no service involved. 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.

Inherent to what it is: a locally installed command-line tool and library that operates on local files. There is no account system and no vendor service anywhere in the documentation.

What it does

qpdf is an Apache-2.0 C++ library and command-line program for structural, content-preserving PDF transformations. The current stable release is qpdf 12.4.2, published 27 September 2026.

It selects, merges, splits, collates and arranges pages; adds, removes, copies or changes password encryption; linearises files for progressive viewing; recompresses streams and images; generates or disables object streams; and repairs damaged files by rebuilding cross-reference data. It also exposes the PDF object structure through its own unambiguous JSON representation, with command-line and C/C++ API paths to inspect a PDF as JSON, modify the structure at object level and convert the result back to PDF.

It has C++ and C library interfaces and a QPDFJob job-based interface. It is not a content editor, renderer, text extractor, OCR engine, redaction tool or signer, and it does not convert PDFs to other document formats.

The official release assets include macOS Intel and Apple Silicon, Linux x86_64 and aarch64, Windows x86-32/64 and ARM64 builds, plus source and documentation.

Best for

Developers and system administrators who want scriptable, dependency-light PDF surgery from a terminal or from their own code.

Worth knowing

The current stable release is qpdf 12.4.2, published 27 September 2026; the official assets include macOS Intel and Apple Silicon, Linux x86_64 and aarch64, Windows 32-bit/64-bit and ARM64 binaries, plus source and documentation. qpdf 12.3 and later require C++20 to build, but that is a build requirement rather than a runtime platform claim. qpdf is a structural tool, not a content editor: it knows the object structure rather than page-content semantics, so it cannot edit text or page content, render pages, extract text, perform OCR or redaction, sign documents, or convert PDFs to other formats.

Its JSON representation is a separate structural interface for inspecting and modifying objects, not a document-content or text-extraction format. Encryption supports the PDF standard security handler with user and owner passwords, 40-bit and 128-bit RC4, AES-128 and AES-256 options depending on the encryption revision, and permission flags.

The vendor documentation is explicit that PDF permission restrictions are enforced only by the software that opens the file and can be ignored by a modified reader; 40-bit and default 128-bit RC4 encryption are documented as insecure, and AES is recommended. Password protection is distinct from encryption, and qpdf does not distinguish which password opens a file.

The --remove-restrictions option invalidates and disables digital signatures while leaving visual appearances intact; it is not a signing or signature-validation feature. Compression and linearisation do not carry a lossless, size-reduction or percentage guarantee, and image optimisation with JPEG recompression can introduce additional loss.

There is no hosted service, no vendor endpoint and no pricing model: qpdf is a local CLI/library under Apache-2.0.

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
Website
qpdf.readthedocs.io
Requires an account
Not applicable
Watermark on the free tier
Not verified
Maximum file size
Not verified
Batch processing
Not verified
Data residency
Self-hosted
Open source
Yes
Self-hostable
Yes
Licence
Apache-2.0.

Apache-2.0. qpdf is copyright 2005-2021 Jay Berkenbilt and 2022-2026 Jay Berkenbilt and Manfred Holger, licensed under the Apache License, Version 2.0. The current stable release is qpdf 12.4.2, published 27 September 2026. qpdf is an upstream C++ library and command-line tool; pikepdf is a separate Python binding to qpdf and is not part of this record.

No price, SaaS subscription or commercial licence is published; the Apache-2.0 licence is the terms.

Redaction
No redaction feature
Programmatic access
Embeddable library · Command line
Last availability check
Responded in 94 ms 21 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

From the vendor's own documentation, read 22 September 2026. Not tested by us.

What that does not establish

The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote.

Recorded as such rather than presented as certainty.

https://qpdf.readthedocs.io/en/stable/

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.

  • “qpdf is licensed under the Apache License, Version 2.0 (the "License").”

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

    RE-QUOTED 2026-09-22: this claim previously read "qpdf is open source under the Apache License, Version 2.0." - our characterisation rather than the vendor's wording, so a reader could not tell a quotation from a summary. The vendor's own sentence is now in the claim field and what we read from it follows here.

    The licence page states Apache License 2.0, and the repository LICENSE file is the verbatim Apache 2.0 text. Anyone can repeat this by opening the file.

    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
    da661a54940fba6b73365e7a4a38c2bb7326950d536b40ecf665a51bef9ad823

    How we checked

    Re-verified verbatim on 2026-09-22: https://qpdf.readthedocs.io/en/stable/license.html rendered in headless Chrome with scripts/render-page.mjs, and this sentence found in the rendered text. ALSO RE-QUOTED on the same date: the claim field previously held our own summary of this page rather than the vendor's sentence, which made it impossible to verify by quotation - the schema's own words are "we do not repeat a vendor's claim as though it were our own finding", and the reverse holds too. sourceHash is the SHA-256 of the rendered text, held as p9-qpdf.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 qpdf 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.
1 claim 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 21 October 2026.
Behaviour testing.
We ran this ourselves. The file handling was watched directly.

Sources: qpdf.readthedocs.io (overview, license, download, installation, CLI pages). Licence confirmed on the official licence page.