Тема Презентации

Тема презентации определяет свойства элементов дизайна. Когда вы выбираете тему презентации, вы в основном выбираете конкретный набор визуальных элементов и их свойства.

В PowerPoint тема включает цвета, шрифты, стили фона и эффекты.

theme-constituents

Изменить цвет темы

Тема PowerPoint использует конкретный набор цветов для различных элементов на слайде. Если вам не нравятся цвета, вы можете изменить их, применив новые цвета к теме. Чтобы позволить вам выбрать новый цвет темы, Aspose.Slides предоставляет значения из перечисления SchemeColor.

Этот код на C# показывает, как изменить цвет акцента для темы:

using (Presentation pres = new Presentation())
{
    IAutoShape shape = pres.Slides[0].Shapes.AddAutoShape(ShapeType.Rectangle, 10, 10, 100, 100);

    shape.FillFormat.FillType = FillType.Solid;

    shape.FillFormat.SolidFillColor.SchemeColor = SchemeColor.Accent4;
}

Вы можете определить эффективное значение полученного цвета таким образом:

var fillEffective = shape.FillFormat.GetEffective();

Console.WriteLine($"{fillEffective.SolidFillColor.Name} ({fillEffective.SolidFillColor})"); // ff8064a2 (Цвет [A=255, R=128, G=100, B=162])

Чтобы дальше продемонстрировать операцию изменения цвета, мы создаем другой элемент и присваиваем ему цвет акцента (из начальной операции). Затем мы изменяем цвет в теме:

IAutoShape otherShape = pres.Slides[0].Shapes.AddAutoShape(ShapeType.Rectangle, 10, 120, 100, 100);

otherShape.FillFormat.FillType = FillType.Solid;

otherShape.FillFormat.SolidFillColor.SchemeColor = SchemeColor.Accent4;

pres.MasterTheme.ColorScheme.Accent4.Color = Color.Red;

Новый цвет автоматически применяется ко всем элементам.

Установить цвет темы из дополнительной палитры

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

additional-palette-colors

1 - Основные цвета темы

2 - Цвета из дополнительной палитры.

Этот код на C# демонстрирует операцию, в которой цвета дополнительной палитры получаются из основного цвета темы и затем используются в фигурах:

using (Presentation presentation = new Presentation())
{
    ISlide slide = presentation.Slides[0];

    // Акцент 4
    IShape shape1 = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 10, 10, 50, 50);

    shape1.FillFormat.FillType = FillType.Solid;
    shape1.FillFormat.SolidFillColor.SchemeColor = SchemeColor.Accent4;

    // Акцент 4, Светлее на 80%
    IShape shape2 = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 10, 70, 50, 50);

    shape2.FillFormat.FillType = FillType.Solid;
    shape2.FillFormat.SolidFillColor.SchemeColor = SchemeColor.Accent4;
    shape2.FillFormat.SolidFillColor.ColorTransform.Add(ColorTransformOperation.MultiplyLuminance, 0.2f);
    shape2.FillFormat.SolidFillColor.ColorTransform.Add(ColorTransformOperation.AddLuminance, 0.8f);

    // Акцент 4, Светлее на 60%
    IShape shape3 = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 10, 130, 50, 50);

    shape3.FillFormat.FillType = FillType.Solid;
    shape3.FillFormat.SolidFillColor.SchemeColor = SchemeColor.Accent4;
    shape3.FillFormat.SolidFillColor.ColorTransform.Add(ColorTransformOperation.MultiplyLuminance, 0.4f);
    shape3.FillFormat.SolidFillColor.ColorTransform.Add(ColorTransformOperation.AddLuminance, 0.6f);

    // Акцент 4, Светлее на 40%
    IShape shape4 = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 10, 190, 50, 50);

    shape4.FillFormat.FillType = FillType.Solid;
    shape4.FillFormat.SolidFillColor.SchemeColor = SchemeColor.Accent4;
    shape4.FillFormat.SolidFillColor.ColorTransform.Add(ColorTransformOperation.MultiplyLuminance, 0.6f);
    shape4.FillFormat.SolidFillColor.ColorTransform.Add(ColorTransformOperation.AddLuminance, 0.4f);

    // Акцент 4, Темнее на 25%
    IShape shape5 = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 10, 250, 50, 50);

    shape5.FillFormat.FillType = FillType.Solid;
    shape5.FillFormat.SolidFillColor.SchemeColor = SchemeColor.Accent4;
    shape5.FillFormat.SolidFillColor.ColorTransform.Add(ColorTransformOperation.MultiplyLuminance, 0.75f);

    // Акцент 4, Темнее на 50%
    IShape shape6 = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 10, 310, 50, 50);

    shape6.FillFormat.FillType = FillType.Solid;
    shape6.FillFormat.SolidFillColor.SchemeColor = SchemeColor.Accent4;
    shape6.FillFormat.SolidFillColor.ColorTransform.Add(ColorTransformOperation.MultiplyLuminance, 0.5f);

    presentation.Save("example.pptx", SaveFormat.Pptx);
}

Изменить шрифт темы

Чтобы позволить вам выбрать шрифты для тем и других целей, Aspose.Slides использует эти специальные идентификаторы (подобные тем, что используются в PowerPoint):

  • +mn-lt - Тело шрифта Латиница (минорный латинский шрифт)
  • +mj-lt - Заглавный шрифт Латиница (мажорный латинский шрифт)
  • +mn-ea - Тело шрифта Восточная Азия (минорный восточноазиатский шрифт)
  • +mj-ea - Заглавный шрифт Восточная Азия (минорный восточноазиатский шрифт)

Этот код на C# показывает, как назначить латиницу элементу темы:

IAutoShape shape = pres.Slides[0].Shapes.AddAutoShape(ShapeType.Rectangle, 10, 10, 100, 100);

Paragraph paragraph = new Paragraph();

Portion portion = new Portion("Формат текста темы");

paragraph.Portions.Add(portion);

shape.TextFrame.Paragraphs.Add(paragraph);

portion.PortionFormat.LatinFont = new FontData("+mn-lt");

Этот код на C# показывает, как изменить шрифт темы презентации:

pres.MasterTheme.FontScheme.Minor.LatinFont = new FontData("Arial");

Шрифт во всех текстовых полях будет обновлен.

Изменить стиль фона темы

По умолчанию приложение PowerPoint предоставляет 12 предустановленных фонов, но только 3 из этих 12 фонов сохраняются в типичной презентации.

todo:image_alt_text

Например, после того как вы сохранили презентацию в приложении PowerPoint, вы можете выполнить этот код на C#, чтобы узнать количество предустановленных фонов в презентации:

using (Presentation pres = new Presentation("pres.pptx"))
{
    int numberOfBackgroundFills = pres.MasterTheme.FormatScheme.BackgroundFillStyles.Count;

    Console.WriteLine($"Количество стилей заливки фона для темы равно {numberOfBackgroundFills}");
}

Этот код на C# показывает, как установить фон для презентации:

pres.Masters[0].Background.StyleIndex = 2;

Справочник индексов: 0 используется для отсутствия заливки. Индекс начинается с 1.

Изменить эффект темы

Тема PowerPoint обычно содержит 3 значения для каждого массива стилей. Эти массивы объединены в 3 эффекта: легкий, умеренный и интенсивный. Например, это результат, когда эффекты применяются к определенной фигуре:

todo:image_alt_text

Используя 3 свойства (FillStyles, LineStyles, EffectStyles) из класса FormatScheme, вы можете изменить элементы в теме (даже более гибко, чем варианты в PowerPoint).

Этот код на C# показывает, как изменить эффект темы, изменяя части элементов:

using (Presentation pres = new Presentation("Subtle_Moderate_Intense.pptx"))
{
    pres.MasterTheme.FormatScheme.LineStyles[0].FillFormat.SolidFillColor.Color = Color.Red;

    pres.MasterTheme.FormatScheme.FillStyles[2].FillType = FillType.Solid;

    pres.MasterTheme.FormatScheme.FillStyles[2].SolidFillColor.Color = Color.ForestGreen;

    pres.MasterTheme.FormatScheme.EffectStyles[2].EffectFormat.OuterShadowEffect.Distance = 10f;

    pres.Save("Design_04_Subtle_Moderate_Intense-out.pptx", SaveFormat.Pptx);
}

Изменения в цвете заливки, типе заливки, эффекте тени и т. д.:

todo:image_alt_text