我正在评估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(我在网上什么都没发现),如果这样可以用优雅,简单的方式解决我的跨平台软件。
你能告诉我更多关于这个罐子的信息吗?
答案 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"/>