2016-02-25 61 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)