使用PDFBox输出欧元符号

时间:2015-04-21 08:33:18

标签: java encoding pdfbox

我遇到了与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 '€',有人知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

如果您使用的是PDF格式的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();