From 033c128fd1a499d6a34d4db2ab532f1169ce553e Mon Sep 17 00:00:00 2001 From: Thomas <> Date: Fri, 15 Mar 2024 19:46:16 +0100 Subject: fix(pdfbox): remove character \u0009 (tabluator) before operate on font Reason: will not be supported by fonts and must be replaced with blank before rendering --- .../at/gv/egiz/pdfas/common/utils/StringUtils.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/utils') diff --git a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/utils/StringUtils.java b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/utils/StringUtils.java index 7156a97b..70344f78 100644 --- a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/utils/StringUtils.java +++ b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/utils/StringUtils.java @@ -23,13 +23,13 @@ ******************************************************************************/ package at.gv.egiz.pdfas.common.utils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.Formatter; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + /** * Created with IntelliJ IDEA. User: afitzek Date: 8/28/13 Time: 12:42 PM To * change this template use File | Settings | File Templates. @@ -38,6 +38,7 @@ public class StringUtils { private static final Logger logger = LoggerFactory .getLogger(StringUtils.class); + private static final CharSequence TABULATOR = '\u0009'+""; public static String bytesToHexString(byte[] bytes) { StringBuilder sb = new StringBuilder(bytes.length * 2); @@ -75,10 +76,17 @@ public class StringUtils { // Cannot encode String with CP1252 have to use URL encoding ... return URLEncoder.encode(value, "UTF-8"); } - return value; + + return replaceSpecialCharacters(value); + } - public static byte[] applyWinAnsiEncoding(String text) + private static String replaceSpecialCharacters(String value) { + return value.replace(TABULATOR, " "); + + } + + public static byte[] applyWinAnsiEncoding(String text) throws UnsupportedEncodingException { byte[] replace_bytes; replace_bytes = text.getBytes("windows-1252");// CP1252 = -- cgit v1.2.3