添加带有命名目标的 PDF 书签

可能的使用场景

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

添加带有命名目标的 PDF 书签

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

待办事项:图片_替代_文本

示例代码

// 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);