diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/model/Cell.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/model/Cell.java index 5dcb1138..a4e755fb 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/model/Cell.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/model/Cell.java @@ -25,6 +25,8 @@ public class Cell extends Rectangle { private boolean isHeaderCell; + private static final int MIN_SIZE = 1; + public Cell(Point2D topLeft, Point2D bottomRight) { @@ -66,4 +68,10 @@ public class Cell extends Rectangle { return TextNormalizationUtilities.removeHyphenLineBreaks(sb.toString()).replaceAll("\n", " ").replaceAll(" {2}", " "); } + + public boolean hasMinimumSize() { + + return this.getHeight() >= MIN_SIZE && this.getWidth() >= MIN_SIZE; + } + } diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/model/Table.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/model/Table.java index 8a6a93cb..d5759bf6 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/model/Table.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/model/Table.java @@ -261,7 +261,9 @@ public class Table extends AbstractTextContainer { if (intersectionCell.isPresent()) { cell.getTextBlocks().addAll(intersectionCell.get().getTextBlocks()); } - row.add(cell); + if (cell.hasMinimumSize()) { + row.add(cell); + } } prevX = x; } diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/service/TableExtractionService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/service/TableExtractionService.java index 192bad74..6d29d260 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/service/TableExtractionService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/service/TableExtractionService.java @@ -88,7 +88,7 @@ public class TableExtractionService { for (AbstractTextContainer abstractTextContainer : page.getTextBlocks()) { TextBlock textBlock = (TextBlock) abstractTextContainer; for (Cell cell : cells) { - if (cell.intersects(textBlock.getPdfMinX(), + if (cell.hasMinimumSize() && cell.intersects(textBlock.getPdfMinX(), textBlock.getPdfMinY(), textBlock.getPdfMaxX() - textBlock.getPdfMinX(), textBlock.getPdfMaxY() - textBlock.getPdfMinY())) { @@ -109,7 +109,7 @@ public class TableExtractionService { List overlappingCells = new ArrayList<>(); for (Cell c : cells) { - if (c.intersects(area)) { + if (c.hasMinimumSize() && c.intersects(area)) { overlappingCells.add(c); } }