动态图像在JasperReports(sqlite)中

时间:2015-01-20 04:53:42

标签: java sqlite jasper-reports

我尝试过各种不同的方法,我从其他问题中读到这些方法,但似乎没有一种方法适合我......

我使用NetBeans 7.4作为前端,使用Sqlite作为Backend,iReport 5.5

我正在制作大学ic-ards,其中我希望从数据库中取出照片,在数据库中,图像存储为blob,我将它们存储为字节..

我的要求是从ICard数据库获取学生图像所以我可以打印它们。

以下是我用于将图像插入数据库的代码

File image= new File(logPath2);
FileInputStream fis=new FileInputStream(image);
ByteArrayOutputStream bos=new ByteArrayOutputStream();
byte buf[]=new byte[1024];
for(int readNum;(readNum=fis.read(buf))!=-1; ) {
  bos.write(buf,0,readNum);
}
person_image=bos.toByteArray();  

我已经尝试了各种图像表达式和类表达式,但似乎没有工作..

请注意我说的是sqlite,我知道用mysql做的方法但sqlite,它不能渲染。但我不想从sqlite转移到mysql。

我得到的错误是

Error filling print... Unable to get value for field 'Photo' of class 'java.io.I‌​nputStream' net.sf.jasperreports.engine.JRException: Unable to get value for field 'Photo' o‌​f class 'java.io.InputStream' at net.sf.jasperreports.engine.JRResultSetDataSource.getFieldValue(JRResultS‌​etDataSource.java:319) at net.sf.jasperreports.engine.fill.JRFillDataset.setOldValues(JRFillDataset‌​.java:1356) at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:12‌​57) at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:12‌​33) –  

0 个答案:

没有答案