From c29d39cc38831f15e3034aa325068515acf10ad7 Mon Sep 17 00:00:00 2001 From: Kilian Schuettler Date: Thu, 1 Feb 2024 12:07:40 +0100 Subject: [PATCH] RED-8385: add functionality to ignore specific marked contents --- .../InvisibleElementRemovalService.java | 90 +++++++++++++++--- .../commons/MarkedContentStack.java | 73 ++++++++++++++ .../InvisibleElementRemovalServiceTest.java | 23 +++++ .../resources/files/singlePageWithOcrText.pdf | Bin 0 -> 58859 bytes 4 files changed, 172 insertions(+), 14 deletions(-) create mode 100644 src/main/java/com/iqser/red/pdftronlogic/commons/MarkedContentStack.java create mode 100644 src/test/resources/files/singlePageWithOcrText.pdf diff --git a/src/main/java/com/iqser/red/pdftronlogic/commons/InvisibleElementRemovalService.java b/src/main/java/com/iqser/red/pdftronlogic/commons/InvisibleElementRemovalService.java index e1f64ec..b9c3abb 100644 --- a/src/main/java/com/iqser/red/pdftronlogic/commons/InvisibleElementRemovalService.java +++ b/src/main/java/com/iqser/red/pdftronlogic/commons/InvisibleElementRemovalService.java @@ -8,6 +8,7 @@ import java.awt.geom.Rectangle2D; import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Set; import java.util.TreeSet; @@ -57,11 +58,11 @@ public class InvisibleElementRemovalService { * @param out OutputStream to write the resulting file to **/ @SneakyThrows - public void removeInvisibleElements(InputStream pdfFile, OutputStream out, boolean delta, boolean removePaths) { + public void removeInvisibleElements(InputStream pdfFile, OutputStream out, boolean delta, boolean removePaths, Set markedContentToIgnore) { PDFDoc pdfDoc = new PDFDoc(pdfFile); - execute(pdfDoc, delta, removePaths); + execute(pdfDoc, delta, removePaths, markedContentToIgnore); try { pdfDoc.save(out, SDFDoc.SaveMode.LINEARIZED, null); @@ -76,15 +77,44 @@ public class InvisibleElementRemovalService { /** - * This method is equal to {@link #removeInvisibleElements(InputStream, OutputStream, boolean, boolean)}, with removePaths == true. + * This method is equal to {@link #removeInvisibleElements(InputStream, OutputStream, boolean, boolean, Set)}, with removePaths == true and markedContentsToIgnore == emptySet(). */ @SneakyThrows public void removeInvisibleElements(InputStream pdfFile, OutputStream out, boolean delta) { - removeInvisibleElements(pdfFile, out, delta, true); + removeInvisibleElements(pdfFile, out, delta, true, Collections.emptySet()); } + /** + * This method is equal to {@link #removeInvisibleElements(InputStream, OutputStream, boolean, boolean, Set)}, with removePaths == true and markedContentsToIgnore = Set.of("KNECON_OCR"). + */ + public void removeInvisibleElementsButKeepOcrText(InputStream pdfFile, OutputStream out, boolean delta) { + + removeInvisibleElements(pdfFile, out, delta, true, Set.of("KNECON_OCR")); + } + + + /** + * This method is equal to {@link #removeInvisibleElements(InputStream, OutputStream, boolean, boolean, Set)}, with markedContentsToIgnore == emptySet(). + */ + @SneakyThrows + public void removeInvisibleElements(InputStream pdfFile, OutputStream out, boolean delta, boolean removePaths) { + + removeInvisibleElements(pdfFile, out, delta, removePaths, Collections.emptySet()); + + } + + + /** + * This method is similar to {@link #removeInvisibleElements(InputStream, OutputStream, boolean, boolean, Set)}, just with a PDFDoc. + */ + @SneakyThrows + public void removeInvisibleElements(PDFDoc pdfDoc, boolean delta, boolean removePaths, Set markedContentToIgnore) { + + execute(pdfDoc, delta, removePaths, markedContentToIgnore); + } + /** * This method is similar to {@link #removeInvisibleElements(InputStream, OutputStream, boolean, boolean)}, just with a PDFDoc. @@ -92,22 +122,22 @@ public class InvisibleElementRemovalService { @SneakyThrows public void removeInvisibleElements(PDFDoc pdfDoc, boolean delta, boolean removePaths) { - execute(pdfDoc, delta, removePaths); + execute(pdfDoc, delta, removePaths, Collections.emptySet()); } /** - * This method is equal to {@link #removeInvisibleElements(PDFDoc, boolean, boolean)}, with removePaths == true. + * This method is equal to {@link #removeInvisibleElements(PDFDoc, boolean)}, just with a PDFDoc. */ @SneakyThrows public void removeInvisibleElements(PDFDoc pdfDoc, boolean delta) { - execute(pdfDoc, delta, true); + execute(pdfDoc, delta, true, Collections.emptySet()); } @SneakyThrows - private void execute(PDFDoc pdfDoc, boolean delta, boolean removePaths) { + private void execute(PDFDoc pdfDoc, boolean delta, boolean removePaths, Set markedContentToIgnore) { log.info("Start removing invisible Elements"); ElementWriter writer = new ElementWriter(); @@ -123,16 +153,19 @@ public class InvisibleElementRemovalService { InvisibleElementRemovalContext context = InvisibleElementRemovalContext.builder() .reader(reader) .clippingPathStack(new ClippingPathStack(page.getMediaBox())) + .markedContentStack(new MarkedContentStack()) .removePaths(removePaths) .delta(delta) .overlappedElements(new ArrayList<>()) .visibleElements(new ArrayList<>()) .visitedXObjIds(visitedXObjIds) + .markedContentToIgnore(markedContentToIgnore) .build(); removeClippedElementsAndInvisibleTextAndRememberOverlappedElements(page, writer, context); context.visitedXObjIds().clear(); + context.markedContentStack().clear(); removeOverlappedElements(page, writer, context); @@ -149,6 +182,7 @@ public class InvisibleElementRemovalService { InvisibleElementRemovalContext context) throws PDFNetException { context.reader().begin(page); + context.markedContentStack().clear(); writer.begin(page, ElementWriter.e_replacement, false, true, page.getResourceDict()); processElements(writer, context); writer.end(); @@ -158,7 +192,13 @@ public class InvisibleElementRemovalService { private void processElements(ElementWriter writer, InvisibleElementRemovalContext context) throws PDFNetException { - for (Element element = context.reader().next(); element != null; element = context.reader().next()) + for (Element element = context.reader().next(); element != null; element = context.reader().next()) { + + if (context.markedContentStack().currentMarkedContentContainsAny(context.markedContentToIgnore()) && element.getType() != Element.e_marked_content_end) { + writer.writeElement(element); + continue; + } + switch (element.getType()) { case Element.e_image, Element.e_inline_image -> processImages(element, writer, context); case Element.e_text -> processText(element, writer, context); @@ -172,8 +212,17 @@ public class InvisibleElementRemovalService { context.clippingPathStack().leaveGState(); writer.writeElement(element); } + case Element.e_marked_content_begin -> { + context.markedContentStack().enterMarkedContent(element.getMCTag().getName()); + writer.writeElement(element); + } + case Element.e_marked_content_end -> { + context.markedContentStack().leaveMarkedContent(); + writer.writeElement(element); + } default -> writer.writeElement(element); } + } } @@ -330,10 +379,7 @@ public class InvisibleElementRemovalService { private void calculateOverlapsForLinePath(InvisibleElementRemovalContext context, GeneralPath linePath) { - List currentOverlappedElements = context.visibleElements() - .stream() - .filter(features -> almostContains(linePath, features.getBoundingBox())) - .toList(); + List currentOverlappedElements = context.visibleElements().stream().filter(features -> almostContains(linePath, features.getBoundingBox())).toList(); context.overlappedElements().addAll(currentOverlappedElements); context.visibleElements().removeAll(currentOverlappedElements); } @@ -361,6 +407,12 @@ public class InvisibleElementRemovalService { private void processOverlappedElements(ElementWriter writer, InvisibleElementRemovalContext context) throws PDFNetException { for (Element element = context.reader().next(); element != null; element = context.reader().next()) { + + if (context.markedContentStack().currentMarkedContentContainsAny(context.markedContentToIgnore()) && element.getType() != Element.e_marked_content_end) { + writer.writeElement(element); + continue; + } + switch (element.getType()) { case Element.e_form -> processFormOverlappedElements(writer, element, context); case Element.e_image, Element.e_inline_image, Element.e_text -> removeOverlappedElement(writer, context, element); @@ -371,6 +423,14 @@ public class InvisibleElementRemovalService { writer.writeElement(element); } } + case Element.e_marked_content_begin -> { + context.markedContentStack().enterMarkedContent(element.getMCTag().getName()); + writer.writeElement(element); + } + case Element.e_marked_content_end -> { + context.markedContentStack().leaveMarkedContent(); + writer.writeElement(element); + } default -> writer.writeElement(element); } } @@ -532,9 +592,11 @@ public class InvisibleElementRemovalService { boolean delta, ElementReader reader, ClippingPathStack clippingPathStack, + MarkedContentStack markedContentStack, List overlappedElements, List visibleElements, - Set visitedXObjIds) { + Set visitedXObjIds, + Set markedContentToIgnore) { } diff --git a/src/main/java/com/iqser/red/pdftronlogic/commons/MarkedContentStack.java b/src/main/java/com/iqser/red/pdftronlogic/commons/MarkedContentStack.java new file mode 100644 index 0000000..20747fb --- /dev/null +++ b/src/main/java/com/iqser/red/pdftronlogic/commons/MarkedContentStack.java @@ -0,0 +1,73 @@ +package com.iqser.red.pdftronlogic.commons; + +import java.util.Deque; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.Set; + +public class MarkedContentStack { + + Deque markedContentStack = new LinkedList<>(); + + + public void enterMarkedContent(String name) { + + markedContentStack.push(new MarkedContent(name)); + } + + + public void leaveMarkedContent() { + + markedContentStack.pop(); + } + + + public String currentMarkedContent() { + + if (markedContentStack.isEmpty()) { + return ""; + } + return markedContentStack.peek().name(); + } + + + public boolean currentMarkedContentContains(String name) { + + Iterator markedContentIterator = markedContentStack.descendingIterator(); + while (markedContentIterator.hasNext()) { + var markedContent = markedContentIterator.next(); + if (markedContent.name().equals(name)) { + return true; + } + } + return false; + } + + + public boolean currentMarkedContentContainsAny(Set names) { + + if (markedContentStack.isEmpty()) { + return false; + } + Iterator markedContentIterator = markedContentStack.descendingIterator(); + while (markedContentIterator.hasNext()) { + var markedContent = markedContentIterator.next(); + if (names.contains(markedContent.name())) { + return true; + } + } + return false; + } + + + public void clear() { + + markedContentStack.clear(); + } + + + private record MarkedContent(String name) { + + } + +} diff --git a/src/test/java/com/iqser/red/pdftronlogic/commons/InvisibleElementRemovalServiceTest.java b/src/test/java/com/iqser/red/pdftronlogic/commons/InvisibleElementRemovalServiceTest.java index d817678..135385b 100644 --- a/src/test/java/com/iqser/red/pdftronlogic/commons/InvisibleElementRemovalServiceTest.java +++ b/src/test/java/com/iqser/red/pdftronlogic/commons/InvisibleElementRemovalServiceTest.java @@ -152,4 +152,27 @@ class InvisibleElementRemovalServiceTest { } + + @Test + @SneakyThrows + void removeInvisibleElementsButKeepOCRText() { + + String fileName = "files/singlePageWithOcrText.pdf"; + String resultFileName = OsUtils.createTmpFileName(fileName, "INVISIBLE_REMOVAL"); + String deltaResultFileName = OsUtils.createTmpFileName(fileName, "INVISIBLE_REMOVAL_DELTA"); + + try (var in = this.getClass().getClassLoader().getResourceAsStream(fileName); var out = new FileOutputStream(resultFileName)) { + invisibleElementRemovalService.removeInvisibleElementsButKeepOcrText(in, out, false); + } + + try (var in = this.getClass().getClassLoader().getResourceAsStream(fileName); var out = new FileOutputStream(deltaResultFileName)) { + invisibleElementRemovalService.removeInvisibleElementsButKeepOcrText(in, out, true); + } + try (var in = new FileInputStream(resultFileName)) { + String result = PdfTextExtraction.extractAllTextFromDocument(in); + assertThat(result).contains("TABLE 17:", "Intergroup comparison oftotal litter", "TABLE 20:"); + } + + } + } \ No newline at end of file diff --git a/src/test/resources/files/singlePageWithOcrText.pdf b/src/test/resources/files/singlePageWithOcrText.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b7955669d317707572521733d23d504dd566a298 GIT binary patch literal 58859 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 T_DeQpq%sV_CLw_}#