-
Add --copy-encryption and --encryption-file-password options to qpdf. Also strengthen test suite for copying encryption. The strengthened test suite would have caught the failure to preserve AES and the failure to update the file version, which was invalidating the encrypted data.
-
This fixes were to code added yesterday; the problems would not have impacted any previously released code. These are all changes related to the possibility that copyEncryptionParameters may be called on behalf a different QPDF than the one being written.
-
from qpdf command-line tool
-
Method to copy encryption parameters from another file. Adapted from existing code to copy encryption parameters from the original file.
-
This way we don't have to hard-code the name of a second file in the test driver for tests that require one.
-
Throw an exception that directs the user to QPDF::copyForeignObject.
-
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.
-
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.