I have released qpdf 5.0.1. This version contains several security hardening changes thanks to a review from Florian Weimer of the Red Hat Product Security Team. An analysis of the issues suggests that there are likely some ways to make older versions of qpdf crash on certain malformed files but there don't seem to be any opportunities for buffer overruns or other ways to inject malicious code. No CVEs are being issued based on the changes. Still, it is recommended to upgrade to 5.0.1. For details, see the revision history or the ChangeLog.
I have released qpdf 5.0.0. This is basically what 4.2.0 was supposed to be except that the shared library version is updated. Elf systems now build libqpdf13, and the Windows DLL is now qpdf13.dll.
I have also removed from the public API a few methods that were only intended to be called from QPDFWriter and couldn't really have been called from anywhere else.
Turns out 4.2.0 was not binary compatible on some platforms. I will be re-releasing the same changes as 5.0.0 shortly.
I have released qpdf 4.2.0. This release includes one bug fix (loss of objects with generation != 0 when generating object streams) and a few small enhancements including a new --show-npages option to qpdf, some enhancements to handle some additional broken files, and some API additions for better handling of object ID and generation.
I have released qpdf 4.1.0. The major change here is new API methods for parsing PDF content streams. There are also some build changes and at least one change that is important to people who include qpdf in software distributions. Please see the release notes in the documentation (http://qpdf.sourceforge.net/files/qpdf-manual.html#ref.release-notes) for details.
I have released qpdf 4.0.1. There are no changes to the qpdf code in this version. This version includes a change to a comment in QPDF.hh and a fix to a test case to prevent false test failures on big-endian systems. If 4.0.0 is working for you, you can upgrade at your discretion.
I have released qpdf 4.0.0. The big change in this version is support for the newer encryption schemes used by Acrobat IX and X. Also in this release is support for extension levels in PDF version information, new methods for supporting read and write from/to arbitrary sources, support for unencrypted files with encrypted attachments, and support for files with junk preceding the PDF header. There are also a few minor bug fixes and some API changes. For details, see the release notes at http://qpdf.sourceforge.net/files/qpdf-manual.html#ref.release-notes.
I have released qpdf 3.0.2. It includes one bug fix to a new method (QPDFWriter::setOutputMemory), one minor feature improvement, and one new public method to enable insertion of comments in the PDF header.
I have released qpdf 3.0.1. This version contains one bug fix for a problem that has been in qpdf since 2.0, so this is unrelated to the changes from 3.0.0. The specific problem caused qpdf to falsely report premature EOF when reading files constructed in a very specific way.
qpdf 3.0.0 has been released. It is identical to 3.0.rc1 except for the version number and a few tweaks of README files.
I have released a release candidate for qpdf 3.0.0. You can find qpdf 3.0.rc1 in the download area. This is a major release that includes support for files over 2 gigabytes, merging and splitting support, and numerous new APIs in the library. For release notes, see http://qpdf.sourceforge.net/files/qpdf-manual.html#ref.release-notes. I expect to do a full 3.0.0 release by mid August.
qpdf 2.3.1 includes a handful of minor improvements. The most significant change is a fix for a threading problem resulting from non-thread-safe use of a third-party library. There are also a few updates to the documentation to fix previous errors or omissions, a workaround to a (fixed) ghostscript bug that caused some test failures under certain conditions, and a tweak to improve compilation with MSVC 2010. This version of qpdf also tests clean on a 64-bit Windows build. (Older ones probably did too, but this is the first time I have been able to try.) I hope the next release will include Windows 64-bit binaries.
I have released qpdf 2.3.0. This release includes one bug fix (copying encrypted PDFs with clear-text metadata didn't work without explicit encryption parameters) and a handful of API changes. New APIs allow some new manipulations of objects by object ID (replace and swap), the ability to write PDF files to memory instead of files on disk, and the ability to retrieve all elements of a dictionary or array at once as a map or vector. For details, please see the release notes in the documentation.
I have release version 2.2.4 of qpdf. There are no functionality changes in this release. There are very few changes, and they are all related to fixing build, installation, and compiler warning issues.
I have released qpdf 2.2.3. There are no interface changes in this version. The only changes are a few enhancements in recovering from certain problematic files and one enhancement to qdf mode for streams with inline images.
When I released 2.2.1, I neglected to add a method to the C API to access the new processMemoryFile method. The only change from 2.2.1 to 2.2.2 is the addition of a qpdf_read_memory function the C API. Hopefully this release will last a little longer!
I have released qpdf 2.2.1. This version features the ability to process PDF files loaded into memory in addition to those on disk. It also adds the ability to override any output or error messages generated by the library for redirection, for example, for display in a gui. There have also been some minor enhancements that allow qpdf to handle some erroneous PDF files that were previously rejected.
I have placed a port of qpdf to VC6 in the contrib/vc6 directory. Thanks to Jian Ma for generously providing this port.
I have released qpdf 2.2.0. Major changes from 2.1.5 include new library interfaces for adding streams and replacing stream data, making possible a whole range of new possible applications.
I've uploaded a release candidate for the shortly forthcoming 2.2.0 release. The major change here is the addition of some new methods to QPDFObjectHandle that allow creation of new streams and replacement of data for existing streams. There is also new convenience routines for manipulating dictionary keys and for working with a page's content streams. I intend to release 2.2.0 within the next week or two. Please note that 2.2.rc1 is not the default download, so you have to download it explicitly if you want to try it out.
I have released qpdf 2.1.5. The only change from 2.1.4 is a fix that enables encryption and decryption of files whose file identifier (/ID) strings are not 16 bytes long.
I have released qpdf version 2.1.3. There are two small bug fixes in this version, both for relatively obscure cases. This version of qpdf is able to read files with incorrect padding at the end of AES (encrypted) streams, and it is also able to rewrite files with certain types of unreferenced objects in them. For details, please see the ChangeLog file.
I have released qpdf 2.1.2. This release includes a fix to a bug that sometimes caused qpdf to crash with an assertion failure when linearizing some files with "compressed objects". This bug was due to the padding calculation failing to take compression into account.
I have released qpdf 2.1.1. There are no functionality changes relative to 2.1. The only changes are a small tweak to an internal header file to make it compile properly with gcc 4.4 and an enhancement to the test suite to let it ignore a broken Adobe Reader installation.
I have released version 2.1 of qpdf. There are no significant changes from the release candidate. The changes from the release candidate include a small code change to make qpdf more tolerant of certain damaged files and some improvements to the RPM .spec file.