JasperReports - 字体扩展名不起作用 - 导出为PDF时无法找到字体

时间:2013-02-18 12:06:54

标签: java fonts jasper-reports

我正在尝试在我的网络应用中将Tahoma字体添加到我的报告中。我使用字体扩展机制(通过iReport我已导出扩展jar并将其放在我的web应用程序li​​b目录中)。我的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。

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

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

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

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