QPDF is a command-line program that does structural, content-preserving transformations on PDF files. It could have been called something like pdf-to-pdf. It also provides many useful capabilities to developers of PDF-producing software or for people who just want to look at the innards of a PDF file to learn more about how they work.
QPDF is capable of creating linearized (also known as web-optimized) files and encrypted files. It is also capable of converting PDF files with object streams (also known as compressed objects) to files with no compressed objects or to generate object streams from files that don't have them (or even those that already do). QPDF also supports a special mode designed to allow you to edit the content of PDF files in a text editor. For more details, please see the documentation links below.
QPDF includes support for merging and splitting PDFs through the ability to copy objects from one PDF file into another and to manipulate the list of pages in a PDF file. The QPDF library also makes it possible for you to create PDF files from scratch. In this mode, you are responsible for supplying all the contents of the file, while the QPDF library takes care off all the syntactical representation of the objects, creation of cross references tables and, if you use them, object streams, encryption, linearization, and other syntactic details.
QPDF is not a PDF content creation library, a PDF viewer, or a program capable of converting PDF into other formats. In particular, QPDF knows nothing about the semantics of PDF content streams. If you are looking for something that can do that, you should look elsewhere. However, once you have a valid PDF file, QPDF can be used to transform that file in ways perhaps your original PDF creation can't handle. For example, programs generate simple PDF files but can't password-protect them, web-optimize them, or perform other transformations of that type.
qpdf is available as an AppImage which means "one app = one file", which you can download and run on your Linux system while you don't need a package manager and nothing gets changed in your system. Awesome!
AppImages are single-file applications that run on most Linux distributions. Download an application, make it executable, and run! No need to install. No system libraries or system preferences are altered. Most AppImages run on recent versions of Arch Linux, CentOS, Debian, Fedora, openSUSE, Red Hat, Ubuntu, and other common desktop distributions.
Running qpdf on Linux without installationUnlike other applications, AppImages do not need to be installed before they can be used. However, they need to be marked as executable before they can be run. This is a Linux security feature.
Behold! AppImages are usually not verified by others. Follow these instructions only if you trust the developer of the software. Use at your own risk!
Download the qpdf AppImage and make it executable using your file manager or by entering the following commands in a terminal:
chmod +x ./*.AppImage
Then double-click the AppImage in the file manager to open it.
If you want to restrict what qpdf can do on your system, you can run the AppImage in a sandbox like Firejail. This is entirely optional and currently needs to be configured by the user.
If you would like to update to a new version, simply download the new qpdf AppImage.
The qpdf AppImage also can be updated using AppImageUpdate. Using this tool, qpdf can be updated by downloading only the portions of the AppImage that have actually changed since the last version.
Integrating AppImages into the system
If you would like to have the executable bit set automatically, and would like to see qpdf and other AppImages integrated into the system (menus, icons, file type associations, etc.), then you may want to check the optional appimaged daemon.
Note for application authors
Thanks for distributing qpdf in the AppImage format for all common Linux distributions. Great! Here are some ideas how to make it even better.
Pro Tips for further enhancing the qpdf AppImage
Thanks for shipping AppStream metainfo inside your AppImage. Please open a pull request on https://github.com/AppImage/appimage.github.io/blob/master/data/qpdf if you have changed it and would like to see this page updated accordingly.
If you would like to see a donation link for the application here, please include one in the AppStream data.