jasperreport html 显示图片

发布于 2021-11-22 06:11:13 字数 956 浏览 883 评论 2

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

为你鎻心 2021-11-26 08:43:25

我也碰到的这个问题 很明显 是由于浏览器不支持非图片文件名的图片显示,所以必须要转流输出。即我上面的代码

柒夜笙歌凉 2021-11-25 15:02:45

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();

        }

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文