我很难尝试使用itextpdf生成包含希腊字母的PDF文件。我正在从外部源读取字符串作为UTF-8字符串。英语字母出现在结果中但不出现在希腊语中。搜索问题,我认为它可能与使用的字体有关。如果这是问题,我不知道要使用什么ttf文件。 以下是创建字体的方法
BaseFont bfTimes = BaseFont.createFont(FontFactory.HELVETICA,"UTF-8", BaseFont.EMBEDDED);
Font times = new Font(bfTimes, 12, Font.BOLD);
衷心感谢任何帮助!
答案 0 :(得分:5)
答案 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粘贴到资源文件夹