From 2dbc1006fb4a176c6ca7418f6e6e27251a4b8142 Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Thu, 5 Aug 2010 21:06:49 +0000 Subject: addPageContents git-svn-id: svn+q:///qpdf/trunk@995 71b93d88-0707-0410-a8cf-f5a4172ac649 --- libqpdf/QPDFObjectHandle.cc | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'libqpdf/QPDFObjectHandle.cc') diff --git a/libqpdf/QPDFObjectHandle.cc b/libqpdf/QPDFObjectHandle.cc index 19b4f94e..143a3f42 100644 --- a/libqpdf/QPDFObjectHandle.cc +++ b/libqpdf/QPDFObjectHandle.cc @@ -472,6 +472,35 @@ QPDFObjectHandle::getPageContents() return result; } +void +QPDFObjectHandle::addPageContents(QPDFObjectHandle new_contents, bool first) +{ + assertPageObject(); + new_contents.assertType("Stream", new_contents.isStream()); + + std::vector orig_contents = getPageContents(); + + std::vector content_streams; + if (first) + { + QTC::TC("qpdf", "QPDFObjectHandle prepend page contents"); + content_streams.push_back(new_contents); + } + for (std::vector::iterator iter = orig_contents.begin(); + iter != orig_contents.end(); ++iter) + { + QTC::TC("qpdf", "QPDFObjectHandle append page contents"); + content_streams.push_back(*iter); + } + if (! first) + { + content_streams.push_back(new_contents); + } + + QPDFObjectHandle contents = QPDFObjectHandle::newArray(content_streams); + this->replaceKey("/Contents", contents); +} + std::string QPDFObjectHandle::unparse() { -- cgit v1.2.3-54-g00ecf