什么是jasperreports-fonts jar以及如何使用它?

时间:2014-11-28 08:11:13

标签: java linux windows fonts jasper-reports

我正在评估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(我在网上什么都没发现),如果这样可以用优雅,简单的方式解决我的跨平台软件。

enter image description here

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

1 个答案:

答案 0 :(得分:9)

在jasper报告(.jrxml文件)中,您可以使用多种字体来显示标签/文本。这些字体可能并不总是在不同的平台/ OS上可用。 (例如,有些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"/>