【开源方案】PPT/PPTX转image图片

PPT/PPTX转image图片

By KimmKing 2018年6月1日

功能需求与技术分析

最近有一个需求,在Java环境下把PPT/PPTX转换成图片展示。
一般来说,这个需求用dotnet来实现非常合适:
- 最简单的可以通过VSTO之类的,直接调用PowerPoint来实现转存图片。
- 也可以不依赖于dotnet,使用手法的Aspose组件,效果非常棒,就是不便宜。

这里提供一种跨平台的Java&开源处理方式:Apache POI实现PPT/PPTX的文件处理。
核心原理就是获取每一页的PPT对象,然后输出到内存图像对象,再保存为图片文件:

Slide.draw(graphics);

Github开源项目

操作代码已经封装到这里:
https://github.com/kkstudy/PPT2Image

PPT2Image 是一个把PPT 或 PPTX 的每一页转换成一个图片的库。

使用说明

File file = new File("D:\\git\\PPT2Image\\1.pptx");
List<String> images = convertPPTtoImage(file,"D:\\git\\PPT2Image\\images\\pptx");

列表images里就是每一个图片的路径。

测试效果

  1. POI对于PPTX格式的处理要比PPT好,特别是文本框和字体上更精确。
  2. 转换速度PPTX要比PPT慢,PPT大概1s一张,PPTX大概需要1.6s。

效果对比

  • PPTX to Images
    PPTX1
    PPTX2
    PPTX3
  • PPT to Images
    PPT1
    PPT2
    PPT3

使用的测试文件在此:https://github.com/kkstudy/PPT2Image

猜你喜欢

转载自blog.csdn.net/KimmKing/article/details/80541123