如何为特定编码指定字体?

时间:2018-12-12 10:30:18

标签: java pdf flying-saucer

我正在使用飞碟库并尝试为字母的特定编码添加自定义字体。这样我就可以支持unicode字符。

这是我从飞碟库 http://flyingsaucerproject.github.io/flyingsaucer/r8/guide/users-guide-R8.html#xil_33 的官方指南中获得的解决方案的链接。 下面是代码,

    public void convertHtmlToPdf(String html, String css, OutputStream out) {
    try {
        html = correctHtml(html);
        html = getFormedHTMLWithCSS(html, css);

        HtmlCleaner cleaner = new HtmlCleaner();
        TagNode rootTagNode = cleaner.clean(html);
        CleanerProperties cleanerProperties = cleaner.getProperties();
        XmlSerializer xmlSerializer = new PrettyXmlSerializer(cleanerProperties);
        String cleanedHtml = xmlSerializer.getAsString(rootTagNode);

        File fontFile = new File("/Verdana.ttf");
        FontFactory.register(fontFile.getAbsolutePath());

        ITextRenderer r = new ITextRenderer();

        r.getFontResolver().addFont(fontFile.getAbsolutePath(), BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
        r.setDocumentFromString(cleanedHtml);

        r.layout();
        r.createPDF(out);
        r.finishPDF();

    } catch (Exception e) {
        e.printStackTrace();
        logger.error(e.getMessage(), e);
    }
}

但是我仍然无法编码某些字符。喜欢,

'■' : '■',
'▲' : '▲', 

对于“■”,我得到&x25a0;在生成的pdf中,同样对于我尝试编码的其他字符。

0 个答案:

没有答案