2012-06-11 62 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); 

然後,你可以像上面那樣引用它。

希望這可以幫助別人。