我正在尝试在我的网络应用中将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。
有什么建议吗?
答案 0 :(得分:2)
这是我的问题。 font.xml定义很好,但样式定义不是。它应该是:
<style name="TAHOMA_FONT" fontName="Tahoma" />
pdfFontName,pdfEncoding,样式标记内的isPdfEmbedded属性现已弃用,不应使用。