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);//获得为图片设置的参数,把图片传给这个参数
我为用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 打印在页面上的。谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我也碰到的这个问题 很明显 是由于浏览器不支持非图片文件名的图片显示,所以必须要转流输出。即我上面的代码
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();
}