Управление фонами презентаций в Java

Обзор

Сплошные цвета, градиенты и изображения часто используются в качестве фоновых изображений слайдов. Вы можете установить фон для обычного слайда (одного слайда) или мастер‑слайда (применяется к нескольким слайдам сразу).

PowerPoint background

Установить сплошной цвет фона для обычного слайда

Aspose.Slides позволяет установить сплошной цвет в качестве фона для конкретного слайда в презентации — даже если презентация использует мастер‑слайд. Изменение применяется только к выбранному слайду.

  1. Создайте экземпляр класса Presentation.
  2. Установите свойство BackgroundType слайда в OwnBackground.
  3. Установите свойство FillType фона слайда в Solid.
  4. Используйте метод getSolidFillColor на FillFormat, чтобы задать сплошной цвет фона.
  5. Сохраните изменённую презентацию.

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

// Создайте экземпляр класса Presentation.
Presentation presentation = new Presentation();
try {
    ISlide slide = presentation.getSlides().get_Item(0);

    // Установите цвет фона слайда в синий.
    slide.getBackground().setType(BackgroundType.OwnBackground);
    slide.getBackground().getFillFormat().setFillType(FillType.Solid);
    slide.getBackground().getFillFormat().getSolidFillColor().setColor(Color.BLUE);
    
    // Сохраните презентацию на диск.
    presentation.save("SolidColorBackground.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Установить сплошной цвет фона для мастер‑слайда

Aspose.Slides позволяет установить сплошной цвет в качестве фона для мастер‑слайда в презентации. Мастер‑слайд служит шаблоном, управляющим форматированием всех слайдов, поэтому при выборе сплошного цвета фона мастер‑слайда он применяется ко всем слайдам.

  1. Создайте экземпляр класса Presentation.
  2. Установите свойство BackgroundType мастер‑слайда (через getMasters) в OwnBackground.
  3. Установите свойство FillType фона мастер‑слайда в Solid.
  4. Используйте метод getSolidFillColor для задания сплошного цвета фона.
  5. Сохраните изменённую презентацию.

Следующий пример Java показывает, как установить сплошной цвет (зелёный) в качестве фона мастер‑слайда:

// Создайте экземпляр класса Presentation.
Presentation presentation = new Presentation();
try {
    IMasterSlide masterSlide = presentation.getMasters().get_Item(0);

    // Установите цвет фона для мастер-слайда в лесной зелёный.
    masterSlide.getBackground().setType(BackgroundType.OwnBackground);
    masterSlide.getBackground().getFillFormat().setFillType(FillType.Solid);
    masterSlide.getBackground().getFillFormat().getSolidFillColor().setColor(Color.GREEN);

    // Сохраните презентацию на диск.
    presentation.save("MasterSlideBackground.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Установить градиентный фон для слайда

Градиент — это графический эффект, создаваемый постепенным изменением цвета. При использовании в качестве фонового изображения слайда градиенты могут придать презентации более художественный и профессиональный вид. Aspose.Slides позволяет установить градиентный цвет в качестве фона слайдов.

  1. Создайте экземпляр класса Presentation.
  2. Установите свойство BackgroundType слайда в OwnBackground.
  3. Установите свойство FillType фона слайда в Gradient.
  4. Используйте метод getGradientFormat на FillFormat, чтобы настроить требуемые параметры градиента.
  5. Сохраните изменённую презентацию.

Следующий пример Java показывает, как установить градиентный цвет в качестве фона слайда:

// Создайте экземпляр класса Presentation.
Presentation presentation = new Presentation();
try {
    ISlide slide = presentation.getSlides().get_Item(0);
    
    // Примените градиентный эффект к фону.
    slide.getBackground().setType(BackgroundType.OwnBackground);
    slide.getBackground().getFillFormat().setFillType(FillType.Gradient);
    slide.getBackground().getFillFormat().getGradientFormat().setTileFlip(TileFlip.FlipBoth);

    // Сохраните презентацию на диск.
    presentation.save("GradientBackground.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Установить изображение в качестве фонового изображения слайда

Помимо сплошных и градиентных заливок Aspose.Slides позволяет использовать изображения в качестве фоновых изображений слайдов.

  1. Создайте экземпляр класса Presentation.
  2. Установите свойство BackgroundType слайда в OwnBackground.
  3. Установите свойство FillType фона слайда в Picture.
  4. Загрузите изображение, которое вы хотите использовать в качестве фонового изображения слайда.
  5. Добавьте изображение в коллекцию изображений презентации.
  6. Используйте метод getPictureFillFormat на FillFormat, чтобы назначить изображение в качестве фона.
  7. Сохраните изменённую презентацию.

Следующий пример Java показывает, как установить изображение в качестве фона слайда:

// Создайте экземпляр класса Presentation.
Presentation presentation = new Presentation();
try {
    ISlide slide = presentation.getSlides().get_Item(0);

    // Установите свойства фонового изображения.
    slide.getBackground().setType(BackgroundType.OwnBackground);
    slide.getBackground().getFillFormat().setFillType(FillType.Picture);
    slide.getBackground().getFillFormat().getPictureFillFormat().setPictureFillMode(PictureFillMode.Stretch);
    
    // Загрузите изображение.
    IImage image = Images.fromFile("Tulips.jpg");
    // Добавьте изображение в коллекцию изображений презентации.
    IPPImage ppImage = presentation.getImages().addImage(image);
    image.dispose();

    slide.getBackground().getFillFormat().getPictureFillFormat().getPicture().setImage(ppImage);
    
    // Сохраните презентацию на диск.
    presentation.save("ImageAsBackground.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

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

Presentation presentation = new Presentation();
try {
    ISlide firstSlide = presentation.getSlides().get_Item(0);

    IBackground background = firstSlide.getBackground();

    background.setType(BackgroundType.OwnBackground);
    background.getFillFormat().setFillType(FillType.Picture);

    IImage newImage = Images.fromFile("image.png");
    IPPImage ppImage = presentation.getImages().addImage(newImage);
    newImage.dispose();

    // Установите изображение, используемое для заполнения фоном.
    IPictureFillFormat backPictureFillFormat = background.getFillFormat().getPictureFillFormat();
    backPictureFillFormat.getPicture().setImage(ppImage);

    // Установите режим заливки изображения в Плитка и настройте свойства плитки.
    backPictureFillFormat.setPictureFillMode(PictureFillMode.Tile);
    backPictureFillFormat.setTileOffsetX(15f);
    backPictureFillFormat.setTileOffsetY(15f);
    backPictureFillFormat.setTileScaleX(46f);
    backPictureFillFormat.setTileScaleY(87f);
    backPictureFillFormat.setTileAlignment(RectangleAlignment.Center);
    backPictureFillFormat.setTileFlip(TileFlip.FlipY);

    presentation.save("TileBackground.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Изменить прозрачность фонового изображения

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

int transparencyValue = 30; // Например.

// Get the collection of picture transform operations.
IImageTransformOperationCollection imageTransform = slide.getBackground().getFillFormat().getPictureFillFormat().getPicture().getImageTransform();

// Find an existing fixed-percentage transparency effect.
IAlphaModulateFixed transparencyOperation = null;
for (IImageTransformOperation operation : imageTransform) {
    if (operation instanceof IAlphaModulateFixed) {
        transparencyOperation = (IAlphaModulateFixed)operation;
        break;
    }
}

// Set the new transparency value.
if (transparencyOperation == null) {
    imageTransform.addAlphaModulateFixedEffect(100 - transparencyValue);
}
else {
    transparencyOperation.setAmount(100 - transparencyValue);
}

Получить значение фоновых свойств слайда

Aspose.Slides предоставляет интерфейс IBackgroundEffectiveData для получения эффективных значений фоновых свойств слайда. Этот интерфейс раскрывает эффективные FillFormat и EffectFormat.

Используя метод getBackground класса BaseSlide, вы можете получить эффективный фон для слайда.

Следующий пример Java показывает, как получить эффективное значение фоновых свойств слайда:

// Создайте экземпляр класса Presentation.
Presentation presentation = new Presentation("Sample.pptx");
try {
    ISlide slide = presentation.getSlides().get_Item(0);

    // Получите эффективный фон, учитывая мастер, макет и тему.
    IBackgroundEffectiveData effBackground = slide.getBackground().getEffective();
    
    if (effBackground.getFillFormat().getFillType() == FillType.Solid)
        System.out.println("Fill color: " + effBackground.getFillFormat().getSolidFillColor());
    else
        System.out.println("Fill type: " + effBackground.getFillFormat().getFillType());
} finally {
    presentation.dispose();
}

Часто задаваемые вопросы

Могу ли я сбросить пользовательский фон и восстановить фон темы/макета?

Да. Удалите пользовательскую заливку слайда, и фон будет снова наследован от соответствующего layout/master (т.е. от theme background).

Что произойдёт с фоном, если позже я изменю тему презентации?

Если у слайда есть собственная заливка, она останется без изменений. Если фон наследуется от layout/master, он обновится в соответствии с new theme.