在使用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预览时无任何错误,但中文无法显示(只显示空白).(www.iocblog.net)
产生原因:报表显示对象的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简介** 在IT领域,报告生成是数据分析和业务处理的重要环节,而iReport和JasperReport正是在这方面发挥重要作用的工具。本文将深入探讨这两个工具的使用和概念,帮助读者理解它们的功能、...
ChartDataBean用于存储图表的数据,三个成员变量的名称与iReport中的图表属性相对应,避免了数据处理的混乱。 public class ChartDataBean { String serieas; String category; float value; // getter和setter...
### IReport与JasperReport开发报表经验总结 在IT领域,报表工具的选择和使用对于数据分析、数据呈现至关重要。本文将基于“**IReport与JasperReport开发报表经验总结**”这一主题,对文档中提到的一些关键问题及其...
iReport&JasperReport配置使用.pdf指导了如何将ireport设计的模板与jasperreport API结合,实现报表的动态生成和交互。 1. 模板设计与编译:在iReport中设计报表模板后,通过jasperReport API编译成.jasper文件,...
1. **iReport与JasperReport的关系**: iReport 是 JasperReport 的一个可视化设计工具,用于创建 JasperReport 报表模板。它提供了直观的图形用户界面,帮助用户设计复杂的报表布局,包括静态文本、图表、图像、...
随着技术的发展,各种报表生成工具应运而生,其中iReport与JasperReport因其功能强大、易于集成的特点,在Java Web开发领域占据了重要位置。本文将详细介绍如何利用iReport和JasperReport进行Web报表的开发,并分享...
在IT行业中,报表系统是数据分析和决策支持的关键组成部分。iReport和JasperReport是两个非常重要的工具,它们在...这些文档将帮助你更好地理解和实践iReport与JasperReport的整合,从而创建出功能丰富的Web报表系统。
【IReport与JasperReport详解】 IReport与JasperReport是Java世界中广泛使用的报表设计工具和报表引擎,主要用于创建复杂、美观的静态和动态报表。这两个组件在企业级应用中发挥着至关重要的作用,帮助开发者生成...
1. **安装与配置**:首先,你需要学习如何下载并安装iReport,以及如何配置与JasperReport的连接。这通常涉及到设置JDBC驱动和数据源。 2. **报表设计基础**:了解iReport的工作环境,学习创建新的报表项目,理解...
【MyEclipse、Eclipse、iReport、JasperReport与Struts2的整合】 在Java Web开发中,MyEclipse和Eclipse是两种常用的集成开发环境(IDE),它们提供了丰富的功能,包括代码编辑、调试、构建和部署等。iReport是一款...
iReport和JasperReport是两个在Java开发领域中广泛使用的报表工具,主要用于设计和生成复杂的业务报告。这两个工具是开源的,因此深受开发者喜爱。在本资料包中,你将获得两本关于iReport和JasperReport的教材,以及...
Struts2、iReport与JasperReport是Java开发中用于构建高效、动态Web应用程序和报表生成的工具。在这个项目中,这些技术结合在一起,提供了一种强大的报表导出解决方案。以下是对这些关键技术及其在项目中的应用的...
本文档旨在总结 ireport 4.1.3 版本与 jasperReport 4.5.0 版本结合 Swing 在报表设计与生成方面的应用。通过图文并茂的方式详细介绍如何使用 ireport 设计报表模板、配置数据源以及集成到 Java 应用程序中生成各种...
1. **安装与配置**:首先需要从官方网站下载ireport和jasperreport的对应版本。ireport通常以nbm插件形式提供,可以直接安装到NetBeans或其他支持nbm的IDE中。jasperreport是库文件,用于项目中运行报表。 2. **...
1. **iReport与JasperReport的关系与整合**: iReport是一款用于设计JasperReport报表的可视化工具,它允许用户通过图形化界面创建和编辑报表模板。JasperReport是底层的报表引擎,负责解析由iReport生成的模板文件...
### iReport + JasperReport 客户端打印与数字签名详解 #### 一、概述 iReport 是一个用于设计 JasperReports 报告模板的图形界面工具,而 JasperReports 则是一款非常流行的 Java 报告工具,它能够从各种数据源...
《ireport+jasperreport联合开发Java报表》是针对Java开发者的一款强大的报表生成工具,它能够帮助程序员高效地创建、设计和导出各种复杂的业务报表,尤其是PDF格式的报表。本资料详细介绍了如何利用ireport和...
【iReport 和 Jasperreport 整合开发Web报表】 iReport 和 Jasperreport 是两个在Java环境中用于创建和展示报表的重要工具。iReport 是一个基于GUI的报表设计工具,它专门用于设计Jasperreport的模板,而...
在使用iReport和JasperReport进行报表开发时,可能会遇到一系列问题,这些问题涵盖了报表样式、内容展示、数据处理等多个方面。以下是对标题和描述中提到的一些常见问题的详细解答: 1. **乱码问题**:当报表中出现...