问题描述
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
由于技术有限,如有纰漏,还望指正。
如有疑问,可以提出来,互相探讨,共同进步。
谢谢。