RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:9:30-18:00
你可能遇到了下面的问题
关闭右侧工具栏
JasperReport里如何在Detail部分来动态的现实数据库
  • 作者:zhaozj
  • 发表时间:2020-12-23 11:00
  • 来源:未知

问题(网友zslzspzsagd 原文):我想通过ireport在detail部分来动态的现实数据库中的图片(我的数据库中存储的是服务器上的图片所在的路径)。

    因为很久没有做JasperReport了,只是说一下个人的一点想法,不对之处,还望指正。

首先,detail里肯定需要定义一个field:

<field name="Image" class="java.awt.Image"/>

注意:class 为 java.awt.Image

其次,肯定需要定义自己的datasource

在  public Object getFieldValue(JRField field) throws JRException

里,判断如果是Image的路径字段,则载入返回图片(应为java.awt.image.BufferedImage)。

如:public Object getFieldValue(JRField field) throws JRException{

         Object value = null;    String fieldName = field.getName();

if ("Image".equals(fieldName))  {

   String imagePath = (根据index和fieldName取数据库信息);

   value = getImage(imagePath );  }else{

...........

}

return value;

}

private BufferedImage getImage(String imagePath){

Image image = Toolkit.getDefaultToolkit().getImage(imagePath);// Create the buffered image.BufferedImage bufferedImage = new BufferedImage(image.getWidth(null), image.getHeight(null),BufferedImage.TYPE_INT_RGB);// Copy image to buffered image.Graphics g = bufferedImage.createGraphics();// Clear background and paint the image.g.setColor(Color.white);g.fillRect(0, 0, image.getWidth(null),image.getHeight(null));g.drawImage(image, 0, 0, null);g.dispose();return bufferedImage;

}