请勿使用此问题标记重复:Font extensions does not work for JasperReports。这是一个不同的案例,我正在分开使用maven项目。
我正在尝试将Open Sans字体添加到我的网络应用中的jasper报告中。我使用font extension mechanism。
抛出此异常:
net.sf.jasperreports.engine.util.JRFontNotFoundException:字体“打开 JVM没有“Sans”。有关详细信息,请参阅Javadoc。
我正在创建一个maven项目来生成字体扩展名:
这是我的font.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<fontFamilies>
<fontFamily name="Open Sans">
<normal><![CDATA[fonts/OpenSans/OpenSans-Regular.ttf]]></normal>
<bold><![CDATA[fonts/OpenSans/OpenSans-Bold.ttf]]></bold>
<italic><![CDATA[fonts/OpenSans/OpenSans-Italic.ttf]]></italic>
<boldItalic><![CDATA[fonts/OpenSans/OpenSans-BoldItalic.ttf]]></boldItalic>
<pdfEncoding><![CDATA[Identity-H]]></pdfEncoding>
<pdfEmbedded><![CDATA[true]]></pdfEmbedded>
<exportFonts/>
</fontFamily>
</fontFamilies>
这是我的 jasperreports_extension.properties 文件:
net.sf.jasperreports.extension.registry.factory.fonts=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory
net.sf.jasperreports.extension.simple.font.families.opensans=fonts/fonts.xml
另外,我已将 Open Sans ttf文件放在名为 OpenSans 的文件夹中。
最后,我通过这种方式将依赖项添加到我的最终项目中(正确执行报告)
<dependency>
<groupId>com.myfonts</groupId>
<artifactId>myfont</artifactId>
<version>1.0</version>
<scope>compile</scope>
</dependency>
由于某种原因,我的报告无法正确显示字体。请让我知道我哪里出错了。提前谢谢。