From 665ad40b0bd87a1dd5c9824e9c39298b8a9f33cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominique=20Eifl=C3=A4nder?= Date: Tue, 19 Mar 2024 14:32:34 +0100 Subject: [PATCH] RED-8627: Fixed scrambled text after sorting --- .gitlab-ci.yml | 4 ++- .../model/text/TextPositionSequence.java | 7 +++++ .../utils/TextPositionSequenceComparator.java | 28 +++++++------------ 3 files changed, 20 insertions(+), 19 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 813600e..3806288 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -16,6 +16,8 @@ deploy: reports: dotenv: version.env rules: - - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH + - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - if: $CI_COMMIT_BRANCH =~ /^release/ - if: $CI_COMMIT_TAG +pmd: + allow_failure: true diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/model/text/TextPositionSequence.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/model/text/TextPositionSequence.java index 7b776dc..865d1ce 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/model/text/TextPositionSequence.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/model/text/TextPositionSequence.java @@ -196,6 +196,12 @@ public class TextPositionSequence implements CharSequence { } + public float getTextHeightNoPadding() { + + return textPositions.get(0).getHeightDir(); + } + + @JsonIgnore @JsonAttribute(ignore = true) public float getTextHeight() { @@ -234,6 +240,7 @@ public class TextPositionSequence implements CharSequence { @JsonIgnore @JsonAttribute(ignore = true) public String getFontStyle() { + if (textPositions.get(0).getFontName() == null) { return "standard"; } diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/utils/TextPositionSequenceComparator.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/utils/TextPositionSequenceComparator.java index 40dce07..b002dbc 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/utils/TextPositionSequenceComparator.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/utils/TextPositionSequenceComparator.java @@ -28,15 +28,13 @@ import com.knecon.fforesight.service.layoutparser.processor.model.text.TextPosit * * @author Ben Litchfield */ -public class TextPositionSequenceComparator implements Comparator -{ +public class TextPositionSequenceComparator implements Comparator { + @Override - public int compare(TextPositionSequence pos1, TextPositionSequence pos2) - { + public int compare(TextPositionSequence pos1, TextPositionSequence pos2) { // only compare text that is in the same direction int cmp1 = Float.compare(pos1.getDir().getDegrees(), pos2.getDir().getDegrees()); - if (cmp1 != 0) - { + if (cmp1 != 0) { return cmp1; } @@ -48,25 +46,19 @@ public class TextPositionSequenceComparator implements Comparator= pos1YTop && pos2YBottom <= pos1YBottom || - pos1YBottom >= pos2YTop && pos1YBottom <= pos2YBottom) - { + if (yDifference < .1 || pos2YBottom >= pos1YTop && pos2YBottom <= pos1YBottom || pos1YBottom >= pos2YTop && pos1YBottom <= pos2YBottom) { return Float.compare(x1, x2); - } - else if (pos1YBottom < pos2YBottom) - { + } else if (pos1YBottom < pos2YBottom) { return -1; - } - else - { + } else { return 1; } } + }