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 打印在页面上的。谢谢。
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();
}
我也碰到的这个问题很明显是由于浏览器不支持非图片文件名的图片显示,所以必须要转流输出。即我上面的代码
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。