Persyaratan saya adalah memasukkan grafik yang dihasilkan oleh JFreeChart ke dalam dokumen PDF saya
Untuk menampilkan daftar grafik, saya mendapatkan daftar objek 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) ;
}
Dari sini saya mengisi daftar gambar buffer dan mengisi grafik dalam PDF dengan cara di bawah ini
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);
}
}
Beginilah cara saya mengisi bagan di dalam PDF saya. Sekarang ketika saya mengatur disposisi konten ke lampiran, saya tidak mendapatkan respons sebagai lampiran di UI saya, melainkan browser membuka PDF di halaman lain
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");
}
Meskipun saya menyetel tipe disposisi konten ke lampiran di header respons, ini tidak dibuka sebagai lampiran. Hal yang sama berfungsi dengan baik setelah menghapus bagian bagan dari kode. Tolong bantu saya dalam hal ini. Terima kasih