Jasper报告,加载多个字体扩展

时间:2016-02-25 15:30:42

标签: java jasper-reports export-to-pdf

我希望我的Jasper报告能够动态地支持5种或6种语言。

我希望使用google noto-sans字体(www.google.com/get/noto) 和google noto,每种语言都有一个文件,(在主要字体文件旁边)

我应该创建几个字体扩展并将它们添加到我的类路径中吗?

按照我之前的问题 How to get non-english support when exporting to PDF?

2 个答案:

答案 0 :(得分:2)

在碧玉报告中

<font fontName="google_noto"/>

与此字体相关,您可以只有1个字体扩展名与family name google_noto(包含普通,粗体,斜体等字体)。

您无法动态切换此字体扩展名,解决方案是:

  1. 使用包含所有相对语言的字体。

  2. 为具有不同fontName的不同语言创建不同的jrxml (报告),并使用所有不同的family names创建字体扩展名:

    //report in English
    <font fontName="google_noto_en"/>
    //report in Italian        
    <font fontName="google_noto_it"/>
    
  3. 解决方法是指示假字体,禁用缺失字体的错误,并在生成报告之前切换默认字体。

    net.sf.jasperreports.awt.ignore.missing.font="true"
    net.sf.jasperreports.default.font.name="google_en"
    

    此问题与设置属性JRProperties became deprecated, recommended way of replacing

    有关

    但是,我强烈建议并选择:“1。使用包含所有相关语言的字体”

答案 1 :(得分:0)

有办法做到这一点......

您可以放置​​多个文本框字段,并在单个文本框上使用您要显示的单个字体名称。 如果某些字体没有在 google_noto 中呈现,那么这个文本框将不会显示任何内容(空白),如果该字体在 google_noto1 中呈现,则该文本框将显示该字体文本。

我希望它能正常工作(Y)