在 Java 中添加和删除 PDF 书签
Contents
[
Hide
]
使用文档大纲集合以编程方式管理书签。
添加顶级书签
当文档应仅包含一个顶级大纲条目时,请使用此示例。
- 打开源 PDF Document。
- 创建一个 OutlineItemCollection 并配置其标题、样式和操作。
- 将书签添加到文档大纲并保存文件。
public static void addBookmark(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
OutlineItemCollection pdfOutline = new OutlineItemCollection(document.getOutlines());
pdfOutline.setTitle("Test Outline");
pdfOutline.setItalic(true);
pdfOutline.setBold(true);
pdfOutline.setAction(new GoToAction(document.getPages().get_Item(1)));
document.getOutlines().add(pdfOutline);
document.save(outputFile.toString());
}
}
添加子书签
此示例创建一个父书签并在其下嵌套一个子书签。
- 打开源 PDF Document。
- 创建父书签和子书签 OutlineItemCollection 对象。
- 将子项添加到父项,将父项添加到大纲集合中,并保存文档。
public static void addChildBookmark(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
OutlineItemCollection pdfOutline = new OutlineItemCollection(document.getOutlines());
pdfOutline.setTitle("Parent Outline");
pdfOutline.setItalic(true);
pdfOutline.setBold(true);
OutlineItemCollection pdfChildOutline = new OutlineItemCollection(document.getOutlines());
pdfChildOutline.setTitle("Child Outline");
pdfChildOutline.setItalic(true);
pdfChildOutline.setBold(true);
pdfOutline.add(pdfChildOutline);
document.getOutlines().add(pdfOutline);
document.save(outputFile.toString());
}
}
删除所有书签
当需要从文档中删除整个大纲集合时,请使用此方法。
- 打开源 PDF Document。
- 删除完整的大纲集合。
- 保存已清理的输出文件。
public static void deleteBookmarks(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
document.getOutlines().delete();
document.save(outputFile.toString());
}
}
删除特定书签
当需要删除某个已命名的书签而不清除整个大纲树时,请使用此示例。
- 打开源 PDF Document。
- 从大纲集合中按标题删除书签。
- 保存更新后的文档。
public static void deleteBookmark(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
document.getOutlines().delete("Child Outline");
document.save(outputFile.toString());
}
}