public static void printBookmark(PDOutlineNode bookmark, String indentation) throws IOException {
   PDOutlineItem current = bookmark.getFirstChild();
   while (current != null) {
     System.out.println(indentation + current.getTitle());
     PDDestination destination = current.getDestination();
     System.out.println("+ " + destination);
     printBookmark(current, indentation + "    ");
     current = current.getNextSibling();
   }
 }
 void extractBookmarkText(PDOutlineNode bookmark) throws SAXException {
   PDOutlineItem current = bookmark.getFirstChild();
   if (current != null) {
     xhtml.startElement("ul");
     while (current != null) {
       xhtml.startElement("li");
       xhtml.characters(current.getTitle());
       xhtml.endElement("li");
       // Recurse:
       extractBookmarkText(current);
       current = current.getNextSibling();
     }
     xhtml.endElement("ul");
   }
 }