Jasper生成PDF文件

本文介绍了一个使用JasperReports从Java Servlet环境中生成报表并将其导出为PDF文件的过程。该过程包括了编译.jrxml文件、填充报表数据、设置HTTP响应类型以及通过JRPdfExporter导出到客户端。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
  1. public  class Print extends HttpServlet{
  2.      private String filePatch;
  3.      private String fileName;
  4.     /***生成JapserPrint***
  5.      * @throws Exception */
  6.     private JasperPrint init(List<UserSocietyInsuranceReportBean> list,Map map) throws Exception{
  7.         if(this.filePatch.equals(""))
  8.             throw new Exception("没有设置路径!");
  9.         JasperPrint print = null;
  10.         /**** 编译成japser***/
  11.         try{
  12.             JasperCompileManager.compileReportToFile(this.getFilePatch()+getFileName()+".jrxml");
  13.         }catch(Exception ex){
  14.             ex.printStackTrace();
  15.             throw new Exception("编译成Jasper失败",ex);
  16.         }
  17.         /**编译成JaperPrint**/
  18.         try{
  19.             print = JasperFillManager.fillReport(this.getFilePatch()+getFileName()+".jasper",map,new JRBeanCollectionDataSource(list));
  20.             return print;
  21.         }catch(Exception ex){
  22.             ex.printStackTrace();
  23.             throw new Exception("编译成JasperPrint失败",ex);
  24.         }
  25.         
  26.     }
  27.     
  28.     /****显示成PDF格式*****/
  29.     public void printPDF(HttpServletRequest request,HttpServletResponse response,List<UserSocietyInsuranceReportBean> list,Map map) throws Exception {
  30.         OutputStream out = response.getOutputStream();
  31.         response.setContentType("application/pdf");
  32.     //  response.setHeader("Content-Disposition","attachment; filename="+fileName+".pdf");
  33.         JRPdfExporter exporter = new JRPdfExporter();
  34.         try{
  35.         request.getSession().setAttribute(
  36.                 BaseHttpServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE,init(list,map));
  37.         List jasperPrintList = BaseHttpServlet
  38.                 .getJasperPrintList(request);
  39.         exporter.setParameter(JRExporterParameter.JASPER_PRINT_LIST,
  40.                 jasperPrintList);
  41.         exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, out);
  42.         exporter.exportReport();
  43.         }catch(Exception  ex){
  44.             ex.printStackTrace();
  45.         }
  46.         finally{
  47.             if(out!=null)
  48.                 out.close();
  49.         }
  50.     }
  51.     public String getFilePatch() {
  52.         return filePatch;
  53.     }
  54.     public void setFilePatch(String filePatch) {
  55.         this.filePatch = filePatch;
  56.     }
  57.     public String getFileName() {
  58.         return fileName;
  59.     }
  60.     public void setFileName(String fileName) {
  61.         this.fileName = fileName;
  62.     }
  63.     
  64. }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值