直接在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)的更多相关文章

  1. 如何为ios酷我音乐盒下载导出的音乐文件(使用Java程序设计)

    这个工具已经准备第二版,读者了解编程软件,可以直接使用,请阅读和使用这个场地 http://blog.csdn.net/jzj1993/article/details/44459983 本文所涉及内容 ...

  2. 如何通过WPS 2013 API 将Office(Word、Excel和PPT)文件转PDF文件

    1. 描述 PDF 文件是一种便携文件格式,是由Adobe公司所开发的独特的跨平台文件格式.PDF文件以PostScript语言图象模型为基础,无论在哪种打印机上都可保证精确的颜色和准确的打印效果,即 ...

  3. 如何在eclipse将程序导出成jar文件

    如何在eclipse将程序导出成jar文件 听语音 | 浏览:916 | 更新:2015-08-22 17:57 1 2 3 4 5 6 7 分步阅读 一键约师傅 百度师傅为你的电脑系统,选个靠谱师傅 ...

  4. Java程序导出成.jar文件、生成.exe可执行文件及打包成可执行安装程序(可在无Java环境的计算机上运行)--以个人所得税计算器为例

    Java程序导出成.jar文件.生成.exe可执行文件及打包成可执行安装程序 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 需要准备的软件: jdk, ...

  5. 利用虚函数减少导出DLL的头文件依赖

    概要 设想这样一个场景:我有一个类FunClass,它的声明位于FunClass.h,并且在FunClass.h中,我还引用了secret.h. 现在我需要把FunClass导出成DLL文件供别人二次 ...

  6. 利用PHPExcel将数据导出到xls格式的excel文件

    在开发某地的经营许可证管理系统的时候需要将数据导出打excel文件,虽然一年前做某集团的ERP的时候用到过一次导入和导出,但是那时候太忙没时间写博客,一年过去了我也忘的差不多了,所以趁着今天将此次的使 ...

  7. MySql 利用mysql&mysqldum导入导出数据

    MySql 利用mysql&mysqldum导入导出数据 by:授客 QQ:1033553122   测试环境 Linux下测试,数据库MySql 工具 mysqldump,该命令位于mysq ...

  8. oracle导出多CSV文件的靠谱的

    oracle导出多CSV文件的问题 ---------------------------------------------------------------------- 用ksh脚本从orac ...

  9. ASP.NET Core 导入导出Excel xlsx 文件

    ASP.NET Core 使用EPPlus.Core导入导出Excel xlsx 文件,EPPlus.Core支持Excel 2007/2010 xlsx文件导入导出,可以运行在Windows, Li ...

随机推荐

  1. C语言之链表————(转载)

    #include <stdio.h>#include <malloc.h>#define LEN sizeof(struct student) /*-------------- ...

  2. ASIHTTPRequest中的DELETE、PUT、GET、POST请求实例-备用

    感谢分享 //  ASIFormDataRequestTests.m //  Part of ASIHTTPRequest -> http://allseeing-i.com/ASIHTTPRe ...

  3. Android 网络通信框架Volley的简单使用

    Volley是Android平台上的网络通信库,能使网络通信更快,更简单,更健壮. Volley提供的功能: JSON,图像等的异步下载: 网络请求的排序(scheduling) 网络请求的优先级处理 ...

  4. 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 ...

  5. 递归转手工栈处理的一般式[C语言]

    是任意形式的递归,是化解的一般式. 主题所谓的“递归调用化解为栈处理”,意思是,将递归函数调用化解为“一个由stack_push stack_pop stack_top等函数调用组成的循环式子”.这里 ...

  6. 用Update Select批量更新某一字段的值[可以跨库]

    SQL:UPDATE test1  SET name = (SELECT y.name  FROM  DB2.dbo.test2 y WHERE test1.id = y.id)

  7. Entity framework - start

    http://blogs.msdn.com/b/adonet/archive/2010/07/19/absolue-beginners-guide-to-entity-framework.aspx?R ...

  8. npm 和 bower的区别

    npm和bower在功能上有一定的重合,但不是互斥关系,可以在项目中同时运用.区别在于npm在设计之初就采用了的是嵌套的依赖关系树.一个普通的前端包的依赖树比较长,npm 会将开发环境一起下载下来,  ...

  9. Spring 的优秀工具类盘点第 1 部分

    文件资源操作 文件资源的操作是应用程序中常见的功能,如当上传一个文件后将其保存在特定目录下,从指定地址加载一个配置文件等等.我们一般使用 JDK 的 I/O 处理类完成这些操作,但对于一般的应用程序来 ...

  10. js bom中浏览器兼容问题判断代码

    var btn = document.getElementById('d1');if(addEventListener===undefined){ btn.attachEvent('onclick', ...