jasperreport 输出


Jasperreport 输出


参考1:

 public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        Connection conn=null;
        try{
            Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
            conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1481;DatabaseName=pdw","sa","123456");
            ServletContext servletContext=this.getServletContext();
            Map parameters=new HashMap();
            parameters.put("vname","裴德万");
            File reportfile=new File(servletContext.getRealPath("/classes.jasper"));
            System.out.println(reportfile.getPath());
            byte[] bytes=JasperRunManager.runReportToPdf(reportfile.getPath(),parameters,conn);
            response.setContentType("application/pdf");
            response.setContentLength(bytes.length);
            ServletOutputStream outputStream=response.getOutputStream();
            outputStream.write(bytes,0,bytes.length);
            outputStream.flush();
            outputStream.close();
        }catch(Exception e){
            e.printStackTrace();
        }
    }

参考2:



package servlets;
import java.io.*;
import java.util.*:
import javax.servlet.*;
import javax.servlet.http.*:
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.export.JRXlsExporter;

public class GeneratePDFServlet extends HttpServlet {
protected void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
  public static final String XML_FILE_PATH ="E:/eclipse/workspace/StrutsTest/WEB-INF/src/pdf/xmls/";
  protected void doGet(HttpServletRequest req, HttpServletResponse res)
  throws ServletException, IOException {
//创建response输出流,设置responxe回应的头部
  OutputStream out = res.getOutputStream();
  res.setContentType("application/pdf");
  res.setHeader("Content-Disposition","attachment; filename=myFirstReport.pdf");  //filename为生成PDF的文件名
//从当前session或request中获取.jrxml文件的文件名,存放成年用户信息的list,存放平均年龄的map
  String fileName = (String) req.getAttribute("FileName");
  List list = (List) req.getAttribute("List");
  Map map = (Map) req.getAttribute("Map");
//调用createPdf()获得PDF输出的字节流并打印出来。  
  byte[] bytes = createPdf(fileName, list, map);
  res.setContentLength(bytes.length); 
  out.write(bytes, 0, bytes.length);
  out.flush();
}
protected void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
  doGet(req, res);
}
//封装创建PDF输出的compile和run方法,返回最终生成的字节流
private byte[] createPdf(String fileName, List list, Map map) {
  String path = XML_FILE_PATH + fileName;//.jrxml文件的全路径
  String jrFile = XML_FILE_PATH + "testXML.jasper";//编译结果.jasper文件的全路径
  byte[] bytes = null;
  try{
      JasperCompileManager.compileReportToFile(path, jrFile);
  }catch (JRException e){   
      e.printStackTrace();
  }
  try{
  bytes =JasperRunManager.runReportToPdf(jrFile, map, new JRBeanCollectionDataSource(list));
  }catch (JRException e){
     e.printStackTrace();
  }
  return bytes;
} 
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值