`
后人生苟
  • 浏览: 18285 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

jasper

 
阅读更多
package com.hq.jasperreport.servlet;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import net.sf.jasperreports.engine.util.FileBufferedOutputStream;
import net.sf.jasperreports.engine.util.JRLoader;

import com.hq.jasperreport.daomain.Person;

/**
*
* @author 何小虎
* @function 完成报表打印Servlet
*
*/
public class PersonReportServlet extends HttpServlet
{
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{

ServletContext servletContext = this.getServletConfig()
.getServletContext();
File reportFile = new File(
servletContext.getRealPath("/jasper/personTest.jasper"));

Map<String, String> parameters = new HashMap<String, String>();
parameters.put("Test", "中国移动通信");
// //给jasperreport传递图片对象
// parameters.put("image", servletContext.getRealPath("") +
// "/image/有梦好甜蜜.jpg");

JasperPrint jasperPrint = null;
try
{
JasperReport personJasperReport = (JasperReport) JRLoader
.loadObject(reportFile.getPath());
// 这里是给Person对象赋值
Person p = new Person();
p.setId(1);
p.setName("张三");
p.setGender("男");
p.setAge(12);
p.setAddress("黑龙江哈尔滨");
// 这里是给Person对象赋值
Person p1 = new Person();
p1.setId(2);
p1.setName("李四");
p1.setGender("女");
p1.setAge(20);
p1.setAddress("北京中关村");
// 这里是给Person对象赋值
Person p2 = new Person();
p2.setId(3);
p2.setName("何小虎");
p2.setGender("男");
p2.setAddress("北京中关村软件园");
p2.setAge(20);

// 将Person对象, 放入集合中,
List<Person> personList = new ArrayList<Person>();
personList.add(p);
personList.add(p1);
personList.add(p2);

// 将集合对象数据填充到JasperReport中.
jasperPrint = JasperFillManager.fillReport(personJasperReport,
parameters, new JRBeanCollectionDataSource(personList));

}
catch (JRException e)
{
e.printStackTrace();
}
if (null != jasperPrint)
{
FileBufferedOutputStream fbos = new FileBufferedOutputStream();
JRPdfExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, fbos);
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
try
{
exporter.exportReport();
fbos.close();
if (fbos.size() > 0)
{
resp.setContentType("application/pdf");
resp.setContentLength(fbos.size());
ServletOutputStream ouputStream = resp.getOutputStream();
try
{
fbos.writeData(ouputStream);
fbos.dispose();
ouputStream.flush();
}
finally
{
if (null != ouputStream)
{
ouputStream.close();
}
}
}
}
catch (JRException e1)
{
e1.printStackTrace();
}
finally
{
if (null != fbos)
{
fbos.close();
fbos.dispose();
}
}
}
}

public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{

this.doGet(req, resp);
}
}
分享到:
评论

相关推荐

    Jasper报表官方文档

    Jasper报表是一款强大的开源报表工具,它允许开发者创建复杂的数据可视化和打印输出。这份官方文档集合包含了关于Jasper的核心组件的详细指南,如iReport、JasperServer以及JasperReports,确保用户能够利用最新的...

    中国联通物联网Jasper平台介绍

    中国联通物联网Jasper平台是一款专为实现企业物联网(IoT)高效运营而设计的综合性解决方案。该平台的核心功能和特点主要包括以下几个方面: 1. **全面的设备管理**:Jasper平台支持大规模的物联网设备连接和管理,...

    jasper-1.900.1.tar.gz

    《Jasper库1.900.1版的深度解析》 Jasper,作为一个开源的JPEG 2000编解码库,是处理JPEG 2000图像格式的关键工具。这个名为"jasper-1.900.1.tar.gz"的压缩包包含了Jasper库的1.900.1版本,它提供了对JPEG 2000标准...

    org.apache.jasper 的jar包下载

    Apache Jasper 是一个开源项目,它是Apache Tomcat服务器的一部分,用于处理JSP(JavaServer Pages)技术。JSP是Java平台上用于创建动态Web内容的一种方式,它允许开发人员将静态HTML与动态Java代码相结合,以生成...

    jasper变量的表达式的问题

    jasper 变量的表达式的问题 Jasper 变量的表达式是 JasperReport 中一个重要的概念,它允许开发者在报表中定义和使用变量,以便于实现复杂的业务逻辑。 Jasper 变量的表达式可以分为两类:一种是字段类型的变量,...

    jasper-1.900.1

    《jasper-1.900.1:深入解析开源报表引擎》 jasper-1.900.1是一款广泛应用于商业智能领域的开源报表引擎,它的存在为开发者提供了强大的数据可视化工具,使得生成复杂、动态的报表变得简单易行。jasper-1.900.1版本...

    JasperServer中文版

    JasperServer中文版是一款专为满足中国用户需求而设计的开源商业智能(BI)平台,它基于JasperReports项目,提供了丰富的报表和数据分析功能。这个资源包包含了JasperServer界面的中文语言翻译,使得中国用户在使用...

    jasper-runtime.jar jasper-compiler.jar

    这个过程中,jasper-compiler.jar会解析JSP文件中的Java代码和JSP元素,确保这些元素能够与Servlet API正确交互,生成可以被Java虚拟机执行的代码。这是JSP页面能够动态生成内容并展示给用户的关键所在。Jasper...

    jasper-1.900.1.zip

    《图像压缩技术:深入解析jasper-1.900.1开源库》 在信息技术领域,图像处理和压缩技术是不可或缺的一部分。本文将详细探讨一个名为“jasper-1.900.1”的开源库,它包含了各种图像格式的编解码源码,对于开发者来说...

    Jasper

    【Jasper】是一款知名的开源报表工具,主要用于生成各种复杂的企业级报表。它的全名是JasperReports,由Talend公司维护。Jasper的核心功能包括设计、生成、展示以及打印报表,支持多种数据源,如数据库、CSV文件、...

    最全jasper相关jar包

    里面有jasper.jar,jasper-compiler.jar,jasper-compiler-jdt-5.5.15.jar,jasper-el.jar,jasper-jdt.jar,jasper-runtime.jar

    jasper 的 jar 文件

    Jasper 是一个强大的报告生成工具,它被广泛用于Java应用程序中,尤其是与iReport结合使用时,能够方便地设计和生成各种复杂的报表。jasper的jar文件是JasperReport库的核心组成部分,它包含了运行jasper报表所需的...

    jasper-compiler-jdt-5.5.15.jar

    《jasper-compiler-jdt-5.5.15.jar:解决IReporter编译问题的利器》 在IT行业中,报告生成是企业级应用的重要组成部分,而 JasperReports 是一款广泛使用的开源报表工具,它允许开发者创建复杂的报表并嵌入到Java...

    JASPER

    JASPER,这个名字在IT行业中通常指的是Java Server Pages Standard Tag Library (JSTL)的开源实现,它是一个用于处理Java服务器页面(JSP)的标签库。JSTL旨在简化JSP开发,通过提供一系列预定义的标签来执行常见的...

    jasper怎么构建报表的详细例子

    在本篇文章中,我们将深入探讨如何使用Jasper来构建各种类型的报表,包括普通报表、分组报表、自定义报表、图形报表以及图形表格混合的报表。 首先,我们从基础开始——普通报表。JasperReport的基础在于JRXML文件...

    jasper stacked chart demo

    ### jasper stacked chart demo #### 如何在Jasper Reports中创建Stacked Chart 在本教程中,我们将详细介绍如何使用Jasper Reports创建一个堆叠条形图(Stacked Bar Chart),并解决过程中可能遇到的一些常见问题...

    jasper-1.700.21 源代码

    《深入解析jasper-1.700.21开源库源代码》 JPEG2000是一种先进的图像编码标准,由国际电信联盟(ITU)推荐,它在图像压缩领域有着广泛的应用。jasper库是专门为JPEG2000提供支持的开源软件,其最新版本jasper-1.700...

    Jasper_Report用户手册

    Jasper Report用户手册 version1.0 1 简介 2 API概览 Class net.sf.jasper.engine.design.JasperDesign Class net.sf.jasper.engine.JasperReport Class net.sf.jasper.engine.JasperCompileManager Class ...

    jasper ireport 生成 报表

    在这个主题中,我们将深入探讨如何使用Jasper IReport来生成报表。 首先,Jasper IReport提供了一个直观的拖放界面,可以用来设计报表布局。用户可以通过添加表格、文本框、图像、图表等元素来构建报表模板。报表...

Global site tag (gtag.js) - Google Analytics