-
When caching objects in an object stream, only cache objects that still resolve to that stream. See Changelog mod from this commit for details.
-
Next released version will be 4.1.0 since new APIs are being added.
-
Fixed spelling errors in previously published commits and update spelling dictionary
-
Read and write support is implemented for /V=5 with /R=5 as well as /R=6. /R=5 is the deprecated encryption method used by Acrobat IX. /R=6 is the encryption method used by PDF 2.0 from ISO 32000-2.
-
Test cases added in a future commit since they depend on /R=6 support.
-
All version operations are now fully aware of extension levels.
-
Allowing users to subclass InputSource and Pipeline to read and write from/to arbitrary sources provides the maximum flexibility for users who want to read and write from other than files or memory.
-
3.0.rc1
-
Move object parsing code from QPDF to QPDFObjectHandle and parameterize the parts of it that are specific to a QPDF object. Provide a version that can't handle indirect objects and that can be called on an arbitrary string. A side effect of this change is that the offset used when reporting invalid stream length has changed, but since the new value seems like a better value than the old one, the test suite has been updated rather than making the code backward compatible. This only effects the offset reported for invalid streams that lack /Length or have an invalid /Length key. Updated some test code and exmaples to use QPDFObjectHandle::parse. Supporting changes include adding a BufferInputSource constructor that takes a string.
-
InputSource, FileInputSource, and BufferInputSource are now top-level classes instead of privately nested inside QPDF.
-
This includes QPDF::copyForeignObject and supporting foreign objects as arguments to addPage*.
-
QPDFObjectHandle::{new,is,assert}Reserved, QPDF::replaceReserved provide a mechanism to add objects to a PDF file when there are circular references. This is a prerequisite to copying objects from one PDF to another.
-
This rework makes xref reconstruction run much faster and use much less memory.
-
This makes it possible to store offsets that are larger than 2 GB in the trailer dictionary.
-
Also updated pdf_from_scratch test driver to use the new factories, and made some cosmetic improvements and documentation updates for the emptyPDF() method.
-
off_t is used internally only when needed to talk to standard libraries. This requires that the "long long" type be supported by the compiler.