开发者社区> 问答> 正文

jasperreport html 显示图片?报错

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 打印在页面上的。谢谢。

展开
收起
爱吃鱼的程序员 2020-06-22 22:01:33 566 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    StringdocNo=this.getPara();//获取报表文件
        //报表编译之后生成的.jasper文件的存放位置
        FilereportFile=newFile(this.getRequest().getRealPath("/")+"/WEB-INF/report/"+docNo+".jasper");
        try{
        Map<String,Object>parameters=newHashMap<String,Object>();
        Connectionconn=JFWebConfig.druidPlugin.getDataSource().getConnection();
        JasperReport jasperReport=(JasperReport)JRLoader.loadObject(reportFile);
        JasperPrintjasperPrint=JasperFillManager.fillReport(jasperReport,parameters,conn);
        JRHtmlExporterexporter=newJRHtmlExporter();
        OutputStreamWriterosw=newOutputStreamWriter(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,newFile(this.getRequest().getRealPath("/")+"upload/report"));//图片保存目录
        exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI,"/rpt/report/loadImg/?file=");//图片访问URI由于是我框架的问题,需要对图片文件重新使用action来加载。
        exporter.exportReport();
        }catch(Exceptione){
        e.printStackTrace();
        }
    我也碰到的这个问题很明显是由于浏览器不支持非图片文件名的图片显示,所以必须要转流输出。即我上面的代码

    2020-06-22 22:01:48
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
《零基础HTML入门教程》 立即下载
天猫 HTML5 互动技术实践 立即下载
天猫HTML5互动技术实践 立即下载