use of com.itextpdf.kernel.pdf.annot.PdfAnnotation in project i7j-pdfsweep by itext.
the class PdfAutoSweepTools method tentativeCleanUp.
/**
* Perform tentative cleanup of areas of interest on a given {@link PdfPage}
* This method will add all redaction annotations to the given page, allowing
* the end-user to choose which redactions to keep or delete.
*
* @param pdfPage the page to clean up
*/
public void tentativeCleanUp(PdfPage pdfPage) {
List<PdfCleanUpLocation> cleanUpLocations = getPdfCleanUpLocations(pdfPage);
for (PdfCleanUpLocation loc : cleanUpLocations) {
PdfString title = new PdfString("Annotation:" + annotationNumber);
annotationNumber++;
float[] color = loc.getCleanUpColor().getColorValue();
// convert to annotation
PdfAnnotation redact = new PdfRedactAnnotation(loc.getRegion()).setDefaultAppearance(new PdfString("Helvetica 12 Tf 0 g")).setTitle(title).put(PdfName.Subj, PdfName.Redact).put(PdfName.IC, new PdfArray(new float[] { 0f, 0f, 0f })).put(PdfName.OC, new PdfArray(color));
pdfPage.addAnnotation(redact);
}
}
use of com.itextpdf.kernel.pdf.annot.PdfAnnotation in project i7js-highlevel by itext.
the class C06E09_Annotation method createPdf.
public void createPdf(String dest) throws IOException {
PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
Document document = new Document(pdf);
PdfAction js = PdfAction.createJavaScript("app.alert('Boo!');");
PdfAnnotation la1 = new PdfLinkAnnotation(new Rectangle(0, 0, 0, 0)).setHighlightMode(PdfAnnotation.HIGHLIGHT_INVERT).setAction(js).setBorderStyle(PdfAnnotation.STYLE_UNDERLINE);
Link link1 = new Link("here", (PdfLinkAnnotation) la1);
document.add(new Paragraph().add("Click ").add(link1).add(" if you want to be scared."));
// here we need to add a page to the document beforehand, because we'll need to get its instance for destination creation
pdf.addNewPage();
PdfAnnotation la2 = new PdfLinkAnnotation(new Rectangle(0, 0, 0, 0)).setDestination(PdfExplicitDestination.createFit(pdf.getPage(2))).setHighlightMode(PdfAnnotation.HIGHLIGHT_PUSH).setBorderStyle(PdfAnnotation.STYLE_INSET);
Link link2 = new Link("next page", (PdfLinkAnnotation) la2);
document.add(new Paragraph().add("Go to the ").add(link2).add(" if you're too scared."));
document.add(new AreaBreak(AreaBreakType.NEXT_PAGE));
document.add(new Paragraph().add("There, there, everything is OK."));
document.close();
}
use of com.itextpdf.kernel.pdf.annot.PdfAnnotation in project i7j-pdfsweep by itext.
the class PdfCleanUpToolTest method cleanUpTest45.
@Test
public void cleanUpTest45() throws IOException, InterruptedException {
String input = INPUT_PATH + "emptyPdf.pdf";
String output = OUTPUT_PATH + "emptyPdf.pdf";
String cmp = INPUT_PATH + "cmp_emptyPdf.pdf";
PdfAnnotation redactAnnotation = new PdfRedactAnnotation(new Rectangle(97, 405, 383, 40)).setOverlayText(new PdfString("OverlayTest")).setDefaultAppearance(new PdfString("/Helv 0 Tf 0 g"));
PdfDocument pdfDocument = new PdfDocument(new PdfReader(input), new PdfWriter(output));
pdfDocument.getFirstPage().addAnnotation(redactAnnotation);
PdfCleaner.cleanUpRedactAnnotations(pdfDocument);
pdfDocument.close();
compareByContent(cmp, output, OUTPUT_PATH, "diff_45");
}
use of com.itextpdf.kernel.pdf.annot.PdfAnnotation in project i7j-pdfsweep by itext.
the class PdfCleanUpToolTest method cleanUpTest46.
@Test
public void cleanUpTest46() throws IOException {
String input = INPUT_PATH + "emptyPdf.pdf";
String output = OUTPUT_PATH + "emptyPdf.pdf";
PdfAnnotation redactAnnotation = new PdfRedactAnnotation(new Rectangle(97, 405, 383, 40)).setOverlayText(new PdfString("OverlayTest"));
try (PdfReader reader = new PdfReader(input);
PdfWriter writer = new PdfWriter(output);
PdfDocument pdfDocument = new PdfDocument(reader, writer)) {
pdfDocument.getFirstPage().addAnnotation(redactAnnotation);
Exception e = Assert.assertThrows(PdfException.class, () -> PdfCleaner.cleanUpRedactAnnotations(pdfDocument));
Assert.assertEquals(CleanupExceptionMessageConstant.DEFAULT_APPEARANCE_NOT_FOUND, e.getMessage());
}
}
Aggregations