1

我正在尝试在我的网络应用程序中将 Tahoma 字体添加到我的报告中。我使用字体扩展机制(通过 iReport 我导出了扩展 jar 并将其放在我的 web 应用程序 lib 目录中)。我的 font.xml 文件如下所示:

<fontFamily name="Tahoma">
   <normal><![CDATA[fonts/tahoma.ttf]]></normal>
   <bold><![CDATA[fonts/tahomabd.ttf]]></bold>
   <pdfEncoding><![CDATA[Cp1250]]></pdfEncoding>
   <pdfEmbedded><![CDATA[true]]></pdfEmbedded>
</fontFamily>

和我的风格:

<style name="TAHOMA_FONT" fontName="Tahoma" pdfFontName="Tahoma" />

问题是当我尝试生成 PDF 时出现以下错误:

无法加载以下字体:pdfFontName:Tahoma pdfEncoding:Cp1250 isPdfEmbedded:true

在 iReports 中不会出现此问题。此外,当我将样式更改为以下样式时,不会发生问题:

<style name="TAHOMA_FONT" fontName="Tahoma" pdfFontName="fonts/tahoma.ttf" pdfEncoding="Cp1250" isPdfEmbedded="true" />

当我在 net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory 类中放置断点时,我可以看到正在读取 Tahoma 系列。

我的 jasperreports 版本是 3.7.4。

有什么建议么?

4

1 回答 1

2

这是我的问题。font.xml 定义很好,但样式定义不是。它应该是:

<style name="TAHOMA_FONT" fontName="Tahoma" />

样式标签内的 pdfFontName、pdfEncoding、isPdfEmbedded 属性现已弃用,不应使用。

于 2013-03-12T08:47:57.610 回答