Получение, обновление и развертывание PDF‑закладок в Java
Contents
[
Hide
]
Aspose.PDF for Java предоставляет закладки как через модель оглавления документа, так и через фасад PdfBookmarkEditor.
Получение свойств закладки
Используйте этот пример, когда необходимо просмотреть записи закладок верхнего уровня в оглавлении документа.
- Откройте исходный PDF в объекте Document.
- Переберите коллекцию оглавлений.
- Прочитайте и выведите названия закладок, стили и значения цвета.
public static void getBookmarks(Path inputFile) {
try (Document document = new Document(inputFile.toString())) {
for (int i = 1; i <= document.getOutlines().size(); i++) {
OutlineItemCollection outlineItem = document.getOutlines().get_Item(i);
System.out.println(outlineItem.getTitle());
System.out.println(outlineItem.getItalic());
System.out.println(outlineItem.getBold());
System.out.println(outlineItem.getColor());
}
}
}
Получение номеров страниц закладок
В этом примере используется PdfBookmarkEditor для извлечения заголовки закладок, уровни, номера страниц и действия.
- Привяжите исходный PDF к PdfBookmarkEditor.
- Извлеките коллекцию закладок и пройдитесь по ней.
- Выведите уровень, заголовок, номер страницы и информацию о действии для каждой закладки.
public static void getBookmarkPageNumber(Path inputFile) {
PdfBookmarkEditor bookmarkEditor = new PdfBookmarkEditor();
try {
bookmarkEditor.bindPdf(inputFile.toString());
for (Bookmark bookmark : bookmarkEditor.extractBookmarks()) {
String levelSeparator = "";
for (int i = 0; i < bookmark.getLevel(); i++) {
levelSeparator += "----";
}
System.out.println(levelSeparator + " Title: " + bookmark.getTitle());
System.out.println(levelSeparator + " Page Number: " + bookmark.getPageNumber());
System.out.println(levelSeparator + " Page Action: " + bookmark.getAction());
}
} finally {
bookmarkEditor.close();
}
}
Получение дочерних закладок
Используйте этот пример, когда нужно проанализировать как элементы верхнего уровня, так и вложенные элементы оглавления.
- Откройте исходный PDF в объекте Document.
- Пройдите по элементам верхнего уровня и выведите их свойства.
- Обнаружьте дочерние закладки, затем пройдите по ним и выведите их свойства.
public static void getChildBookmarks(Path inputFile) {
try (Document document = new Document(inputFile.toString())) {
for (int i = 1; i <= document.getOutlines().size(); i++) {
OutlineItemCollection outlineItem = document.getOutlines().get_Item(i);
System.out.println(outlineItem.getTitle());
System.out.println(outlineItem.getItalic());
System.out.println(outlineItem.getBold());
System.out.println(outlineItem.getColor());
int count = outlineItem.size();
if (count > 0) {
System.out.println("Child Bookmarks");
for (int j = 1; j <= outlineItem.size(); j++) {
OutlineItemCollection childOutlineItem = outlineItem.get_Item(j);
System.out.println(childOutlineItem.getTitle());
System.out.println(childOutlineItem.getItalic());
System.out.println(childOutlineItem.getBold());
System.out.println(childOutlineItem.getColor());
}
}
}
}
}
Обновление закладок
Используйте этот пример, когда необходимо изменить существующее название закладки и её стиль.
- Откройте исходный PDF в объекте Document.
- Получите доступ к целевому элементу оглавления и его дочерней закладке.
- Обновите свойства закладки и сохраните документ.
public static void updateBookmarks(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
OutlineItemCollection outline = document.getOutlines().get_Item(1);
OutlineItemCollection childOutline = outline.get_Item(1);
childOutline.setTitle("Updated Outline");
childOutline.setItalic(true);
childOutline.setBold(true);
document.save(outputFile.toString());
}
}
Развертывание закладок по умолчанию
Используйте этот пример, когда панель закладок должна открываться и показывать развернутые элементы оглавления при отображении документа.
- Откройте исходный PDF в объекте Document.
- Установите режим страницы на использование оглавления и пометьте каждый элемент оглавления как открытый.
- Сохраните обновлённый документ.
public static void expandedBookmarks(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
document.setPageMode(PageMode.UseOutlines);
for (int i = 1; i <= document.getOutlines().size(); i++) {
OutlineItemCollection item = document.getOutlines().get_Item(i);
item.setOpen(true);
}
document.save(outputFile.toString());
}
}