package info.opencards.util.playground;
import org.apache.poi.hslf.usermodel.HSLFSlide;
import org.apache.poi.hslf.usermodel.HSLFSlideShow;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import java.awt.*;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* Document me!
*
* @author Holger Brandl
*/
public class ConvertPPTX2PNG {
public static void main(String[] args) throws IOException, InvalidFormatException {
FileInputStream is = new FileInputStream("/Users/brandl/Dropbox/private/oc2/testdata/experimental design.pptx");
XMLSlideShow ppt2 = new XMLSlideShow(OPCPackage.open("/Users/brandl/Dropbox/private/oc2/testdata/experimental design.pptx"));
XSLFSlide slide1 = ppt2.getSlides().get(0);
// slide1.get
HSLFSlideShow ppt = new HSLFSlideShow(is);
//
HSLFSlide slide2 = ppt.getSlides().get(1);
is.close();
Dimension pgsize = ppt.getPageSize();
java.util.List<HSLFSlide> slides = ppt.getSlides();
for (int i = 0; i < slides.size(); i++) {
BufferedImage img = new BufferedImage(pgsize.width, pgsize.height,
BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = img.createGraphics();
//clear the drawing area
graphics.setPaint(Color.white);
graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));
//render
slides.get(i).draw(graphics);
//save the output
FileOutputStream out = new FileOutputStream("slide-" + (i + 1) + ".png");
javax.imageio.ImageIO.write(img, "png", out);
out.close();
}
}
}