diff options
author | Jay Berkenbilt <ejb@ql.org> | 2019-01-01 05:08:57 +0100 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2019-01-01 14:14:15 +0100 |
commit | 3b8ce4f12a75b34d890cb061a721e1a1240cddd1 (patch) | |
tree | 8975df54f2d487a6fd0e2bb78e607e8024b0c5b0 /ChangeLog | |
parent | 95d6b17a8904b110c3625e66538368c433f48042 (diff) | |
download | qpdf-3b8ce4f12a75b34d890cb061a721e1a1240cddd1.tar.zst |
Annotation flattening including form fields
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.
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 17 |
1 files changed, 17 insertions, 0 deletions
@@ -1,5 +1,22 @@ 2018-12-31 Jay Berkenbilt <ejb@ql.org> + * Add several methods for flattening form fields and annotations: + - QPDFPageDocumentHelper::flattenAnnotations - integrate + annotation appearance streams into page contents with special + handling for form fields: if appearance streams are up to date + (/NeedAppearances is false in /AcroForm), the /AcroForm key of + the document catalog is removed. Otherwise, a warning is + issued, and form fields are ignored. Non-form-field + annotations are always flattened if an appearance stream can + be found. + - QPDFAnnotationObjectHelper::getPageContentForAppearance - + generate the content stream fragment to render an appearance + stream in a page's content stream. Called by flattenAnnotations. + - QPDFAnnotationObjectHelper::getAnnotationAppearanceMatrix - + calculate the matrix that will transform from the appearance + stream coordinates to the page coordinates. Called by + getPageContentForAppearance. + * Add method QPDFObjectHandle::mergeDictionary(), which recursively merges dictionaries with semantics designed for merging resource dictionaries. See detailed description in |