0

我正在用Java Swing开发一个应用程序。我在我的应用程序中使用JasperReportsiReport

我已经成功地在JasperReports和数据库之间建立了连接,并且还加载了jrxml文件。

我的问题是,在完成我的应用程序的开发后,我希望应用程序的用户能够设置他们的徽标,可以更改他们的页眉和页脚。我可以做到这一点的一种方法是创建一个用户界面,它是一个具有上传图像选项的JFrame + 更改报告的页眉和页脚。但是如何将我的JFrame组件与JR报告连接起来,以便在我的JFrame组件中所做的更改应该反映在报告中?

这是我想要进行任何选择或更改的框架,应该反映在 Jasper 报告中

4

1 回答 1

0

我假设“上传”的含义是将图像保存在服务器计算机的硬盘中的特定路径中,然后将该路径保存在数据库中。

  1. 将上传的图片转换为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());
    
  2. 将转换后的图像作为参数传递给 jasperreport。(此处参数名称为 ENTITY_IMAGE)

  3. 在 iReport 中,创建一个参数。此参数的数据类型应为java.io.InputStream

  4. 拖动图像。转到图像属性。在图像属性下,将表达式类的值更改为,java.io.InputStream然后将图像表达式更改为 $P{ENTITY_IMAGE}。

于 2012-12-11T06:45:27.920 回答