默认情况下,JasperReports 3.7.* 似乎不附带任何支持 PDF 字体“Identity-H”UTF-8 编码的 PDF 字体。
我找到了很多使用 iReports 导入字体并编译嵌入 Pdf 字体的报告的示例,但我还没有找到任何在运行时使用 Java 编译报告时对我有用的解决方案。
我尝试了以下变体:
- 在 Spring 应用程序的类路径上创建 jasperreports_extension.properties 文件并定义指向 UTF-8 TTF 文件的 xml 字体系列
- 包括 jasperreports-fonts 的 Maven 依赖项:net.sf.jasperreports jasperreports 字体 4.0.0
- 考虑使用 PdfFont/FontMap 方法插入 Jasper 参数对象映射,但示例中的类被标记为已弃用
在这些情况下编译时,引擎总是报告无法解析字体的错误。这里的解决方案是什么?
最佳答案
团队成员找到了解决方案:
为Java编译配置JRProperties时
JRProperties.setProperty("net.sf.jasperreports.default.pdf.font.name", "org/gnu/freefonts/FreeSans.ttf");
JRProperties.setProperty("net.sf.jasperreports.default.pdf.encoding", "Identity-H");
JRProperties.setProperty("net.sf.jasperreports.default.pdf.embedded", true);
其中 org/gnu/freefonts/FreeSans.ttf 是应用程序类路径中的 UTF-8 字体
关于java - 将 UTF-8 PDF 字体获取到用 Java/Spring 编译的 JasperReports 3.7.* 报告中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14244747/