`
lbyzx123
  • 浏览: 476066 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

自己用jasperreports写一个pdf格式报表

    博客分类:
  • J2EE
阅读更多

package mypackage.jasperreport;

import java.io.IOException;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletException;
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.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import net.sf.jasperreports.j2ee.servlets.BaseHttpServlet;

public class Print extends HttpServlet {

 /**
  * Constructor of the object.
  */
 public Print() {
  super();
 }

 /**
  * Destruction of the servlet. <br>
  */
 public void destroy() {
  super.destroy(); // Just puts "destroy" string in log
  // Put your code here
 }

 /**
  * The doGet method of the servlet. <br>
  *
  * This method is called when a form has its tag value method equals to get.
  *
  * @param request the request send by the client to the server
  * @param response the response send by the server to the client
  * @throws ServletException if an error occurred
  * @throws IOException if an error occurred
  */
 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  performTask(request,response);
 }

 /**
  * The doPost method of the servlet. <br>
  *
  * This method is called when a form has its tag value method equals to post.
  *
  * @param request the request send by the client to the server
  * @param response the response send by the server to the client
  * @throws ServletException if an error occurred
  * @throws IOException if an error occurred
  */
 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  performTask(request,response);
 }
 
 
 /**
  * 执行打印任务
  * @param request
  * @param response
  * @throws ServletException
  * @throws IOException
  */
 public void performTask(HttpServletRequest request, HttpServletResponse response)
 throws ServletException, IOException {  
  String jrxml=this.getServletContext().getRealPath("/userInfo/userInfo.jrxml");
  String jasper=this.getServletContext().getRealPath("/userInfo/userInfo.jasper");
  OutputStream out = response.getOutputStream();
  //将*.jrxml文件编译成*.jasper文件
  try {
   JasperCompileManager.compileReportToFile(jrxml);
   //定义表头参数
   Map parameters=new HashMap();
   parameters.put("caption", "学生信息管理");
   parameters.put("userCodeTitle", "编号");
   parameters.put("userNameTitle", "姓名");
   parameters.put("sexTitle", "性别");
   parameters.put("ageTitle", "年龄");
   parameters.put("telTitle", "电话");
   parameters.put("addressTitle", "地址");
   //定义JasperFillManager的fillReport方法需要的dataSource
   UserInfoDAO userDAO=new UserInfoDAO();
   List<UserInfo> reportList=userDAO.getAllUserInfo();
   JRBeanCollectionDataSource  dataSource=new JRBeanCollectionDataSource(reportList);
   //定义JasperPrint对象
   JasperPrint jasperPrint=JasperFillManager.fillReport(jasper,parameters,dataSource);
   response.setContentType("application/pdf");
   JRPdfExporter exporter=new JRPdfExporter();
   request.getSession().setAttribute(BaseHttpServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, jasperPrint);
   List jasperPrintList=BaseHttpServlet.getJasperPrintList(request);   
   exporter.setParameter(JRExporterParameter.JASPER_PRINT_LIST, jasperPrintList);
   exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, out);
   exporter.exportReport();
  } catch (JRException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }finally{
   if(out!=null){
    out.close();
   }   
  }
 }
 /**
  * Initialization of the servlet. <br>
  *
  * @throws ServletException if an error occure
  */
 public void init() throws ServletException {
  // Put your code here
 }

}

分享到:
评论

相关推荐

    使用jasperreports制作报表(导出pdf excel html)

    1. Java Development Kit (JDK):因为JasperReports是用Java编写的,所以需要一个Java运行环境。 2. iReport:这是一个基于JasperReports的报表设计工具,用于创建JRXML报表模板。 3. JasperReports Library:包含...

    JasperReports+ireports制作PDF报表.pdf

    - **子报表与嵌套报表**:JasperReports支持在一个主报表中嵌入多个子报表,这种层次结构的设计可以用于展示复杂的数据关系。 - **图表与图形**:JasperReports提供了丰富的图表组件,如柱状图、折线图、饼图等,...

    jasperreports打印word格式报表的问题

    标题 "jasperreports打印word格式报表的问题" 涉及的是使用JasperReports库生成并打印Word(.doc或.docx)格式报表时遇到的技术挑战。JasperReports是一款开源Java库,它允许开发者创建、设计和导出各种类型的报告,...

    JasperReports+ireports制作PDF报表

    ### JasperReports与iReport制作PDF报表 #### 一、引言 在当今信息化时代,数据可视化及报告生成已经成为企业日常运营中的重要组成部分。无论是业务分析、财务报告还是客户服务,高质量的报表都能帮助组织更好地...

    jasperreports导出html,pdf,xls报表

    然后,在Spring-Boot应用中,我们需要创建一个服务或者控制器来处理报表的生成和导出。使用JasperPrint对象加载JRXML文件,并通过JasperExportManager导出成不同的格式。以下是一个简单的示例: ```java import ...

    iReport+jasperReports制作WEB报表pdf

    接下来,我们通过一个简单的示例来演示如何使用 iReport 设计并生成 PDF 报表。 ##### 一、使用报表向导 1. **选择数据源**: 在 `File | Wizard` 中选择数据源类型。 2. **编写 SQL 查询**: 输入 SQL 查询语句以...

    JasperReports数据库查询父子报表模板

    父子报表是JasperReports的一个重要特性,它允许在一个主报告中嵌套一个或多个子报告。子报告通常用于显示与主报告相关但需要独立设计的详细信息。在本例中,`report1.jrxml`可能作为父报表,而`report1_subreport2...

    JasperReports,iReport制作报表

    3. **编译报表模板**:将.JRXML文件编译成.JASPER文件,这是一个二进制格式,JasperReports引擎可以直接执行。编译过程可以使用JasperCompileManager类完成,也可以在iReport中直接操作。 4. **填充报表**:在运行...

    iReport+jasperReports 联合开发JAVA报表

    1. **iReport**:这是一个基于Java的报表设计工具,它允许开发者通过直观的用户界面创建、编辑和管理JasperReports报表模板。iReport支持多种数据源,包括数据库、CSV、XML等,并提供丰富的图表类型和样式选项。 2....

    jasperreports 生成报表

    JasperReports 是一款开源的报表工具,用于设计和生成各种类型的报表,包括 PDF、Excel、XML 等格式。在使用 JasperReports 生成报表时,你需要遵循以下详细流程: 1. **新建报表**: - 打开 JasperReports 设计...

    java报表jasperreports-0.6.1.rar

    JasperReports使用一个基于XML的报告设计语言(JasperReport Design)来创建报表模板。开发者可以在这些模板中添加文本、图像、表格、图表等各种元素,并设置样式、字体、颜色等格式。设计完成后,模板可以保存为`....

    iReport+jasperreports生成各种格式的报表

    JasperReports则是一个用于生成报表的Java类库,它提供了一套完整的API,允许开发者在应用程序中集成报表功能。JasperReports支持多种输出格式,如PDF、HTML、Excel、CSV等,可以根据需求灵活选择。此外,它还具有...

    JasperReports开源报表概述和运行原理.doc

    JasperReports是一个强大的开源Java报表库,主要用于帮助Java开发者在他们的应用程序中集成报表功能。它不是一个独立的应用,而是需要被包含在Java应用的CLASSPATH中,以作为一个库被调用。JasperReports遵循Lesser ...

    JasperReports最终用户手册中文版报表设计分享.pdf

    当XML文档通过验证,JasperReports引擎可以将其编译成“已编译”的报表设计,这通常是一个.JRXML文件,用于后续的数据填充和渲染。 报表设计的编译过程是必要的,因为它将XML模板转换为引擎可以直接执行的格式。...

    JasperReports iReport中文教程.pdf

    - 如何将PDF格式的报表结果直接输出到打印机。 #### 5. 参考信息及其他 - **变量、参数及字段引用**: - 提供iReport中变量、参数及字段的引用格式。 - **作者联系方式**: - 联系作者获取更多支持或反馈。 - *...

    报表使用操作手册The JasperReports UltimateGuide 1_0 .pdf

    JasperReports是一个开源的Java报表库,它允许开发者创建复杂的数据驱动报表,并将其集成到Java应用程序中。JasperReports支持多种数据源,包括JDBC、XML、CSV等,能够生成PDF、HTML、Excel等多种格式的报表。此外,...

    iReport&JasperReport学习教程--内含四套(PDF版)

    《JasperReports ireports制作PDF报表.pdf》这本书可能专门针对使用iReport设计PDF报表的技巧。PDF报表是一种常见且可打印的格式,适合企业内部的正式报告。书中的内容可能包括如何优化PDF输出,调整字体、页眉和...

    iReport-JasperReports报表开发指南+操作手册

    iReport是JasperReports的图形化设计工具,用于创建复杂的报表布局,而JasperReports本身则是一个功能丰富的Java库,用于生成静态和动态的报表。 在报表开发的世界里,JasperReports以其灵活性和可扩展性脱颖而出。...

    SSH2整合jasperReports生成PDF报表

    本程序算不上大项目,是本人自己做的。只是完成了大项目里的某个基本技术,如:整合SSH2 整合jasperReports生成pdf报表。用的人请根据映射文件在oracle里建一个用户表就行了。改一下配置文件里的数据库密码。

Global site tag (gtag.js) - Google Analytics