字体扩展名不适用于JasperReports

我想在我的网络应用程序中添加Tahoma字体到jasper报告。 我使用字体扩展机制 。

抛出此exception:net.sf.jasperreports.engine.util.JRFontNotFoundException:字体’TahomaFont’不可用于JVM。 有关更多详细信息,请参阅Javadoc。

这是我的font.xml文件:

  export/fonts/BTahoma.ttf Identity-H true   

这是我的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报告中的样式标记:

  

请让我知道我哪里出错了。 提前致谢。

将Tahoma.ttf字体放在类路径中是不可取的。

你是正确的使用字体扩展,这是一个很好的做法 – 但你需要将字体作为字体扩展包装到jar中,并将该jar添加到类路径中。

  • 在jasperReport中,管理字体,在选项中 ,在“ 字体”选项卡中,选择字体并单击“ 导出为扩展名”
  • 打包你的jar,事情应该工作正常,而无需在JVM上安装物理字体。

此处记录了更多信息。

也许你必须将你的jar文件复制到你的java_home / fonts目录。 如果您是使用maven项目,则必须将jar文件打包到具有pom属性的maven项目中,以便为pom.xml添加依赖项