5

我正在使用 iText 创建带有中文字符的 PDF。我指定的字体是我使用代码加载的 MS Mincho,

FontFactory.registerDirectory("c:/windows/Fonts/");

new Phrase("Asian 汉字/漢字 characters", FontFactory.getFont("MS Mincho", 16, Font.NORMAL));

下面的代码适当地检索 MS Mincho 字体(即不为空),

FontFactory.getFont("MS Mincho", 16, Font.NORMAL)

但是,生成的 PDF 只显示 ASCII 文本“亚洲字符”,即 PDF 上不显示中文字符。

关于为什么生成的 PDF 中缺少中文字符的任何想法?

4

2 回答 2

2

由于该问题已在评论中解决,因此解决方案如下:

您应该确保 a) 使用具有适当编码的字体(BaseFont.IDENTITY_H) 并 b)嵌入它 (BaseFont.EMBEDDED)。从iText in Action - 2nd Edition第 11 章的示例中获得灵感。

BaseFont bf = BaseFont.createFont("c:/windows/Fonts/MSMINCHO.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
Font f = Font(bf, size);

现在用这个Font f.

于 2013-05-30T04:06:19.467 回答
0
BaseFont bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);

这对我有用,你可以试试。

于 2019-01-22T09:13:59.193 回答