当我尝试向 PDF 中写入非法字符时,我显然遇到了异常。例如。
contentStream.showText("some illegal characters");
...
java.lang.IllegalArgumentException: U+000A ('controlLF') is not available in this font Helvetica (generic: ArialMT) encoding: WinAnsiEncoding...
如何找出不支持哪些字符并将它们从字符串中删除?
这是我的解决方案...至少它适合我的需要。我使用PDFBox的WinAnsiEncoding类并调用contains方法来检查该字符是否受支持。
import org.apache.pdfbox.pdmodel.font.encoding.WinAnsiEncoding;
public class Test extends WinAnsiEncoding {
public static String remove(String test) {
StringBuilder b = new StringBuilder();
for (int i = 0; i < test.length(); i++) {
if (WinAnsiEncoding.INSTANCE.contains(test.charAt(i))) {
b.append(test.charAt(i));
}
}
return b.toString();
}
public static void main(String[] args) {
System.out.println(remove("abc\rcde"));
// prints abccde
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)