我现在创建一个碧玉报告。但我需要把徽标时碧玉报告,我把报告和标识在同一文件夹中,但我不能够运行报告,它说
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
您的图片需要在您的类路径的文件夹中,并以相对的方式引用。
还有我发现这个问题有两种可能的解决方案:
解决方案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);
然后你引用它,你会做以上。
希望这可以帮助别人。