diff options
author | Jay Berkenbilt <ejb@ql.org> | 2021-02-23 00:36:05 +0100 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2021-02-23 00:42:06 +0100 |
commit | 83216e640c489a22bd4001c9c39affb72b8b1124 (patch) | |
tree | 7e2aef99dd9e3e13fdcc98c2421fbe9f267cfe3c /libqpdf | |
parent | 1f35ec9988eaf1ad3705655c434701d175c5b49f (diff) | |
download | qpdf-83216e640c489a22bd4001c9c39affb72b8b1124.tar.zst |
Preserve form fields when splitting pages (fixes #340)
Diffstat (limited to 'libqpdf')
-rw-r--r-- | libqpdf/QPDFAcroFormDocumentHelper.cc | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/libqpdf/QPDFAcroFormDocumentHelper.cc b/libqpdf/QPDFAcroFormDocumentHelper.cc index dce413bd..611d469a 100644 --- a/libqpdf/QPDFAcroFormDocumentHelper.cc +++ b/libqpdf/QPDFAcroFormDocumentHelper.cc @@ -676,10 +676,16 @@ QPDFAcroFormDocumentHelper::copyFieldsFromForeignPage( QPDFPageObjectHelper foreign_page, QPDFAcroFormDocumentHelper& foreign_afdh) { + std::set<QPDFObjGen> added; for (auto field: foreign_afdh.getFormFieldsForPage(foreign_page)) { auto new_field = this->qpdf.copyForeignObject( field.getObjectHandle()); - addFormField(new_field); + auto og = new_field.getObjGen(); + if (! added.count(og)) + { + addFormField(new_field); + added.insert(og); + } } } |