Рубрики
Без рубрики

Применить фоновое изображение ко всем слайдам в Java

В этом блоге будет рассказано, как применить фоновое изображение ко всем слайдам в существующей презентации PowerPoint на Java. Помеченный java, PowerPoint, фоном слайда.

Свободный дух. Презентация для Java предоставляет класс фона слайда для работы с фоном слайда. С его помощью вы можете установить фон слайда с сплошной заливкой, градиентной заливкой, заливкой рисунка или заливкой рисунка.

В этом посте вы узнаете о двух способах применения фонового изображения ко всем слайдам в существующей презентации PowerPoint. Первый способ – использовать цикл for для установки фона для каждого слайда, а второй способ – использовать мастер-слайд. Основной слайд может сохранять не только фон, но и изображения (например, логотип компании) или текст, которые вы хотите отобразить на всех слайдах.

Вот как выглядит входной файл PowerPoint.

Способ 1. Используйте цикл for

import com.spire.presentation.FileFormat;
import com.spire.presentation.Presentation;
import com.spire.presentation.SlideBackground;
import com.spire.presentation.drawing.*;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.FileInputStream;

public class AppplyBgToAllSlides {

    public static void main(String[] args) throws Exception {

        //load a PowerPoint file
        Presentation presentation = new Presentation();
        presentation.loadFromFile("C:\\Users\\Administrator\\Desktop\\input.pptx");

        //get the image data
        BufferedImage image = ImageIO.read(new FileInputStream("C:\\Users\\Administrator\\Desktop\\bg.jpg"));
        IImageData imageData = presentation.getImages().append(image);

        //loop through the slides
        for (int i = 0; i < presentation.getSlides().getCount() ; i++) {

            //apply the image to the certain slide as background
            SlideBackground background = presentation.getSlides().get(i).getSlideBackground();
            background.setType(BackgroundType.CUSTOM);
            background.getFill().setFillType(FillFormatType.PICTURE);
            background.getFill().getPictureFill().setFillType(PictureFillType.STRETCH);
            background.getFill().getPictureFill().getPicture().setEmbedImage(imageData);
        }

        //save to file
        presentation.saveToFile("output.pptx", FileFormat.PPTX_2013);
        presentation.dispose();
    }
}

Способ 2. Использовать мастер-слайд

import com.spire.presentation.*;
import com.spire.presentation.drawing.BackgroundType;
import com.spire.presentation.drawing.FillFormatType;
import com.spire.presentation.drawing.IImageData;
import com.spire.presentation.drawing.PictureFillType;

import javax.imageio.ImageIO;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.FileInputStream;


public class ApplySlideMaster {

    public static void main(String[] args) throws Exception  {

        //load a PowerPoint file
        Presentation presentation = new Presentation();
        presentation.loadFromFile("C:\\Users\\Administrator\\Desktop\\input.pptx");

        //get the first slide master
        IMasterSlide masterSlide = presentation.getMasters().get(0);

        //set the background image of the slide master
        String backgroundPic = "C:/Users/Administrator/Desktop/bg.jpg";
        BufferedImage image = ImageIO.read(new FileInputStream(backgroundPic));
        IImageData imageData = presentation.getImages().append(image);
        masterSlide.getSlideBackground().setType(BackgroundType.CUSTOM);
        masterSlide.getSlideBackground().getFill().setFillType(FillFormatType.PICTURE);
        masterSlide.getSlideBackground().getFill().getPictureFill().setFillType(PictureFillType.STRETCH);
        masterSlide.getSlideBackground().getFill().getPictureFill().getPicture().setEmbedImage(imageData);

        //add an image (company logo) to the slide master
        String logo = "C:/Users/Administrator/Desktop/logo.png";
        image = ImageIO.read(new FileInputStream(logo));
        imageData = presentation.getImages().append(image);
        IEmbedImage imageShape = masterSlide.getShapes().appendEmbedImage(ShapeType.RECTANGLE,imageData,new Rectangle2D.Float(40,40,200,60));
        imageShape.getLine().setFillType(FillFormatType.NONE);

        //save to file
        presentation.saveToFile("output.pptx", FileFormat.PPTX_2013);
        presentation.dispose();
    }
}

Оригинал: “https://dev.to/eiceblue/apply-background-image-to-all-slides-in-java-58mf”