【问题标题】:What is the jasperrepots-fonts jar for and how to use it?jasperreports-fonts jar 是什么以及如何使用它?
【发布时间】:2014-11-28 08:11:13
【问题描述】:

我正在评估 JasperReports 以生成报告。我在 Windows 和 Linux 之间的报告可移植性方面存在一些问题。我找到了一个(hacky)解决方案来让它跨平台工作。但是我想知道jasperreports-fonts 是什么:

<dependency>
    <groupId>net.sf.jasperreports</groupId>
    <artifactId>jasperreports-fonts</artifactId>
    <version>5.6.1</version>
</dependency>

我看到它包含 DejaVu Sans 字体,但我不知道如何使用这个 jar(我在网上一无所获)以及这是否能以一种优雅、简单的方式解决我的跨平台软件问题。

你能告诉我更多关于这个罐子的信息吗?

【问题讨论】:

  • 将此添加到您的类路径中,并将 jar 中的字体用于您必须指定字体名称的所有标签/文本等

标签: java linux windows fonts jasper-reports


【解决方案1】:

在 jasper 报告(.jrxml 文件)中,您可以使用多种字体来显示标签/文本。这些字体可能并不总是在不同的平台/操作系统上可用。 (例如,有些 MS 字体在 linux 机器上不可用,除非您手动安装它们)。因此,我们将 jasper 报告中使用的字体捆绑到一个 jar 中,并使其不受底层平台的影响。此外,您可以在字体扩展 jar 中包含您自己的(自定义创建的)字体,并将它们与 jasper 报告一起发送。更多信息是here

还有几种方法可以配置和使用这个 jar。看看this,了解最简单的方法之一。

注意如果jrxml中使用的字体在JVM中不可用,在导出报告时会报错如下:

net.sf.jasperreports.engine.util.JRFontNotFoundException:  
   Font 'Arial' is not available to the JVM.   

这可以通过两种方式解决:
1. 使用 jasperreport-extension.jar 或
2. 将属性net.sf.jasperreports.awt.ignore.missing.font 设置为true 以忽略丢失的字体。 例如在jrxml中可以这样设置:

<property name="net.sf.jasperreports.awt.ignore.missing.font" value="true"/>

【讨论】:

  • 简而言之:添加依赖项 jasperreports-fonts 并在报告中仅使用 DejaVuSans 和粗体?
  • 是的,应该可以。 Maven 让生活变得如此简单。我按照指定手动创建了 jar,它运行良好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-10
  • 2015-03-13
  • 2013-10-25
  • 2014-11-19
  • 1970-01-01
  • 2011-11-01
相关资源
最近更新 更多