aboutsummaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2018-06-18 21:06:51 +0200
committerJay Berkenbilt <ejb@ql.org>2018-06-21 21:57:13 +0200
commit2e6e1204a51b4aba4657712a34e9447d928b5fc6 (patch)
tree20d3a41ae488640b6f7b6345b98c33845e6e014c /examples
parent2e7ee23bf63da6de221737907bcc6fa8526c3fda (diff)
downloadqpdf-2e6e1204a51b4aba4657712a34e9447d928b5fc6.tar.zst
Convert examples to use new page helper classes
Diffstat (limited to 'examples')
-rw-r--r--examples/pdf-bookmarks.cc8
-rw-r--r--examples/pdf-count-strings.cc13
-rw-r--r--examples/pdf-create.cc18
-rw-r--r--examples/pdf-double-page-size.cc13
-rw-r--r--examples/pdf-filter-tokens.cc9
-rw-r--r--examples/pdf-invert-images.cc9
-rw-r--r--examples/pdf-parse-content.cc7
-rw-r--r--examples/pdf-split-pages.cc10
8 files changed, 57 insertions, 30 deletions
diff --git a/examples/pdf-bookmarks.cc b/examples/pdf-bookmarks.cc
index 23b7f0cf..ed5b8029 100644
--- a/examples/pdf-bookmarks.cc
+++ b/examples/pdf-bookmarks.cc
@@ -2,6 +2,7 @@
#include <string.h>
#include <stdlib.h>
#include <qpdf/QPDF.hh>
+#include <qpdf/QPDFPageDocumentHelper.hh>
#include <qpdf/QUtil.hh>
#include <qpdf/QTC.hh>
@@ -44,12 +45,13 @@ void print_lines(std::vector<int>& numbers)
void generate_page_map(QPDF& qpdf)
{
- std::vector<QPDFObjectHandle> pages = qpdf.getAllPages();
+ QPDFPageDocumentHelper dh(qpdf);
+ std::vector<QPDFPageObjectHelper> pages = dh.getAllPages();
int n = 0;
- for (std::vector<QPDFObjectHandle>::iterator iter = pages.begin();
+ for (std::vector<QPDFPageObjectHelper>::iterator iter = pages.begin();
iter != pages.end(); ++iter)
{
- QPDFObjectHandle& oh = *iter;
+ QPDFObjectHandle oh = (*iter).getObjectHandle();
page_map[oh.getObjGen()] = ++n;
}
}
diff --git a/examples/pdf-count-strings.cc b/examples/pdf-count-strings.cc
index 072f8b5c..b5091a86 100644
--- a/examples/pdf-count-strings.cc
+++ b/examples/pdf-count-strings.cc
@@ -10,6 +10,8 @@
#include <stdlib.h>
#include <qpdf/QPDF.hh>
+#include <qpdf/QPDFPageDocumentHelper.hh>
+#include <qpdf/QPDFPageObjectHelper.hh>
#include <qpdf/QUtil.hh>
#include <qpdf/QPDFObjectHandle.hh>
#include <qpdf/Pl_StdioFile.hh>
@@ -90,12 +92,13 @@ int main(int argc, char* argv[])
{
QPDF pdf;
pdf.processFile(infilename);
- std::vector<QPDFObjectHandle> pages = pdf.getAllPages();
+ std::vector<QPDFPageObjectHelper> pages =
+ QPDFPageDocumentHelper(pdf).getAllPages();
int pageno = 0;
- for (std::vector<QPDFObjectHandle>::iterator iter = pages.begin();
+ for (std::vector<QPDFPageObjectHelper>::iterator iter = pages.begin();
iter != pages.end(); ++iter)
{
- QPDFObjectHandle page = *iter;
+ QPDFPageObjectHelper& ph(*iter);
++pageno;
// Pass the contents of a page through our string counter.
// If it's an even page, capture the output. This
@@ -105,14 +108,14 @@ int main(int argc, char* argv[])
if (pageno % 2)
{
// Ignore output for odd pages.
- page.filterPageContents(&counter);
+ ph.filterPageContents(&counter);
}
else
{
// Write output to stdout for even pages.
Pl_StdioFile out("stdout", stdout);
std::cout << "% Contents of page " << pageno << std::endl;
- page.filterPageContents(&counter, &out);
+ ph.filterPageContents(&counter, &out);
std::cout << "\n% end " << pageno << std::endl;
}
std::cout << "Page " << pageno
diff --git a/examples/pdf-create.cc b/examples/pdf-create.cc
index 0cbf6f14..1c787e2e 100644
--- a/examples/pdf-create.cc
+++ b/examples/pdf-create.cc
@@ -6,6 +6,8 @@
//
#include <qpdf/QPDF.hh>
+#include <qpdf/QPDFPageDocumentHelper.hh>
+#include <qpdf/QPDFPageObjectHelper.hh>
#include <qpdf/QPDFWriter.hh>
#include <qpdf/QPDFObjectHandle.hh>
#include <qpdf/QUtil.hh>
@@ -158,10 +160,12 @@ QPDFObjectHandle newInteger(int val)
return QPDFObjectHandle::newInteger(val);
}
-void add_page(QPDF& pdf, QPDFObjectHandle font,
+void add_page(QPDFPageDocumentHelper& dh, QPDFObjectHandle font,
std::string const& color_space,
std::string const& filter)
{
+ QPDF& pdf(dh.getQPDF());
+
// Create a stream to encode our image. QPDFWriter will fill in
// the length and will respect our filters based on stream data
// mode. Since we are not specifying, QPDFWriter will compress
@@ -222,7 +226,7 @@ void add_page(QPDF& pdf, QPDFObjectHandle font,
page.replaceKey("/Resources", resources);
// Add the page to the PDF file
- pdf.addPage(page, false);
+ dh.addPage(page, false);
}
static void check(char const* filename,
@@ -249,18 +253,19 @@ static void check(char const* filename,
QPDF pdf;
pdf.processFile(filename);
- std::vector<QPDFObjectHandle> const& pages = pdf.getAllPages();
+ QPDFPageDocumentHelper dh(pdf);
+ std::vector<QPDFPageObjectHelper> pages = dh.getAllPages();
if (n_color_spaces * n_filters != pages.size())
{
throw std::logic_error("incorrect number of pages");
}
size_t pageno = 1;
bool errors = false;
- for (std::vector<QPDFObjectHandle>::const_iterator page_iter =
+ for (std::vector<QPDFPageObjectHelper>::iterator page_iter =
pages.begin();
page_iter != pages.end(); ++page_iter)
{
- QPDFObjectHandle page = *page_iter;
+ QPDFPageObjectHelper& page(*page_iter);
std::map<std::string, QPDFObjectHandle> images = page.getPageImages();
if (images.size() != 1)
{
@@ -391,13 +396,14 @@ static void create_pdf(char const* filename)
filters.push_back("null");
filters.push_back("/DCTDecode");
filters.push_back("/RunLengthDecode");
+ QPDFPageDocumentHelper dh(pdf);
for (std::vector<std::string>::iterator c_iter = color_spaces.begin();
c_iter != color_spaces.end(); ++c_iter)
{
for (std::vector<std::string>::iterator f_iter = filters.begin();
f_iter != filters.end(); ++f_iter)
{
- add_page(pdf, font, *c_iter, *f_iter);
+ add_page(dh, font, *c_iter, *f_iter);
}
}
diff --git a/examples/pdf-double-page-size.cc b/examples/pdf-double-page-size.cc
index 30365b8d..06c98921 100644
--- a/examples/pdf-double-page-size.cc
+++ b/examples/pdf-double-page-size.cc
@@ -2,6 +2,8 @@
#include <string.h>
#include <stdlib.h>
#include <qpdf/QPDF.hh>
+#include <qpdf/QPDFPageDocumentHelper.hh>
+#include <qpdf/QPDFPageObjectHelper.hh>
#include <qpdf/QUtil.hh>
#include <qpdf/Buffer.hh>
#include <qpdf/QPDFWriter.hh>
@@ -77,14 +79,17 @@ int main(int argc, char* argv[])
QPDF qpdf;
qpdf.processFile(infilename, password);
- std::vector<QPDFObjectHandle> pages = qpdf.getAllPages();
- for (std::vector<QPDFObjectHandle>::iterator iter = pages.begin();
+ std::vector<QPDFPageObjectHelper> pages =
+ QPDFPageDocumentHelper(qpdf).getAllPages();
+ for (std::vector<QPDFPageObjectHelper>::iterator iter =
+ pages.begin();
iter != pages.end(); ++iter)
{
- QPDFObjectHandle& page = *iter;
+ QPDFPageObjectHelper& ph(*iter);
+ QPDFObjectHandle page = ph.getObjectHandle();
// Prepend the buffer to the page's contents
- page.addPageContents(
+ ph.addPageContents(
QPDFObjectHandle::newStream(&qpdf, content), true);
// Double the size of each of the content boxes
diff --git a/examples/pdf-filter-tokens.cc b/examples/pdf-filter-tokens.cc
index ec6fac12..d3ebf54c 100644
--- a/examples/pdf-filter-tokens.cc
+++ b/examples/pdf-filter-tokens.cc
@@ -12,6 +12,8 @@
#include <deque>
#include <qpdf/QPDF.hh>
+#include <qpdf/QPDFPageDocumentHelper.hh>
+#include <qpdf/QPDFPageObjectHelper.hh>
#include <qpdf/QUtil.hh>
#include <qpdf/QPDFWriter.hh>
#include <qpdf/QPDFObjectHandle.hh>
@@ -207,8 +209,9 @@ int main(int argc, char* argv[])
{
QPDF pdf;
pdf.processFile(infilename);
- std::vector<QPDFObjectHandle> pages = pdf.getAllPages();
- for (std::vector<QPDFObjectHandle>::iterator iter = pages.begin();
+ std::vector<QPDFPageObjectHelper> pages =
+ QPDFPageDocumentHelper(pdf).getAllPages();
+ for (std::vector<QPDFPageObjectHelper>::iterator iter = pages.begin();
iter != pages.end(); ++iter)
{
// Attach two token filters to each page of this file.
@@ -216,7 +219,7 @@ int main(int argc, char* argv[])
// are retrieved in any other way, the filters will be
// applied. See comments on the filters for additional
// details.
- QPDFObjectHandle page = *iter;
+ QPDFPageObjectHelper& page(*iter);
page.addContentTokenFilter(new StringReverser);
page.addContentTokenFilter(new ColorToGray);
}
diff --git a/examples/pdf-invert-images.cc b/examples/pdf-invert-images.cc
index 537fd35e..1469d9cc 100644
--- a/examples/pdf-invert-images.cc
+++ b/examples/pdf-invert-images.cc
@@ -2,6 +2,8 @@
#include <string.h>
#include <stdlib.h>
#include <qpdf/QPDF.hh>
+#include <qpdf/QPDFPageDocumentHelper.hh>
+#include <qpdf/QPDFPageObjectHelper.hh>
#include <qpdf/QUtil.hh>
#include <qpdf/Buffer.hh>
#include <qpdf/QPDFWriter.hh>
@@ -97,11 +99,12 @@ int main(int argc, char* argv[])
PointerHolder<QPDFObjectHandle::StreamDataProvider> p = inv;
// For each page...
- std::vector<QPDFObjectHandle> pages = qpdf.getAllPages();
- for (std::vector<QPDFObjectHandle>::iterator iter = pages.begin();
+ std::vector<QPDFPageObjectHelper> pages =
+ QPDFPageDocumentHelper(qpdf).getAllPages();
+ for (std::vector<QPDFPageObjectHelper>::iterator iter = pages.begin();
iter != pages.end(); ++iter)
{
- QPDFObjectHandle& page = *iter;
+ QPDFPageObjectHelper& page(*iter);
// Get all images on the page.
std::map<std::string, QPDFObjectHandle> images =
page.getPageImages();
diff --git a/examples/pdf-parse-content.cc b/examples/pdf-parse-content.cc
index 620c1bb6..8659fbe3 100644
--- a/examples/pdf-parse-content.cc
+++ b/examples/pdf-parse-content.cc
@@ -3,6 +3,8 @@
#include <stdlib.h>
#include <qpdf/QPDF.hh>
+#include <qpdf/QPDFPageDocumentHelper.hh>
+#include <qpdf/QPDFPageObjectHelper.hh>
#include <qpdf/QUtil.hh>
static char const* whoami = 0;
@@ -68,13 +70,14 @@ int main(int argc, char* argv[])
{
QPDF pdf;
pdf.processFile(filename);
- std::vector<QPDFObjectHandle> pages = pdf.getAllPages();
+ std::vector<QPDFPageObjectHelper> pages =
+ QPDFPageDocumentHelper(pdf).getAllPages();
if ((pageno < 1) || (static_cast<size_t>(pageno) > pages.size()))
{
usage();
}
- QPDFObjectHandle page = pages.at(pageno-1);
+ QPDFPageObjectHelper& page = pages.at(pageno-1);
ParserCallbacks cb;
page.parsePageContents(&cb);
}
diff --git a/examples/pdf-split-pages.cc b/examples/pdf-split-pages.cc
index f062691a..b65f96ee 100644
--- a/examples/pdf-split-pages.cc
+++ b/examples/pdf-split-pages.cc
@@ -5,6 +5,7 @@
//
#include <qpdf/QPDF.hh>
+#include <qpdf/QPDFPageDocumentHelper.hh>
#include <qpdf/QPDFWriter.hh>
#include <qpdf/QUtil.hh>
#include <string>
@@ -20,18 +21,19 @@ static void process(char const* whoami,
{
QPDF inpdf;
inpdf.processFile(infile);
- std::vector<QPDFObjectHandle> const& pages = inpdf.getAllPages();
+ std::vector<QPDFPageObjectHelper> pages =
+ QPDFPageDocumentHelper(inpdf).getAllPages();
int pageno_len = QUtil::int_to_string(pages.size()).length();
int pageno = 0;
- for (std::vector<QPDFObjectHandle>::const_iterator iter = pages.begin();
+ for (std::vector<QPDFPageObjectHelper>::iterator iter = pages.begin();
iter != pages.end(); ++iter)
{
- QPDFObjectHandle page = *iter;
+ QPDFPageObjectHelper& page(*iter);
std::string outfile =
outprefix + QUtil::int_to_string(++pageno, pageno_len) + ".pdf";
QPDF outpdf;
outpdf.emptyPDF();
- outpdf.addPage(page, false);
+ QPDFPageDocumentHelper(outpdf).addPage(page, false);
QPDFWriter outpdfw(outpdf, outfile.c_str());
if (static_id)
{