JasperReport jasperReport = JasperCompileManager.compileReport(context.getRealPath("/reports/WebappReport.jrxml"));
JasperPrint jasperPrint =
 JasperFillManager.fillReport(jasperReport, parameters, datasource(自己的));
bytes = JasperExportManager.exportReportToPdf(jasperPrint);?
response.setHeader("Content-Disposition","attachment;filename=JasperPDF.pdf");
// 设置页面的输出格式
response.setHeader("Content-Type", "application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();以供参考

解决方案 »

  1.   

    <%@ page import="java.sql.*" %>
    <%@ page import="java.util.*" %>
    <%@ page import="java.io.*" %>
    <%@ page import="com.sterning.*" %>
    <%@ page import="net.sf.jasperreports.engine.JasperFillManager"%>
    <%@ page import="net.sf.jasperreports.engine.JasperPrint"%>
    <%@ page import="net.sf.jasperreports.engine.JRException"%>
    <%@ page import="net.sf.jasperreports.engine.JasperRunManager,net.sf.jasperreports.engine.data.JRBeanCollectionDataSource"%>
    <%  //装载jasper文件application
     // File exe_rpt = new File(request.getRealPath("/jasper/jasper_template.jasper"));
       File exe_rpt = new File("E:\\aa.jasper");
      List myList;
      //添加数据
    PeopleBean p1=new PeopleBean("长沙", new Integer(9), "李化", "天洒路");
    PeopleBean p2=new PeopleBean("长沙", new Integer(22), "王小样", "呆小路564");
    PeopleBean p3=new PeopleBean("南昌", new Integer(23), "王奸可", "小顺路");
    PeopleBean p4=new PeopleBean("南昌", new Integer(32), "李洒", "顺濉路");
    PeopleBean p5=new PeopleBean("武汉", new Integer(39), "张中尖", "天洒路");
    PeopleBean p6=new PeopleBean("武汉", new Integer(35), "陈主宁", "天河路564");
    myList = new ArrayList();
    myList.add(p1);
    myList.add(p2);
    myList.add(p3);
    myList.add(p4);
    myList.add(p5);
    myList.add(p6);

    //rptMan就是iReport的变量$P{rptMan}的名称 , rptDate就是iReport的变量$P{rptDate}的名称
    Map pram = new HashMap();
    pram.put("rptMan","pdf");
    pram.put("rptDate","2008-8-8");
      try{
       // fill
       JasperPrint jasperPrint = JasperFillManager.fillReport(exe_rpt.getPath(),pram,new JRBeanCollectionDataSource(myList));
       
       // 生成pdf
       byte[] bytes = JasperRunManager.runReportToPdf(exe_rpt.getPath(),pram,new JRBeanCollectionDataSource(myList));
      
       response.setContentType("application/pdf"); 
       response.setContentLength(bytes.length); 
       ServletOutputStream ouputStream = response.getOutputStream(); 
       ouputStream.write(bytes,0,bytes.length); 
       ouputStream.flush(); 
       ouputStream.close();
       }catch(JRException ex){
       out.print("Jasper Output Error:"+ex.getMessage());
      }
    %>
    }结果页面上输出
    Jasper Output Error:Error loading object from file : E:\aa.jasper } 希望大家能够尽快帮忙解决啊
      

  2.   

    还有怎样结合 webwork或struts2
    <action name="pdf" class="com.siant.certmail.web.action.ManagerInvokerAction" method="executePDF">
    <result name="success" type="jasper">
    <param name="location">/jasper/jasper_template.jasper</param>
    <param name="dataSource">myList</param>
    <param name="format">PDF</param>
    </result>
    </action>
      

  3.   

    2楼问题:
    加载不成功,你的路径问题。
    LZ把E:\aa.jasper的路径换到eclipse的WebRoot下。比如在WebRoot下建个reports的包,把aa.jasper放这里。
    File reportFile = new File(application.getRealPath("reports/aa.jasper"));
      

  4.   

    还有怎样结合 webwork或struts2 
    <action name="pdf" class="com.siant.certmail.web.action.ManagerInvokerAction" method="executePDF"> 
    <result name="success" type="jasper"> 
    <param name="location">/jasper/jasper_template.jasper </param> 
    <param name="dataSource">myList </param> 
    <param name="format">PDF </param> 
    </result> 
    </action>可以传递一个List作为数据显示,但iReport里面设计的$F{userName}参数 怎样通过action来传递给jasper报表
      

  5.   

    还希望大家发几套ireport制作的模板,或者直接把*.jrxml或*.xml发给我  [email protected]
    最好是党办机关的
      

  6.   

    推荐jasperreport QQ群121174498  
    8错的群
      

  7.   

    iReport軟件 跟你 web容器 用的jasperreport 的版本問題!  你把iReport安裝目錄下 lib中的jasperreport  拷貝一份到你的 web容器的 lib里去。 應該就可以解決