【问题标题】:write special characters using a custom font with itext java使用带有 itext java 的自定义字体编写特殊字符
【发布时间】:2016-03-27 03:25:30
【问题描述】:

我正在向itext 添加自定义字体,如下所示:

PdfContentByte cb = writer.getDirectContent();
BaseFont customfont = BaseFont.createFont("/assets/fonts/GillSans-SemiBold.ttf", BaseFont.CP1257, BaseFont.EMBEDDED);

现在这很好,但是当我尝试打印像Matemática 这样的重音字符时,它会打印?
关于如何使用gilSans SemiBold 字体打印重音字符的任何想法?

【问题讨论】:

标签: java pdf itext custom-font


【解决方案1】:

请更改此行中的第二个参数:

BaseFont customfont = BaseFont.createFont(
    "/assets/fonts/GillSans-SemiBold.ttf",
    BaseFont.CP1257, BaseFont.EMBEDDED);

制作:

BaseFont customfont = BaseFont.createFont(
    "/assets/fonts/GillSans-SemiBold.ttf",
    BaseFont.IDENTITY_H, BaseFont.EMBEDDED);

当使用CP1257 时,您创建的简单字体 仅包含 256 个字符。您正在使用不属于这 256 个字符的字符。您需要创建一个接受 UNICODE 字符的复合字体。当您使用水平书写系统时,请使用IDENTITY_H 作为“编码”。

【讨论】:

    猜你喜欢
    • 2012-08-23
    • 2013-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多