如何显示碧玉报告图像(how to display image in jasper reports)

2019-07-29 20:02发布

我现在创建一个碧玉报告。但我需要把徽标时碧玉报告,我把报告和标识在同一文件夹中,但我不能够运行报告,它说

   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

Answer 1:

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



Answer 2:

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

解决方案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);

然后你引用它,你会做以上。

希望这可以帮助别人。



文章来源: how to display image in jasper reports