diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/PDFLinesTextStripper.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/PDFLinesTextStripper.java index 35000841..ad828d0c 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/PDFLinesTextStripper.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/PDFLinesTextStripper.java @@ -54,10 +54,7 @@ public class PDFLinesTextStripper extends PDFTextStripper { protected PDPage pdpage; @Getter - private int maxCharWidths; - - @Getter - private int maxCharHeight; + private int minCharWidths; @Getter private final List textPositionSequences = new ArrayList<>(); @@ -282,14 +279,9 @@ public class PDFLinesTextStripper extends PDFTextStripper { int startIndex = 0; for (int i = 0; i <= textPositions.size() - 1; i++) { - int charHeight = (int) textPositions.get(i).getHeightDir(); - if (charHeight > maxCharHeight) { - maxCharHeight = charHeight; - } - int charWidth = (int) textPositions.get(i).getWidthDirAdj(); - if (charWidth > maxCharWidths) { - maxCharWidths = charWidth; + if (charWidth < minCharWidths) { + minCharWidths = charWidth; } if (i == 0 && (textPositions.get(i).getUnicode().equals(" ") || textPositions.get(i) @@ -341,8 +333,7 @@ public class PDFLinesTextStripper extends PDFTextStripper { @Override public String getText(PDDocument doc) throws IOException { - maxCharWidths = 0; - maxCharWidths = 0; + minCharWidths = Integer.MAX_VALUE; textPositionSequences.clear(); imageBounds = new ArrayList<>(); rulings.clear(); diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/model/ParsedElements.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/model/ParsedElements.java index 3a0eede7..03781dc6 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/model/ParsedElements.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/model/ParsedElements.java @@ -19,6 +19,5 @@ public class ParsedElements { private boolean landscape; private boolean rotated; - private float maxCharWidth; - private float maxCharHeight; + private float minCharWidth; } 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 b19b22b3..f1478344 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 @@ -61,14 +61,13 @@ public class PdfSegmentationService { .rulings(stripper.getRulings()) .sequences(stripper.getTextPositionSequences()) .imageBounds(stripper.getImageBounds()) - .maxCharWidth(stripper.getMaxCharWidths()) - .maxCharHeight(stripper.getMaxCharWidths()) + .minCharWidth(stripper.getMinCharWidths()) .landscape(isLandscape) .rotated(isRotated) .build(); CleanRulings cleanRulings = rulingCleaningService.getCleanRulings(parsedElements.getRulings(), parsedElements - .getMaxCharWidth(), parsedElements.getMaxCharHeight()); + .getMinCharWidth()); Page page = blockificationService.blockify(parsedElements.getSequences(), cleanRulings.getHorizontal(), cleanRulings .getVertical()); diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/service/RulingCleaningService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/service/RulingCleaningService.java index 1d3d81f2..5bbc29c0 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/service/RulingCleaningService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/service/RulingCleaningService.java @@ -18,9 +18,9 @@ import com.iqser.red.service.redaction.v1.server.tableextraction.utils.Utils; @Service public class RulingCleaningService { - public CleanRulings getCleanRulings(List rulings, float maxCharWidth, float maxCharHeight){ + public CleanRulings getCleanRulings(List rulings, float minCharWidth){ if (!rulings.isEmpty()) { - snapPoints(rulings, maxCharWidth , maxCharHeight); + snapPoints(rulings, minCharWidth , minCharWidth); } List vrs = new ArrayList<>();