java - 有没有人有 Apache POI 将 PPTX 转换为 PNG 的示例

标签 java apache png powerpoint apache-poi

有谁知道将 PPTX powerpoint 演示文稿转换为某种形式的图像的好例子? PNG/GIF/等?

我可以为 PPT 做,但正在寻找 PPTX 转换示例

谢谢

最佳答案

同时它起作用了(...从 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();
        }
    }
}

关于java - 有没有人有 Apache POI 将 PPTX 转换为 PNG 的示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3471472/

相关文章:

java - Chrome 驱动程序的多个实例上的 Chrome 崩溃

java - 来自 jax-ws webservice 的零星异常

regex - 重定向和重写以从 url 中删除 .html

apache - 在 htaccess 中将所有页面从非 www 重定向到 www

python - 在 Django 模板中包含图像文件显示断开的链接?

java - 多线程中类加载器的行为

java - 无法提取 Java Servlet 中的所有 cookie

windows - SVN 和 Apache - 有什么优势吗?

javascript - 使用 NodeJS 的图像像素数组追踪边界

css - Octopress透明图像有背景