Anotações de marca d'água usando Java
Contents
[
Hide
]
Anotações de marca d’água permitem que você coloque conteúdo sobreposto reutilizável em uma página, enquanto ainda o gerencia por meio da coleção de anotações.
Adicionar uma anotação de marca d’água
Use este exemplo quando precisar de uma anotação de marca d’água de texto com configurações de Font personalizadas e opacidade.
- Abra o PDF de origem em um objeto Document.
- Crie um WatermarkAnnotation e adicione-o à página.
- Configure o TextState, texto da marca d’água e opacidade, então salve o documento.
public static void watermarkAdd(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
Page page = document.getPages().get_Item(1);
WatermarkAnnotation watermarkAnnotation = new WatermarkAnnotation(
page,
new Rectangle(100, 100, 400, 200, true));
page.getAnnotations().add(watermarkAnnotation);
TextState textState = new TextState();
textState.setForegroundColor(Color.getBlue());
textState.setFontSize(25);
textState.setFont(FontRepository.findFont("Arial"));
watermarkAnnotation.setOpacity(0.5);
watermarkAnnotation.setTextAndState(new String[]{"HELLO", "Line 1", "Line 2"}, textState);
document.save(outputFile.toString());
}
}
Obter anotações de marca d’água
Este exemplo analisa a coleção de anotações e imprime o retângulo de cada anotação de marca d’água.
- Abra o PDF de origem em um objeto Document.
- Itere através das anotações na página de destino.
- Filtre anotações por AnnotationType.
Watermarke imprima seus retângulos.
public static void watermarkGet(Path inputFile) {
try (Document document = new Document(inputFile.toString())) {
for (Annotation a : document.getPages().get_Item(1).getAnnotations()) {
if (a.getAnnotationType() == AnnotationType.Watermark) {
System.out.println(a.getRect());
}
}
}
}
Excluir anotações de marca d’água
Use esta abordagem quando as anotações de marca d’água existentes devem ser removidas do documento.
- Abra o PDF de origem em um objeto Document.
- Colete anotações do tipo AnnotationType.
Watermark. - Exclua as anotações coletadas e salve o arquivo de saída.
public static void watermarkDelete(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
List<Annotation> toDelete = new ArrayList<>();
for (Annotation a : document.getPages().get_Item(1).getAnnotations()) {
if (a.getAnnotationType() == AnnotationType.Watermark) {
toDelete.add(a);
}
}
for (Annotation a : toDelete) {
document.getPages().get_Item(1).getAnnotations().delete(a);
}
document.save(outputFile.toString());
}
}