shallow丶十三 2021-08-18 14:32 采纳率: 40%
浏览 91
已结题

java读取pptx文件然后将每张图片以图片里的id命名保存到本地

1.java读取pptx文件并保存里面的图片
2.比如每一个幻灯片是一个图片(有10个或者更多),每个图片上有一个自己写上的ID,ID为14位的数字。
3.现在需要使用java去读取这个pptx文件,并且将这里面的每一个图片保存下来,保存的图片命名为这个图片里自己写上的ID

img

  • 写回答

2条回答 默认 最新

  • Dadamia 2021-08-18 15:59
    关注

    你这里的id可以设置为图片的可选文字的标题,然后在读取图片时,也读取可选文字标题,命名图片时以读取的标题命名,
    比如:

    img

    import com.spire.presentation.*;
    
    import javax.imageio.ImageIO;
    import java.awt.image.BufferedImage;
    import java.io.File;
    
    public class ExtractSpecifiedImgs{
        public static void main(String[]args)throws Exception{
            //加载测试文档
            Presentation ppt = new Presentation();
            ppt.loadFromFile("test.pptx");
    
            //获取第3张幻灯片
            ISlide slide = ppt.getSlides().get(2);
    
            //提取图片
            for(int i = 0; i< slide.getShapes().getCount(); i++)
            {
                IShape shape = slide.getShapes().get(i);
                String title = shape.getAlternativeTitle();//读取可选文字标题
                if(shape instanceof SlidePicture)
                {
                    SlidePicture pic = (SlidePicture) shape;
                    BufferedImage image = pic.getPictureFill().getPicture().getEmbedImage().getImage();                
                    ImageIO.write(image, "PNG",  new File(String.format(title+".png", i)));
                }
                if(shape instanceof PictureShape)
                {
                    PictureShape ps = (PictureShape) shape;
                    BufferedImage image = ps.getEmbedImage().getImage();                
                    ImageIO.write(image, "PNG",  new File(String.format(title+".png", i)));
                }
            }
        }
    
    }
    

    读取的图片保存到本地效果:

    img

    代码是用free spire.presentation for java的jar包来读的图片。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月27日
  • 已采纳回答 8月20日
  • 创建了问题 8月18日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效