当我们在编辑完一份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文档如下:
![37c8d34553911235f55cb154c97e9439.png](https://img-blog.csdnimg.cn/img_convert/37c8d34553911235f55cb154c97e9439.png)
替换图片:
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:UsersAdministratorDesktopimg.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);
}
}
替换图片效果图:
![b9afa6b5c0bffc3551c74c83396bac53.png](https://img-blog.csdnimg.cn/img_convert/b9afa6b5c0bffc3551c74c83396bac53.png)