gpt4 book ai didi

java - 如何在从 ITextRenderer 和 Thymeleaf HTML 模板生成的 PDF 文件中显示 Unicode(十六进制)字符

转载 作者:行者123 更新时间:2023-11-30 05:58:19 24 4
gpt4 key购买 nike

我正在使用代码从本网站的 Thymeleaf HTML 模板生成 PDF 文件 [将 Thymeleaf 转换为 PDF][1]。

我得到了非常好的 PDF,但面临一个小问题。我以 PDF 格式显示多种货币的产品价格,并使用此引用网站 [带有 Unicode(十六进制)的货币符号][1] 来获取不同货币的 Unicode(十六进制)值。

以下是我的.java文件代码

context.setVariable("currencySymbol","₹");  // this is Unicode for Indian rupee sysmbol

以下是我的 thymeleaf 模板代码

<td th:utext="${currencySymbol} + ' ' +  ${#numbers.formatDecimal(product.price, 0, 'COMMA', 2, 'POINT')}"> </td> 

它工作正常,并显示除印度卢比和阿联酋迪拉姆之外的所有货币符号。

请建议我如何在生成的 PDF 中显示印度卢比和阿联酋迪拉姆货币符号。

提前致谢。

**注意:- 如果有任何新方法从 HTML Thymeleaf 模板生成 PDF,请通知我 **

最佳答案

问题是默认使用的字体不支持您要打印的字符。为了使其工作,您可以嵌入另一种可以显示该字符的字体,例如 DejaVu .

您必须首先下载 DejaVu 字体文件,然后在您的 java 类中声明此字体:

    ITextRenderer renderer = new ITextRenderer();
renderer.getFontResolver().addFont("font/dejavu-sans/DEJAVUSANS.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);

并在 HTML 文档中使用此字体,例如:

    td {font-family: DejaVu Sans;}

关于java - 如何在从 ITextRenderer 和 Thymeleaf HTML 模板生成的 PDF 文件中显示 Unicode(十六进制)字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52758351/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com