diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/factory/SectionNodeFactory.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/factory/SectionNodeFactory.java index ed1d5dd..195d114 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/factory/SectionNodeFactory.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/factory/SectionNodeFactory.java @@ -55,7 +55,8 @@ public class SectionNodeFactory { .collect(groupingBy(AbstractPageBlock::getPage)); AbstractSemanticNode section; - if (isLeaf) { + boolean containsTablesAndTextBlocks = containsTablesAndTextBlocks(pageBlocks); + if (isLeaf && !containsTablesAndTextBlocks) { section = Section.builder().documentTree(context.getDocumentTree()).build(); } else { section = SuperSection.builder().documentTree(context.getDocumentTree()).build(); @@ -68,7 +69,7 @@ public class SectionNodeFactory { section.setTreeId(getTreeId(parentNode, context, section)); addFirstHeadlineDirectlyToSection(layoutParsingType, pageBlocks, context, section, document); - if (containsTablesAndTextBlocks(pageBlocks)) { + if (containsTablesAndTextBlocks) { splitPageBlocksIntoSubSections(pageBlocks).forEach(subSectionPageBlocks -> addSection(layoutParsingType, section, true,