`

IReport与JasperReport生成HTML报表的线条图片问题

阅读更多
IReport与JasperReport生成HTML报表的线条图片问题     

最近正在做一个基于J2EE的Web项目,使用IReport与JasperReport作为Web报表的解决方案,在使用Html报表形式进行打印时出现如下问题。(同样的问题使用了不同的解决方法)
    一.问题描述:使用JasperReport生成Html报表后,数据显示正确,但各种线条显示不出来
           产生原因:在生成HTML页面时JRHtmlExporterParameter.IMAGES_URI参数设置不正确,主要是图片的路径问题。由JasperReport生成Html时,那些线条是一个名称为px像素的图片,是内置在jasperreports包中的,在IE显示时以图片的形式显示
           解决办法:查阅了网络许多资料,照其方法测试均未解决。无奈之下,查看JasperReport的源代码才搞定。
          1、在web.xml中添加如下配置:

                   <servlet>
                           <servlet-name>ImageServlet</servlet-name>
                           <servlet-class>net.sf.jasperreports.j2ee.servlets.ImageServlet</servlet-class>
                  </servlet>

                  <servlet-mapping>
                           <servlet-name>ImageServlet</servlet-name>
                           <url-pattern>/servlets/image</url-pattern>
                  </servlet-mapping>

        2、在调用程序中增加如下代码:

             exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "../servlets/image?image=");

             全部调用程序如下:

             <%@ page contentType="application/pdf;charset=GB2312"%>
             <%@ page import="net.sf.jasperreports.engine.*" %>
             <%@ page import="net.sf.jasperreports.engine.util.*" %>
             <%@ page import="net.sf.jasperreports.engine.export.*" %>
             <%@ page import="net.sf.jasperreports.j2ee.servlets.*" %>
             <%@ page import="java.util.*" %>
             <%@ page import="java.io.*" %>
             <%@ page import="java.sql.*" %>
      <%
                //   "/reports/test.jasper"是ireport编译后的报表文件
                File reportFile = new File(application.getRealPath("/reports/test.jasper"));
                 if(!reportFile.exists())
                      throw new JRRuntimeException("报表绘制失败,找不到报表配置文件!");
                JasperReport jasperReport = (JasperReport)JRLoader.loadObject(reportFile.getPath());
             
                String url ="jdbc:jtds:sqlserver://127.0.0.1/test";
                Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
                Connection conn = DriverManager.getConnection(url,"sa", "");
                //null为无参数传入
                JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, conn);
         
               JRHtmlExporter exporter = new JRHtmlExporter();
               StringBuffer sbuffer = new StringBuffer();

               session.setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, jasperPrint);

               exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
               exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);
               exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "../servlets/image?image=");

               exporter.exportReport();
%>

         3、执行你的代码,完工!

   二. 问题描述:使用JasperReport生成Html报表后,使用IE打印时报表的各种线条无法打印出来
           产生原因:和上例一样,由JasperReport生成Html时,那些线条是一个名称为px像素的图片,是内置在jasperreports包中的,在IE显示时以图片的形式显示,打印时浏览器无法打印这些图片。
           解决办法:通过设置IE选项,使其可以打印背景颜色和图像,方法:工具 --internet选项 --高级 --打印 --打印背景颜色和图像,重新预览即可显示出各种线条。

分享到:
评论

相关推荐

    iReport与JasperReport简介

    通过与Java应用程序结合,JasperReport可以在运行时动态填充模板,生成所需的报表。 **二、iReport介绍** iReport是JasperReport的图形化设计工具,它为用户提供了直观的界面来创建和编辑报表模板。用户可以通过...

    iReport 和 Jasperreport整合开发web报表向导2.doc

    完成报表设计后,可以通过 JasperReport API 将报表引入 Java 应用程序中,生成报表实例并输出为各种格式(如 PDF、HTML、Excel 等)。 9. **报表元素和属性**: iReport 提供了 "Element properties" 和 ...

    iReport+JasperReport柱状图

    iReport+JasperReport柱状图开发指南 本文详细介绍了使用iReport和JasperReport开发柱状图的过程,包括确定数据源类型、开发数据源类、设计图表属性等步骤。作者分享了自己的实践经验,遇到的困难和解决方法,旨在...

    ireport+jasperreport API

    1. JasperReport API:学习如何创建和填充jasperReport模板,理解JRDesign对象和JRFillDataset的概念,它们是报表生成的核心。 2. 动态表头:通过使用Group和HeaderFooter元素,可以实现根据数据变化的表头,提供更...

    iReport 和 Jasperreport整合开发web报表向导

    Jasperreport整合开发web报表向导2.doc"以及"iReport 和 Jasperreport整合开发web报表向导3.doc",你将能更深入地了解这一过程的具体实施细节,包括代码示例和常见问题解决策略。这些文档将帮助你更好地理解和实践...

    iReport-JasperReport 报表开发指南

    《iReport-JasperReport 报表开发指南》是一本针对初学者的专业教程,旨在帮助读者掌握使用iReport和JasperReport进行报表开发的核心技术。iReport是一款强大的设计工具,而JasperReport则是一个流行的Java报表库,...

    struts2+Ireport+Jasperreport实现报表导出

    Struts2、iReport与JasperReport是Java开发中用于构建高效、动态Web应用程序和报表生成的工具。在这个项目中,这些技术结合在一起,提供了一种强大的报表导出解决方案。以下是对这些关键技术及其在项目中的应用的...

    原创:iReport&JasperReport开发手记(一) List报表开发与发布

    - **JasperReport 3.7.3**:报表生成库。 2. **引入必要的JAR包**:在 MyEclipse 的项目属性中,将 JasperReport dist 文件夹下的所有 JAR 包添加到 Java Build Path 中。此外,还需引入以下外部依赖: - **...

    CSDN技术中心 iReport 和 Jasperreport整合开发web报表向导.pdf

    随着技术的发展,各种报表生成工具应运而生,其中iReport与JasperReport因其功能强大、易于集成的特点,在Java Web开发领域占据了重要位置。本文将详细介绍如何利用iReport和JasperReport进行Web报表的开发,并分享...

    IReport与JasperReport开发报表经验总结

    本文将基于“**IReport与JasperReport开发报表经验总结**”这一主题,对文档中提到的一些关键问题及其解决方案进行详细的阐述。 #### 1. 显示控件信息与设置 在开发过程中,经常会遇到关于显示控件信息的问题。...

    ireport+jasperreport联合开发java报表(PDF).rar

    《ireport+jasperreport联合开发Java报表》是针对Java开发者的一款强大的报表生成工具,它能够帮助程序员高效地创建、设计和导出各种复杂的业务报表,尤其是PDF格式的报表。本资料详细介绍了如何利用ireport和...

    iReport 和 Jasperreport整合开发web报表向1.doc

    iReport 是一个基于GUI的报表设计工具,它专门用于设计Jasperreport的模板,而Jasperreport则是一个强大的报表引擎,能够处理各种复杂的报表逻辑并生成多种格式的报表输出,如PDF、HTML、XML、XLS和CSV等。...

    ireport-5.6.0 Jasperreport 报表工具 jar包大全

    描述部分与标题相同,"ireport-5.6.0 Jasperreport 报表工具 jar包大全",进一步确认了提供的资源是一个包含iReport和JasperReport相关jar文件的集合,可能包括了所有必要的库和依赖,使得开发者能够构建和运行复杂...

    iReport+JasperReport教材两本以及demo

    iReport和JasperReport是两个在Java开发领域中广泛使用的报表工具,主要用于设计和生成复杂的业务报告。这两个工具是开源的,因此深受开发者喜爱。在本资料包中,你将获得两本关于iReport和JasperReport的教材,以及...

    struts2+ireport+jasperreport报表设计简单示例

    使用ireport和struts2进行报表设计的简单示例,生成普通报表和饼图、柱状图。java工程的lib里包含丰富的jar包,且很多都是从各个网站下载的最新版本,文件夹内还包含一些ireport和jasperreport文档,适合刚入门学习...

    JasperReport动态生成报表

    这样不仅能够根据实际需求进行定制,还可以深入了解其内部机制,提高报表生成的效率和灵活性。 **7. 工具支持** 除了JasperReport自身,还有配套的工具如iReport(已停止更新)和Jaspersoft Studio提供报表设计的...

    ireport+jasperreport开发中问题解决方案

    在使用iReport和JasperReport进行报表开发时,可能会遇到一系列问题,这些问题涵盖了报表样式、内容展示、数据处理等多个方面。以下是对标题和描述中提到的一些常见问题的详细解答: 1. **乱码问题**:当报表中出现...

    iReport和Jasperreport整合开发web报表向导.pdf

    iReport是一款功能强大且灵活的报表设计工具,能够与Jasperreport集成,生成精美的web报表。本文档将对iReport进行深入介绍,展示如何使用iReport设计报表、连接数据库、定义变量和参数、设置字体等。 一、iReport...

    iReport-5.6.0 Jasperreport 报表

    使用iReport和JasperReport进行报表开发,不仅可以提高开发效率,还能保证报表的专业性和美观度。无论是在企业级应用还是小型项目中,它们都是生成高质量报表的理想工具。通过不断学习和实践,开发者可以充分利用...

Global site tag (gtag.js) - Google Analytics