-
Also add some additional methods for detecting form field types to assist in the json creation and for later use.
-
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.
-
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.
-
The json mode implemented in this commit is not the final version, or are the command line arguments used to invoke it.
-
Also move tests to libtests.
-
This fix allows qpdf to compile/test cleanly with gcc 8.
-
If we are unable to filter a page's content streams, don't attempt to remove objects from the page's resource dictionary. Also provide a command line option to suppress resource removal in case we ever need this as a workaround for some bug or broken PDF files.
-
This provides better test coverage and more useful code for people to read and copy.