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

Установить сплошной цвет фона для обычного слайда
Aspose.Slides позволяет установить сплошной цвет в качестве фона для конкретного слайда в презентации — даже если презентация использует мастер‑слайд. Изменение применяется только к выбранному слайду.
- Создайте экземпляр класса Presentation.
- Установите свойство BackgroundType слайда в
OwnBackground. - Установите свойство FillType фона слайда в
Solid. - Используйте метод getSolidFillColor на FillFormat, чтобы задать сплошной цвет фона.
- Сохраните изменённую презентацию.
Следующий пример 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 позволяет установить сплошной цвет в качестве фона для мастер‑слайда в презентации. Мастер‑слайд служит шаблоном, управляющим форматированием всех слайдов, поэтому при выборе сплошного цвета фона мастер‑слайда он применяется ко всем слайдам.
- Создайте экземпляр класса Presentation.
- Установите свойство BackgroundType мастер‑слайда (через
getMasters) вOwnBackground. - Установите свойство FillType фона мастер‑слайда в
Solid. - Используйте метод getSolidFillColor для задания сплошного цвета фона.
- Сохраните изменённую презентацию.
Следующий пример 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 позволяет установить градиентный цвет в качестве фона слайдов.
- Создайте экземпляр класса Presentation.
- Установите свойство BackgroundType слайда в
OwnBackground. - Установите свойство FillType фона слайда в
Gradient. - Используйте метод getGradientFormat на FillFormat, чтобы настроить требуемые параметры градиента.
- Сохраните изменённую презентацию.
Следующий пример 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 позволяет использовать изображения в качестве фоновых изображений слайдов.
- Создайте экземпляр класса Presentation.
- Установите свойство BackgroundType слайда в
OwnBackground. - Установите свойство FillType фона слайда в
Picture. - Загрузите изображение, которое вы хотите использовать в качестве фонового изображения слайда.
- Добавьте изображение в коллекцию изображений презентации.
- Используйте метод getPictureFillFormat на FillFormat, чтобы назначить изображение в качестве фона.
- Сохраните изменённую презентацию.
Следующий пример 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.