Add PDF Bookmarks
This article provides information on how to insert PDF bookmarks when converting a spreadsheet to PDF.
Aspose.Cells allows you to add bookmarks at runtime. PDF bookmarks can drastically improve the navigability of long documents. When adding bookmark links to a PDF document, you can have precise control over the exact view you want, you’re not limited to linking to a page. You can set up the precise view by positioning the target page, and then create the bookmark.
Adding PDF Bookmarks
Please see the following sample code to find out how to add PDF bookmarks. The code generates a simple workbook, specifies PDF bookmarks with destination locations and generates the PDF file.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getDataDir(AddPDFBookmarks.class); | |
// Instantiate a new workbook. | |
Workbook workbook = new Workbook(); | |
// Get the worksheets in the workbook. | |
WorksheetCollection worksheets = workbook.getWorksheets(); | |
// Add a sheet to the workbook. | |
worksheets.add("1"); | |
// Add 2nd sheet to the workbook. | |
worksheets.add("2"); | |
// Add the third sheet. | |
worksheets.add("3"); | |
// Get cells in different worksheets. | |
Cell cellInPage1 = worksheets.get(0).getCells().get("A1"); | |
Cell cellInPage2 = worksheets.get(1).getCells().get("A1"); | |
Cell cellInPage3 = worksheets.get(2).getCells().get("A1"); | |
// Add a value to the A1 cell in the first sheet. | |
cellInPage1.setValue("a"); | |
// Add a value to the A1 cell in the second sheet. | |
cellInPage2.setValue("b"); | |
// Add a value to the A1 cell in the third sheet. | |
cellInPage3.setValue("c"); | |
// Create the PdfBookmark entry object. | |
PdfBookmarkEntry pbeRoot = new PdfBookmarkEntry(); | |
// Set its text. | |
pbeRoot.setText("root"); | |
// Set its destination source page. | |
pbeRoot.setDestination(cellInPage1); | |
// Set the bookmark collapsed. | |
pbeRoot.setOpen(false); | |
// Add a new PdfBookmark entry object. | |
PdfBookmarkEntry subPbe1 = new PdfBookmarkEntry(); | |
// Set its text. | |
subPbe1.setText("1"); | |
// Set its destination source page. | |
subPbe1.setDestination(cellInPage2); | |
// Add another PdfBookmark entry object. | |
PdfBookmarkEntry subPbe2 = new PdfBookmarkEntry(); | |
// Set its text. | |
subPbe2.setText("2"); | |
// Set its destination source page. | |
subPbe2.setDestination(cellInPage3); | |
// Create an array list. | |
ArrayList subEntryList = new ArrayList(); | |
// Add the entry objects to it. | |
subEntryList.add(subPbe1); | |
subEntryList.add(subPbe2); | |
pbeRoot.setSubEntry(subEntryList); | |
// Set the PDF bookmarks. | |
PdfSaveOptions options = new PdfSaveOptions(); | |
options.setBookmark(pbeRoot); | |
// Save the PDF file. | |
workbook.save(dataDir, options); |