我遇到了与here所述的相同问题,即在生成的pdf文档中输出€符号。从数据库检索到的数据后应添加欧元符号,在这种情况下,提供的解决方案不是很有用,我尝试了以下方式,以便可以在需要的任何地方使用变量euroToPDF
:
Encoding e = EncodingManager.INSTANCE.getEncoding(COSName.WIN_ANSI_ENCODING);
String euroToPDF = String.valueOf(Character.toChars(e.getCode(e.getCharacter(128))));
但是应用程序抛出IOException,说
No character code for character name '€'
,有人知道如何解决吗? 最佳答案
如果使用的是PDFBox v2,则应在输出的字符串中使用€符号,而不必尝试转换编码。
在v1.8中,您可以使用一个技巧:
contentStream.beginText();
contentStream.setTextMatrix(100, 0, 0, 100, 50, 100);
contentStream.setFont(PDType1Font.HELVETICA, 8);
byte[] commands = "(x) Tj ".getBytes();
commands[1] = (byte) 128;
contentStream.appendRawCommands(commands);
contentStream.endText();
contentStream.close();