Tôi muốn hiển thị hình ảnh trên báo cáo jasper. Tôi có thông tin sau đây trên .jrxml:Làm cách nào để hiển thị hình ảnh trên báo cáo jasper?
<image>
<reportElement x="181" y="0" width="209" height="74"/>
<imageExpression class="java.lang.String"><![CDATA["logo.jpg"]]></imageExpression>
</image>
Hình ảnh logo.jpg nằm trong cùng thư mục với .jrxml. Bởi chỉ cần nói rằng nó đã không làm việc cho tôi. Tôi googled một chút và phát hiện ra rằng báo cáo jasper xem xét những gì tôi đặt trên .jrxml như một đường dẫn tương đối đến thư mục JVM và để thay đổi điều này tôi cần phải vượt qua như là một tham số "REPORT_FILE_RESOLVER" một FileResolver trả về tập tin. Vì vậy, tôi đã làm như sau trong java của tôi (nằm trong cùng một vị trí như .jrxml và hình ảnh)
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);
...
nào nên trả lại hồ sơ dự kiến, nhưng tôi vẫn có được một
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)
...
Tôi đang làm gì sai?
Cảm ơn!
Xem: http://stackoverflow.com/a/39320863/59087 –