Adicionar e excluir marcadores de PDF em Java
Contents
[
Hide
]
Use a coleção de contorno de documento para gerenciar marcadores programaticamente.
Adicionar um marcador de nível superior
Use este exemplo quando o documento deve incluir uma única entrada de contorno de nível superior.
- Abra o PDF de origem em um objeto Document.
- Crie um OutlineItemCollection e configure seu título, estilo e ação.
- Adicione o marcador aos contornos do documento e salve o arquivo.
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());
}
}
Adicionar um marcador filho
Este exemplo cria um marcador pai e aninha um marcador filho sob ele.
- Abra o PDF de origem em um objeto Document.
- Crie pai e filho objetos OutlineItemCollection.
- Adicione o filho ao pai, adicione o pai à coleção de contornos e salve o 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());
}
}
Excluir todos os marcadores
Use esta abordagem quando toda a coleção de marcadores deve ser removida do documento.
- Abra o PDF de origem em um objeto Document.
- Exclua a coleção completa de marcadores.
- Salve o arquivo de saída limpo.
public static void deleteBookmarks(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
document.getOutlines().delete();
document.save(outputFile.toString());
}
}
Excluir um marcador específico
Use este exemplo quando um marcador nomeado deve ser removido sem limpar toda a árvore de marcadores.
- Abra o PDF de origem em um objeto Document.
- Exclua o marcador pelo título da coleção de outlines.
- Salve o documento atualizado.
public static void deleteBookmark(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
document.getOutlines().delete("Child Outline");
document.save(outputFile.toString());
}
}