【iReport】实际开发中,解决iReport中打印图片不显示问题

ireport 中增加图片,添加上属性,但是运行时报错如下,是属性logoPath没有声明到map中

|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1. Parameter not found : logoPath ++net.sf.jasperreports.engine.design.JRValidationException++: Report design not valid : 1. Parameter not found : logoPath at net.sf.jasperreports.engine.design.JRAbstractCompiler.verifyDesign(++JRAbstractCompiler.java:280++) at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(++JRAbstractCompiler.java:152++) at net.sf.jasperreports.engine.JasperCompileManager.compile(++JasperCompileManager.java:357++) at net.sf.jasperreports.engine.JasperCompileManager.compile(++JasperCompileManager.java:343++) at net.sf.jasperreports.engine.JasperCompileManager.compileReport(++JasperCompileManager.java:608++) at com.xxxxxxxx.grecar.util.PrintUtil.printReportPdfMore(++PrintUtil.java:90++) at com.xxxxxxxx.grecar.services.core.impl.PrintServiceImpl.transcriptPrintNew(++PrintServiceImpl.java:418++) at com.xxxxxxxx.grecar.rest.core.PrintController.transcriptPrintNew(++PrintController.java:135++) at com.xxxxxxxx.grecar.rest.core.PrintController$$FastClassBySpringCGLIB$$37fde7a.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(++MethodProxy.java:204++) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(++CglibAopProxy.java:747++) |

解决办法:(1)添加图片属性以流的方式传给map

java 复制代码
  //打印模板地址
                      inputStream = classLoader.getResourceAsStream("template/policy0507tdfb.jrxml");
                      InputStream url = classLoader.getResourceAsStream("photo/top.png");
                      paramMap.put("logoPath",url);
                      paramMap.put("templetPath", inputStream);
                      paramMap.putAll((HashMap)getOffParamsC(printrespvo));
                 listMap.add(paramMap);
                 PrintUtil.printReportPdfMore(listMap,1,response);

并且在模板中缺少配置,打开policy0507tdfb.jrxml文件,添加

<parameter name="logoPath" class="java.io.InputStream" isForPrompting="false"/>

即完成。