diff options
author | Jay Berkenbilt <ejb@ql.org> | 2018-06-18 21:05:53 +0200 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2018-06-21 21:57:13 +0200 |
commit | 2e7ee23bf63da6de221737907bcc6fa8526c3fda (patch) | |
tree | 2fa618ec8b695ab0a2c7da83b27e8f813f7188d9 /libqpdf | |
parent | 4cded10821e3bd523cf96eb628d7364820a07b84 (diff) | |
download | qpdf-2e7ee23bf63da6de221737907bcc6fa8526c3fda.tar.zst |
Add QPDFPageDocumentHelper and QPDFPageObjectHelper
This is the beginning of higher-level API support using helper
classes. The goal is to be able to add more helpers without continuing
to pollute QPDF's and QPDFObjectHandle's public interfaces.
Diffstat (limited to 'libqpdf')
-rw-r--r-- | libqpdf/QPDFPageDocumentHelper.cc | 53 | ||||
-rw-r--r-- | libqpdf/QPDFPageObjectHelper.cc | 72 | ||||
-rw-r--r-- | libqpdf/build.mk | 2 |
3 files changed, 127 insertions, 0 deletions
diff --git a/libqpdf/QPDFPageDocumentHelper.cc b/libqpdf/QPDFPageDocumentHelper.cc new file mode 100644 index 00000000..64f83db4 --- /dev/null +++ b/libqpdf/QPDFPageDocumentHelper.cc @@ -0,0 +1,53 @@ +#include <qpdf/QPDFPageDocumentHelper.hh> + +QPDFPageDocumentHelper::Members::~Members() +{ +} + +QPDFPageDocumentHelper::Members::Members() +{ +} + +QPDFPageDocumentHelper::QPDFPageDocumentHelper(QPDF& qpdf) : + QPDFDocumentHelper(qpdf) +{ +} + +std::vector<QPDFPageObjectHelper> +QPDFPageDocumentHelper::getAllPages() +{ + std::vector<QPDFObjectHandle> const& pages_v = this->qpdf.getAllPages(); + std::vector<QPDFPageObjectHelper> pages; + for (std::vector<QPDFObjectHandle>::const_iterator iter = pages_v.begin(); + iter != pages_v.end(); ++iter) + { + pages.push_back(QPDFPageObjectHelper(*iter)); + } + return pages; +} + +void +QPDFPageDocumentHelper::pushInheritedAttributesToPage() +{ + this->qpdf.pushInheritedAttributesToPage(); +} + +void +QPDFPageDocumentHelper::addPage(QPDFPageObjectHelper newpage, bool first) +{ + this->qpdf.addPage(newpage.getObjectHandle(), first); +} + +void +QPDFPageDocumentHelper::addPageAt(QPDFPageObjectHelper newpage, bool before, + QPDFPageObjectHelper refpage) +{ + this->qpdf.addPageAt(newpage.getObjectHandle(), before, + refpage.getObjectHandle()); +} + +void +QPDFPageDocumentHelper::removePage(QPDFPageObjectHelper page) +{ + this->qpdf.removePage(page.getObjectHandle()); +} diff --git a/libqpdf/QPDFPageObjectHelper.cc b/libqpdf/QPDFPageObjectHelper.cc new file mode 100644 index 00000000..b16d8751 --- /dev/null +++ b/libqpdf/QPDFPageObjectHelper.cc @@ -0,0 +1,72 @@ +#include <qpdf/QPDFPageObjectHelper.hh> + +QPDFPageObjectHelper::Members::~Members() +{ +} + +QPDFPageObjectHelper::Members::Members() +{ +} + +QPDFPageObjectHelper::QPDFPageObjectHelper(QPDFObjectHandle oh) : + QPDFObjectHelper(oh) +{ +} + +std::map<std::string, QPDFObjectHandle> +QPDFPageObjectHelper::getPageImages() +{ + return this->oh.getPageImages(); +} + +std::vector<QPDFObjectHandle> +QPDFPageObjectHelper::getPageContents() +{ + return this->oh.getPageContents(); +} + +void +QPDFPageObjectHelper::addPageContents(QPDFObjectHandle contents, bool first) +{ + this->oh.addPageContents(contents, first); +} + +void +QPDFPageObjectHelper::rotatePage(int angle, bool relative) +{ + this->oh.rotatePage(angle, relative); +} + +void +QPDFPageObjectHelper::coalesceContentStreams() +{ + this->oh.coalesceContentStreams(); +} + +void +QPDFPageObjectHelper::parsePageContents( + QPDFObjectHandle::ParserCallbacks* callbacks) +{ + this->oh.parsePageContents(callbacks); +} + +void +QPDFPageObjectHelper::filterPageContents( + QPDFObjectHandle::TokenFilter* filter, + Pipeline* next) +{ + this->oh.filterPageContents(filter, next); +} + +void +QPDFPageObjectHelper::pipePageContents(Pipeline* p) +{ + this->oh.pipePageContents(p); +} + +void +QPDFPageObjectHelper::addContentTokenFilter( + PointerHolder<QPDFObjectHandle::TokenFilter> token_filter) +{ + this->oh.addContentTokenFilter(token_filter); +} diff --git a/libqpdf/build.mk b/libqpdf/build.mk index 11895623..07cfc81e 100644 --- a/libqpdf/build.mk +++ b/libqpdf/build.mk @@ -39,6 +39,8 @@ SRCS_libqpdf = \ libqpdf/QPDFObjGen.cc \ libqpdf/QPDFObject.cc \ libqpdf/QPDFObjectHandle.cc \ + libqpdf/QPDFPageDocumentHelper.cc \ + libqpdf/QPDFPageObjectHelper.cc \ libqpdf/QPDFTokenizer.cc \ libqpdf/QPDFWriter.cc \ libqpdf/QPDFXRefEntry.cc \ |