I am merging multiple PDFs together into one PDF and I need to build bookmarks for the final PDF. For example, I have three PDFs: doc1.pdf, doc2.pdf and doc3.pdf, doc1 and doc2 belong to Group1, doc3 belongs to Group2. I need to merge them and have to build nested bookmarks for the resulting PDFs like this:
Group1 doc1 doc2 Group2 doc3
I've made a MergeWithOutlines example that concatenates three existing PDFs in iText 7.
While doing so, I use the
PdfOutline class like this:
PdfOutline helloWorld = rootOutline.addOutline("Hello World"); helloWorld.addDestination(PdfExplicitDestination.createFit(pdfDoc.getPage(page))); page += srcDoc1.getNumberOfPages(); PdfOutline link1 = helloWorld.addOutline("link1"); link1.addDestination(PdfExplicitDestination.createFit(pdfDoc.getPage(page))); page += srcDoc1.getNumberOfPages(); PdfOutline link2 = rootOutline.addOutline("Link 2"); link2.addDestination(PdfExplicitDestination.createFit(pdfDoc.getPage(page)));
rootOutline is the following:
PdfOutline rootOutline = pdfDoc.getOutlines(false);
If you want an entry without a link, remove the line that adds the destination. If you compare this example with the iText 5 version linked below, you'll see it's much easier to achieve your goal with iText 7 than iText 5.
Click this link if you want to see how to answer this question in iText 5.