Obter, atualizar e expandir marcadores PDF em Java
Contents
[
Hide
]
Aspose.PDF for Java expõe marcadores tanto através do modelo de contorno do documento quanto PdfBookmarkEditor fachada.
Obter propriedades do marcador
Use este exemplo quando precisar inspecionar as entradas de marcadores de nível superior no contorno do documento.
- Abra o PDF de origem em um objeto Document.
- Itere pela coleção de contornos.
- Leia e imprima os valores de título, estilo e cor do marcador.
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());
}
}
}
Obter números de página dos marcadores
Este exemplo usa PdfBookmarkEditor para extrair títulos de marcadores, níveis, números de página e ações.
- Vincule o PDF de origem a PdfBookmarkEditor.
- Extraia a coleção de marcadores e itere sobre ela.
- Imprima o nível, título, número da página e informações de ação para cada marcador.
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();
}
}
Obter marcadores filhos
Use este exemplo quando precisar inspecionar itens de contorno de nível superior e aninhados.
- Abra o PDF de origem em um objeto Document.
- Itere pelos contornos de nível superior e imprima suas propriedades.
- Detecte marcadores filhos, depois itere por eles e imprima suas propriedades.
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());
}
}
}
}
}
Atualizar marcadores
Use este exemplo quando o título e o estilo de um marcador existente devem ser modificados.
- Abra o PDF de origem em um objeto Document.
- Acesse o item de contorno alvo e seu marcador filho.
- Atualize as propriedades do marcador e salve o documento.
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());
}
}
Expandir marcadores por padrão
Use este exemplo quando o painel de marcadores deve abrir e mostrar itens de contorno expandido quando o documento for exibido.
- Abra o PDF de origem em um objeto Document.
- Defina o modo de página para usar contornos e marque cada item de contorno como aberto.
- Salve o documento atualizado.
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());
}
}