Управление объектами чернил в презентации .NET
PowerPoint предоставляет функцию чернил, позволяющую рисовать нестандартные фигуры, которые можно использовать для выделения других объектов, отображения связей и процессов, а также привлечения внимания к конкретным элементам на слайде.
Aspose.Slides предоставляет интерфейс Aspose.Slides.Ink, который содержит типы, необходимые для создания и управления объектами чернил.
Различия между обычными объектами и объектами чернил
Объекты на слайде PowerPoint обычно представлены объектами shape. Объект shape в своей простой форме представляет собой контейнер, определяющий область самого объекта (его рамку) вместе с его свойствами. К последним относятся размер контейнера, форма контейнера, фон контейнера и т.д. Для получения дополнительной информации см. Shape Layout Format.
Однако когда PowerPoint работает с объектом чернил, он игнорирует все свойства рамки объекта (контейнера), кроме его размера. Размер области контейнера определяется стандартными значениями width и height:

Трассы Inkshape
Отметка (trace) — базовый элемент или стандарт, используемый для записи траектории пера, когда пользователь пишет цифровыми чернилами. Отметки представляют собой записи, описывающие последовательности соединённых точек.
Самая простая форма кодирования указывает координаты X и Y каждой отсчётной точки. Когда все соединённые точки отрисовываются, они образуют изображение, подобное этому:

Свойства кисти для рисования
Вы можете использовать кисть для рисования линий, соединяющих точки элементов отметки. Кисть имеет собственный цвет и размер, соответствующие свойствам Brush.Color и Brush.Size.
Установить цвет кисти Ink
Этот код 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;
}
Установить размер кисти Ink
Этот код 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 показывает её размер так:

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

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

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

Дополнительные материалы
- Чтобы узнать о фигурах в целом, см. раздел PowerPoint Shapes.
- Для получения дополнительной информации о эффективных значениях см. Shape Effective Properties.