aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/QPDFPageObjectHelper.cc
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2019-01-12 15:14:20 +0100
committerJay Berkenbilt <ejb@ql.org>2019-01-12 16:01:47 +0100
commit654c0e8caf5e75119534de5d93d1ee28bd13325a (patch)
tree7411c6b4af43de86fc0aa977deb29657806c6b48 /libqpdf/QPDFPageObjectHelper.cc
parent53d8e916b75b983c18d4611e91d6e74cb51a49ec (diff)
downloadqpdf-654c0e8caf5e75119534de5d93d1ee28bd13325a.tar.zst
Allow adding the same page more than once in --pages (fixes #272)
Diffstat (limited to 'libqpdf/QPDFPageObjectHelper.cc')
-rw-r--r--libqpdf/QPDFPageObjectHelper.cc15
1 files changed, 15 insertions, 0 deletions
diff --git a/libqpdf/QPDFPageObjectHelper.cc b/libqpdf/QPDFPageObjectHelper.cc
index 4093622d..611f33ea 100644
--- a/libqpdf/QPDFPageObjectHelper.cc
+++ b/libqpdf/QPDFPageObjectHelper.cc
@@ -1,5 +1,6 @@
#include <qpdf/QPDFPageObjectHelper.hh>
#include <qpdf/QTC.hh>
+#include <qpdf/QPDF.hh>
QPDFPageObjectHelper::Members::~Members()
{
@@ -167,3 +168,17 @@ QPDFPageObjectHelper::removeUnreferencedResources()
}
}
}
+
+QPDFPageObjectHelper
+QPDFPageObjectHelper::shallowCopyPage()
+{
+ QPDF* qpdf = this->oh.getOwningQPDF();
+ if (! qpdf)
+ {
+ throw std::runtime_error(
+ "QPDFPageObjectHelper::shallowCopyPage"
+ " called with a direct objet");
+ }
+ QPDFObjectHandle new_page = this->oh.shallowCopy();
+ return QPDFPageObjectHelper(qpdf->makeIndirectObject(new_page));
+}