itext pb d'insertion d'image
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:
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