-
Create a new need-appearances.pdf based on newer test files with more modified fields.
-
Also add some additional methods for detecting form field types to assist in the json creation and for later use.
-
Thanks to @p-cher for supplying a patch.
-
Instead of directly putting the contents of the annotation appearance streams into the page's content stream, add commands to render the form xobjects directly. This is a more robust way to do it than the original solution as it works properly with patterns and avoids problems with resource name clashes between the pages and the form xobjects.
-
Flatten annotations by integrating their appearance streams into the content stream of the containing page. In the case of form fields, only flatten if /NeedAppearance is false (or equivalently absent). If flattening form fields, also remove /AcroForm from the document catalog.
-
Generate page content fragment for rendering appearance streams including all matrix calculation.
-
Unparse is admittedly strange, but I'd rather be strange and consistent, and everything else in the qpdf library uses unparse to serialize. (If you're reading this, the convention of using "unparse" comes from the "clu" programming language.)
-
When @file is used and file doesn't exist, just treat it as a normal argument.