博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JasperReport学习笔记3-在浏览器生成PDF文件
阅读量:7107 次
发布时间:2019-06-28

本文共 1764 字,大约阅读时间需要 5 分钟。

在浏览器生成PDF文件,主要用了JasperRunManager对象面的runReportToPdfStream方法,在WEB里一般都先用iReport生成jasper文件,这样就去解析JRXML文件了 


例子如下 

Java代码  
  1. import java.io.IOException;  
  2. import java.io.InputStream;  
  3. import java.io.PrintWriter;  
  4. import java.io.StringWriter;  
  5. import java.util.HashMap;  
  6.   
  7. import javax.servlet.ServletException;  
  8. import javax.servlet.ServletOutputStream;  
  9. import javax.servlet.http.HttpServlet;  
  10. import javax.servlet.http.HttpServletRequest;  
  11. import javax.servlet.http.HttpServletResponse;  
  12.   
  13. import net.sf.jasperreports.engine.JREmptyDataSource;  
  14. import net.sf.jasperreports.engine.JRException;  
  15. import net.sf.jasperreports.engine.JasperRunManager;  
  16.   
  17. public class JasperReportServlet extends HttpServlet {  
  18.   
  19.     private static final long serialVersionUID = 1L;  
  20.   
  21.     public void doGet(HttpServletRequest request, HttpServletResponse response)  
  22.             throws ServletException, IOException {  
  23.         //获得输出流  
  24.         ServletOutputStream outputStream = response.getOutputStream();  
  25.         //获得输入流  
  26.         InputStream inputStream = getServletConfig().getServletContext().getResourceAsStream("JasperFile//JasperReportFile.jasper");  
  27.         try {  
  28.               
  29.             //生成网页的PDF文件  
  30.             JasperRunManager.runReportToPdfStream(inputStream, outputStream, new HashMap(), new JREmptyDataSource());  
  31.             //设置PDF格式  
  32.             response.setContentType("application/pdf");  
  33.             outputStream.flush();  
  34.             outputStream.close();             
  35.         } catch (JRException e) {  
  36.             StringWriter stringWriter = new StringWriter();  
  37.             PrintWriter printWriter = new PrintWriter(stringWriter);  
  38.             e.printStackTrace(printWriter);  
  39.             response.setContentType("text/plain");  
  40.             response.getOutputStream().print(stringWriter.toString());  
  41.         }  
  42.     }  
  43.   
  44.       
  45.     public void doPost(HttpServletRequest request, HttpServletResponse response)  
  46.             throws ServletException, IOException {  
  47.         this.doPost(request, response);  
  48.     }  
  49. }  
转载自:

转载于:https://www.cnblogs.com/programmer-wind/archive/2012/07/17/2919488.html

你可能感兴趣的文章
云在天之南——我的七天七夜(率性苍山洱海)
查看>>
PROMISE公司CEO李志恩:云计算要看长期投资回报
查看>>
ASP.NET MVC 5 - 查询Details和Delete方法
查看>>
wince -- windows embedded compact 7 移植成功
查看>>
【翻译】(14)Stable APIs
查看>>
用c socket 方式下载网页
查看>>
[转]android 发送短信和打电话的方法
查看>>
循序渐进全球化:支持 Unicode
查看>>
新浪微博中的特殊符号解释
查看>>
PropertyGrid无意的发现DisplayNameAttribute及应用
查看>>
linux查看端口所占用的进程号
查看>>
BI开发之——多维立方体(Cube)
查看>>
[转]SQLServerDBA十大必备工具---让生活轻松点
查看>>
程序集之GAC---Global Assembly Cache
查看>>
分享一个帮助你自定义标签并且兼容现代浏览器的javascript类库 : X-tag
查看>>
一道恶心题的流氓解法(HUD 4002 Find the maximum)
查看>>
博客管理杂记-7月29日
查看>>
WPF中的DataTemplate绑定使用的场合
查看>>
最值栈
查看>>
boost::timer
查看>>