利用程序将.jrxml导出为.jasper文件并用PDF显示

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用程序将.jrxml导出为.jasper文件并用PDF显示相关的知识,希望对你有一定的参考价值。

直接在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显示的主要内容,如果未能解决你的问题,请参考以下文章

如何将两个jrxml jasper报告合并为一个单独的pdf输出文件

打印信息,通过.jasper工具将集合输出到PDF文件 然后利用打印机打印文件

如何编译 jrxml 以获取 jasper?

jasper文件与jrxml文件的关系。

用iReport导出的txt文件中中文部分成了乱码,这是啥原因,如何解决?

.jasper文件内的内容能更改吗?求高手指教.在线等