在使用iReport与JasperReport作为报表产生工具时, 中文支持是经常遇到的问题,笔者最近做的一个J2EE Web项目采用这套工具开发报表,也遇到了类似问题,本文总结了在使用iReport与JasperReport开发报表时中文支持的有关内容,希望能对读者有所帮助.
1 运行环境
1.1 JasperReport 1.2.8
JasperReports是iReport的核心内容。它是一个强有力的开源报表产生工具,可以将内容输出到屏幕上、打印机或生成PDF, HTML, XLS, CSV和XML等文件。它完全用Java编写,并可在各种Java应用(包括J2EE或WEB应用)中用来产生动态报表内容。JasperReports组织根据在一个XML文件中定义的报表设计通过JDBC访问关系数据库中的数据.填充报表数据之前必须先将报表设计被编译成一个jasper文件。
下载地址: http://jasperreports.sourceforge.net/
1.2 iReport 1.2 8
iReport是一个制作Jasperreport XML文件的优秀可视化开发工具,通过它可以方便的设计报表模板。目前最高版本为iReport 1.3.0
下载地址: http://ireport.sourceforge.net
1.3 iText 1.3.1
iText是一个开放源码的Java类库,是用来生成PDF文件的。
下载地址: http://itext.sourceforge.net
1.4 iTextAsian.jar
如果要在生成的pdf文件显示中文等亚洲字符,还必须下载itext的亚洲字符包。
下载地址: http://itextdocs.lowagie.com/downloads/iTextAsian.jar
以上四个包必须加到应用程序的构建路径中或加到CLASSPATH,若是Web应用放入相应的WEB-INF\lib\中。
2 设置中文支持
为了在报表中能够显示中文,加入以上四个包还不够(因为以上四个包仅对报表生成及中文显示提供了支持),必须设置报表上各显示对象的相关属性,各属性设置说明如下:
Font name: 宋体 (中文字体)
PDF font name: STSong-Light
PDF Encoding: UniGB-UCS2-H(Chinese Siplified)
PDF Embeded: √
如下图所示(显示对象的属性设置):
注意:此三项的设置必须确保iTextAsian.jar亚洲语言包已经包含在项目中,否则出现编译错误.
若读者觉得对每一个对象设置比较麻烦,可通过iReport的”Format””Fonts”菜单进行统一设置,并设成报表的默认字体。如下图所示:
3 可能出现的问题
经过以上的设置,报表中文的显示应该没什么问题了,笔者在报表的开发过程中遇到几个问题,现总结如下:
3.1 问题描述
在WinXp中运行iReport1.2.8,设计报表时将数据字段的字体设置成中文字体,调好格式后编译并运行,并使用JRViewer进行预览一切正常(中文显示正常),但使用PDF、Excel预览出现如下错误:
Could not load the following font :
pdfFontName : STSong-Light
pdfEncoding : UniGB-UCS2-H
isPdfEmbedded : true
产生原因:成成PDF的亚洲语言包没有包含到项目中
解决办法:将亚洲语言包iTextAsian.jar包含到项中,可能过iReport的”Options””Classpath”将iTextAsian.jar添加Classpath中或者直接将iTextAsian.jar复制到iReport安装目录下的lib中.若是Web项目则应该将iTextAsian.jar复制到此项目的WEB-INF\lib\中.
3.2 问题描述
在WinXp中运行iReport1.2.8,设计报表时将数据字段的字体设置成中文字体,调好格式后编译并运行,并使用JRViewer进行预览一切正常(中文显示正常),使用PDF、Excel预览时无任何错误,但中文无法显示(只显示空白).
产生原因:报表显示对象的PDF字体属性设置不正确
解决办法: 报表对象有关字体属性的设置如下:
Font name: 宋体 (中文字体)
PDF font name: STSong-Light
PDF Encoding: UniGB-UCS2-H(Chinese Siplified)
PDF Embeded: √
即如下图所法
3.3问题描述
生成PDF、Excel文件时,中文显示一切正常,但生成Html文件时显示乱码
产生原因:主要是网页编码问题
解决方法
在JSP页中生成Html时,设置 <%@ page contentType="text/html;charset=GB2312" %>
在Servlet中生成Html时,response.setContentType("text/html;charset=GB2312");
若用户对项目进行了统一编码设定及过滤,则需要另作考虑,但主要还是集中在编码问题上.例如:笔者最近做的项目是其于Struts的,对编码进行了统一和过滤处理,生成Html页面时无需指编码就可正确生成Html页面,并不会出乱码,若设置成charset=GB2312反而出现了乱码.总之,对编码的统一与处理还是比较嘛烦的事.
另外, 我们通过查看iReport生成的jrxml(<?xml version="1.0" encoding="UTF-8" ?>)文件可以发现, iReport保存的汉字都是UTF-8编码。了解它的编码可以有助于我们统一编码方式。
分享到:
相关推荐
iReport&JasperReport配置使用.pdf指导了如何将ireport设计的模板与jasperreport API结合,实现报表的动态生成和交互。 1. 模板设计与编译:在iReport中设计报表模板后,通过jasperReport API编译成.jasper文件,...
【MyEclipse、Eclipse、iReport、JasperReport与Struts2的整合】 在Java Web开发中,MyEclipse和Eclipse是两种常用的集成开发环境(IDE),它们提供了丰富的功能,包括代码编辑、调试、构建和部署等。iReport是一款...
iReport支持导入和导出JasperReport的jrxml文件,使得报表设计过程更加直观和便捷。 《JasperReports ireports制作PDF报表.pdf》这本书可能专门针对使用iReport设计PDF报表的技巧。PDF报表是一种常见且可打印的格式...
《ireport-5.6.0与Jasperreport报表工具详解及jar包大全》 在IT行业中,数据可视化是至关重要的,它能够帮助我们更好地理解和分析复杂的数据。ireport和Jasperreport作为Java世界中备受青睐的报表工具,为开发者...
**JasperReport与IReport开发文档概述** JasperReport和IReport是两个强大的开源报告工具,主要用于生成复杂的业务报表和数据分析。JasperReport是核心库,提供了报告设计和渲染功能,而IReport则是JasperReport的...
总的来说,ireport-5.6.0 JasperReport 报表工具 jar包大全 Two提供了全面的工具和库,使得Java开发者可以方便地创建专业级别的报表,无论是在商业应用、数据分析还是管理信息系统的场景中,都能发挥重要作用。...
【标题】"ireport3中文用户手册+jasperreport 开发详细手册合集"涉及的是两款在Java报表开发领域中至关重要的工具:iReport和JasperReport。这两个工具是开源的,广泛用于创建复杂的报告和仪表板,使得数据可视化变...
### JasperReport+iReport 报表学习资料知识点梳理 #### 一、JasperReport与iReport简介 ...通过以上知识点的学习和实践,用户可以全面掌握JasperReport+iReport的使用方法,从而高效地开发出满足业务需求的报表系统。
《Ireport中文详细资料(上册)》是一个包含丰富的Ireport和JasperReport相关的学习资源集合,涵盖了中文帮助指南、文档以及源代码。这个压缩包是对于那些希望深入理解和掌握这两款工具的开发者来说,非常宝贵的参考...
iReport Designer现已集成到Jaspersoft Studio中,为用户提供了一个更为全面和强大的报表设计平台。 使用Jaspersoft Studio,用户可以开始从创建一个简单的报表开始,这包括添加报表元素,如字段、文本组件、图形等...
《JasperReport中文用户手册》是一份详尽的指南,旨在帮助初学者快速掌握Jaspersoft iReport的使用方法,从而高效地进行数据报表的设计与管理。这份手册由一群研究电子商务的学生团队共同编撰,他们深入浅出地解析了...
总的来说,这些资源提供了从设计到实现的全面教程,帮助开发者深入理解和使用jasperreport和ireport进行Web报表开发。通过学习,你可以掌握如何从数据库获取数据,设计复杂的报表布局,集成到Web应用中,并实现报表...
本中文用户手册旨在为用户提供一个全面的指南,帮助用户了解并掌握JasperReport这一强大的报表工具。本手册由一群热心的技术爱好者共同整理完成,意在提供一个免费的学习资源,帮助更多人熟悉JasperReport。 #### ...
总的来说,JasperReports和iReport的组合提供了一套全面的Java报表解决方案,让开发者能够灵活地设计、生成和导出报表,满足各种业务需求。由于它们都是开源的,因此可以根据项目的具体需求进行定制和扩展,具有很高...
通过以上详细介绍,相信读者已经对JasperReport和iReport有了全面的认识,掌握了如何利用这两个工具进行报表设计和开发的方法。无论是对于初学者还是有一定经验的开发者来说,这份手册都将是一个宝贵的资源。
网络上虽然有许多关于使用iReport和JasperReport的文章,但很少有文章能够全面地介绍iReport的使用方法。本教程的目标是为开发者提供一份详尽的指南,帮助他们快速掌握iReport的基本操作。 ##### 1.2 准备工作 ###...
1. 设计报表:使用JasperReport的报表设计工具(如iReport或Jaspersoft Studio)创建报表模板。 2. 配置Struts2:在struts.xml中定义Action,指定处理报表请求的方法。 3. 实现Action:在Action中,加载数据源,执行...
总的来说,iReport 3.7不仅提供了全面的报表设计工具,还为开发者提供了强大的数据呈现能力。通过阅读提供的文档和教程,开发者可以快速掌握如何充分利用这些功能,从而在项目中创建出专业且美观的报表。无论你是...
总结来说,这个jasperReport测试例子是一套全面的学习资源,涵盖了从报表设计、开发到集成的全过程。开发者可以通过这个实例了解jasperReport的核心功能,学习如何在实际项目中利用jasperReport创建美观且实用的报表...