`
toplchx
  • 浏览: 341995 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring MVC+Jasper Report 及生成PDF的中文问题

阅读更多

先说两句报表框架的选择,JasperReport和BIRT都是不错的JAVA报表工具,不过BIRT和Spring的整合比较麻烦,Spring官网论坛里有篇不错的文章,不过我觉得还是挺麻烦的。而Jasper简单一些。

 

SpringMVC和JasperReport的整合方法有很多,这里介绍一下Spring文档里的官方方法,这个方法比较简单,编写的代码很少,缺点是不自动,每加一个报表都需要修改配置文件,重启服务。对于专门做报表的WEB服务来说就不合适了。

 

1、在配置文件中增加:

 

<beans:bean id="viewResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver">
    <beans:property name="basename" value="views"/>
</beans:bean>
 

注意Resolver的顺序。

 

2、在classpath里面增加views.properties。我的文件放在src/main/resources下面。

views的内容是:

 

#设置报表输出格式
simpleReport.(class)=org.springframework.web.servlet.view.jasperreports.JasperReportsPdfView
#设置报表文件路径
simpleReport.url=/WEB-INF/reports/report1.jasper
#数据的key值
simpleReport.reportDataKey=datasource
 

 

每一个表报都需要一套如上的配置。spring支持运行时自动选择报表输入格式。详细可以查spring的官方文档。

 

3、用iReport编辑报表。iReport版本是4.5.1

iReport的pdf有个传统的中文问题,网上有很多介绍文章。在ireport的lib下有itext-2.1.7.jar、iTextAsian-2.1.7.jar和iText-AsianCmaps-2.1.7包。(可在附件中下载)

我以为iReport4.5.1能先进点,没想到还是用iText-2.1.7和配套的其他两个包,别用最新版本,最新版本无效。

1)将上述3个包加到iReport  工具-->选项-->Classpath里

2)iReport  工具-->选项-->Fonts里,将这3个包前面的复选框打钩。

3)在编辑报表的Text框时,编辑其属性如下

 

 Pdf Font  name:STSong-Light;

 Pdf Embedded:勾上

 Pdf Enccoding:UniGB-UCS2-H (Chinese Simplified)

4)将这3个jar包加到Eclipse项目ClassPath下。

这样pdf就可以正常显示中文了。

 

将编辑好的.jasper文件拷贝到Eclipse项目中。

 

 

4、编写Controller。

 

 

import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
@RequestMapping("/report.html")
public class ReportCtrl {
    private static final Logger logger = LoggerFactory.getLogger(ReportCtrl.class);
	
    @RequestMapping()
    public ModelAndView showReport(ModelMap model, HttpServletRequest request) {
        logger.info("ReportCtrl-showReport start!");
		
        DataSource map = new DataSource();
        map.setPlanno("APP1-1039-0990");
        map.setPlanname("上海出租车");
        List<DataSource> beanData = new ArrayList<DataSource>();
        beanData.add(map);
        model.addAttribute("datasource", beanData); //datasource和views.properties配置的相同
		
        logger.info("ReportCtrl-showReport end!");
        return new ModelAndView("simpleReport", model); //simpleReport和views.properties配置的相同
    }

    //bean定义
    public class DataSource {
        private String planno = "";
        private String planname = "";
        public String getPlanno() {
            return planno;
        }
        public void setPlanno(String planno) {
            this.planno = planno;
        }
        public String getPlanname() {
            return planname;
        }
        public void setPlanname(String planname) {
            this.planname = planname;
        }
    }
}
 

 

运行就可以显示报表了。

分享到:
评论

相关推荐

    Spring3 MVC with Japer Report Demo

    通过这个“Spring3 MVC with Jasper Report Demo”,你可以学习到如何在Spring MVC环境下灵活地生成动态报表,这对于数据可视化和企业级应用的开发是非常重要的技能。无论是简单的数据展示还是复杂的分析报告,结合...

    spring MVC Web应用中集成Jasper报表工具

    在Spring MVC Web应用程序中集成Jasper报表工具是一个常见的需求,以提供动态生成和展示各种复杂数据的报表。JasperReports是一款强大的开源报表库,能够帮助开发者创建、设计和展示多种格式的报表,如PDF、HTML、...

    spring-mvc-jasper-report:Spring MVC Jasper报表集成

    在"Spring MVC Jasper报表集成"中,我们将讨论如何将JasperReport的功能整合到Spring MVC应用中,以实现动态生成报表并提供多种导出格式的能力。以下是一些关键知识点: 1. **Spring MVC 配置**: 在Spring MVC...

    spring-mvc-jasperReports

    Spring MVC是Spring框架的一部分,用于构建Web应用程序,而JasperReports是一个开源报告工具,用于生成静态和动态的业务报告。在这个项目中,开发者可能将JasperReports的功能与Spring MVC的控制器、服务和视图解析...

    IReport配合pdfjs或者pdfObject预览打印pdf

    要将`spring_report.jasper`转换为PDF,你需要先将其通过JasperReports API(如JasperFillManager和JasperExportManager)生成PDF,然后利用pdfjs进行在线预览。你可以在后端服务器上完成PDF生成并返回给前端,或者...

    jasperReport所需的jar文件

    6. **Spring框架集成**:spring-context-4.x.x.jar、spring-webmvc-4.x.x.jar等Spring框架的依赖库,使得JasperReport能够与SpringMVC无缝集成,方便地在Controller中处理报表请求,以及在Service层进行报表的生成和...

    springmvc 集成jasperReport.docx

    本文旨在详细介绍如何将Spring MVC框架与JasperReport报表工具进行有效集成的过程,并解决在此过程中可能遇到的问题。JasperReport是一款非常强大的报表生成工具,它支持多种数据源,如JDBC、XML等,并且可以输出PDF...

    java调用jasper

    同时,为了实现权限控制和其他高级功能,你可能还需要配置过滤器、Spring MVC控制器或其他Web框架的组件。 总的来说,Java调用JasperReports涉及报表设计、报表编译、报表填充、报表导出以及Web服务配置等多个环节...

    springmvc+jasperreport解决了中文显示和国际化

    在Spring MVC中集成JasperReport,能够方便地在Web应用中展示复杂的数据报表,同时解决中文显示和国际化的问题,使得报表能够适应多语言环境。 在Spring MVC项目中集成JasperReport,首先需要在`pom.xml`文件中添加...

    JasperReport+SSH

    总结起来,"JasperReport+SSH"项目是一个利用Java技术栈,包括JasperReport进行报表生成,Struts处理前端请求,Spring管理依赖和事务,Hibernate进行数据库操作,以及ExtJS 4.1构建用户界面的综合应用。开发者可以...

    springmvc集成jasperreport

    这样,当视图名是`report.jrxml`时,Spring MVC会找到`/WEB-INF/reports/myreport.jasper`并执行报表生成。 4. **Controller中的代码**: 在Controller中,你需要创建一个处理报表请求的方法,如下: ```java ...

    基于Jasper的报表管理平台设计与实现论文.doc

    The thesis designs and realizes a report management platform based on the MVC framework, with its view layer combining Velocity, CSS, and JSP technologies for interfaces, the business module ...

    slide:这张幻灯片说明了如何使用SpringMVC,Jasper Report,Struts2MVC和更多技巧

    SpringMVC是Spring框架的一部分,它是一个用于构建Web应用程序的轻量级、模型-视图-控制器(MVC)架构。SpringMVC通过将业务逻辑、数据处理和用户界面分离,提高了代码的可维护性和可测试性。在SpringMVC中,...

    JSPERREPORT DEMO

    它能与Java应用程序、Web应用(如Spring MVC、Struts等)无缝集成,也可以通过Servlet在Web环境下提供报表服务。 总结,JSPERREPORT DEMO是一个简单的示例,展示了JasperReports库的使用,包括报表模板的设计、数据...

    SpringMVC jaspersoft

    输出PDF报表时,可能会遇到中文字符无法正常显示的问题。 - 解决方案:手动将`itextasion.jar`库添加到项目的`lib`目录中,并确保正确构建项目。 #### 三、扩展功能 - **多数据源支持**:当需要在一个报表中展示...

    java+ireport报表开发实例

    例如,一个简单的Spring MVC控制器示例: ```java @GetMapping("/report") public void generateReport(HttpServletResponse response) { try { // 填充报表并导出 byte[] reportBytes = JasperRunManager....

    jasperreports实例

    例如,在一个Spring MVC应用中,可以创建一个Controller处理报表请求,调用上述编译和渲染的方法,最后将生成的文件作为响应内容返回。 **五、标签关联** 在本实例的标签中,"java report 实例 ireport"揭示了这个...

    基于jbpm与activiti的工作流平台技术架构介绍

    - **Spring系列**:包括Spring Core、Spring MVC、Spring Security、Spring AOP等,提供了强大的业务逻辑处理和安全性保障。 - **Apache Active MQ**:支持消息队列,增强了系统的异步处理能力。 - **MyBatis 3**...

    基于SSM的代理商管理系统的设计与实现.docx

    B/S 开发模式、MVC 设计模式,使用 Java 语言作为服务器端的开发语言,SSM 框架整合 Spring、Struts2 和 MyBatis,idea 作为后端开发工具,数据库支持使用 MySQL 数据库,前端使用 JQuery,Ajax,JSP,Humane,Jasper ...

    SSH框架整合jar包

    SSH框架的整合 jar 包通常包括这三个框架的基础库,如struts2-core、spring-context、hibernate-entitymanager等,以及可能的其他依赖,如log4j用于日志记录,slf4j提供日志API,jasper-report用于报表生成等。...

Global site tag (gtag.js) - Google Analytics