diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/model/graph/nodes/Image.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/model/graph/nodes/Image.java index bcfb039..0abb37d 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/model/graph/nodes/Image.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/model/graph/nodes/Image.java @@ -13,7 +13,6 @@ import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.No import com.knecon.fforesight.service.layoutparser.processor.model.graph.DocumentTree; import com.knecon.fforesight.service.layoutparser.processor.model.graph.entity.RedactionEntity; import com.knecon.fforesight.service.layoutparser.processor.model.graph.textblock.TextBlock; -import com.knecon.fforesight.service.layoutparser.processor.model.graph.textblock.TextBlockCollector; import lombok.AccessLevel; import lombok.AllArgsConstructor; @@ -40,6 +39,8 @@ public class Image implements GenericSemanticNode { boolean transparent; Rectangle2D position; + TextBlock leafTextBlock; + boolean redaction; boolean ignored; @Builder.Default @@ -70,9 +71,7 @@ public class Image implements GenericSemanticNode { @Override public TextBlock getTextBlock() { - return streamAllSubNodes().filter(SemanticNode::isLeaf) - .map(SemanticNode::getLeafTextBlock) - .collect(new TextBlockCollector()); + return leafTextBlock; } @@ -98,4 +97,11 @@ public class Image implements GenericSemanticNode { return bBoxPerPage; } + + @Override + public boolean isLeaf() { + + return true; + } + } diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/factory/DocumentGraphFactory.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/factory/DocumentGraphFactory.java index d0cee88..3cfe5e5 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/factory/DocumentGraphFactory.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/factory/DocumentGraphFactory.java @@ -117,19 +117,12 @@ public class DocumentGraphFactory { } - public void addImage(Section section, ClassifiedImage image, Context context) { + public void addImage(GenericSemanticNode parent, ClassifiedImage image, Context context) { Image imageNode = createImage(image, context); - List treeId = context.getDocumentTree().createNewChildEntryAndReturnId(section, imageNode); - imageNode.setTreeId(treeId); - } - - - public void addImage(Document document, ClassifiedImage image, Context context) { - - Image imageNode = createImage(image, context); - List treeId = context.getDocumentTree().createNewChildEntryAndReturnId(document, imageNode); + List treeId = context.getDocumentTree().createNewChildEntryAndReturnId(parent, imageNode); imageNode.setTreeId(treeId); + imageNode.setLeafTextBlock(context.textBlockFactory.emptyTextBlock(parent, context, context.getPage(image.getPage()))); } diff --git a/layoutparser-service/viewer-doc-processor/src/main/java/com/knecon/fforesight/service/viewerdoc/service/ViewerDocumentService.java b/layoutparser-service/viewer-doc-processor/src/main/java/com/knecon/fforesight/service/viewerdoc/service/ViewerDocumentService.java index cc63845..040b81b 100644 --- a/layoutparser-service/viewer-doc-processor/src/main/java/com/knecon/fforesight/service/viewerdoc/service/ViewerDocumentService.java +++ b/layoutparser-service/viewer-doc-processor/src/main/java/com/knecon/fforesight/service/viewerdoc/service/ViewerDocumentService.java @@ -17,6 +17,7 @@ import java.util.stream.Collectors; import org.apache.pdfbox.Loader; import org.apache.pdfbox.cos.COSName; +import org.apache.pdfbox.pdfwriter.compress.CompressParameters; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDDocumentCatalog; import org.apache.pdfbox.pdmodel.PDPage; @@ -285,7 +286,7 @@ public class ViewerDocumentService { Observation.createNotStarted("ViewerDocumentService", registry).contextualName("incremental-save").observe(() -> { try (var out = new FileOutputStream(outputFile)) { - pdDocument.save(out); + pdDocument.save(out, CompressParameters.NO_COMPRESSION); } catch (IOException e) { throw new RuntimeException(e); }