qpdf
Apache-2.0 C++ library and command-line tool for structural PDF transformations.
Operated by Jay Berkenbilt and Manfred Holger
Opens the vendor's own site.
Jobs covered
Open a task to see exactly what the vendor documentation supports.
Merge
Browse all merge toolsmerging, 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 toolscompressing 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 toolsprotecting 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.
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.
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.
Related reading
- Which PDF tools keep your file on your machine - what we count as processing on your own device.
- Open source PDF tools, and what their licences require - what open source does and does not tell you.