IReport PDF 中文不顯示問題

2021-09-02 18:29:04 字數 1767 閱讀 5692

方法一:

1、首先,在用ireport設計報表時將要顯示中文資料的地方的屬性設定如下:

font        name:    宋體 (中文字型)

pdf font name:   stsong-light

pdf  encoding:  unigb-ucs2-h(chinese siplified)

pdf   embeded: √

2、itextasian.jar 這個包匯入專案的classpath中,沒有這個包的話,匯出含有中文資料的pdf會報以下錯誤:

net.sf.jasperreports.engine.jrruntimeexception: could not load the following font :

pdffontname   : stsong-light

pdfencoding   : unigb-ucs2-h(chinese siplified)

ispdfembedded : true

這種方法雖然能夠正常地顯示中文資訊,但是有乙個缺點,就是只有一種字型。因為itext 官 方**提供的itextasian.jar 包中只包 含幾種簡單的亞洲字型,對於簡體中文來說,只有宋體。因此,採用這種方法生成的pdf 中,中文字型 只能為宋體,無法顯示其他字型。但這種方法比較簡單

方法二: 使用 ttf files (true type fonts) 字型檔案

ttf 是系統的標準字型檔案,最初由mac os 定義,後來microsoft windows 普遍採用這種格式來定義字型檔案。這也是目前我們最常用的字型格式。可以通 過制定具體的字型檔案的方式來指定字型。

如:」 隸書 」

pdffontname=

」 stcaiyun.ttf

」 size=

」 18 ″ isbold=

」 true

」 ispdfembedded =

」 true

」 pdfencoding =

」 identity-h

」 />

例子中使用的是 「

華文彩雲 」

字型,stcaiyun.ttf 為字型檔案。需要注意的一點,這裡使用的是相對路徑,在生成pdf 的時候,程式會從類路徑中查詢這個字型檔案,你可以選擇把字型檔案放到類路徑中,或者使用絕對路徑來引用 這個字型檔案(如:c:/windows/fonts /stcaiyun.ttf )。不推薦採用 後一種方法,因為開發環境和使用環境中,系統的路徑可能不同,就會導致無法找到字型檔案。一種更好的解決辦法,把windows 系 統中fonts 下的某些常用的字型打成乙個jar 包, 然後把這個jar 報放到類路徑下即可。

注意,在使用這種方式的時候,pdfencoding 屬性要設為 」

identity-h

」 或者 」

identity-v」 。

關於ireport

針對上述兩種解決方案,第一種方案可以直接在ireport介面 中選擇pdffontname 和pdfencoding ,系統中已經整合了 」

stsong-light

」 和 「

unigb-ucs2-h

」 ,下拉列 表中可以直接選到。

第二種方式下,ireport 的路徑下有乙個fonts 目錄,其中包 括一些ttf 字型檔案。在圖形介面中選擇pdffontname 的 時候,只 能選擇目錄中存在的字型檔案。如果想使用其他的ttf 字型,可以實現把相關的字型從windows 系統的fonts 目錄下拷貝到ireport 的 fonts 路徑中,這些字型就會出 現在pdffontname 的下拉列表中了。

Matplotlib中中文不顯示問題

我們在使用jupter進行資料分析的時候,會接觸到matplotlib這個庫,它是用來進行視覺化資料分析的,在乙個圖中,我們常常會加入一些中文來進行說明。當我們加入中文的時候會出現下圖所示的樣子 可以看到,中文變成了這種亂碼的形式。網上有很多的例子,有很多是錯誤的,這裡我把我測試成功的方法說明一下。...

unity 發布webGl後不顯示中文

請看原文 unity支援所有的 ttf 的字符集,預設的字型為arial win10電腦中所有字型存放路徑為 c windows fonts,開啟資料夾後,選擇需要的字型,將其拖入unity當前工程資源的資料夾下。在 project 檢視中選擇 creat gui skin 選單項,建立乙個gui ...

php讀取csv內容,中文不顯示問題

讀取csv資訊時,中文內容讀取不到,檢查後發現原因是系統常用地區標識的問題,系統預設的utf8,所以在讀取gbk的csv時中文出現了異常 root root cat etc sysconfig i18n lang en us.utf 8 sysfont latarcyrheb sun16 因為系統上...