利用程序将.jrxml导出为.jasper文件并用PDF显示(2)
直接在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所示。

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所示。

利用程序将.jrxml导出为.jasper文件并用PDF显示(2)的更多相关文章
- 如何为ios酷我音乐盒下载导出的音乐文件(使用Java程序设计)
		
这个工具已经准备第二版,读者了解编程软件,可以直接使用,请阅读和使用这个场地 http://blog.csdn.net/jzj1993/article/details/44459983 本文所涉及内容 ...
 - 如何通过WPS 2013 API 将Office(Word、Excel和PPT)文件转PDF文件
		
1. 描述 PDF 文件是一种便携文件格式,是由Adobe公司所开发的独特的跨平台文件格式.PDF文件以PostScript语言图象模型为基础,无论在哪种打印机上都可保证精确的颜色和准确的打印效果,即 ...
 - 如何在eclipse将程序导出成jar文件
		
如何在eclipse将程序导出成jar文件 听语音 | 浏览:916 | 更新:2015-08-22 17:57 1 2 3 4 5 6 7 分步阅读 一键约师傅 百度师傅为你的电脑系统,选个靠谱师傅 ...
 - Java程序导出成.jar文件、生成.exe可执行文件及打包成可执行安装程序(可在无Java环境的计算机上运行)--以个人所得税计算器为例
		
Java程序导出成.jar文件.生成.exe可执行文件及打包成可执行安装程序 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 需要准备的软件: jdk, ...
 - 利用虚函数减少导出DLL的头文件依赖
		
概要 设想这样一个场景:我有一个类FunClass,它的声明位于FunClass.h,并且在FunClass.h中,我还引用了secret.h. 现在我需要把FunClass导出成DLL文件供别人二次 ...
 - 利用PHPExcel将数据导出到xls格式的excel文件
		
在开发某地的经营许可证管理系统的时候需要将数据导出打excel文件,虽然一年前做某集团的ERP的时候用到过一次导入和导出,但是那时候太忙没时间写博客,一年过去了我也忘的差不多了,所以趁着今天将此次的使 ...
 - MySql 利用mysql&mysqldum导入导出数据
		
MySql 利用mysql&mysqldum导入导出数据 by:授客 QQ:1033553122 测试环境 Linux下测试,数据库MySql 工具 mysqldump,该命令位于mysq ...
 - oracle导出多CSV文件的靠谱的
		
oracle导出多CSV文件的问题 ---------------------------------------------------------------------- 用ksh脚本从orac ...
 - ASP.NET Core 导入导出Excel xlsx 文件
		
ASP.NET Core 使用EPPlus.Core导入导出Excel xlsx 文件,EPPlus.Core支持Excel 2007/2010 xlsx文件导入导出,可以运行在Windows, Li ...
 
随机推荐
- C语言之链表————(转载)
			
#include <stdio.h>#include <malloc.h>#define LEN sizeof(struct student) /*-------------- ...
 - ASIHTTPRequest中的DELETE、PUT、GET、POST请求实例-备用
			
感谢分享 // ASIFormDataRequestTests.m // Part of ASIHTTPRequest -> http://allseeing-i.com/ASIHTTPRe ...
 - Android 网络通信框架Volley的简单使用
			
Volley是Android平台上的网络通信库,能使网络通信更快,更简单,更健壮. Volley提供的功能: JSON,图像等的异步下载: 网络请求的排序(scheduling) 网络请求的优先级处理 ...
 - javascript 事件触发
			
http://www.zhangxinxu.com/wordpress/2012/04/js-dom%E8%87%AA%E5%AE%9A%E4%B9%89%E4%BA%8B%E4%BB%B6/ htt ...
 - 递归转手工栈处理的一般式[C语言]
			
是任意形式的递归,是化解的一般式. 主题所谓的“递归调用化解为栈处理”,意思是,将递归函数调用化解为“一个由stack_push stack_pop stack_top等函数调用组成的循环式子”.这里 ...
 - 用Update Select批量更新某一字段的值[可以跨库]
			
SQL:UPDATE test1 SET name = (SELECT y.name FROM DB2.dbo.test2 y WHERE test1.id = y.id)
 - Entity framework - start
			
http://blogs.msdn.com/b/adonet/archive/2010/07/19/absolue-beginners-guide-to-entity-framework.aspx?R ...
 - npm 和 bower的区别
			
npm和bower在功能上有一定的重合,但不是互斥关系,可以在项目中同时运用.区别在于npm在设计之初就采用了的是嵌套的依赖关系树.一个普通的前端包的依赖树比较长,npm 会将开发环境一起下载下来, ...
 - Spring 的优秀工具类盘点第 1 部分
			
文件资源操作 文件资源的操作是应用程序中常见的功能,如当上传一个文件后将其保存在特定目录下,从指定地址加载一个配置文件等等.我们一般使用 JDK 的 I/O 处理类完成这些操作,但对于一般的应用程序来 ...
 - js bom中浏览器兼容问题判断代码
			
var btn = document.getElementById('d1');if(addEventListener===undefined){ btn.attachEvent('onclick', ...