PDFBOX:U + 000A('controlLF')在此字体中不可用Helvetica编码:WinAnsiEncoding

raz*_*van 6 java pdfbox

当尝试使用Java和org.apache.pdfbox库打印PDF页面时,我收到此错误:

PDFBOX:U + 000A('controlLF')在此字体中不可用Helvetica编码:WinAnsiEncoding

Ste*_*hen 10

为这篇文章选择的答案有效,如果您知道它是导致问题的 \n 或 \r 字符,则替换字符串中的所有 \n 和 \r 实例。我发现有很多不同的字符会产生这个错误。以下是我发现的样本:

U+2010 ('hyphentwo') is not available in this font Helvetica encoding: WinAnsiEncoding
U+2033 ('second') is not available in this font Helvetica encoding: WinAnsiEncoding
U+00A0 ('nbspace') is not available in this font Helvetica encoding: WinAnsiEncoding
U+FFFD ('.notdef') is not available in this font Helvetica encoding: WinAnsiEncoding
U+03BC ('mugreek') is not available in this font Helvetica encoding: WinAnsiEncoding
U+039C ('Mu') is not available in this font Helvetica encoding: WinAnsiEncoding
U+2212 ('minus') is not available in this font Helvetica encoding: WinAnsiEncoding
U+0141 ('Lslash') is not available in this font Helvetica encoding: WinAnsiEncoding
U+2103 ('centigrade') is not available in this font Helvetica encoding: WinAnsiEncoding
U+25AA ('H18543') is not available in this font Helvetica encoding: WinAnsiEncoding
Run Code Online (Sandbox Code Playgroud)

就我而言,我只是选择删除我的字体中未包含的任何特殊字符。我使用了这个页面的解决方案:

https://cmsdk.com/java/remove-illegal-characters-from-string-with-pdfbox.html


raz*_*van 8

[问题]您尝试显示的字符串包含换行符。

[解决方案]用新字符串替换字符串并删除换行符:

text = text.replace("\n", "").replace("\r", "");
Run Code Online (Sandbox Code Playgroud)