From 79b57e85cd724ac040b5da9e33f90f4568aac7d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominique=20Eifl=C3=A4nder?= Date: Wed, 23 Dec 2020 10:57:42 +0100 Subject: [PATCH] Handle 'u00A0' character the same way as ' ' --- .../v1/server/parsing/PDFLinesTextStripper.java | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) 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 d6d7e102..53b66b25 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 @@ -212,7 +212,7 @@ public class PDFLinesTextStripper extends PDFTextStripper { maxCharWidths = charWidth; } - if (i == 0 && textPositions.get(i).getUnicode().equals(" ")) { + if (i == 0 && (textPositions.get(i).getUnicode().equals(" ") || textPositions.get(i).getUnicode().equals("\u00A0"))) { startIndex++; continue; } @@ -220,15 +220,15 @@ public class PDFLinesTextStripper extends PDFTextStripper { // Strange but sometimes this is happening, for example: Metolachlor2.pdf if (i > 0 && textPositions.get(i).getX() < textPositions.get(i - 1).getX()) { List sublist = textPositions.subList(startIndex, i); - if (!(sublist.isEmpty() || sublist.size() == 1 && sublist.get(0).getUnicode().equals(" "))) { + if (!(sublist.isEmpty() || sublist.size() == 1 && (sublist.get(0).getUnicode().equals(" ") || sublist.get(0).getUnicode().equals("\u00A0")))) { textPositionSequences.add(new TextPositionSequence(sublist, pageNumber)); } startIndex = i; } - if (i > 0 && textPositions.get(i).getUnicode().equals(" ") && i <= textPositions.size() - 2) { + if (i > 0 && (textPositions.get(i).getUnicode().equals(" ") || textPositions.get(i).getUnicode().equals("\u00A0")) && i <= textPositions.size() - 2) { List sublist = textPositions.subList(startIndex, i); - if (!(sublist.isEmpty() || sublist.size() == 1 && sublist.get(0).getUnicode().equals(" "))) { + if (!(sublist.isEmpty() || sublist.size() == 1 && (sublist.get(0).getUnicode().equals(" ") || sublist.get(0).getUnicode().equals("\u00A0")))) { textPositionSequences.add(new TextPositionSequence(sublist, pageNumber)); } startIndex = i + 1; @@ -236,14 +236,13 @@ public class PDFLinesTextStripper extends PDFTextStripper { } List sublist = textPositions.subList(startIndex, textPositions.size()); - if (!sublist.isEmpty() && sublist.get(sublist.size() - 1).getUnicode().equals(" ")) { + if (!sublist.isEmpty() && (sublist.get(sublist.size() - 1).getUnicode().equals(" ") || sublist.get(sublist.size() - 1).getUnicode().equals("\u00A0"))) { sublist = sublist.subList(0, sublist.size() - 1); } - if (!(sublist.isEmpty() || sublist.size() == 1 && sublist.get(0).getUnicode().equals(" "))) { + if (!(sublist.isEmpty() || sublist.size() == 1 && (sublist.get(0).getUnicode().equals(" ") || sublist.get(0).getUnicode().equals("\u00A0")))) { textPositionSequences.add(new TextPositionSequence(sublist, pageNumber)); } super.writeString(text); - } @Override