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

时间:2015-12-15 17:23:53

标签: java pdf fonts itext

部分中,有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 RESULT

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

Correct rendering

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

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

2 个答案:

答案 0 :(得分:1)

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

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

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

感谢@Rad Lexus提供的一些赏金,关于在iText中直接访问openType字形的其他问题有答案Accessing OpenType glyph variants in iText

答案 1 :(得分:0)

请尝试以下代码,

$(".btn-remove").click(function() {
    var bg = $('div').css('background-image','none');
});