Java 字体扩展不适用于JasperReports

Java 字体扩展不适用于JasperReports,java,fonts,jasper-reports,Java,Fonts,Jasper Reports,我正在尝试将Tahoma字体添加到我的web应用程序中的jasper report中。我用 引发了此异常: net.sf.jasperreports.engine.util.JRFontNotFoundException:字体“TahomaFont”对JVM不可用。有关更多详细信息,请参阅Javadoc 这是我的font.xml文件: 导出/font/BTahoma.ttf 身份-H 真的 这是我的jasperreports.properties文件: net.sf.jasperreport

我正在尝试将Tahoma字体添加到我的web应用程序中的jasper report中。我用

引发了此异常: net.sf.jasperreports.engine.util.JRFontNotFoundException:字体“TahomaFont”对JVM不可用。有关更多详细信息,请参阅Javadoc

这是我的font.xml文件:


导出/font/BTahoma.ttf
身份-H
真的
这是我的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 report中的样式标记:



请告诉我哪里出了问题。提前感谢。

将Tahoma.ttf字体放在你的类路径中是的方法

您使用字体扩展是正确的,这是一个很好的实践-但是您需要将字体打包为字体扩展,放入一个jar中,并将该jar添加到您的类路径中

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

更多信息记录在案。

也许您必须将jar文件复制到java_home/fonts目录。如果您使用的是maven项目,那么您必须在maven项目中使用pom属性打包jar文件,以向pom.xml添加依赖项,您将“Tahoma.ttf”字体文件放在类路径中,但在fonts.xml中声明“BTahoma.ttf”

<normal>export/fonts/BTahoma.ttf</normal>
export/font/BTahoma.ttf
让我们把它们换成相同的。 我认为这一例外将会消失