aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas <>2024-03-15 19:46:16 +0100
committerThomas <>2024-03-15 19:46:16 +0100
commit033c128fd1a499d6a34d4db2ab532f1169ce553e (patch)
tree7b61f01a1d7a6b20fdac2f163423727bcc2578f1
parent9f3ca0327be376ac6e4db8aef18274f5317e554e (diff)
downloadpdf-as-4-033c128fd1a499d6a34d4db2ab532f1169ce553e.tar.gz
pdf-as-4-033c128fd1a499d6a34d4db2ab532f1169ce553e.tar.bz2
pdf-as-4-033c128fd1a499d6a34d4db2ab532f1169ce553e.zip
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
-rw-r--r--pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/utils/StringUtils.java18
-rw-r--r--pdf-as-common/src/test/java/at/gv/egiz/pdfas/common/test/utils/StringUtilsTest.java22
2 files changed, 35 insertions, 5 deletions
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 =
diff --git a/pdf-as-common/src/test/java/at/gv/egiz/pdfas/common/test/utils/StringUtilsTest.java b/pdf-as-common/src/test/java/at/gv/egiz/pdfas/common/test/utils/StringUtilsTest.java
new file mode 100644
index 00000000..6c6ee654
--- /dev/null
+++ b/pdf-as-common/src/test/java/at/gv/egiz/pdfas/common/test/utils/StringUtilsTest.java
@@ -0,0 +1,22 @@
+package at.gv.egiz.pdfas.common.test.utils;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.UnsupportedEncodingException;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.BlockJUnit4ClassRunner;
+
+import at.gv.egiz.pdfas.common.utils.StringUtils;
+
+@RunWith(BlockJUnit4ClassRunner.class)
+public class StringUtilsTest {
+
+ @Test
+ public void checkTabulatorReplacing() throws UnsupportedEncodingException {
+ assertEquals("asdfsaf asdfsafsafwer", StringUtils.convertStringToPDFFormat("asdfsaf\u0009asdfsafsafwer"));
+
+ }
+
+}