使用命名目的地添加PDF书签

可能的使用场景

命名目标是PDF中特殊类型的书签或链接,不依赖于PDF页面。这意味着,如果PDF中添加或删除页面,书签可能会失效,但命名目标将保持完整。要创建命名目标,请设置 PdfBookmarkEntry.DestinationName 属性。

使用命名目标添加PDF书签

请参阅以下示例代码,其源Excel文件,和输出PDF文件。屏幕截图显示输出PDF内的书签和命名目标。屏幕截图还描述了如何查看命名目标以及您需要专业版本的Acrobat Reader。

todo:image_alt_text

示例代码

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
//Load source Excel file
Workbook wb = new Workbook(srcDir + "samplePdfBookmarkEntry_DestinationName.xlsx");
//Access first worksheet
Worksheet ws = wb.getWorksheets().get(0);
//Access cell C5
Cell cell = ws.getCells().get("C5");
//Create Bookmark and Destination for this cell
PdfBookmarkEntry bookmarkEntry = new PdfBookmarkEntry();
bookmarkEntry.setText("Text");
bookmarkEntry.setDestination(cell);
bookmarkEntry.setDestinationName("AsposeCells--" + cell.getName());
//Access cell G56
cell = ws.getCells().get("G56");
//Create Sub-Bookmark and Destination for this cell
PdfBookmarkEntry subbookmarkEntry1 = new PdfBookmarkEntry();
subbookmarkEntry1.setText("Text1");
subbookmarkEntry1.setDestination(cell);
subbookmarkEntry1.setDestinationName("AsposeCells--" + cell.getName());
//Access cell L4
cell = ws.getCells().get("L4");
//Create Sub-Bookmark and Destination for this cell
PdfBookmarkEntry subbookmarkEntry2 = new PdfBookmarkEntry();
subbookmarkEntry2.setText("Text2");
subbookmarkEntry2.setDestination(cell);
subbookmarkEntry2.setDestinationName("AsposeCells--" + cell.getName());
//Add Sub-Bookmarks in list
ArrayList list = new ArrayList();
list.add(subbookmarkEntry1);
list.add(subbookmarkEntry2);
//Assign Sub-Bookmarks list to Bookmark Sub-Entry
bookmarkEntry.setSubEntry(list);
//Create PdfSaveOptions and assign Bookmark to it
PdfSaveOptions opts = new PdfSaveOptions();
opts.setBookmark(bookmarkEntry);
//Save the workbook in Pdf format with given pdf save options
wb.save(outDir + "outputPdfBookmarkEntry_DestinationName.pdf", opts);