Добавление и удаление закладок PDF в Java
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 в объекте Документ.
- Удалите закладку по названию из коллекции оглавлений.
- Сохраните обновлённый документ.
public static void deleteBookmark(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
document.getOutlines().delete("Child Outline");
document.save(outputFile.toString());
}
}