A command-line tool and C++ library for content-preserving PDF transformations like linearization, encryption, splitting, and merging.
qpdf is a command-line tool and C++ library that performs content-preserving transformations on PDF files. It enables operations like linearization, encryption, splitting, merging, and structural inspection without altering the document's content. It solves the need for programmatic, low-level manipulation of PDFs where higher-level rendering or editing is unnecessary.
Developers, system administrators, and technical users who need to automate PDF processing, analyze PDF structures, or integrate PDF manipulation into applications without relying on GUI tools.
qpdf is chosen for its reliability, extensive low-level control over PDF internals, and ability to handle complex transformations while preserving file integrity. Its command-line interface and library API make it highly scriptable and embeddable.
qpdf: A content-preserving PDF document transformer
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Manipulates PDF internals like linearization and encryption without altering content, ensuring file integrity for automated processing, as emphasized in the README's focus on content-preserving transformations.
Supports a wide range of operations including splitting, merging, encryption, and optional Zopfli compression, making it versatile for various PDF manipulation needs detailed in the key features.
Offers both a command-line tool and a C++ library, allowing seamless integration into scripts and applications, which aligns with its value proposition for programmatic use.
Prioritizes reliable transformations with detailed error handling and testing, as seen in the extensive test suite and build instructions aimed at ensuring stability.
Lacks capabilities for text extraction, rendering, or visual editing, which are essential for many PDF workflows, as the README explicitly states it does not perform these tasks.
Requires a C++20 compiler, external libraries like zlib and jpeg, and complex crypto provider configuration, making build and installation more involved than simpler tools, as noted in the prerequisites and build sections.
For creating new PDFs, users must manually supply all content, as qpdf only handles structural transformations rather than generation from scratch, limiting its use in content-heavy applications.