使用iText5在生成的PDF中使用unicode字符

时间:2010-01-21 13:12:59

标签: java unicode utf-8 itext

我在生成的PDF中遇到unicode字符有问题。在我自己的工作站上一切正常,但在测试环境中出了问题。

代码插入值如下:

Font boldDefaultFont = FontFactory.getFont(FontFactory.HELVETICA, 10, Font.BOLD);
// ...
PdfPCell headerCell = new PdfPCell();
// unit.getName() returns "°C"
Phrase header =  new Phrase(unit.getName(), boldDefaultFont);
headerCell.addElement(header);

Java源代码是UTF-8。

如果在我的环境中运行(java 1.6.0_18,WinXP),则单元格包含°C,但在测试环境(java 1.6.0_18,Win2003)中,结果为°C 。我已经发现这是一个编码问题(UTF-8'°'是0xc2b0,等于'-8859-1中的'°')。

现在我试过以下:

1)向java选项添加-Dfile.encoding=utf8(在任一环境中均无效果)
2)将ARIALUNI.TTF添加到测试环境C:\ WINDOWS \ Fonts(无效)
3)将unit.getName()编码为iso-8859-1,但它使得唱歌程度在我的机器中消失。

查看pdf的环境没有任何效果,在我的工作站上生成的pdf显示在各处都很好,反之亦然。

有没有人有过这方面的经验?我打赌有一种方法可以在两种环境中使用它。

0 个答案:

没有答案