首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将html转换为pdf时未呈现字体系列

将html转换为pdf时未呈现字体系列
EN

Stack Overflow用户
提问于 2020-03-02 14:10:37
回答 1查看 205关注 0票数 2

我使用飞碟将html转换为pdf,但当生成的pdf打开时,显示自定义字体(Kannada)的空白区域。我还将ttf文件添加到目录中。以下是我的代码

代码语言:javascript
复制
String value="<html><head><title>Internationalization</title><meta charset='UTF-8'/></head><<body><h1>Internationalization</h1><table summary=''><tr><th style="font-family:NotoSansKannada-Regular;">ಕನ್ನಡ</th><th>Original title</th></tr></table></body></html>";
OutputStream outputStream = new FileOutputStream(pdfFilePath + "/Reports.pdf");
BufferedOutputStream bos = new BufferedOutputStream(outputStream);
ITextRenderer renderer = new ITextRenderer();
ITextFontResolver resolver = renderer.getFontResolver();
renderer.getFontResolver().addFont(
Main.class.getResource("frontend/fonts/NotoSansKannada-Regular.ttf").toURI().toString().replace("file:", "file://"),
"UTF-8",BaseFont.NOT_EMBEDDED
);
renderer.setDocumentFromString(value);
renderer.layout();
renderer.createPDF(bos);
outputStream.close()
EN

回答 1

Stack Overflow用户

发布于 2020-06-28 00:38:56

下面是一个渲染字体的示例。不幸的是,结果是不正确的,因为飞碟可以在文本上应用连字。

代码语言:javascript
复制
String html = "<html>\n" +
            "  <head>\n" +
            "        <meta charset='UTF-8'/>\n" +
            "        <style>\n" +
            "            body {font-family: Noto Sans Kannada;}\n" +
            "        </style>\n" +
            "  </head>\n" +
            "  <body>ಕನ್ನಡ</body>\n" +
            "  </html>";
    ITextRenderer renderer = new ITextRenderer();
    renderer.getFontResolver().addFont("font/noto-kannada/NotoSansKannada-Regular.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);

    OutputStream out = new FileOutputStream(new File("so.pdf"));
    renderer.setDocumentFromString(html);
    renderer.layout();
    renderer.createPDF(out);
    out.close();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60483358

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档