-
For now, --allow-insecure allows creation of files with the owner passwords empty or matching the user password.
-
When removing unreferenced resources, notice if a page (recursively) contains a form XObject with unreferenced resources, and count any such resources as referenced by the page.
-
We need to use token.getRawValue, not token.getValue
-
Use the first of ASCII, PDFDocEncoding, or UTF-16 that is capable of encoding the string.
-
Add constructors that take a QPDF object so we can issue warnings and create new indirect objects.
-
If we ever had an encrypted file with different filters for attachments and either the /EmbeddedFiles name tree was deep or some of the file specs didn't have /Type, we would have overlooked those as attachment streams. The code now properly handles /EmbeddedFiles as a name tree.
-
Make some more methods in QPDFPageObjectHelper work with form XObjects, provide forEach methods to walk through nested form XObjects, possibly recursively. This should make it easier to work with form XObjects from user code.
-
Also removes preclusion of stream references in stream parameters of filterable streams and reduces write times by about 8% by eliminating an extra traversal of the objects.
-
Refactor QPDF_Stream to use stream filter classes to handle supported stream filters as well.