Bonjour
J'ai une classe qui me génère 2 graphiques dans un BufferedImage[] et que je voudrais soit afficher en direct soit insérer dans un doc Pdf. Pour l'affichage direct no pb mais pour l'insertion dans le Pdf j'ai un NullPointerException qui me remonte (le buffImage[0] est vide ???) et je ne comprends pas pourquoi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
 
package edition;
 
 
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
 
import java.io.ByteArrayOutputStream;
import java.io.IOException;
 
import java.sql.Statement;
 
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
 
import com.lowagie.text.*;
import com.lowagie.text.pdf.PdfContentByte;
import com.lowagie.text.pdf.PdfPTable;
import com.lowagie.text.pdf.PdfWriter;
 
 
/**
 * 
 * @author jojo
 *
 */
public class DtoIndicateur {
 
//génération doc Pdf
	public static ByteArrayOutputStream dtoGraphPdf(final HttpSession session,final Statement stmt, final HttpServletRequest req){
 
		PdfPTable tbl = null;
		PdfWriter writer = null;
		ByteArrayOutputStream baos = new ByteArrayOutputStream();
		Document document = null;
 
		BufferedImage buffimage[] = DtoIndicateur.graph(session, stmt, req);
 
		java.awt.Image awtImage = buffimage[0];
		//awtImage = librairie.PDFLibrairie.graphBarre(0);
		Image img = null; //com.lowagie.text
		try{
			//NullPointerException ?????
			try{img = Image.getInstance(awtImage, null, false);}catch(final IOException e){e.printStackTrace();}
 
//génération du document PDF
			document = new Document(PageSize.A4, 10, 10, 45, 30);  //Format A4
			try{writer = PdfWriter.getInstance(document, baos);}catch(final Exception e_pdf){e_pdf.printStackTrace();}
 
//ouverture du doc
			document.open();
			PdfContentByte pcb = writer.getDirectContent();
 
//ajout graphique
			img.setAbsolutePosition(10,20);
			pcb.addImage(img);
 
			document.close();
			writer.close();
		}catch(final DocumentException e){e.printStackTrace();}
 
		return(baos);
	}
 
 
//génération doc image	
	public static ByteArrayOutputStream graphStreamPng(final HttpSession session,final Statement stmt, final HttpServletRequest req) {
 
		BufferedImage buffImage[] = DtoIndicateur.graph(session, stmt, req);
		buffImage[0] = addImage(buffImage[0], buffImage[1]);
//création du stream de sortie
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        try{ImageIO.write( buffImage[0],"png",baos );}catch(final IOException e){e.printStackTrace();}
 
		return(baos);
	}
Si quelqu'un a une petite idée
Merci