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.guorenpcic.grecar.util.PrintUtil.printReportPdfMore(PrintUtil.java:90) at com.guorenpcic.grecar.services.core.impl.PrintServiceImpl.transcriptPrintNew(PrintServiceImpl.java:418) at com.guorenpcic.grecar.rest.core.PrintController.transcriptPrintNew(PrintController.java:135) at com.guorenpcic.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
//打印模板地址
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"/>
即完成。