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

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

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

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

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

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

ink_powerpoint1

Следы Inkshape

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

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

ink_powerpoint2

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

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

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

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

Presentation pres = new Presentation("pres.pptx");
try {
    IInk ink = (IInk)pres.getSlides().get_Item(0).getShapes().get_Item(0);
    IInkTrace[] traces = ink.getTraces();
    IInkBrush brush = traces[0].getBrush();
    Color brushColor = brush.getColor();
    brush.setColor(Color.RED);
} finally {
    if (pres != null) pres.dispose();
}

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

Этот код на Java показывает, как установить размер для кисти:

Presentation pres = new Presentation("pres.pptx");
try {
    IInk ink = (IInk)pres.getSlides().get_Item(0).getShapes().get_Item(0);
    IInkTrace[] traces = ink.getTraces();
    IInkBrush brush = traces[0].getBrush();
    Dimension2D brushSize = brush.getSize();
    brush.setSize(new Dimension(5, 10));
} finally {
    if (pres != null) pres.dispose();
}

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

ink_powerpoint3

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

ink_powerpoint4

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

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

ink_powerpoint5

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

ink_powerpoint6

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