将PowerPoint幻灯片导出到java.awt.Graphics2D中

时间:2012-06-03 16:28:15

标签: java apache apache-poi

我开始测试将ppt文档转换为jpeg或png图像。我用java来测试。 按照apache web上的说明进行操作:http://poi.apache.org/slideshow/how-to-shapes.html#Render和代码:

FileInputStream is = new FileInputStream("slideshow.ppt");
        SlideShow ppt = new SlideShow(is);
        is.close();

        Dimension pgsize = ppt.getPageSize();

        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 = new FileOutputStream("slide-"  + (i+1) + ".png");
            javax.imageio.ImageIO.write(img, "png", out);
            out.close();
        }

在ppt doc中,我只输入“hello world”,而不是运行java程序,并且png图像生成成功。但我用ACDsee软件打开图像来查看图像,但是“helloworld”没有出现在png图像中。有什么事?这里有人可以给我一些建议吗?你也可以自己测试看看结果,请告诉我你是否得到了相同的结果。

1 个答案:

答案 0 :(得分:0)

您的BufferedImage似乎没有做任何事情。您只需用白色填充图像并将其保存到文件中。