aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/QPDFAcroFormDocumentHelper.cc
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2021-02-23 00:36:05 +0100
committerJay Berkenbilt <ejb@ql.org>2021-02-23 00:42:06 +0100
commit83216e640c489a22bd4001c9c39affb72b8b1124 (patch)
tree7e2aef99dd9e3e13fdcc98c2421fbe9f267cfe3c /libqpdf/QPDFAcroFormDocumentHelper.cc
parent1f35ec9988eaf1ad3705655c434701d175c5b49f (diff)
downloadqpdf-83216e640c489a22bd4001c9c39affb72b8b1124.tar.zst
Preserve form fields when splitting pages (fixes #340)
Diffstat (limited to 'libqpdf/QPDFAcroFormDocumentHelper.cc')
-rw-r--r--libqpdf/QPDFAcroFormDocumentHelper.cc8
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);
+ }
}
}