- N +

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

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

导读:

一.问题描述:使用JasperReport生成Html报表后,数据显示正确,但各种线条显示不出来? ? ? ? ?  ...

文章目录 [+]

一.问题描述:使用JasperReport生成html报表后,数据显示正确,但各种线条显示不出来

亚博体育官网人生赢家? ? ? ? ? ?产生原因:在生成HTML页面时JRHtmlExporterParameter.IMAGES_URI参数设置不正确,主要是图片的路径问题。由JasperReport生成Html时,那些线条是一个名称为px像素的图片,是内置在jasperreports包中的,在IE显示时以图片的形式显示

? ? ? ? ? ?解决办法:查阅了网络许多资料,照其方法测试均未解决。无奈之下,查看JasperReport的源代码才搞定。

? ? ? ? ?1、在web.xml中添加如下配置:

? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ImageServlet

? ? ? ? ? ? ? ? ? ? ? ? ? net.sf.jasperreports.j2ee.servlets.ImageServlet

? ? ? ? ? ? ? ? ?


? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ImageServlet

? ? ? ? ? ? ? ? ? ? ? ? ? /servlets/image

? ? ? ? ? ? ? ? ?


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


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


? ? ? ? ? ? ?全部调用程序如下:


? ? ? ? ? ? <%@ page contentType="text/html;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、在Struts2中处理此问题的方法:


Action中代码如下:


?


public String printInfo() {

? ? ? ? try {

? ? ? ? ? ? condition = "id =" + customer.getId();

? ? ? ? ? ? resultList = this.getCustomerManager().findAccording("Customer",

? ? ? ? ? ? ? ? ? ? condition);

? ? ? ? ? ? Map parameters = new HashMap();

? ? ? ? ? ? Debug.println(resultList.size());

? ? ? ? ? ? return "print";

? ? ? ? } catch (Exception e) {

? ? ? ? ? ? System.out.println(e.getMessage());

? ? ? ? ? ? return "failure";

? ? ? ? }

? ? }

?struts.xml文件中代码如下:


? ? ? ? "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

? ? ? ? "http://struts.apache.org/dtds/struts-2.0.dtd">

? ?

? ?

? ? ? ?

? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? /reports/install.jasper

? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? resultList

? ? ? ? ? ? ? ? PDF

? ? ? ? ? ?

? ?如果你执行此Action中的printInfo方法时返回的信息图片都没显示的话,那么就在.jasper文件所在的文件夹目录中创建一个images包然后把px文件(可到http://download.csdn.net/source/649431下载)放到这里。


? ? 4、执行你的代码,完工!


? ?二. 问题描述:使用JasperReport生成Html报表后,使用IE打印时报表的各种线条无法打印出来

? ? ? ? ? ?产生原因:和上例一样,由JasperReport生成Html时,那些线条是一个名称为px像素的图片,是内置在jasperreports包中的,在IE显示时以图片的形式显示,打印时浏览器无法打印这些图片。

? ? ? ? ? ?解决办法:通过设置IE选项,使其可以打印背景颜色和图像,方法:工具 --?internet选项 --?高级 --?打印 --?打印背景颜色和图像,重新预览即可显示出各种线条。



--------------------

本文标题:IReport与JasperReport生成HTML报表的线条图片问题
本文链接:http://www.kyjszj.com/qtzq/160.html
作者授权:除特别说明外,本文由?开源技术之家?原创编译并授权?开源技术之家?刊载发布。
版权声明:本文不使用任何协议授权,您可以任何形式自由转载或使用。

有好的文章希望我们帮助分享和推广,猛戳这里我要投稿

亚博体育官网人生赢家
上一篇:
下一篇:

发表评论中国互联网举报中心

快捷回复:

    评论列表 (暂无评论,共1179人参与)参与讨论

    还没有评论,来说两句吧...