有谁知道将PPTX PPT演示文稿转换为某种形式的图像的好例子吗? PNG/GIF /等?有没有人有Apache POI将PPTX转换为PNG的例子
我可以做一个PPT,但寻找一个PPTX转换示例
感谢
有谁知道将PPTX PPT演示文稿转换为某种形式的图像的好例子吗? PNG/GIF /等?有没有人有Apache POI将PPTX转换为PNG的例子
我可以做一个PPT,但寻找一个PPTX转换示例
感谢
回答我的问题,我订阅了开发邮件列表,并问到这个问题。
答案是,这functionailty目前不被Apache POI支持
pptx4j可以帮助你在HTML创建SVG(虽然还有很多工作要做,以支持所有的形状);然后你可以使用其中一个工具从一个自动浏览器窗口创建一个图像。
在它工作的同时(...从there复制它):
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.geom.AffineTransform;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
public class PptToPng {
public static void main(String[] args) throws Exception {
FileInputStream is = new FileInputStream("example.pptx");
XMLSlideShow ppt = new XMLSlideShow(is);
is.close();
double zoom = 2; // magnify it by 2
AffineTransform at = new AffineTransform();
at.setToScale(zoom, zoom);
Dimension pgsize = ppt.getPageSize();
XSLFSlide[] slide = ppt.getSlides();
for (int i = 0; i < slide.length; i++) {
BufferedImage img = new BufferedImage((int)Math.ceil(pgsize.width*zoom), (int)Math.ceil(pgsize.height*zoom), BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = img.createGraphics();
graphics.setTransform(at);
graphics.setPaint(Color.white);
graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));
slide[i].draw(graphics);
FileOutputStream out = new FileOutputStream("slide-" + (i + 1) + ".png");
javax.imageio.ImageIO.write(img, "png", out);
out.close();
}
}
}
这里有一个例子类PPTX2PNG
现在捆绑了POI,似乎与该PPTX甲板我扔体面的结果工作在它:
http://svn.apache.org/repos/asf/poi/trunk/src/ooxml/java/org/apache/poi/xslf/util/PPTX2PNG.java
你应该接受你自己的答案。 – 2011-06-01 18:38:14