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 edb9b29..8851e0d 100644 --- a/src/main/java/com/iqser/red/pdftronlogic/commons/InvisibleElementRemovalService.java +++ b/src/main/java/com/iqser/red/pdftronlogic/commons/InvisibleElementRemovalService.java @@ -118,6 +118,8 @@ public class InvisibleElementRemovalService { log.info("Finished removing invisible Elements"); } + + private void removeClippedElementsAndInvisibleTextAndRememberOverlappedElements(Page page, ElementWriter writer, InvisibleElementRemovalContext context) throws PDFNetException { @@ -150,7 +152,23 @@ public class InvisibleElementRemovalService { } } - + @SneakyThrows + public boolean hasInvisibleText(PDFDoc pdfDoc) { + ElementReader reader = new ElementReader(); + for (PageIterator iterator = pdfDoc.getPageIterator(); iterator.hasNext(); ) { + Page page = iterator.next(); + for (Element element = reader.next(); element != null; element = reader.next()) { + if (element.getType() == Element.e_text) { + GState gState = element.getGState(); + boolean isTextVisible = isTextRenderedVisibly(gState); + if (!isTextVisible) { + return true; + } + } + } + } + return false; + } private void processImages(Element imageElement, ElementWriter writer, InvisibleElementRemovalContext context) throws PDFNetException { Rect rect = imageElement.getBBox();