JasperReport里如何在Detail部分来动态的现实数据库中的图片

类别:Java 点击:0 评论:0 推荐:

问题(网友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;

}

本文地址:http://com.8s8s.com/it/it16096.htm