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

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

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

衷心感谢任何帮助!

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

您可以在此处查看使用itext作者的unicode字体的示例。

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

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

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

我用过这段代码:

 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粘贴到assets文件夹