問題描述
iReport 5.6.0 PDF格式導出,中文不顯示。
報錯信息如下:
Error exporting print... Could not load the following font :
pdfFontName : STSong-Light
pdfEncoding : UniGB-UCS2-H
isPdfEmbedded : true
net.sf.jasperreports.engine.JRRuntimeException: Could not load the following font :
pdfFontName : STSong-Light
pdfEncoding : UniGB-UCS2-H
isPdfEmbedded : true
at net.sf.jasperreports.engine.export.JRPdfExporter.getFont(JRPdfExporter.java:2117)
at net.sf.jasperreports.engine.export.JRPdfExporter.getChunk(JRPdfExporter.java:1906)
at net.sf.jasperreports.engine.export.JRPdfExporter.getPhrase(JRPdfExporter.java:1875)
at net.sf.jasperreports.engine.export.SimplePdfTextRenderer.getPhrase(SimplePdfTextRenderer.java:89)
at net.sf.jasperreports.engine.export.SimplePdfTextRenderer.render(SimplePdfTextRenderer.java:100)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportText(JRPdfExporter.java:2238)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportElements(JRPdfExporter.java:950)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportPage(JRPdfExporter.java:909)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportReportToStream(JRPdfExporter.java:786)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportReport(JRPdfExporter.java:513)
at com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:1174)
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)
at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)
前提:
已經對自己設計的報表統一設置了pdf的字體格式。配置如下:
Font name: 宋體
Pdf Font name: STSong-Light
Pdf Embeded: true (打鈎)
Pdf Encoding: UniGB-UCS2-H(Chinese Siplified)
截圖如下:
現象:
iReport 5.6.0 Preview中文展示是OK的,但是導出的PDF中文異常。效果如下:
1)iReport Preview 結果如下:
2)PDF導出結果:
問題分析
PDF的中文沒有得到正確轉換。
解決方案
有兩種非常簡單的解決方案,采取其中一種,即可完美解決PDF中文不顯示問題。具體如下:
方案1:
工具--> 選項--> iReport--> Classpath--> Add JAR--> H:\SW_install\Jaspersoft\iReport-5.6.0\ireport\modules\ext\iTextAsian.jar (此處需要根據自己iReport 5.6.0的安裝目錄進行選擇)
添加完 iTextAsian.jar 后,在 Reloadable列 將其勾選,重啟iReport 5.6.0,PDF中文即可正常顯示。
操作詳細步驟如下:
本地安裝的iReport目錄 Jaspersoft\iReport-5.6.0\ireport\modules\ext\ 目錄下找到 iTextAsian.jar
方案二:
比方案一更簡單,不需要執行方案一的那些操作!!
只需要將 Jaspersoft\iReport-5.6.0\ireport\modules\ext\目錄下的 iTextAsian.jar這一個jar包,Copy一份到 Jaspersoft\iReport-5.6.0\platform9\lib\目錄下。
重啟iReport,即可解決PDF預覽中文亂碼的問題。
是不是超級簡單?!^_^
效果如下:
至此,PDF預覽中文不顯示的問題,已處理完畢!
PS:希望本文能幫到需要幫助的同行。
另外如果需要iReport 5.6.0安裝文件,在我的博客里有百度網盤,可以免費下載,推崇資源信息共享。
請參考:https://www.cnblogs.com/miracle-luna/p/10560294.html
由於技術有限,如有紕漏,還望指正。
如有疑問,可以提出來,互相探討,共同進步。
謝謝。