From 654c0e8caf5e75119534de5d93d1ee28bd13325a Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Sat, 12 Jan 2019 09:14:20 -0500 Subject: Allow adding the same page more than once in --pages (fixes #272) --- libqpdf/QPDF.cc | 6 ++++++ libqpdf/QPDFPageObjectHelper.cc | 15 +++++++++++++++ 2 files changed, 21 insertions(+) (limited to 'libqpdf') diff --git a/libqpdf/QPDF.cc b/libqpdf/QPDF.cc index 95ae9cab..0dbce669 100644 --- a/libqpdf/QPDF.cc +++ b/libqpdf/QPDF.cc @@ -2470,6 +2470,12 @@ QPDF::swapObjects(int objid1, int generation1, int objid2, int generation2) this->m->obj_cache[og2] = t; } +unsigned long long +QPDF::getUniqueId() const +{ + return this->m->unique_id; +} + std::string QPDF::getFilename() const { 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 #include +#include 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)); +} -- cgit v1.2.3-70-g09d2