需要的Jar包和链接:查看资源包https://download.csdn.net/download/weixin_38948287/11253629
package com.framework.common.utils;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import net.bytebuddy.asm.Advice.This;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFShape;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFTextParagraph;
import org.apache.poi.xslf.usermodel.XSLFTextRun;
import org.apache.poi.xslf.usermodel.XSLFTextShape;
import com.sun.org.apache.bcel.internal.generic.RETURN;
public class PptToImage {
public static List<String> PptToImage(String PPTurl) throws IOException {
List<String> Imageurl=new ArrayList<String>();
File file = new File(PPTurl);
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));
Dimension pgsize = ppt.getPageSize();
List<XSLFSlide> slide = ppt.getSlides();
BufferedImage img = null;
for (int i = 0; i < slide.size(); i++) {
for( XSLFShape shape : slide.get(i).getShapes() ){
if ( shape instanceof XSLFTextShape ){
XSLFTextShape txtshape = (XSLFTextShape)shape ;
for ( XSLFTextParagraph textPara : txtshape.getTextParagraphs() ){
List<XSLFTextRun> textRunList = textPara.getTextRuns();
for(XSLFTextRun textRun: textRunList) {
textRun.setFontFamily("宋体");
}
}
}
}
img = new BufferedImage(pgsize.width, pgsize.height, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = img.createGraphics();
graphics.setPaint(Color.white);
graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));
slide.get(i).draw(graphics);
FileOutputStream out = new FileOutputStream("F:\\test1\\ppt_image"+i+".png");
Imageurl.add("ppt_image"+i+".png");
javax.imageio.ImageIO.write(img, "png", out);
ppt.write(out);
System.out.println("Image successfully created");
out.close();
}
return Imageurl;
}
public static void main(String[] args) {
try {
PptToImage.PptToImage("F:\\test1\\test.pptx");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}