我正在尝试将Tahoma字体添加到我的网络应用中的jasper报告中。我使用font extension mechanism。
抛出此异常: net.sf.jasperreports.engine.util.JRFontNotFoundException:Font' TahomaFont' JVM无法使用。有关详细信息,请参阅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"/>
请让我知道我哪里出错了。提前谢谢。
答案 0 :(得分:4)
将Tahoma.ttf字体放在类路径中是不的方法。
您使用字体扩展是正确的,这是一个很好的做法 - 但您需要将字体作为字体扩展包装到jar中并将该jar添加到类路径中。
更多信息记录here。
答案 1 :(得分:0)
也许您必须将jar文件复制到java_home / fonts目录中。如果您是使用maven项目,则必须将jar文件打包到具有pom属性的maven项目中,以便将依赖项添加到pom.xml
答案 2 :(得分:0)
您将“ Tahoma.ttf”字体文件放在类路径中,但在fonts.xml中声明了“ BTahoma.ttf”
<normal>export/fonts/BTahoma.ttf</normal>
让我们将它们更改为相同。 我认为这种例外将消失。