我正在尝试将 Tahoma 字体添加到我的网络应用程序中的 jasper 报告中。我用 font extension mechanism .
抛出异常: net.sf.jasperreports.engine.util.JRFontNotFoundException:JVM 无法使用字体“TahomaFont”。有关详细信息,请参阅 Javadoc。
这是我的 font.xml 文件:
<fontFamiles>
<fontFamily name="TahomaFont">
<normal>export/fonts/BTahoma.ttf</normal>
<pdfEncoding>Identity-H</pdfEncoding>
<pdfEmbedded>true</pdfEmbedded>
</fontFamily>
<fontFamiles>
这是我的 jasperreports.properties 文件:
net.sf.jasperreports.extension.registry.factory.simple.font.families=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory
net.sf.jasperreports.extension.simple.font.families.TahomaFont=export/fonts/fonts.xml
我还把 Tahoma.ttf 字体文件放在我的类路径中。 这是 jasper 报告中的样式标签:
<style fontName="TahomaFont" name="tahoma"/>
请让我知道我要去哪里错了。提前致谢。
最佳答案
将 Tahoma.ttf 字体放在类路径中不是要走的路。
您使用字体扩展是正确的,这是一个很好的做法 - 但您需要将字体作为字体扩展打包到一个 jar 中,并将该 jar 添加到您的类路径中。
- 在 jasperReport 中,管理您的字体,在选项中,在字体选项卡中,选择字体并单击导出为扩展。
- 打包您的 jar,无需在 JVM 上安装物理字体即可正常工作。
记录了更多信息 here .
关于java - 字体扩展不适用于 JasperReports,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28274197/