diff options
Diffstat (limited to 'qpdf/test_driver.cc')
-rw-r--r-- | qpdf/test_driver.cc | 24 |
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 ") + |