簡體   English   中英

將 html 轉換為 pdf 時未呈現字體系列

[英]Font family not rendered while converting html to pdf

我正在使用飛碟將 html 轉換為 pdf,但在打開生成的 pdf 時顯示自定義字體(卡納達語)的空格。我還將 ttf 文件添加到目錄中。 這是我的代碼

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()

這是一個渲染字體的示例。 不幸的是,結果不正確,因為 Flying-saucer 可以在文本上應用連字。

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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM