2012-06-11 58 views
1

我创建了一个碧玉报告,但现在我需要在碧玉报告中放置徽标, 我将报告和徽标放在同一文件夹中,但我无法运行报告,如何在碧玉报告中显示图像

net.sf.jasperreports.engine.JRException: Byte data not found at : kh_logo.jpg 

如果我给的完整路径,然后jar文件创建问题,然后在jar文件报告是无法发现的标志形象,我使用净豆请大家帮忙

I am using netbeans and i am placing report and logo in the src folder , but when I 
click on print report it is not able to find that logo 
+0

你可以发布包括(和周围)图像项目的jrxml吗? –

回答

1

您的图片需求放在类路径中的文件夹中,并以相对方式引用。

1

有两种可能的解决方案,我发现这个问题:

解决方法1:使用相对路径。

使用绝对路径可能无法在您的服务器环境中工作。因此使用相对路径会更好。这将是很好的放置“kh_logo.png”文件在同一文件夹中.jrmxl或.jasper文件,并使用像这样引用它:

<image> 
      <reportElement uuid="generated_uuid" x="8" y="9" width="170" height="51"/> 
      <imageExpression><![CDATA["kh_logo.png"]]></imageExpression> 
</image> 

如果不行.... 。

解决方案2:使用文件解析器

这个解决方案是只在Java代码中使用。在这里,您将自己的文件解析器作为参数传递给报告。像这样..

///Jasper Resolver 
     FileResolver fileResolver = new FileResolver() { 

     @Override 
     public File resolveFile(String fileName) { 
      URI uri; 
      try { 
      uri = new URI(this.getClass().getResource(fileName).getPath()); 
      return new File(uri.getPath()); 
      } catch (URISyntaxException e) { 
      e.printStackTrace(); 
      return null; 
      } 
     } 
    }; 
     parameters.put("REPORT_FILE_RESOLVER", fileResolver); 

然后,你可以像上面那样引用它。

希望这可以帮助别人。