jasperreports-fonts.jar是用来做什么的,如何使用它?

15

我正在评估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文件的信息吗?


将此添加到您的类路径中,并在所有标签/文本等中使用来自jar的字体,其中必须指定字体名称。 - StanislavL
1个回答

18
在jasper报表(.jrxml文件)中,您可以使用多种字体来显示标签/文本。这些字体可能在不同的平台/操作系统上并非始终可用(例如,除非您手动安装它们,否则某些MS字体在Linux机器上不可用)。因此,我们将jasper报告中使用的字体打包到一个jar文件中,并使其可以在任何底层平台上运行。此外,您可以在字体扩展jar中包含自己创建的自定义字体,并与jasper报告一起发送。有关更多信息,请参见这里
另外,有几种方法可以配置和使用此jar。请查看这里了解其中最简单的一种方法。
请注意,如果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"/>

3
简而言之,添加依赖项jasperreports-fonts,在报告中仅使用DejaVuSans和加粗字体即可。 - Robert Niestroj
是的,那应该可以。Maven 让生活变得如此简单。虽然我按照指定手动创建了 jar 包,但它运行良好。 - keenUser

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接