java - 将 UTF-8 PDF 字体获取到用 Java/Spring 编译的 JasperReports 3.7.* 报告中

标签 java spring utf-8 jasper-reports

默认情况下,JasperReports 3.7.* 似乎不附带任何支持 PDF 字体“Identity-H”UTF-8 编码的 PDF 字体。

我找到了很多使用 iReports 导入字体并编译嵌入 Pdf 字体的报告的示例,但我还没有找到任何在运行时使用 Java 编译报告时对我有用的解决方案。

我尝试了以下变体:

  1. 在 Spring 应用程序的类路径上创建 jasperreports_extension.properties 文件并定义指向 UTF-8 TTF 文件的 xml 字体系列
  2. 包括 jasperreports-fonts 的 Maven 依赖项:net.sf.jasperreports jasperreports 字体 4.0.0
  3. 考虑使用 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/

相关文章:

配置文件的 Spring Cloud 配置模式匹配

java - 从 Java 中的 String 中删除长 unicode 术语

ruby `encode' : "\xC3"从 ASCII-8BIT 到 UTF-8 (Encoding::UndefinedConversionError)

java - 如何将UTF-8中的字符串转换为不带Bom的byteArray

java - Spring 数据 JPA + openjpa : Is it possible to join a table not in OR-Hierarchy?

java - Eclipse 看不到 Java

java - FirebaseInstanceIdService 不存在

java - GWT 模块上的 LIBGDX 软键盘

java - Spring , hibernate : failed to lazily initialize a collection

java - android中奇怪的内存分配