JsperReport导出PDF报表中文不显示
来源:互联网 发布:plc编程工程师 编辑:程序博客网 时间:2024/05/02 02:58
一、描述
最近项目中使用IReport和JsperReport遇到导出PDF报表时,中文不显示。但填充完数据可以对PDF进行预览(JasperViewer.viewReport(jasperPrint, false);),稍后会贴出部分代码。经过在网上搜索,发现问题,在报表定义时要定义如下属性:
Font name: 宋体 (中文字体)
PDF font name: STSong-Light
PDF Encoding: UniGB-UCS2-H(Chinese Siplified)
PDF Embeded: true如图所示
但这样并没有解决我的问题,就开始继续探索。。。
发现jsperReport要支持中文必须加入以下包:
itextpdf和itext-asian语言包
Maven依赖如下:
<dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.4.3</version> </dependency> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itext-asian</artifactId> <version>5.2.0</version> </dependency>
然而这并没有解决我的问题:
最后发现是JsperReport版本问题导致的。刚开始使用的是版本是5.0.1,Maven依赖
<dependency> <groupId>net.sf.jasperreports</groupId> <artifactId>jasperreports</artifactId> <version>5.0.1</version></dependency>
使用5.0.1时,加入各种语言包都不能解决问题,后来直接把版本升级到:6.0.3<dependency> <groupId>net.sf.jasperreports</groupId> <artifactId>jasperreports</artifactId> <version>6.0.3</version></dependency><dependency> <groupId>com.itextpdf</groupId> <artifactId>itext-asian</artifactId> <version>5.2.0</version></dependency>在这会发现,使得6.0.3版本并不用手动依赖itextpdf ,那是因为6.0.3版本中,jasperreports 中依赖了 itextpdf 5.5.0 所以只导入 itext-asian即可
问题解决!
二、JsperReport示例
1、
<span style="font-size:14px;">@Testpublic void test5(){JasperReport jasperReport;JasperPrint jasperPrint;/*编译jrxml文件,并生成JasperReport对象*/try { //jasperReport= JasperCompileManager.compileReport("C://Users//zqx//Desktop//contractTemplate.jrxml");/*使用IReport编译jrxml文件为jasper,节省程序运行时的编译时间,直接加载jasper文件生成JsperReport对象*/jasperReport = (JasperReport) JRLoader.loadObjectFromFile("C://Users//zqx//Desktop//contractTemplate.jasper");/*参数初始化*/Map<String, Object> parameters = new HashMap<String, Object>();parameters.put("corpName", "社会主义集团军");/*数据填充。关于参数 new JREmptyDataSource()我也没搞明白为什么要加,我没使用数据库,但不加就不能正常导出PDF*/jasperPrint = JasperFillManager.fillReport(jasperReport, parameters,new JREmptyDataSource());/*对生成的PDF进行预览*/JasperViewer.viewReport(jasperPrint, false);/*导出为PDF文件*/JasperExportManager.exportReportToPdfFile(jasperPrint, "C://Users//zqx//Desktop//contractTemplate.pdf");} catch (JRException e) {e.printStackTrace();}}</span>
1 0
- JsperReport导出PDF报表中文不显示
- Ireport导出Pdf中文不显示
- 报表导出pdf文件显示中文的问题
- jasperreport导出PDF中文不显示的问题
- iReprot导出PDF格式中文不显示的问题
- ReportViewer rdlc 报表导出 pdf 中文乱码
- JasperServer导出PDF报表中文问题解决方案
- 利用itext导出HTML到PDF,解决中文不显示和中文不换行的问题
- jasper报表通过Java生成pdf中文不显示的一种解决方案
- ireport 做pdf 报表 字体不显示
- jasperreports和Ireport导出PDF文件中文不显示问题(最新解决方法)
- Jaspersoft iReport Designer 4.7.0 导出pdf 中文不显示的解决办法
- iReport 中pdf不显示静态中文
- ubuntu下pdf不显示中文
- ubuntu 10.10 PDF不显示中文解决办法
- ubuntu 10.10 PDF不显示中文解决办法
- IREPORT crossdata PDF 不显示中文
- iReport 中pdf不显示静态中文
- 仿淘宝购物车
- android截图
- ios app内跳转到手机qq聊天界面
- html5 canvas
- Linux系统管理常用命令
- JsperReport导出PDF报表中文不显示
- 大数据系统的另一种解决方案-采用MPP架构的GreenPlum数据库
- [Ruby on Rails实战圣经]Ajax 应用程式
- 艾拉托斯特你筛法(java实现)
- android6.0 mount failed
- 使用jmeter HTTP代理服务器录制APP脚本
- eclipse安装spring 插件失败
- 破解Office文档密码的三个技巧
- android 动画