jasperreport html 显示图片

wilsonchen 发布于 2013/01/26 12:12
阅读 1K+
收藏 0
jasperreport+ireport做报表处理logo(处理图片显示的问题) 
我为用ireport做报表要把公司的logo加在报表里,我图片加在报表里用ireport(html和其他的方式)预览能都能看到图片,但是.jasper加到jsp页面上不显示图片了,问题是当我保存为PDF和world能看到logon,就在jsp里看不到图片。 

    设置图片是这样做的,我在ireport里设置了一个参数$P{mages}参数名为mages,参数的类型是数据流类型,在报表上放了一个图片框,图片框的路径不是得到图片的路径而是这个参数$P{mages}。是在jsp页面为这个个参数传入数据留, 
String   imageRead   =   request.getRealPath( "WEB-INF/logon.jpg ");//获得图片路径File   imageFile   =   new   File(imageRead); 
InputStream   imageIn   =   new   FileInputStream(imageFile);//图片一个数据流 
parameters.put( "logo ",imageIn);//获得为图片设置的参数,把图片传给这个参数 

这样为图片参数传值的,整个程序不报错,只是在jsp里看不到图片的效果,保存为其他的格式能看见这个图片。在jsp里右击不显示的图片属性看到的路径是:http://localhost:8083/servlets/imagesdir=img_0_0_1

我的项目环境是spring + jsf 在显示html的时候是通过一个servlet 打印在页面上的。谢谢。

加载中
0
龙影
龙影
String docNo =this.getPara();//获取报表文件
        // 报表编译之后生成的.jasper文件的存放位置
        File reportFile = new File(this.getRequest().getRealPath("/")+"/WEB-INF/report/"+docNo+".jasper");
        try{
        Map<String ,Object> parameters=new HashMap<String,Object>();
        Connection conn = JFWebConfig.druidPlugin.getDataSource().getConnection();
        JasperReport  jasperReport=(JasperReport)JRLoader.loadObject(reportFile);
        JasperPrint jasperPrint=JasperFillManager.fillReport(jasperReport, parameters, conn);
        JRHtmlExporter exporter = new JRHtmlExporter();
        OutputStreamWriter osw=new OutputStreamWriter(this.getResponse().getOutputStream());
        exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
        exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, osw);
        exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.FALSE);
        exporter.setParameter(JRHtmlExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,Boolean.TRUE);
       
        exporter.setParameter(JRHtmlExporterParameter.IS_OUTPUT_IMAGES_TO_DIR,Boolean.TRUE);//输出图片到目录
        exporter.setParameter(JRHtmlExporterParameter.IMAGES_DIR,new File(this.getRequest().getRealPath("/")+"upload/report"));//图片保存目录
        exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI,"/rpt/report/loadImg/?file=");//图片访问URI 由于是我框架的问题,需要对图片文件重新使用action来加载。
        exporter.exportReport();
        }catch(Exception e){
        e.printStackTrace();
        }
0
龙影
龙影
我也碰到的这个问题 很明显 是由于浏览器不支持非图片文件名的图片显示,所以必须要转流输出。即我上面的代码
返回顶部
顶部