gpt4 book ai didi

java - 如何使用 apache poi 设置不同的幻灯片背景?

转载 作者:行者123 更新时间:2023-12-02 10:39:55 25 4
gpt4 key购买 nike

当我设置幻灯片的背景颜色时,它将覆盖所有背景颜色。如何单独设置它们?

示例:

        XMLSlideShow ppt = new XMLSlideShow();
XSLFSlide createSlide = ppt.createSlide();
createSlide.getBackground().setFillColor(Color.BLUE);

XSLFSlide createSlide2 = ppt.createSlide();
createSlide2.getBackground().setFillColor(Color.RED);

背景颜色将全部变成红色。

最佳答案

XSLFSlide.getBackground如果 XSLFSlide 还没有背景,则从 slideMasters 中的母版表获取背景。新创建后,XSLFSlide 还没有背景。

所以我们在创建幻灯片后至少需要设置一个空背景。然后 XSLFSlide.getBackground 获取此背景而不是母版中的背景。

示例:

import java.io.FileOutputStream;

import org.apache.poi.xslf.usermodel.*;
import org.apache.poi.sl.usermodel.*;

import java.awt.Color;

public class CreatePPTXSheetsDifferentBackground {

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

XMLSlideShow slideShow = new XMLSlideShow();
XSLFSlide slide = slideShow.createSlide();
if (slide.getXmlObject().getCSld().getBg() == null) slide.getXmlObject().getCSld().addNewBg();
slide.getBackground().setFillColor(Color.BLUE);
slide = slideShow.createSlide();
if (slide.getXmlObject().getCSld().getBg() == null) slide.getXmlObject().getCSld().addNewBg();
slide.getBackground().setFillColor(Color.RED);

FileOutputStream out = new FileOutputStream("CreatePPTXSheetsDifferentBackground.pptx");
slideShow.write(out);
out.close();
}
}

关于java - 如何使用 apache poi 设置不同的幻灯片背景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52986703/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com