Agregar y eliminar marcadores PDF en Java
Contents
[
Hide
]
Utilice la colección del esquema del documento para gestionar los marcadores programáticamente.
Agregar un marcador de nivel superior
Utilice este ejemplo cuando el documento debe incluir una única entrada de esquema de nivel superior.
- Abra el PDF de origen
Document. - Cree un
OutlineItemCollectiony configure su título, estilo y acción. - Agregue el marcador a los contornos del documento y guarde el archivo.
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());
}
}
Agregar un marcador hijo
Este ejemplo crea un marcador principal y anida un marcador hijo debajo de él.
- Abra el PDF de origen
Document. - Cree padre y hijo
OutlineItemCollectionobjetos. - Agregue el hijo al padre, agrega el padre a la colección de contorno y guarde el documento.
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());
}
}
Eliminar todos los marcadores
Utilice este enfoque cuando se deba eliminar toda la colección de marcadores del documento.
- Abra el PDF de origen
Document. - Elimine la colección completa de marcadores.
- Guarde el archivo de salida limpio.
public static void deleteBookmarks(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
document.getOutlines().delete();
document.save(outputFile.toString());
}
}
Eliminar un marcador específico
Utilice este ejemplo cuando se deba eliminar un marcador con nombre sin eliminar todo el árbol de contornos.
- Abra el PDF de origen
Document. - Elimine el marcador por título de la colección de esquemas.
- Guarde el documento actualizado.
public static void deleteBookmark(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
document.getOutlines().delete("Child Outline");
document.save(outputFile.toString());
}
}