Security Annotations using Java
Contents
[
Hide
]
Mark text for redaction
- Load the PDF and search all pages for the text that should be redacted.
- Create a
RedactionAnnotationfor each matched text fragment and configure its appearance. - Add the redaction annotations to their pages and save the document.
public static void markTextRedaction(Path inputFile, Path outputFile, String searchTerm) {
try (Document document = new Document(inputFile.toString())) {
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber(searchTerm);
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.setTextSearchOptions(textSearchOptions);
document.getPages().accept(textFragmentAbsorber);
for (TextFragment textFragment : textFragmentAbsorber.getTextFragments()) {
Page page = textFragment.getPage();
Rectangle annotationRectangle = textFragment.getRectangle();
RedactionAnnotation annotation = new RedactionAnnotation(page, annotationRectangle);
annotation.setFillColor(Color.getGray());
annotation.setBorderColor(Color.getRed());
annotation.setColor(Color.getWhite());
annotation.setOverlayText("REDACTED");
annotation.setTextAlignment(HorizontalAlignment.Center);
annotation.setRepeat(true);
page.getAnnotations().add(annotation, true);
}
document.save(outputFile.toString());
}
}