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
//打印模板地址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"/>
即完成。