Récupération d'image dans Oracle puis création PDF
Bonjour,
Je voudrais pouvoir récupérer une image contenue dans un BLOB Oracle, puis la mettre dans un pdf (par l'intermédiaire d'une com.lowagie.text.Image).
Voilà ma fonction qui retourne mon image pour l'insertion dans le pdf :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| public com.lowagie.text.Image getLogo(int typeDoc) throws Exception{
com.lowagie.text.Image result = null;
byte[] imageBytes = new byte[0];
Connection cnx = Dm.getConnection("Documents"); // connection a la base oracle
try {
PreparedStatement pstmt = cnx.prepareStatement("select image from docs where cle= ?");
pstmt.setInt(1, typeDoc);
ResultSet rs=pstmt.executeQuery();
if(rs.next()) {
imageBytes = rs.getBytes(1);
}
pstmt.close();
rs.close();
cnx.close();
System.out.println("getLogo : Taille de l'image: "+imageBytes.length+"bytes");
if (imageBytes.length>1) {
java.awt.Image image1 = Toolkit.getDefaultToolkit().createImage(imageBytes);
//ca plante là en dessous :
result = com.lowagie.text.Image.getInstance(image1, null);
} else System.out.println("getLogo : Récupération des bytes impossibles.");
}
catch(Exception e){
cnx.close();
System.out.println("getLogo : "+e.getMessage());
throw new Exception(e.getMessage());
}
return result;
} |
J'ai l'erreur suivante après la ligne :
Code:
result = com.lowagie.text.Image.getInstance(image1, null);
"java.awt.Image fetch aborted or errored".
En faisant quelques recherches je me dis que peut être l'image n'est pas totalement chargée quand je l'utilise et qu'il faudrait que j'attende, mais comment ?
PS: j'utilise un serveur TOMCAT.