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);
}
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());
}
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_");
}
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");
}
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());
}
}
Aggregations