为什么我得到 JRRuntimeException:无法加载以下字体,Helvetica?



我使用的是iReport 5.6和JDK 6。当我通过Java应用程序调用报表时,会出现此异常。我使用的是一种特殊的字体类型,我已经添加到iReport库中。

例外情况是:

**JRRuntimeException: couldn't load the following font:
pdfFontName: Helvetica
pdfEncoding: Identity-H
isPdfEmbedded: false**

我不使用这种类型的字体,使用的字体很特别,我给它起了一个名字"Arial",我已经将它导入iReport的字体库。我应该把这个ttf文件添加到java中吗?在哪里?以及为什么我不使用的字体会出现异常。

如果使用Maven,请尝试将字体依赖项添加到pom.xml:

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

否则,您需要将需要的字体添加到类路径中。

这是itext库在导出为pdf时使用的默认字体

为了避免这个问题,您需要在jrxml中通过设置默认样式来定义要使用的默认字体

<style name="default" isDefault="true" fontName="DejaVu Sans"/>

其中fontName对应于字体扩展中包含的字体。

最新更新