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

Rob*_*roj 9 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>
Run Code Online (Sandbox Code Playgroud)

我看到它包含DejaVu Sans字体,但我不知道如何使用这个jar(我在网上什么也没发现),如果这将以优雅,简单的方式解决我的跨平台软件.

在此输入图像描述

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

kee*_*ser 10

在jasper报告(.jrxml文件)中,您可以使用多种字体来显示标签/文本.这些字体可能并不总是在不同的平台/ OS上可用.(例如,有一些MS字体在Linux机器上不可用,除非你手动安装它们).因此,我们将jasper报告中使用的字体捆绑到一个jar中,并使它们无论基础平台如何都可以工作.此外,您可以在字体扩展jar中包含您自己的(自定义创建的)字体,并将它们与jasper报告一起发送.更多信息在这里.

还有几种方法可以配置和使用这个jar.看看这个就知道最简单的方法之一.

请注意,如果jrxml中使用的字体在JVM中不可用,则在导出报告时将抛出错误,如下所示:

net.sf.jasperreports.engine.util.JRFontNotFoundException:  
   Font 'Arial' is not available to the JVM.   
Run Code Online (Sandbox Code Playgroud)

这可以通过两种方式解决:
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"/>
Run Code Online (Sandbox Code Playgroud)

  • 简而言之:添加依赖项 `jasperreports-fonts` 并且在报告中只使用 DejaVuSans 和粗体? (3认同)