当尝试使用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
[问题]您尝试显示的字符串包含换行符。
[解决方案]用新字符串替换字符串并删除换行符:
text = text.replace("\n", "").replace("\r", "");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6965 次 |
| 最近记录: |