Add BufferedImage to PDFBox document

后端 未结 3 545
生来不讨喜
生来不讨喜 2020-12-14 23:59

In my current project, I try to add a BufferedImage to a PDFBox document. More specificly, I use an image from a JFreeChart. My code looks like thi

3条回答
  •  暗喜
    暗喜 (楼主)
    2020-12-15 00:24

    Thanks for helping me out trashgod. Spent last night and a few hours today beeing confused about PipedIn/OutStreams. Can´t figure it out. However, i got it to work. Turns out it wasn´t very difficult at all.

    public void exportToPDF(JFreeChart chart, String filePath){
        PDDocument doc = null;
        PDPage page = null;
        PDXObjectImage ximage = null;
        try {
            doc = new PDDocument();
            page = new PDPage();
            doc.addPage(page);
            PDPageContentStream content = new PDPageContentStream(doc, page);
    
            //create a new outStream
            ByteArrayOutputStream out = new ByteArrayOutputStream();
            ChartUtilities.writeChartAsJPEG(out, chart, 300, 300);//write to outstream
            //create a new inputstream
            InputStream in = new ByteArrayInputStream(out.toByteArray());
            ximage = new PDJpeg(doc, in);
            content.drawImage(ximage, 5, 300);
            content.close();
        }
        catch (IOException ie){
            //handle exception
        }
        //save and close
        doc.save(filePath);
        doc.close();
    }
    

    I´m sure this can be done better but it works.

提交回复
热议问题