-
Fix typo in --rotate example
-
Thanks @neuhaus!
-
When making resources indirect in from_dr, the code was using the wrong owning QPDF, forgetting that from_dr had already been copied using CopyForeignObject.
-
When adding a QPDFObjectHandle to an array or dictionary, if possible, check if the new object belongs to the same QPDF. This makes it much easier to find incorrect code than waiting for the situation to be detected when the file is written.
-
Also switch URLs for the qpdf and qtest websites to sourceforge.io (https) instead of sourceforge.net (http).
-
Also handle direct annotation, though this is much less likely.
-
If not found in the field hierarchy, /Q and /DA are supposed to be looked up in the document-level form dictionary. /DR is supposed to only come from the document dictionary.
-
This results in a performance penalty of 1% to 2% when replaceObject and swapObjects are never called and a somewhat larger penalty if they are called, but it's worth it to avoid very confusing behavior as discussed in depth in qpdf#507.
-
This takes pages from the file in groups of n with default = 1. This partially fixes the enhancement in issue #505 but doesn't implement the entire suggestion.
-
Also fix a bug in checking consistency of length for stream data providers. Length should not be checked or recorded if the provider says it failed to generate the data.