字体(Myanmar3)在iText中无法正确呈现

在jasper-reports部分,有一个jasper-report-character-encoding-in-pdf问题。

这个问题在jasper报告中无法解决,因为它似乎是一个迭代问题(使用iText v.5.5.4 )

示例代码:

public class FontTest { /** The resulting PDF file. */ public static final String RESULT = "pdf/fontTest.pdf"; /** the text to render. */ public static final String TEST = "\u1005\u101B\u1004\u103A\u1038\u1021\u1004\u103A\u1038\u1019\u103B\u102C\u1038\u1011\u100A\u103A\u101E\u103D\u1004\u103A\u1038\u1001\u103C\u1004\u103A\u1038"; public void createPdf(String filename) throws IOException, DocumentException { Document document = new Document(); PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(filename)); document.open(); BaseFont bf = BaseFont.createFont( "lib/mm3.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED); Font font = new Font(bf, 20); ColumnText column = new ColumnText(writer.getDirectContent()); column.setSimpleColumn(36, 730, 569, 36); column.addElement(new Paragraph(TEST, font)); column.go(); document.close(); } public static void main(String[] args) throws IOException, DocumentException { new FontTest().createPdf(RESULT); } } 

该字体可以在mm3.ttf下载

将错误地渲染为:

PDF结果

它应该呈现为(在浏览器中使用相同的ttf

正确渲染

只是出于好奇,发生了什么? (看起来像某些字符,虚线圆圈应向后移动,但这不会发生)。

这是.tff的问题还是iText不支持这些字体?

转换Bruno Lowagie ( itext的原始开发者)评论到答案(社区维基)

您看到的行为是由iText 不支持连字这一事实引起的。 ( github.com 5.5.8上的当前版本)

您需要下一个未发布的iText版本之一。 我们将在明年(2016年)发布测试版,但仅限于客户

感谢@Rad Lexus提供的一些赏金,关于在iText中直接访问openType字形的另一个问题有一个答案在iText中访问OpenType字形变体