我正在 Java Swing 中开发一个应用程序。我在我的应用程序中使用了 JasperReports 和 iReport 。
我已成功连接 JasperReports 和数据库,并且还加载了 jrxml 文件。
我的问题是,在完成应用程序的开发之后,我希望应用程序的用户能够设置他们的徽标,可以更改其页眉和页脚。我可以这样做的一种方法是创建一个用户界面,它是一个 JFrame ,它具有上传图像选项+更改报告的页眉和页脚。但是,如何将 JFrame 组件与 JR 报告连接起来,以便我的 JFrame 组件中所做的更改应该反映在报告中?
答案 0 :(得分:0)
我假设“upload”的含义是将图像保存在特定路径中的服务器计算机硬盘中,然后将该路径保存在数据库中。
将上传的图片转换为InputStream
String imgPath = "[path_of_uploaded_image_here]";
BufferedImage image = ImageIO.read(new File(imgPath));
ByteArrayOutputStream os = new ByteArrayOutputStream();
ImageIO.write(image, "gif", os);
InputStream is = new ByteArrayInputStream(os.toByteArray());
将转换后的图像作为参数传递给jasperreport。(此处参数名称为ENTITY_IMAGE)
在iReport中,创建一个参数。此参数的数据类型应为java.io.InputStream
拖动图片。去图像属性。在图像属性下,将Expression Class的值更改为java.io.InputStream
,然后将图像表达式更改为$ P {ENTITY_IMAGE}。