如何用POI将PPT的内容转换为图片

少年民仔 2015-10-20 10:33:07
我用POI提供的方法去转换ppt内容为图片时,出错了,具体代码如下:

public static void main(String[] args) throws FileNotFoundException,
IOException {
final String PPT_TEMPLATE = "data/test.pptx";
float scale = 1;
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(PPT_TEMPLATE));

Dimension pgsize = ppt.getPageSize();
int width = (int) (pgsize.width * scale);
int height = (int) (pgsize.height * scale);

XSLFSlide slide = ppt.getSlides()[5];

BufferedImage img = new BufferedImage(width, height,
BufferedImage.TYPE_INT_ARGB);
Graphics2D graphics = img.createGraphics();

// default rendering options
graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
graphics.setRenderingHint(RenderingHints.KEY_RENDERING,
RenderingHints.VALUE_RENDER_QUALITY);
graphics.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BICUBIC);
graphics.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS,
RenderingHints.VALUE_FRACTIONALMETRICS_ON);

graphics.setColor(Color.white);
graphics.clearRect(0, 0, width, height);

graphics.scale(scale, scale);

// draw stuff
slide.draw(graphics);

// save the result
FileOutputStream out = new FileOutputStream(new File("D:/test.png"));
try {
ImageIO.write(img, "png", out);
} finally {
out.close();
}
System.out.println("Job Done");
}



这是ppt内容的截图,下面这张是转换后的图片


转换过程中,ppt里面的图表内容丢失了,大神能否帮忙看一下,指导一下?
...全文
217 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
少年民仔 2015-10-21
  • 打赏
  • 举报
回复
该不会又沉了吧,顶一下,大神看过来!!!
sinat_31535993 2015-10-20
  • 打赏
  • 举报
回复
是不是原来PPT上就是一个折线图?
少年民仔 2015-10-20
  • 打赏
  • 举报
回复
引用 1 楼 sinat_31535993 的回复:
是不是原来PPT上就是一个折线图?
恩恩,是的,但是导出来以后就丢失了,用柱形图也试了,也不行,用的是POI-3.9.jar包,纠结这个问题很久了

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧