iReport 5.6.0 PDF导出中文不显示问题 解决方案
问题描述
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
由于技术有限,如有纰漏,还望指正。
如有疑问,可以提出来,互相探讨,共同进步。
谢谢。
iReport 5.6.0 PDF导出中文不显示问题 解决方案的更多相关文章
- JSP 中文乱码显示处理解决方案
来源: <http://blog.csdn.net/joyous/article/details/1504274> JSP 中文乱码显示处理解决方案 分类: 所有 Web前端 J2EE20 ...
- ABP进阶教程10 - PDF导出中文乱码
点这里进入ABP进阶教程目录 问题描述 功能按钮 - 导出PDF,中文信息导出为乱码. 解决方案 导出PDF是通过pdfmake.js实现的. 检查发现是pdfmake引用的vfs_fonts.js字 ...
- Jaspersoft Studio 导出PDF格式中文不显示
1:设置字体 2:应用上面设置的字体
- [原创]OpenERP 7.0 打印PDF报表 中文 乱码问题的解决方案。
网上的解决方案基本上以替换字体和安装上海先锋科技开发的软件包配置两种方案,替换字体的方案尝试了几次都么有成功,安装软件包的方案成功. 软件环境:Ubuntu Server 12.04 第一步:先到ht ...
- Tomcat 中 jsp 中文乱码显示处理解决方案
原地址: http://blog.csdn.net/joyous/article/details/1504274 初学JSP,尤其是Tomcat环境(GlassFish默认UTF-8,则不存在此类问题 ...
- Jasperreports以及iReport4.5报表PDF导出字体完美解决方案
在使用Jasperreports以及iReport设计报表时,导出PDF是一个常见的需求.网上解决PDF导出中文显示问题相关的文章很多,无非就是设置控件的pdf font name和pdf encod ...
- 发邮件 和 excel导出中文文件名
/** * 发邮件 * @param email * @param subject * @param body * @throws UnsupportedEncodingException */ pu ...
- ASP.NET MVC 拓展ActionResult实现Html To Pdf 导出
之前实现了html直接转换为word文档的功能,那么是否也同样可以直接转换为pdf文档呢,网上搜了下html to pdf 的开源插件有很多 如:wkhtmltopdf,pdfsharp,itexts ...
- xhtmlrenderer渲染pdf,中文换行
在实际开发中,发现在table中显示中文,渲染出来的pdf,中文内容不自动换行.经过搜索发现了一种解决方案,如下: 重写Breaker,修改right计算方式 /* * Breaker.java * ...
随机推荐
- hbase_基本命令
hbase 区分大小写. 1) create '表名','列族名' --多个列族名用逗号分隔 2) list desc(查询表名详细信息) 3) put '表名','行健','列族:列名',' ...
- 浅谈 drop、truncate和delete的区别
(1)DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作. TRUNCATE TABLE 则一次性地从表中删除所有的数据并不把单独 ...
- django.db.utils.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: ...
出现此问题的解决方法: 在mysql中创建一个和settings.py里设置的mysql 'name'名字一样的数据库就可以了.
- 适用于 iOS、Android 和 Windows 设备的移动设备管理
适用于 iOS.Android 和 Windows 设备的移动设备管理 随着企业环境中移动设备的数量不断增加,详细检查访问您企业资源的移动设备变得至关重要.统一终端管理软件 Desktop Centr ...
- C#中get和set属性的作用
c#在定义类时,通常要把类中声明的对象封装起来,使得外界不能访问这个属性.上述代码中如果去掉set部分,则外界只能读取name的值,如果去掉get部分,则只能给name赋值.这样就可以控制外界对私有属 ...
- Win7 VS2017编译magnum及例子
magnum是一个开源的图形中间件 Lightweight and modular C++11/C++14 graphics middleware for games and data visuali ...
- 第45章:MongoDB-集群--Sharding(分片)--分片的管理
①列出所有的Shard db.runCommand({“listshards”:1}); ②查看分片信息 db.printShardingStatus(); ③判断是否分片 db.runCommand ...
- python 0228
01 cpu 内存 硬盘 操作系统 CPU:中央处理器,相当于人大脑. 飞机 内存:临时存储数据. 8g,16g, 高铁 1,成本高. 2,断电即消失. 硬盘:长期存储大量的数据. 1T 512G等等 ...
- sftp修改用户home目录后登录时报connection closed by remote host
在sftp用户需要修改登录根目录的情况下,我们可以修改/etc/ssh/sshd_config文件中ChrootDirectory /home/[path]的路径. 但是,在重启sshd服务后,sft ...
- windows下qt的.exe的dll文件怎么配齐
用qt自带的windeploy工具即可 win键打开开始菜单 找到qt目录下的qt for desktop(mingw)并打开 qtcreater或者vs打开要部署的项目,构建成release模式,运 ...