字体扩展名不适用于JasperReports

lil*_*985 7 java fonts jasper-reports

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

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

这是我的font.xml文件:

<fontFamiles>
  <fontFamily name="TahomaFont">
    <normal>export/fonts/BTahoma.ttf</normal>
    <pdfEncoding>Identity-H</pdfEncoding>
    <pdfEmbedded>true</pdfEmbedded>
  </fontFamily>
<fontFamiles>
Run Code Online (Sandbox Code Playgroud)

这是我的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
Run Code Online (Sandbox Code Playgroud)

我也把Tahoma.ttf字体文件放在我的类路径中.以下是jasper报告中的样式标记:

<style fontName="TahomaFont" name="tahoma"/>
Run Code Online (Sandbox Code Playgroud)

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

Hir*_*ako 4

将 Tahoma.ttf 字体放入类路径中并不是正确的方法。

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

  • 在 jasperReport 中,管理您的字体,在options中,在Font选项卡中,选择字体并单击导出为扩展名
  • 打包你的 jar 包,一切都应该可以正常工作,而无需在 JVM 上安装物理字体。

此处记录了更多信息。