itext PDF - 希腊字母未出现在生成的PDF文档中

时间:2010-10-04 19:25:52

标签: java pdf character-encoding itext

我很难尝试使用itextpdf生成包含希腊字母的PDF文件。我正在从外部源读取字符串作为UTF-8字符串。英语字母出现在结果中但不出现在希腊语中。搜索问题,我认为它可能与使用的字体有关。如果这是问题,我不知道要使用什么ttf文件。 以下是创建字体的方法

 BaseFont bfTimes = BaseFont.createFont(FontFactory.HELVETICA,"UTF-8", BaseFont.EMBEDDED);
 Font times = new Font(bfTimes, 12, Font.BOLD);

衷心感谢任何帮助!

3 个答案:

答案 0 :(得分:5)

您需要使用包含希腊字符的字体。 您可以找到希腊语unicode字体here

您可以使用itext的作者使用unicode字体检查示例here

答案 1 :(得分:0)

实际上问题可能导致您创建字体的方式。而不是将“UTF-8”作为代码页传递,尝试使用“CP1253”。

BaseFont bfTimes = BaseFont.createFont(FontFactory.HELVETICA,"CP1253", BaseFont.EMBEDDED);
Font times = new Font(bfTimes, 12, Font.BOLD);

顺便说一下,BaseFont有CP1250,CP1252和CP1257的静态字符串常量...

答案 2 :(得分:0)

我使用了这段代码:

BaseFont fonty = BaseFont.createFont("assets/ARIALBD.TTF", BaseFont.IDENTITY_H,       BaseFont.NOT_EMBEDDED);
     fonty.setSubset(true);
     Phrase myName = new Phrase("Your Not Latin Words", new Font(fonty,12));
     ColumnText.showTextAligned(canvas,
             Element.ALIGN_LEFT, myName, 66, 400, 0);

我必须将ARIALBD.TTF粘贴到资源文件夹