How to merge PDFs and add bookmarks?
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
Posted on StackOverflow on May 15, 2014 by user3642526
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)));
Where rootOutline
is the following:
PdfOutline rootOutline = pdfDoc.getOutlines(false);
If you want an entry without a link, remove the line that adds the destination. As you see, it’s much more easier to achieve your goal with iText 7 than iText 5.
Click How to merge PDFs and add bookmarks? if you want to see how to answer this question in iText 5.