aboutsummaryrefslogtreecommitdiffstats
path: root/qpdf/test_driver.cc
diff options
context:
space:
mode:
Diffstat (limited to 'qpdf/test_driver.cc')
-rw-r--r--qpdf/test_driver.cc24
1 files changed, 24 insertions, 0 deletions
diff --git a/qpdf/test_driver.cc b/qpdf/test_driver.cc
index 2708285b..eae25a5c 100644
--- a/qpdf/test_driver.cc
+++ b/qpdf/test_driver.cc
@@ -9,6 +9,7 @@
#include <qpdf/QPDFNumberTreeObjectHelper.hh>
#include <qpdf/QPDFNameTreeObjectHelper.hh>
#include <qpdf/QPDFPageLabelDocumentHelper.hh>
+#include <qpdf/QPDFOutlineDocumentHelper.hh>
#include <qpdf/QUtil.hh>
#include <qpdf/QTC.hh>
#include <qpdf/Pl_StdioFile.hh>
@@ -1730,6 +1731,29 @@ void runtest(int n, char const* filename1, char const* arg2)
assert(ntoh.findObject("07 sev\xe2\x80\xa2n", oh));
assert("seven!" == oh.getStringValue());
}
+ else if (n == 49)
+ {
+ // Outlines
+ std::vector<QPDFPageObjectHelper> pages =
+ QPDFPageDocumentHelper(pdf).getAllPages();
+ QPDFOutlineDocumentHelper odh(pdf);
+ int pageno = 0;
+ for (std::vector<QPDFPageObjectHelper>::iterator iter = pages.begin();
+ iter != pages.end(); ++iter, ++pageno)
+ {
+ std::list<QPDFOutlineObjectHelper> outlines =
+ odh.getOutlinesForPage((*iter).getObjectHandle().getObjGen());
+ for (std::list<QPDFOutlineObjectHelper>::iterator oiter =
+ outlines.begin();
+ oiter != outlines.end(); ++oiter)
+ {
+ std::cout
+ << "page " << pageno << ": "
+ << (*oiter).getTitle() << " -> "
+ << (*oiter).getDest().unparseResolved() << std::endl;
+ }
+ }
+ }
else
{
throw std::runtime_error(std::string("invalid test ") +