From 8e5ff318106e700e28abd14a0eb1337d3a44c109 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thierry=20G=C3=B6ckel?= Date: Tue, 29 Sep 2020 15:10:36 +0200 Subject: [PATCH] Fix annotating single letter entities --- .../service/AnnotationHighlightService.java | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/visualization/service/AnnotationHighlightService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/visualization/service/AnnotationHighlightService.java index bde4c725..630139d3 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/visualization/service/AnnotationHighlightService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/visualization/service/AnnotationHighlightService.java @@ -130,18 +130,22 @@ public class AnnotationHighlightService { private List getRectanglesPerLine(List textPositions, int page) { List rectangles = new ArrayList<>(); - float y = textPositions.get(0).getYDirAdj(); - int startIndex = 0; - for (int i = 1; i < textPositions.size(); i++) { - float yDirAdj = textPositions.get(i).getYDirAdj(); - if (yDirAdj != y) { - rectangles.add(new TextPositionSequence(textPositions.subList(startIndex, i), page).getRectangle()); - y = yDirAdj; - startIndex = i; + if (textPositions.size() == 1) { + rectangles.add(new TextPositionSequence(textPositions, page).getRectangle()); + } else { + float y = textPositions.get(0).getYDirAdj(); + int startIndex = 0; + for (int i = 1; i < textPositions.size(); i++) { + float yDirAdj = textPositions.get(i).getYDirAdj(); + if (yDirAdj != y) { + rectangles.add(new TextPositionSequence(textPositions.subList(startIndex, i), page).getRectangle()); + y = yDirAdj; + startIndex = i; + } + } + if (startIndex != textPositions.size() - 1) { + rectangles.add(new TextPositionSequence(textPositions.subList(startIndex, textPositions.size()), page).getRectangle()); } - } - if (startIndex != textPositions.size() - 1) { - rectangles.add(new TextPositionSequence(textPositions.subList(startIndex, textPositions.size()), page).getRectangle()); } return rectangles;