相关疑难解决方法(0)

如何在jasper报告上显示图像?

我想在碧玉报告上显示图像.我在.jrxml上有以下内容:

<image>
  <reportElement x="181" y="0" width="209" height="74"/>
  <imageExpression class="java.lang.String"><![CDATA["logo.jpg"]]></imageExpression>
</image>
Run Code Online (Sandbox Code Playgroud)

图像logo.jpg与.jrxml位于同一目录中.只是说它对我不起作用.我google了一下,发现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);
...
Run Code Online (Sandbox Code Playgroud)

哪个应该返回预期的文件,但我仍然得到一个

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)
...
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

谢谢!

java jasper-reports

30
推荐指数
4
解决办法
9万
查看次数

标签 统计

jasper-reports ×1

java ×1