Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo


QPDF / News: Recent posts

qpdf 5.1.2

I have released qpdf 5.1.2. The changes from 5.1.1 includes fixes to two obscure bugs, a new example program for efficiently splitting by pages, and restoration of support for Windows XP in the Visual C++ Windows binary packages.

Posted by Jay Berkenbilt 2014-06-07

qpdf 5.1.1

qpdf 5.1.1 is out. There is just one small change: a performance fix when copying objects from one QPDF to another. If you're using qpdf for splitting pages or as a dependency in open printing, you should take this update.

Posted by Jay Berkenbilt 2014-01-14

qpdf 5.1.0

I have released qpdf 5.1.0. The main functional change here is the ability to provide your own source of random numbers at runtime if you want to avoid both the OS-provided secure random numbers (used by default since 5.0.1) and the older stdlib random numbers. This release also features a number of small fixes for newer versions of several compilers and to handle one more type of damage to a PDF file.

Posted by Jay Berkenbilt 2013-12-17

qpdf 5.0.1

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.

Posted by Jay Berkenbilt 2013-10-18

qpdf 5.0.0

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.

Posted by Jay Berkenbilt 2013-07-10

4.2.0 withdrawn

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.

Posted by Jay Berkenbilt 2013-07-10

qpdf 4.2.0

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.

Posted by Jay Berkenbilt 2013-07-08

qpdf 4.1.0

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.

Posted by Jay Berkenbilt 2013-04-14

qpdf 4.0.1

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.

Posted by Jay Berkenbilt 2013-01-17

qpdf 4.0.0

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.

Posted by Jay Berkenbilt 2012-12-31

qpdf 3.0.2

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.

Posted by Jay Berkenbilt 2012-09-07

qpdf 3.0.1

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.

Posted by Jay Berkenbilt 2012-08-11

qpdf 3.0.0

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.

Posted by Jay Berkenbilt 2012-08-02

qpdf 3.0 rc1

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.

Posted by Jay Berkenbilt 2012-07-29

qpdf 2.3.1

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.

Posted by Jay Berkenbilt 2011-12-29

qpdf 2.3.0

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.

Posted by Jay Berkenbilt 2011-08-11

qpdf 2.2.4

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.

Posted by Jay Berkenbilt 2011-06-25

qpdf 2.2.3

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.

Posted by Jay Berkenbilt 2011-04-30

qpdf 2.2.2

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!

Posted by Jay Berkenbilt 2010-10-04

qpdf 2.2.1

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.

Posted by Jay Berkenbilt 2010-10-02

VC6 port uploaded

I have placed a port of qpdf to VC6 in the contrib/vc6 directory. Thanks to Jian Ma for generously providing this port.

Posted by Jay Berkenbilt 2010-09-05

QPDF 2.2.0

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.

Posted by Jay Berkenbilt 2010-08-14

qpdf 2.2.rc1

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.

Posted by Jay Berkenbilt 2010-08-08

qpdf 2.1.5

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.

Posted by Jay Berkenbilt 2010-04-25

qpdf 2.1.3

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.

Posted by Jay Berkenbilt 2010-03-27