aboutsummaryrefslogtreecommitdiffstats
path: root/ChangeLog
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2019-01-01 05:08:57 +0100
committerJay Berkenbilt <ejb@ql.org>2019-01-01 14:14:15 +0100
commit3b8ce4f12a75b34d890cb061a721e1a1240cddd1 (patch)
tree8975df54f2d487a6fd0e2bb78e607e8024b0c5b0 /ChangeLog
parent95d6b17a8904b110c3625e66538368c433f48042 (diff)
downloadqpdf-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--ChangeLog17
1 files changed, 17 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 75d4aa48..3b974fa5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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