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

由于技术有限,如有纰漏,还望指正。

如有疑问,可以提出来,互相探讨,共同进步。

谢谢。

原文地址:https://www.cnblogs.com/miracle-luna/p/10568318.html

时间: 2024-08-29 19:02:49

iReport 5.6.0 PDF导出中文不显示问题 解决方案的相关文章

struts2与JasperReport整合应用中解决PDF中文不显示问题(让我烦恼了半天)

今天在struts2中以pdf导出JasperReport报表时,遇到了一个很奇怪的问题:在action中获取一些值并且将其放到map中,但是通过$F{name}取值时,有些值能显示,而有些值不能显示,有些值只能显示部分.刚开始还以为是action存放到map中的key和jsper中取到的是不一致的,检查了半天发现并没有问题.这个问题然我郁闷了半天,始终没找到问题所在,由于不知道问题出在哪了,在百度上搜索了半天也没找到解决的办法,无意间看到了一片文章解决了我的问题,下面整理了一下此问题的解决方案

发邮件 和 excel导出中文文件名

/** * 发邮件 * @param email * @param subject * @param body * @throws UnsupportedEncodingException */ public static void sendEmail(String email, String subject, String body) throws UnsupportedEncodingException,NoSuchProviderException,MessagingException,E

利用jasperreports报表生成pdf文档中文不能显示问题解决方法

在利用jasperreports5.6.0系列开发工具生成的jrxml格式文件和jasper格式文件的项目中,和pdf中字体有关的jar包有如下两个: iText-2.1.7.js2.jar:iTextAsian.jar. 另外在开始设计jrxml格式文件的时候,要注意选择元素(Text Field,Static Text等)的属性值设置. 利用jasperreports报表生成pdf文档中文不能显示问题解决方法

Question2Answer 1.7.0 版本的中文语言包

http://www.androidren.com/index.php?qa=212&qa_1=question2answer-1-7-0-版本的中文语言包 最近Question2Answer发布了1.7.0 版本.我已经安装好.感兴趣的可以上http://android-studio.cn 体验.感觉变化不是很大. 所以http://androidren.com 暂时不考虑升级.不过1.7.0版本的中文语言包我做好了.有需要的朋友可以下载: Q2A 1.7.x - Chinese Simpli

【Ecstore2.0】导出问题解决(未导出或导出文件为0字节)

如果导出队列能成功执行(队列不执行看这里)但是并未生成文件,那么原因大部份可能是出在FTP上. ECSTORE2.0采用了PHP的FTP模块,所以先确认你的环境是否安装了FTP模块,如果没有,安装并在PHP.INI中配置好模组路径. 功能文件:\app\importexport\lib\policy\ftp.php ,程序中使用 ftp_nb_put() 异步上传,这里告诉大家一个调试方法:在适当的位置加入 logger::info('debug info'); 然后查看 /data/logs/

INNO SETUP 5.5.0以上版本中文语言包

1 ; *** Inno Setup version 5.5.0+ Chinese messages *** 2 ; 3 ; To download user-contributed translations of this file, go to: 4 ; http://www.jrsoftware.org/is3rdparty.php 5 ; 6 ; Note: When translating this text, do not add periods (.) to the end of

MyCCL复合特征码定位系统3.0 build 23 中文绿色版

MyCCL复合特征码定位系统介绍 这是一个主要定位木马病毒的特征码的工具. MYCCL是CLL的改进版,可以进行多重特征码的定位,针对金山等杀软的反向定位等功能,并实现自动化代码定位和显示. myccl是定位特征码用的,定位完得你手动修改 最好是先用OC转换为内存地址,然后再用OD加载,修改特征码,这样容易点. MyCCL复合特征码定位系统介绍 MyCCL3.0.7z 解压密码:xiaochina 烈焰下载:http://pan.baidu.com/s/1bnCh2LD MyCCL复合特征码定位

Elasticsearch Server,2nd Edition pdf 翻译 中文

很偶然的机会,就需要接触到搜索,入门就是google trend已然超过solr的ES.在入门的时候找书的时候发现没有中文版的.于是自己开始翻译Elasticsearch Server,2nd Edition.应该是全球头一份了.看到微博上已经有出版社把英文书引过来,刚找到了人翻译这本书.我就先放出来自己翻的一部分.如果他真找到这里来了,就义务提供一下自己翻译的资源: 翻译是同步在我的Evernote里.贴出来到blog里样式都乱了.索性分享出来我的Evernote.去看去吧. 如果要引用或者转

Windows Mobile 6.0 SDK和中文模拟器下载

[转] Windows Mobile 6.0 SDK和中文模拟器下载 Windows Mobile 6.5 模拟器 2010年12月06日 星期一 07:48 转载自 zhangyanle86 终于编辑 zhangyanle86 Windows Mobile 6.0 SDK和中文模拟器下载 SDK 6.0下载页面:http://www.microsoft.com/downloads/details.aspx?familyid=06111A3A-A651-4745-88EF-3D48091A390