Search in sources :

Example 81 with PdfDocument

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

the class CleanUpAnnotationTest method cleanUp.

private void cleanUp(String input, String output, List<PdfCleanUpLocation> cleanUpLocations) throws IOException {
    PdfDocument pdfDocument = new PdfDocument(new PdfReader(input), new PdfWriter(output));
    if (cleanUpLocations == null) {
        PdfCleaner.cleanUpRedactAnnotations(pdfDocument);
    } else {
        PdfCleaner.cleanUp(pdfDocument, cleanUpLocations);
    }
    pdfDocument.close();
}
Also used : PdfWriter(com.itextpdf.kernel.pdf.PdfWriter) PdfReader(com.itextpdf.kernel.pdf.PdfReader) PdfDocument(com.itextpdf.kernel.pdf.PdfDocument)

Example 82 with PdfDocument

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

the class CleanupLicenseEventsTest method autoCleanWithStreamParamsSendsCleanUpEventTest.

@Test
public void autoCleanWithStreamParamsSendsCleanUpEventTest() throws Exception {
    String input = INPUT_PATH + "fontCleanup.pdf";
    String output = OUTPUT_PATH + "autoCleanWithStreamParamsSendsCleanUpEventTest.pdf";
    CompositeCleanupStrategy strategy = new CompositeCleanupStrategy();
    strategy.add(new RegexBasedCleanupStrategy("leonard"));
    PdfCleaner.autoSweepCleanUp(new FileInputStream(input), new FileOutputStream(output), strategy);
    List<ConfirmEvent> events = handler.getEvents();
    Assert.assertEquals(1, events.size());
    Assert.assertEquals(PdfSweepProductEvent.CLEANUP_PDF, events.get(0).getEvent().getEventType());
    try (PdfDocument outDoc = new PdfDocument(new PdfReader(output));
        PdfDocument inputDoc = new PdfDocument(new PdfReader(input))) {
        String expectedProdLine = createExpectedProducerLine(new ConfirmedEventWrapper[] { getCleanUpEvent() }, inputDoc.getDocumentInfo().getProducer());
        Assert.assertEquals(expectedProdLine, outDoc.getDocumentInfo().getProducer());
    }
}
Also used : RegexBasedCleanupStrategy(com.itextpdf.pdfcleanup.autosweep.RegexBasedCleanupStrategy) CompositeCleanupStrategy(com.itextpdf.pdfcleanup.autosweep.CompositeCleanupStrategy) FileOutputStream(java.io.FileOutputStream) ConfirmEvent(com.itextpdf.commons.actions.confirmations.ConfirmEvent) PdfReader(com.itextpdf.kernel.pdf.PdfReader) FileInputStream(java.io.FileInputStream) PdfDocument(com.itextpdf.kernel.pdf.PdfDocument) IntegrationTest(com.itextpdf.test.annotations.type.IntegrationTest) ExtendedITextTest(com.itextpdf.test.ExtendedITextTest) Test(org.junit.Test)

Example 83 with PdfDocument

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

the class PdfAutoSweepTools method getPdfCleanUpLocations.

/**
 * Get all {@link PdfCleanUpLocation} objects from a given {@link PdfPage}.
 *
 * @param page the {@link PdfPage} to be processed
 *
 * @return a List of {@link PdfCleanUpLocation} objects
 */
public List<PdfCleanUpLocation> getPdfCleanUpLocations(PdfPage page) {
    // get document
    PdfDocument doc = page.getDocument();
    // create parser
    PdfDocumentContentParser parser = new PdfDocumentContentParser(doc);
    // get page number
    int pageNr = doc.getPageNumber(page);
    // process document
    List<PdfCleanUpLocation> toClean = new ArrayList<>();
    parser.processContent(pageNr, strategy);
    for (IPdfTextLocation rect : strategy.getResultantLocations()) {
        if (rect != null) {
            toClean.add(new PdfCleanUpLocation(pageNr, rect.getRectangle(), strategy.getRedactionColor(rect)));
        }
    }
    // reset strategy for next iteration
    resetStrategy();
    // return
    return toClean;
}
Also used : PdfDocumentContentParser(com.itextpdf.kernel.pdf.canvas.parser.PdfDocumentContentParser) IPdfTextLocation(com.itextpdf.kernel.pdf.canvas.parser.listener.IPdfTextLocation) PdfCleanUpLocation(com.itextpdf.pdfcleanup.PdfCleanUpLocation) ArrayList(java.util.ArrayList) PdfDocument(com.itextpdf.kernel.pdf.PdfDocument)

Example 84 with PdfDocument

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

the class PdfCleanUpToolTest method autoSweepCleanUpWithAdditionalLocationTest.

@Test
public void autoSweepCleanUpWithAdditionalLocationTest() throws Exception {
    String in = INPUT_PATH + "page229.pdf";
    String out = OUTPUT_PATH + "autoSweepCleanUpWithAdditionalLocationTest.pdf";
    String cmp = INPUT_PATH + "cmp_autoSweepCleanUpWithAdditionalLocationTest.pdf";
    List<PdfCleanUpLocation> cleanUpLocations = new ArrayList<>();
    cleanUpLocations.add(new PdfCleanUpLocation(1, new Rectangle(100, 560, 200, 30)));
    CompositeCleanupStrategy strategy = new CompositeCleanupStrategy();
    strategy.add(new RegexBasedCleanupStrategy(" (T|t)o ").setRedactionColor(ColorConstants.GREEN));
    try (PdfReader reader = new PdfReader(in);
        PdfWriter writer = new PdfWriter(out);
        PdfDocument document = new PdfDocument(reader, writer)) {
        PdfCleaner.autoSweepCleanUp(document, strategy, cleanUpLocations);
    }
    CompareTool cmpTool = new CompareTool();
    String errorMessage = cmpTool.compareVisually(out, cmp, OUTPUT_PATH, "diff_autoSweepCleanUpWithAdditionalLocationTest_");
    if (errorMessage != null) {
        Assert.fail(errorMessage);
    }
}
Also used : RegexBasedCleanupStrategy(com.itextpdf.pdfcleanup.autosweep.RegexBasedCleanupStrategy) PdfWriter(com.itextpdf.kernel.pdf.PdfWriter) CompositeCleanupStrategy(com.itextpdf.pdfcleanup.autosweep.CompositeCleanupStrategy) ArrayList(java.util.ArrayList) Rectangle(com.itextpdf.kernel.geom.Rectangle) CompareTool(com.itextpdf.kernel.utils.CompareTool) CleanUpImagesCompareTool(com.itextpdf.pdfcleanup.util.CleanUpImagesCompareTool) 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)

Example 85 with PdfDocument

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

the class PdfCleanUpToolTest method documentWithoutReaderTest.

@Test
public void documentWithoutReaderTest() {
    PdfDocument pdfDocument = new PdfDocument(new PdfWriter(new ByteArrayOutputStream()));
    List<PdfCleanUpLocation> cleanUpLocations = Arrays.asList(new PdfCleanUpLocation(1, new Rectangle(0, 0, 500, 500)));
    Exception e = Assert.assertThrows(PdfException.class, () -> PdfCleaner.cleanUp(pdfDocument, cleanUpLocations));
    Assert.assertEquals(CleanupExceptionMessageConstant.PDF_DOCUMENT_MUST_BE_OPENED_IN_STAMPING_MODE, e.getMessage());
}
Also used : PdfWriter(com.itextpdf.kernel.pdf.PdfWriter) Rectangle(com.itextpdf.kernel.geom.Rectangle) ByteArrayOutputStream(java.io.ByteArrayOutputStream) 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)205 PdfWriter (com.itextpdf.kernel.pdf.PdfWriter)194 Document (com.itextpdf.layout.Document)131 Paragraph (com.itextpdf.layout.element.Paragraph)110 PdfReader (com.itextpdf.kernel.pdf.PdfReader)64 PdfFont (com.itextpdf.kernel.font.PdfFont)45 ExtendedITextTest (com.itextpdf.test.ExtendedITextTest)45 IntegrationTest (com.itextpdf.test.annotations.type.IntegrationTest)45 Test (org.junit.Test)45 Rectangle (com.itextpdf.kernel.geom.Rectangle)41 HyphenationConfig (com.itextpdf.layout.hyphenation.HyphenationConfig)32 BufferedReader (java.io.BufferedReader)26 FileReader (java.io.FileReader)26 ArrayList (java.util.ArrayList)26 AreaBreak (com.itextpdf.layout.element.AreaBreak)25 Image (com.itextpdf.layout.element.Image)25 Table (com.itextpdf.layout.element.Table)25 CompositeCleanupStrategy (com.itextpdf.pdfcleanup.autosweep.CompositeCleanupStrategy)22 List (java.util.List)22 Cell (com.itextpdf.layout.element.Cell)21