aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2018-06-18 21:05:53 +0200
committerJay Berkenbilt <ejb@ql.org>2018-06-21 21:57:13 +0200
commit2e7ee23bf63da6de221737907bcc6fa8526c3fda (patch)
tree2fa618ec8b695ab0a2c7da83b27e8f813f7188d9 /libqpdf
parent4cded10821e3bd523cf96eb628d7364820a07b84 (diff)
downloadqpdf-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.cc53
-rw-r--r--libqpdf/QPDFPageObjectHelper.cc72
-rw-r--r--libqpdf/build.mk2
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 \