2016-02-25 58 views
0

我希望我的Jasper Report动态支持5或6种语言。Jasper报告,加载多个字体扩展

我想使用的谷歌诺托-Sans字体(www.google.com/get/noto) 和谷歌诺托,具有每种语言的单个文件,(主字体文件旁边)

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

下面我刚才的问题 How to get non-english support when exporting to PDF?

+0

什么不清楚的,如果你喜欢不同的字体使用相同JRXML不同的出口(同一份报告中,只有一个字体中定义)? –

+0

在jrxml中,您定义了1个字体名称,并且相对于此您只能有1个字体扩展名(您可以试着绕​​过不让pdf找到您的字体并动态设置默认字体),但对我而言,您似乎需要1字体支持所有语言或不同字体(不同语言)的不同报告和字体扩展中的多种字体 –

+0

所以我怎样才能解决上传,(他们提供了一个单一的主文件,和其他任何其他字体文件语言) –

回答

1

在碧玉报告中,您有

<font fontName="google_noto"/> 

与此相关的字体可以只有1字体扩展与family namegoogle_noto(包含字体正常,粗体,斜体等)。

不能切换这种字体扩展动态的解决办法是:

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

  2. 不同fontName创建不同JRXML(报告)不同的语言,并与创建字体扩展各种不同的family names

    //report in English 
    <font fontName="google_noto_en"/> 
    //report in Italian   
    <font fontName="google_noto_it"/> 
    

一个解决将指示假字体,为缺少的字体禁用错误,并在生成报告之前根据需要切换默认字体。

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

这个问题是有关设置属性JRProperties became deprecated, recommended way of replacing

不过,我会强烈建议,选择:“1,使用包含所有语言相关的字体”

+0

我同意,使用相同的字体是一种更好的方法,因为我不想管理我的报告的不同副本。 –

+0

我也希望我可以在单个报告中做到这一点,但我想现在生病了必须使用单一字体 –

0

有一种方法可以做到这一点...

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

我希望它工作正常(Y)