我有一个jar,我的应用程序包含一些字体。如果我粘贴
<font fontName="NimbusSansGlobal Light" size="12" pdfFontName="NimbusSansGlobal Light" pdfEncoding="Identity-H" isPdfEmbedded="true"/>
进入我的所有文本元素,PDF输出工作正常。如果我将它们全部切换为使用定义字体的样式:
<style name="SansFontStyle" isDefault="true" pdfFontName="NimbusSansGlobal Light" pdfEncoding="Identity-H" isPdfEmbedded="true"/>
,当我尝试生成报告时,JRLoader
无法找到该字体。有趣的是,如果我直接在我的应用程序中使用JRLoader,那么字体就可以了。
为什么样式会破坏PDF导出?
答案 0 :(得分:0)
使用Font Extensions可以解决这个问题。
使用字体扩展名后,您可以在文本元素或样式中设置字体。您将不在报告中指定pdfFontName,pdfEncoding或isPdfEmbedded。这在字体扩展名中指定。
注意:在严格的解释中,这实际上并没有回答这个问题。我不知道为什么样式与直接设置字体不同。这似乎是一个错误,但也许它是出乎意料的,但由于某种原因我们没有想到。因此,我开始将其作为评论而非答案进入。但它太长了。
无论如何,这应该允许您根据需要使用样式。所以我希望它能解决问题的核心。
字体扩展记录在JasperReports(和iReport)示例和文档中,因此一旦您知道应该使用它们就应该很容易使用它们。