Obtener, actualizar y expandir marcadores PDF en Java
Contents
[
Hide
]
Aspose.PDF for Java expone los marcadores tanto a través del modelo de esquema del documento como de la fachada PdfBookmarkEditor.
Obtener propiedades del marcador
Utilice este ejemplo cuando necesite inspeccionar las entradas de marcadores de nivel superior en el esquema del documento.
- Abra el PDF de origen
Document. - Itere a través de la colección de contornos.
- Lea e imprime los valores del título, estilo y color del 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());
}
}
}
Obtener números de página de marcadores
Este ejemplo usa PdfBookmarkEditor para extraer los títulos de marcadores, niveles, números de página y acciones.
- Vincule el PDF de origen a
PdfBookmarkEditor. - Extraiga la colección de marcadores y recórrala.
- Imprima el nivel, el título, el número de página y la información de acción de 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();
}
}
Obtener marcadores secundarios
Utilice este ejemplo cuando necesite inspeccionar tanto los marcadores de nivel superior como los anidados.
- Abra el PDF de origen
Document. - Itere a través de los marcadores de nivel superior y muestre sus propiedades.
- Detecte los marcadores secundarios, luego itere a través de ellos y muestre sus propiedades.
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());
}
}
}
}
}
Actualizar marcadores
Utilice este ejemplo cuando se deba modificar el título y el estilo de un marcador existente.
- Abra el PDF de origen
Document. - Acceda al elemento de esquema objetivo y a su marcador hijo.
- Actualice las propiedades del marcador y guarde el 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 de forma predeterminada
Utilice este ejemplo cuando el panel de marcadores debe abrirse y mostrar los elementos del esquema ampliados al mostrarse el documento.
- Abra el PDF de origen
Document. - Establezca el modo de página para usar esquemas y marque cada elemento del esquema como abierto.
- Guarde el documento actualizado.
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());
}
}