1. 程式人生 > >實際開發中,解決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.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"/>

即完成。