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