Anotasi watermark menggunakan Java
Contents
[
Hide
]
Anotasi watermark memungkinkan Anda menempatkan konten overlay yang dapat digunakan kembali pada sebuah halaman sambil tetap mengelolanya melalui koleksi anotasi.
Menambahkan anotasi watermark
Gunakan contoh ini ketika Anda membutuhkan anotasi watermark teks dengan pengaturan font khusus dan opasitas.
- Buka PDF sumber
Document. - Buat sebuah
WatermarkAnnotationdan tambahkan ke halaman. - Konfigurasikan
TextState, teks watermark, dan opasitas, lalu simpan dokumen.
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());
}
}
Mendapatkan anotasi watermark
Contoh ini memindai koleksi anotasi dan mencetak persegi panjang setiap anotasi watermark.
- Buka PDF sumber
Document. - Iterasikan melalui anotasi pada halaman target.
- Filter anotasi berdasarkan
AnnotationType.Watermarkdan cetak persegi panjang mereka.
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());
}
}
}
}
Menghapus anotasi watermark
Gunakan pendekatan ini ketika anotasi watermark yang ada harus dihapus dari dokumen.
- Buka PDF sumber
Document. - Kumpulkan anotasi jenis
AnnotationType.Watermark. - Hapus anotasi yang terkumpul dan simpan file output.
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());
}
}