java - 字体扩展不适用于 JasperReports

标签 java fonts jasper-reports

我正在尝试将 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/

相关文章:

svg - 如何从集合中删除 icomoon 中的图标

java - Jasper 创建空 PDF

java - 在 [ 和 ] 之间分割

java - 在java中集成ms access和mysql

java - 迭代私有(private)数据成员

html - 我无法将谷歌字体和天气小部件添加到 Github 页面

fonts - 如何使用 Swift 创建属性字符串?

java - 使用 MouseMotionListener 时出现问题

java - jasperreport呈现空pdf

java - 贾斯珀报告 PDF。 & 惹麻烦的性格