Управление чернилами

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

Aspose.Slides предоставляет интерфейс Aspose.Slides.Ink, который содержит необходимые типы для создания и управления объектами чернил.

Различия между обычными объектами и объектами чернил

Объекты на слайде PowerPoint обычно представлены объектами формы. Объект формы, в его самом простом виде, является контейнером, который определяет площадь самого объекта (его рамка) вместе с его свойствами. К последним относятся размер контейнера, форма контейнера, фон контейнера и т.д. Для получения информации смотрите Формат расположения формы.

Однако, когда PowerPoint имеет дело с объектом чернил, он игнорирует все свойства рамки объекта (контейнера), кроме его размера. Размер области контейнера определяется стандартными значениями width и height:

ink_powerpoint1

Следы чернил

След является базовым элементом или стандартом, используемым для записи траектории пера, когда пользователь пишет цифровые чернила. Следы — это записи, которые описывают последовательности соединенных точек.

Самая простая форма кодирования указывает координаты X и Y каждой опорной точки. Когда все соединенные точки отрисовываются, они создают изображение, подобное этому:

ink_powerpoint2

Свойства кисти для рисования

Вы можете использовать кисть для рисования линий, соединяющих точки элементов следа. Кисть имеет свой собственный цвет и размер, соответствующие свойствам Brush.Color и Brush.Size.

Установить цвет кисти для чернил

Вот как выглядит код на C# для установки цвета кисти:

using (Presentation pres = new Presentation("pres.pptx"))
{
    IInk ink = (IInk)pres.Slides[0].Shapes[0];
    IInkTrace[] traces = ink.Traces;
    IInkBrush brush = traces[0].Brush;
    Color brushColor = brush.Color;
    brush.Color = Color.Red;
}

Установить размер кисти для чернил

Вот как выглядит код на C# для установки размера кисти:

using (Presentation pres = new Presentation("pres.pptx"))
{
    IInk ink = (IInk)pres.Slides[0].Shapes[0];
    IInkTrace[] traces = ink.Traces;
    IInkBrush brush = traces[0].Brush;
    SizeF brushSize = brush.Size;
    brush.Size = new SizeF(5f, 10f);
}

В общем, ширина и высота кисти не совпадают, поэтому PowerPoint не отображает размер кисти (раздел данных затенен). Но когда ширина и высота кисти совпадают, PowerPoint отображает её размер следующим образом:

ink_powerpoint3

Для ясности давайте увеличим высоту объекта чернил и рассмотрим важные размеры:

ink_powerpoint4

Контейнер (рамка) не учитывает размер кистей — он всегда предполагает, что толщина линии равна нулю (см. последнее изображение).

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

ink_powerpoint5

PowerPoint демонстрирует то же самое поведение при работе с текстами:

ink_powerpoint6

Дальнейшее чтение