java - 使用 itext java 使用自定义字体编写特殊字符

标签 java pdf itext custom-font

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

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

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

最佳答案

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

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 作为“编码”。

关于java - 使用 itext java 使用自定义字体编写特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36243506/

相关文章:

java - 我的 vector3 类中的线程 "AWT-EventQueue-0"java.lang.NullPointerException 中出现异常

java - 如何在Java中提取字符串的开头

pdf - 使用 PKCS#11 和 iText 为带有 eID 的 PDF 签名

java - Maven 存储库 jar 附带 "xxx-sources.jar"

java - 将 RMI 限制到一个端口的含义

java - 使用 iText 将图像添加到 PDF

javascript - 如何转换网页的一部分并即时创建样式和格式的 PDF?

java - 如何在 Android 中渲染 PDF

c# - 将gridview转换为itextsharp表并使用asp.net生成pdf

c# - 如何使用 C# 将多个 A4 PDF 合并为 A3 PDF