将BufferedImage添加到PDFBox文档

在我当前的项目中,我尝试将一个添加BufferedImage到PDFBox文档中。更具体地说,我使用来自的图片JFreeChart。我的代码如下所示:

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);

BufferedImage image = chart.createBufferedImage(300, 300);

ximage = new PDJpeg(doc, image);

content.drawImage(ximage, 20, 20);

content.close();

} catch(IOException ie) {

}

doc.save(filePath);

doc.close();

}

文档被创建;我可以添加文本,但是出现错误,指出图像没有足够的信息可显示。

任何有关我做错事情的线索?

回答:

感谢您帮助我解决垃圾问题。昨晚和今天花了几个小时,人们对PipedIn /

OutStreams感到困惑。无法解决。但是,我得到它的工作。事实证明,这并不是很困难。

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();

}

我敢肯定,这样做可以做得更好,但是可以。

以上是 将BufferedImage添加到PDFBox文档 的全部内容, 来源链接: utcz.com/qa/407682.html

回到顶部