Управление объектами чернил в презентации .NET

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

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

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

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

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

ink_powerpoint1

Трассы Inkshape

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

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

ink_powerpoint2

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

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

ink_powerpoint3

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

ink_powerpoint4

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

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

ink_powerpoint5

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

ink_powerpoint6

Дополнительные материалы

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