我创建了一个碧玉报告。但现在我需要在碧玉报告中添加徽标, 我将报告和徽标放在同一个文件夹中,但我无法运行报告,它说
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 :(得分:1)
您的图片需要位于类路径的文件夹中,并以相对方式引用。
答案 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);
然后你就像上面那样引用它。
希望这有助于某人。