Search in sources :

Example 51 with PdfReader

use of com.itextpdf.kernel.pdf.PdfReader in project i7j-pdfsweep by itext.

the class FilteredImagesCacheTest method filteredImagesCacheTest02.

@Test
public void filteredImagesCacheTest02() throws IOException, InterruptedException {
    // reusing when several clean areas (different on different pages)
    String input = inputPath + "multipleImageXObjectOccurrences.pdf";
    String output = outputPath + "filteredImagesCacheTest02.pdf";
    String cmp = inputPath + "cmp_filteredImagesCacheTest02.pdf";
    PdfDocument pdfDocument = new PdfDocument(new PdfReader(input), new PdfWriter(output));
    List<PdfCleanUpLocation> cleanUpLocations = new ArrayList<>();
    for (int i = 0; i < pdfDocument.getNumberOfPages(); i += 5) {
        cleanUpLocations.add(new PdfCleanUpLocation(i + 1, new Rectangle(350, 450, 300, 40)));
        cleanUpLocations.add(new PdfCleanUpLocation(i + 1, new Rectangle(300, 400, 50, 150)));
    }
    for (int i = 1; i < pdfDocument.getNumberOfPages(); i += 5) {
        cleanUpLocations.add(new PdfCleanUpLocation(i + 1, new Rectangle(350, 450, 300, 20)));
        cleanUpLocations.add(new PdfCleanUpLocation(i + 1, new Rectangle(350, 490, 300, 20)));
        cleanUpLocations.add(new PdfCleanUpLocation(i + 1, new Rectangle(350, 530, 300, 20)));
    }
    for (int i = 3; i < pdfDocument.getNumberOfPages(); i += 5) {
        cleanUpLocations.add(new PdfCleanUpLocation(i + 1, new Rectangle(300, 400, 50, 150)));
        cleanUpLocations.add(new PdfCleanUpLocation(i + 1, new Rectangle(350, 400, 50, 150)));
    }
    for (int i = 4; i < pdfDocument.getNumberOfPages(); i += 5) {
        cleanUpLocations.add(new PdfCleanUpLocation(i + 1, new Rectangle(350, 450, 300, 20)));
        cleanUpLocations.add(new PdfCleanUpLocation(i + 1, new Rectangle(350, 450, 300, 20)));
        cleanUpLocations.add(new PdfCleanUpLocation(i + 1, new Rectangle(350, 450, 300, 20)));
    }
    cleanUp(pdfDocument, cleanUpLocations);
    compareByContent(cmp, output, outputPath, "1.2");
    assertNumberXObjects(output, 5);
}
Also used : PdfWriter(com.itextpdf.kernel.pdf.PdfWriter) ArrayList(java.util.ArrayList) Rectangle(com.itextpdf.kernel.geom.Rectangle) PdfReader(com.itextpdf.kernel.pdf.PdfReader) PdfDocument(com.itextpdf.kernel.pdf.PdfDocument) IntegrationTest(com.itextpdf.test.annotations.type.IntegrationTest) ExtendedITextTest(com.itextpdf.test.ExtendedITextTest) Test(org.junit.Test)

Example 52 with PdfReader

use of com.itextpdf.kernel.pdf.PdfReader in project i7j-pdfsweep by itext.

the class PdfCleanUpToolTest method cleanUpDocWithoutWriterTest.

@Test
public void cleanUpDocWithoutWriterTest() throws IOException {
    PdfDocument pdfDoc = new PdfDocument(new PdfReader(INPUT_PATH + "emptyPdf.pdf"));
    Exception e = Assert.assertThrows(PdfException.class, () -> PdfCleaner.cleanUpRedactAnnotations(pdfDoc));
    Assert.assertEquals(CleanupExceptionMessageConstant.PDF_DOCUMENT_MUST_BE_OPENED_IN_STAMPING_MODE, e.getMessage());
}
Also used : PdfReader(com.itextpdf.kernel.pdf.PdfReader) 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)

Example 53 with PdfReader

use of com.itextpdf.kernel.pdf.PdfReader in project i7j-pdfsweep by itext.

the class PdfCleanUpToolTest method redactPdfWithNoninvertibleMatrix.

@Test
@LogMessages(messages = @LogMessage(messageTemplate = CleanUpLogMessageConstant.FAILED_TO_PROCESS_A_TRANSFORMATION_MATRIX, count = 2))
public void redactPdfWithNoninvertibleMatrix() throws IOException, InterruptedException {
    String input = INPUT_PATH + "noninvertibleMatrix.pdf";
    String output = OUTPUT_PATH + "redactPdfWithNoninvertibleMatrix.pdf";
    String cmp = INPUT_PATH + "cmp_redactPdfWithNoninvertibleMatrix.pdf";
    CompositeCleanupStrategy strategy = new CompositeCleanupStrategy();
    strategy.add(new RegexBasedCleanupStrategy("Hello World!").setRedactionColor(ColorConstants.GREEN));
    PdfDocument pdf = new PdfDocument(new PdfReader(input), new PdfWriter(output));
    // sweep
    PdfCleaner.autoSweepCleanUp(pdf, strategy);
    pdf.close();
    // compare
    compareByContent(cmp, output, OUTPUT_PATH, "diff_redactPdfWithNoninvertibleMatrix_");
}
Also used : RegexBasedCleanupStrategy(com.itextpdf.pdfcleanup.autosweep.RegexBasedCleanupStrategy) PdfWriter(com.itextpdf.kernel.pdf.PdfWriter) CompositeCleanupStrategy(com.itextpdf.pdfcleanup.autosweep.CompositeCleanupStrategy) PdfString(com.itextpdf.kernel.pdf.PdfString) PdfReader(com.itextpdf.kernel.pdf.PdfReader) PdfDocument(com.itextpdf.kernel.pdf.PdfDocument) IntegrationTest(com.itextpdf.test.annotations.type.IntegrationTest) ExtendedITextTest(com.itextpdf.test.ExtendedITextTest) Test(org.junit.Test) LogMessages(com.itextpdf.test.annotations.LogMessages)

Example 54 with PdfReader

use of com.itextpdf.kernel.pdf.PdfReader 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 55 with PdfReader

use of com.itextpdf.kernel.pdf.PdfReader 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

PdfDocument (com.itextpdf.kernel.pdf.PdfDocument)64 PdfReader (com.itextpdf.kernel.pdf.PdfReader)64 PdfWriter (com.itextpdf.kernel.pdf.PdfWriter)56 ExtendedITextTest (com.itextpdf.test.ExtendedITextTest)43 IntegrationTest (com.itextpdf.test.annotations.type.IntegrationTest)43 Test (org.junit.Test)43 Rectangle (com.itextpdf.kernel.geom.Rectangle)22 CompositeCleanupStrategy (com.itextpdf.pdfcleanup.autosweep.CompositeCleanupStrategy)22 RegexBasedCleanupStrategy (com.itextpdf.pdfcleanup.autosweep.RegexBasedCleanupStrategy)20 PdfString (com.itextpdf.kernel.pdf.PdfString)13 ConfirmEvent (com.itextpdf.commons.actions.confirmations.ConfirmEvent)11 ArrayList (java.util.ArrayList)11 ByteArrayOutputStream (com.itextpdf.io.source.ByteArrayOutputStream)9 ByteArrayInputStream (java.io.ByteArrayInputStream)9 CleanUpImagesCompareTool (com.itextpdf.pdfcleanup.util.CleanUpImagesCompareTool)7 CompareTool (com.itextpdf.kernel.utils.CompareTool)5 Document (com.itextpdf.layout.Document)5 PdfAutoSweepTools (com.itextpdf.pdfcleanup.autosweep.PdfAutoSweepTools)5 PdfCleanUpLocation (com.itextpdf.pdfcleanup.PdfCleanUpLocation)4 FileInputStream (java.io.FileInputStream)4