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

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

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

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

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

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

ink_powerpoint1

Трассы Inkshape

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

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

ink_powerpoint2

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

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

Установить цвет кисти Ink

Этот код на 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();
}

Установить размер кисти Ink

Этот код на 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

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

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