zoukankan      html  css  js  c++  java
  • Java 替换 PPT 中的图片

    当我们在编辑完一份PPT演示文档后,可能会遇到需要替换图片的情况,此时我们可以借助Free Spire.Presentation for Java来完成这个操作。本文就将展示如何在Java程序中获取指定PowerPoint幻灯片中的图片形状,并用新图片进行填充。

    JAR包导入

    方法一:下载Free Spire.Presentation for Java包并解压缩,然后将lib文件夹下的jar包作为依赖项直接导入到Java应用程序中。

    方法二:通过Maven仓库安装jar包,配置pom.xml文件的代码如下:

    <repositories>
        <repository>
            <id>com.e-iceblue</id>
            <url>http://repo.e-iceblue.cn/repository/maven-public/</url>
        </repository>
    </repositories>
    <dependencies>
        <dependency>
            <groupId>e-iceblue</groupId>
            <artifactId>spire.presentation.free</artifactId>
            <version>3.9.0</version></dependency>
    </dependencies>

    原PPT文档如下:

    替换图片:

    import com.spire.presentation.*;
    import com.spire.presentation.drawing.IImageData;
    
    import javax.imageio.ImageIO;
    import java.awt.image.BufferedImage;
    import java.io.FileInputStream;
    
    public class ReplaceImage {
    
        public static void main(String[] args) throws Exception {
    
            //创建Presentation对象
            Presentation presentation= new Presentation();
    
            //加载PowerPoint示例文档
            presentation.loadFromFile("Presentation1.pptx");
    
            //添加图片到图片集合
            String imagePath = "C:\Users\Administrator\Desktop\img.jpg";
            BufferedImage bufferedImage = ImageIO.read(new FileInputStream(imagePath));
            IImageData image = presentation.getImages().append(bufferedImage);
    
            //获取第一张幻灯片上形状集合
            ShapeCollection shapes = presentation.getSlides().get(0).getShapes();
    
            //遍历所有形状
            for (int i = 0; i < shapes.getCount(); i++) {
    
                //判断形状是否是图片
                if (shapes.get(i) instanceof SlidePicture) {
    
                    //将图片形状用新图片填充
                    ((SlidePicture) shapes.get(i)).getPictureFill().getPicture().setEmbedImage(image);
                }
            }
    
            //保存文档
            presentation.saveToFile("ReplaceImage.pptx", FileFormat.PPTX_2013);
        }
    }

    替换图片效果图:

     

     

  • 相关阅读:
    优先级队列
    内存拷贝
    快速排序
    ubuntu上编译Thrift
    Hadoop 学习总结之一:HDFS简介(zz写的很不错)
    hbase 详细解析(转载)
    HBase技术介绍简介 NOSQL数据库 入门(转载)
    SQL到NOSQL的思维转变
    Hadoop分布式文件系统:架构和设计(zz)
    zz我对技术方向的一些反思
  • 原文地址:https://www.cnblogs.com/jazz-z/p/13803251.html
Copyright © 2011-2022 走看看