如果用STRUTS2 + jasperreport 必定要加struts2包 struts2-jasperreports-plugin-2.0.11.2.jar jasperreports-2.0.2.jar iText-2.1.3.jar iTextAsian.jar 后两个包是解决输出PDF不能显示中文
第一步:首先用Ireport 生成jrxml文件 输入得内容格式如下
Title
(标题)
Page Header
(页头,可以提供一些说明性信息,比如页码)
Column Header
(列头,一般填入列名)
Row(s)
(实际的数据)
Column Footer
(列脚,一般填入列的汇总信息,如和,平均值等等)
Page Footer
(页脚,比如页码,或者该页上数据的汇总信息)
Report Footer
(报表脚,一般填入整个报表的汇总信息,或者一些说明性信息)
设置你ireport javabean得数据源:
例如要输入List<Person> 数据源 在ireport DATA-new 选择 JavaBeans set data source
在下面得页面Name 中输入Peron得包路径 例如:com.quickstart.model.Person 保存
在option 中设置你CLASS得路径。例如 d:\myspace\jpa\web\WEB-INF\classes\
然后编译选择 build 下面得编译 编译生成 jasper 文件
然后把此文件保存在WEB-INF\template 目录下
第二步:设置ACTION
例如下面得代码 Peron
public class Person {
@Id
@GeneratedValue
private Long id;
private String firstName;
private String lastName;
......
ExportJasperAction
public class ExportJasperAction extends ActionSupport {
private PersonService personService;
private List<Person> persons;
public ExportJasperAction(PersonService personService) {
this.personService = personService;
}
public String exportPdf() {
persons = personService.findAll();
return SUCCESS;
}
public PersonService getPersonService() {
return personService;
}
public void setPersonService(PersonService personService) {
this.personService = personService;
}
public List<Person> getPersons() {
return persons;
}
public void setPersons(List<Person> persons) {
this.persons = persons;
}
}
配置struts.xml
例如:
<package name="person" extends="struts-default" namespace="/person">
<result-types>
<result-type name="jasper" class="org.apache.struts2.views.jasperreports.JasperReportsResult"/>
</result-types>
<action name="export" method="exportPdf" class="exportJasperAction">
<result name="success" type="jasper">
<param name="location">WEB-INF\template\listname.jasper</param>
<param name="format">PDF</param>
<param name="dataSource">persons</param>
</result>
第三步:view页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/struts-tags" prefix="s" %>
<html>
<body>
<form id="report" action="export.action">
<input type="submit" value="生成报表"/>
</form>
</body>
</html>
在下面补充 输出乱码问题得解决方案:
iReport与JasperReport中文支持全面解决
在使用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编码。了解它的编码可以有助于我们统一编码方式。
附件中加源码:不包含lib包
- jpa.rar (46.7 KB)
- 描述: 此包包含了JPA注解代码,JBOSS的 ENVERS,JASPERREPORT 源码但不包含库文件
- 下载次数: 119
分享到:
相关推荐
JasperReport和iReport的结合使用,为开发者提供了一种高效、灵活的方式来设计和生成复杂的报表。本文将深入探讨如何利用这两个工具进行WEB开发。 JasperReport是一款开源的Java报表库,它支持多种数据源,如数据库...
在JasperReport 2.0.2和iReport 2.0.2版本中,我们可以实现多种功能,包括字段、变量、参数的管理,图像(矢量图和位图)的使用,超链接和锚点的创建,数据源的配置,国际化支持,脚本编写,子报表以及图表的展示,...
jasperreport与ireport的配置与使用教程 PDF,对java开发不是太懂,需要的朋友下载吧。
【JasperReport与IReport简介】 JasperReport是一款开源的报表生成工具,它允许开发者创建复杂的报表设计,并能够导出多种格式,如PDF、HTML、Excel等。JasperReport的核心是基于XML的报表模板,这些模板可以包含...
JasperReport和iReport是Java世界中常用的报表设计工具,它们允许开发者创建复杂的数据呈现格式。在这个特定的案例中,我们关注的是如何在JasperReport和iReport中实现固定表头以及隐藏和显示列的功能。 首先,让...
### JasperReport+iReport 报表开发手册核心知识点详解 #### 一、JasperReport与iReport概述 **JasperReport** 是一款强大的、灵活的报表生成工具,它能够展示丰富的页面内容,并支持将这些内容转换为PDF、HTML或...
7. **jasperreport+ireport开发java报表入门级教程.pdf**:专门针对Java开发者的入门教程,详细解释如何使用JasperReport和IReport构建报表。 8. **jasperReport.pdf**:可能是一个JasperReport的官方文档或者第三方...
**jasperReport+iReport制作PDF报表步骤** 1. **安装iReport**:首先需要下载并安装iReport工具,设置好JDK环境。 2. **创建数据源**:在iReport中配置数据源,如数据库连接,确保报表能够获取到数据。 3. **设计...
JasperReport 与 iReport 的配置与使用.pdf;作者:裴贺先 内容概况: 第一章:JasperReport 与 iReport 简介 第二章:安装与配置 第三章:iReport 的使用 第四章:JasperReport 在程序中的应用 第五章:参考信息及...
JasperReport与iReport的配置与使用 JasperReport与iReport是两款流行的报表工具,它们可以帮助开发者快速生成各种格式的报表。以下是关于JasperReport与iReport的配置与使用的详细知识点: JasperReport简介 ...
### JasperReport与iReport的配置与使用 #### 1. JasperReport与iReport简介 ##### 1.1 JasperReport简介 JasperReport是一款强大的报表打印组件,由开放源代码组织sf.net开发,作为Java报表打印工程的核心部分。...
**JasperReport与iReport简介** JasperReport是一款强大的开源报表工具,主要用于生成静态和动态的业务报告。它支持多种数据源,如数据库、CSV文件、XML数据等,并且能够导出各种格式的报告,如PDF、HTML、Excel等...
jasperreport+ireport+jfreechart文档及代码1 jasperreport+ireport+jfreechart文档及代码1 jasperreport+ireport+jfreechart文档及代码1
jasperreport+ireport+jfreechart文档及代码2 jasperreport+ireport+jfreechart文档及代码2 jasperreport+ireport+jfreechart文档及代码2
JasperReport和iReport是Java平台下用于生成报表的工具,它们在企业应用开发中扮演着重要的角色,尤其是在报表的生成、展现和打印方面。JasperReport是一种报表引擎,它能够解析.jasper文件并将其呈现到用户界面中,...
JasperReport是一个开源的报表引擎,它可以生成PDF、HTML、XLS、CSV等多种格式的报表,而iReport则是一个基于JasperReport的报表设计工具,提供了一个可视化的界面,使得非程序员也能设计出美观的报表模板。...
标题与描述概述的知识点主要集中在使用JasperReport与iReport工具进行报表设计,特别是如何在报表中集成图表功能。以下是对这一主题的深入探讨: ### JasperReport与iReport简介 JasperReport是一款开源的报表工具...
### JasperReport与iReport的配置与使用:深入解析 #### 1. JasperReport与iReport简介 ##### 1.1 JasperReport简介 JasperReport是一款功能强大的报表打印组件,属于开放源代码项目,由sf.net(SourceForge.net...