Convertir un slide PowerPoint en images
Bonjour,
Afin de convertir un PowerPoint en images pour que je puisse par la suite les afficher, j'ai utilisé ce code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| 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.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.hslf.usermodel.SlideShow;
public class slidtoppt {
/**
* @param args
* @throws Throwable
*/
public static void main(String[] args) throws Throwable,IOException, Exception{
FileInputStream is = new FileInputStream("c:\\file\\slide.ppt");
System.out.println();
SlideShow ppt = new SlideShow(is);
is.close();
Dimension pgsize = ppt.getPageSize();
org.apache.poi.hslf.model.Slide[] slide = ppt.getSlides();
for (int i = 0; i < slide.length; 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
slide[i].draw(graphics);
//save the output
FileOutputStream out = null;
try {
out = new FileOutputStream("slide-" + (i+1) + ".png");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
javax.imageio.ImageIO.write(img, "png", out);
} catch (IOException e) {
e.printStackTrace();
}
out.close();
}
}
} |
Sachant que j'ai téléchargé tous les jars, j'ai encore des erreurs :
Citation:
Exception in thread "main" java.lang.NoSuchMethodError:
org.apache.poi.poifs.filesystem.POIFSFileSystem.getRoot()Lorg/apache/poi/poifs/filesystem/DirectoryNode;
at org.apache.poi.hslf.HSLFSlideShow.<init>(HSLFSlideShow.java:115)
at org.apache.poi.hslf.HSLFSlideShow.<init>(HSLFSlideShow.java:103)
at org.apache.poi.hslf.usermodel.SlideShow.<init>(SlideShow.java:124)
at slidtoppt.main(slidtoppt.java:23)
Quelqu'un saurait-il m'expliquer d'où peut venir le problème ?
Merci d'avance pour votre aide.