如何在碧玉报告上显示图像?
2022-09-01 07:17:00
我想在碧玉报表上显示图像。我在.jrxml上有以下内容:
<image>
<reportElement x="181" y="0" width="209" height="74"/>
<imageExpression class="java.lang.String"><![CDATA["logo.jpg"]]></imageExpression>
</image>
图像徽标.jpg与 .jrxml 位于同一目录中。只是说它不适合我。我用谷歌搜索了一下,发现jasper报告将我放在.jrxml上的内容视为JVM目录的相对路径,并且要更改它,我需要将返回文件的FileResolver作为“REPORT_FILE_RESOLVER”参数传递。因此,我在.java中做了以下操作(与.jrxml和图像位于同一位置)
FileResolver fileResolver = new FileResolver() {
@Override
public File resolveFile(String fileName) {
return new File(fileName);
}
};
HashMap<String, Object> parameters = new HashMap<String, Object>();
parameters.put("REPORT_FILE_RESOLVER", fileResolver);
...
这应该返回预期的文件,但我仍然得到一个
net.sf.jasperreports.engine.JRException: Error loading byte data : logo.jpg
at net.sf.jasperreports.engine.util.JRLoader.loadBytes(JRLoader.java:301)
at net.sf.jasperreports.engine.util.JRLoader.loadBytesFromLocation(JRLoader.java:479)
at net.sf.jasperreports.engine.JRImageRenderer.getInstance(JRImageRenderer.java:180)
...
我做错了什么?
谢谢!