實際開發中,解決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( at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:152) at net.sf.jasperreports.engine.JasperCompileManager.compile(JasperCompileManager.java:357) at at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:608) at com.guorenpcic.grecar.util.PrintUtil.printReportPdfMore( 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"/>
即完成。