Mon exigence est de mettre généré de la carte par JFreeChart à mon document PDFréponse ne peut pas être réglé sur la fixation en utilisant jfree et itext ensemble
Pour afficher la liste des cartes, je suis obtenir la liste des objets BufferedImage
private BufferedImage generateChartForPDF (DefaultCategoryDataset dataset,String threadName) {
String title = "Skill : "+threadName ;
JFreeChart chart = ChartFactory.createBarChart(title, "Work Completion",
"Perce %", dataset, PlotOrientation.VERTICAL, true, true,
false);
return chart.createBufferedImage(500, 300) ;
}
a partir de ce que je remplirai une liste d'images en mémoire tampon et je remplissais le tableau au format PDF de manière ci-dessous
ByteArrayOutputStream baos = new ByteArrayOutputStream();
Document pdfDocument = new Document();
PdfWriter pdfWriter = PdfWriter.getInstance(pdfDocument, baos);
setGraphImagesInPDF(pdfDocument, buffImageList) ;
private void setGraphImagesInPDF (Document pdfDocument,List<BufferedImage> buffImageList) throws DocumentException, IOException {
for (BufferedImage bufferedImage : buffImageList) {
Image image = Image.getInstance(bufferedImage,Color.LIGHT_GRAY);
pdfDocument.newPage();
image.setAbsolutePosition(300, 300) ;
pdfDocument.add(image);
}
}
Voici comment je remplir le tableau dans mon PDF. Maintenant, quand je mis la disposition de contenu à l'attachement, je ne reçois pas la réponse en pièce jointe dans mon interface utilisateur plutôt le navigateur ouvre le PDF dans une autre page
ServletOutputStream outputStream = response.getOutputStream();
baos.writeTo(outputStream);
setResponseHeaders(response,"Data");
outputStream.flush();
outputStream.close();
private void setResponseHeaders(HttpServletResponse response,String reportingType) {
System.out.println("setting response headers .. ");
response.setHeader("Content-Disposition",
"attachment; filename=\""+reportingType+" Reports.pdf\"");
response.setContentType("application/pdf");
}
Même si je place le type dispostion de contenu à l'attachement dans l'en-tête de la réponse, cela ne s'ouvre pas en pièce jointe. La même chose fonctionne bien après avoir enlevé la partie graphique du code. Aidez-moi s'il vous plaît à ce sujet. Merci
(1) pourquoi cette question marquée itext/jfreechart. Cette question concerne l'en-tête de réponse, n'est-ce pas? Ce n'est pas grave si vous utilisez iText ou JFreeChart. (2) Pouvez-vous reproduire le problème sur différentes machines, en utilisant différents navigateurs? Ma conjecture est que vous avez un problème de configuration locale qui n'est pas reproductible sur chaque machine client. –