-
Breaking API change: length parameter has disappeared from the StreamDataProvider version of QPDFObjectHandle::replaceStreamData since it is no longer necessary to compute it in advance. This breaking change is justified by the fact that removing the length parameter provides the caller an opportunity to simplify the calling code.
-
Previous versions of qpdf incorrectly passed arbitrary objects from /Pages objects down to individual pages in direct contradition with the PDF specification. These are now left in /Pages. When intermediate /Pages nodes are being discarded as when the /Pages tree is being flattened, a warning is issued when unknown keys are encountered.
-
Refactored optimizePagesTree to pushInheritedAttributesToPage and made public
-
Test coverage case for new newStream method Expose decimal_places argument for double-based newReal All enhancements suggested by Tobias.
-
This makes the code simpler than having to create a buffer of a fixed size and copy the string to it.
-
This rework makes xref reconstruction run much faster and use much less memory.
-
With QPDF allowing integers to contain 64-bit quantities, this change is necessary to be able to linearize files whose sizes might be larger than 10 digits.
-
This makes it possible to store offsets that are larger than 2 GB in the trailer dictionary.
-
This just makes it safer to pull up this file in an editor.
-
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.
-
Thanks Tobias Hoffmann for noticing the error.
-
Split optimizePagesTree into a simpler top-level routine and a recursive internal routine.
-
Added methods to append to arrays, insert items into arrays, and replace array contents with a vector of items.
-
Significantly improve the code's use of off_t for file offsets, size_t for memory sizes, and integer types in cases where there has to be compatibility with external interfaces. Rework sections of the code that would have prevented qpdf from working on files larger than 2 (or maybe 4) GB in size.