Свободный дух. Презентация для 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”