diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/RedRectangle2D.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/RedRectangle2D.java index 601d328c..91634ea1 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/RedRectangle2D.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/RedRectangle2D.java @@ -11,6 +11,8 @@ import lombok.NoArgsConstructor; @AllArgsConstructor public class RedRectangle2D { + public static final double THRESHOLD = 0.01; + private double x; private double y; private double width; @@ -29,7 +31,7 @@ public class RedRectangle2D { double y0 = getY(); return x >= x0 && y >= y0 && - (x + w) <= x0 + getWidth() && - (y + h) <= y0 + getHeight(); + (x + w) - (x0 + getWidth()) <= THRESHOLD && + (y + h) - (y0 + getHeight()) <= THRESHOLD; } } diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/PdfSegmentationService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/PdfSegmentationService.java index 43f5192f..a33a009d 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/PdfSegmentationService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/PdfSegmentationService.java @@ -102,6 +102,17 @@ public class PdfSegmentationService { page.setLandscape(isLandscape || isRotated); page.setPageNumber(pageNumber); List mergedList = processImages(stripper.getImages()); + + List imagesInImage = new ArrayList<>(); + for(PdfImage image: mergedList){ + for (PdfImage inner: mergedList){ + if(image != inner && image.getPosition().contains(inner.getPosition().getX(), inner.getPosition().getY(), inner.getPosition().getWidth(), inner.getPosition().getHeight())){ + imagesInImage.add(inner); + } + } + } + mergedList.removeAll(imagesInImage); + page.setImages(mergedList); tableExtractionService.extractTables(cleanRulings, page);