Java заменяет картинки в PowerPoint

Недавно, после редактирования документа презентации PPT, я столкнулся с ситуацией, когда мне нужно было заменить изображения. Чтобы быстро выполнить эту операцию в программе Java, я протестировал с помощью Free Spire.Presentation for Java замену изображений в слайдах PowerPoint. Сегодня в этой статье я расскажу вам о Java-коде, который я использовал.

Конфигурация среды

Установите пакет jar через репозиторий Maven, и код для настройки файла pom.xml выглядит следующим образом:

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


Исходный документ PowerPoint выглядит следующим образом

image

Код Java

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("sample 1.pptx");

        //Добавить картинку в коллекцию картинок
        String imagePath = "C:\\Users\\Administrator\\Desktop\\1.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("Out/ReplaceImage.pptx", FileFormat.PPTX_2013);
    }
}

image
Tags:
java

You can't comment this post because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author's username will be hidden by an alias.