利用程序将.jrxml导出为.jasper文件并用PDF显示(2)
2016-02-01 22:53
651 查看
直接在Web项目中使用.jasper文件,其实在软件项目开发时,.jrxml文件经常修改,而且.jrxml还要在项目中进行保留备份,所以较为流行的做法是在项目中使用.jrxml来生成.jasper文件,并用PDF文件显示出来.
设计的报表模板样式,如图1.28所示。
创建Web项目,将.jrxml复制到WebRoot中的jrxml文件夹中,项目结构如图1.29所示。
在此项目中的src路径下创建一个文件夹,其实也是一个名称为jasperreports的包(package),创建它的主要作用就是 WebRoot中的.jrxml文件编译成.jasper文件后要放入src/jasperreports包中,这样做的主要原因就是一旦出现主报表 main.jasper引用子报表sub.jasper的时候,不需要指定子报表的路径,只需要一个相对路径即可,因为主报表和子报表都在 classpath路径中,属于相对路径,这样设计可以有效地解决Parameters过多的问题,此方法也是本教程着力推荐的实现方式,关于子报表的使 用请参看后面的章节。
加入jasperreports包的项目结构如图1.30所示。
程序运行后的效果如图1.31所示。
编译成功后,在Tomcat软件中的指定路径下生成了.jasper文件,如图1.32所示。
设计的报表模板样式,如图1.28所示。
创建Web项目,将.jrxml复制到WebRoot中的jrxml文件夹中,项目结构如图1.29所示。
在此项目中的src路径下创建一个文件夹,其实也是一个名称为jasperreports的包(package),创建它的主要作用就是 WebRoot中的.jrxml文件编译成.jasper文件后要放入src/jasperreports包中,这样做的主要原因就是一旦出现主报表 main.jasper引用子报表sub.jasper的时候,不需要指定子报表的路径,只需要一个相对路径即可,因为主报表和子报表都在 classpath路径中,属于相对路径,这样设计可以有效地解决Parameters过多的问题,此方法也是本教程着力推荐的实现方式,关于子报表的使 用请参看后面的章节。
加入jasperreports包的项目结构如图1.30所示。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { String path = this.getClass().getResource("/jasper/report1.jrxml").getPath(); File file = new File(path); String parentPath = file.getParent(); String jrxmlDestSourcePath = parentPath+"/report1.jasper"; JasperCompileManager.compileReportToFile(path, jrxmlDestSourcePath); InputStream isRef = new FileInputStream(new File(jrxmlDestSourcePath)); ServletOutputStream sosRef = response.getOutputStream(); response.setContentType("application/pdf"); JasperRunManager.runReportToPdfStream(isRef,sosRef,new HashMap(), new JREmptyDataSource()); sosRef.flush(); sosRef.close(); } catch (JRException e) { // TODO Auto-generated catch block e.printStackTrace(); }
程序运行后的效果如图1.31所示。
编译成功后,在Tomcat软件中的指定路径下生成了.jasper文件,如图1.32所示。
相关文章推荐
- ajax success 没进入后台 返回login.aspx的html
- ASP.NET MVC学习系列(二)-WebAPI请求
- ASPxGridView在绑定字段为空时,td边框不出现
- 使用MiniProfiler调试Asp.net Mvc性能
- ASP.NET Core 1.0 Configuration 配置管理
- ASP.NET MVC4.0+EF+LINQ+bui+网站+角色权限管理系统(7)
- Asp.Net 网站一键部署技术(上)
- 开发ASP.NET MVC设置统一的命名空间
- ASP.NET 4.5.256 has not been registered on the Web server
- 提高 ASP.NET Web 应用性能的 24 种方法和技巧
- 【B/S】Asp.Net控件总结
- 【B/S】Asp.Net宏观认识
- Asp.net MVC3使用Reporting Services生成PDF解决Web在线打印
- ASP.NET中JSON的序列化和反序列化
- metasploit——How To Set Up A Penetration Testing Lab
- 怎样安装和配置Windows 7系统的IIS 7和ASP
- ASP.NET Core 1.0 基础与应用启动
- ASP.net 5主要改进
- ASP.NET教程
- Asp.net中GridView使用详解(引)