Search in sources :

Example 1 with PdfAnnotation

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);
    }
}
Also used : PdfRedactAnnotation(com.itextpdf.kernel.pdf.annot.PdfRedactAnnotation) PdfArray(com.itextpdf.kernel.pdf.PdfArray) PdfAnnotation(com.itextpdf.kernel.pdf.annot.PdfAnnotation) PdfCleanUpLocation(com.itextpdf.pdfcleanup.PdfCleanUpLocation) PdfString(com.itextpdf.kernel.pdf.PdfString)

Example 2 with PdfAnnotation

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();
}
Also used : PdfAction(com.itextpdf.kernel.pdf.action.PdfAction) PdfWriter(com.itextpdf.kernel.pdf.PdfWriter) PdfLinkAnnotation(com.itextpdf.kernel.pdf.annot.PdfLinkAnnotation) PdfAnnotation(com.itextpdf.kernel.pdf.annot.PdfAnnotation) Rectangle(com.itextpdf.kernel.geom.Rectangle) AreaBreak(com.itextpdf.layout.element.AreaBreak) PdfDocument(com.itextpdf.kernel.pdf.PdfDocument) Document(com.itextpdf.layout.Document) PdfDocument(com.itextpdf.kernel.pdf.PdfDocument) Link(com.itextpdf.layout.element.Link) Paragraph(com.itextpdf.layout.element.Paragraph)

Example 3 with PdfAnnotation

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");
}
Also used : PdfRedactAnnotation(com.itextpdf.kernel.pdf.annot.PdfRedactAnnotation) PdfWriter(com.itextpdf.kernel.pdf.PdfWriter) PdfAnnotation(com.itextpdf.kernel.pdf.annot.PdfAnnotation) Rectangle(com.itextpdf.kernel.geom.Rectangle) PdfString(com.itextpdf.kernel.pdf.PdfString) PdfReader(com.itextpdf.kernel.pdf.PdfReader) PdfString(com.itextpdf.kernel.pdf.PdfString) PdfDocument(com.itextpdf.kernel.pdf.PdfDocument) IntegrationTest(com.itextpdf.test.annotations.type.IntegrationTest) ExtendedITextTest(com.itextpdf.test.ExtendedITextTest) Test(org.junit.Test)

Example 4 with PdfAnnotation

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());
    }
}
Also used : PdfRedactAnnotation(com.itextpdf.kernel.pdf.annot.PdfRedactAnnotation) PdfWriter(com.itextpdf.kernel.pdf.PdfWriter) PdfAnnotation(com.itextpdf.kernel.pdf.annot.PdfAnnotation) Rectangle(com.itextpdf.kernel.geom.Rectangle) PdfString(com.itextpdf.kernel.pdf.PdfString) PdfReader(com.itextpdf.kernel.pdf.PdfReader) PdfString(com.itextpdf.kernel.pdf.PdfString) PdfDocument(com.itextpdf.kernel.pdf.PdfDocument) IOException(java.io.IOException) PdfException(com.itextpdf.kernel.exceptions.PdfException) IntegrationTest(com.itextpdf.test.annotations.type.IntegrationTest) ExtendedITextTest(com.itextpdf.test.ExtendedITextTest) Test(org.junit.Test)

Aggregations

PdfAnnotation (com.itextpdf.kernel.pdf.annot.PdfAnnotation)4 Rectangle (com.itextpdf.kernel.geom.Rectangle)3 PdfDocument (com.itextpdf.kernel.pdf.PdfDocument)3 PdfString (com.itextpdf.kernel.pdf.PdfString)3 PdfWriter (com.itextpdf.kernel.pdf.PdfWriter)3 PdfRedactAnnotation (com.itextpdf.kernel.pdf.annot.PdfRedactAnnotation)3 PdfReader (com.itextpdf.kernel.pdf.PdfReader)2 ExtendedITextTest (com.itextpdf.test.ExtendedITextTest)2 IntegrationTest (com.itextpdf.test.annotations.type.IntegrationTest)2 Test (org.junit.Test)2 PdfException (com.itextpdf.kernel.exceptions.PdfException)1 PdfArray (com.itextpdf.kernel.pdf.PdfArray)1 PdfAction (com.itextpdf.kernel.pdf.action.PdfAction)1 PdfLinkAnnotation (com.itextpdf.kernel.pdf.annot.PdfLinkAnnotation)1 Document (com.itextpdf.layout.Document)1 AreaBreak (com.itextpdf.layout.element.AreaBreak)1 Link (com.itextpdf.layout.element.Link)1 Paragraph (com.itextpdf.layout.element.Paragraph)1 PdfCleanUpLocation (com.itextpdf.pdfcleanup.PdfCleanUpLocation)1 IOException (java.io.IOException)1