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

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

Свойства кисти для рисования
Можно использовать кисть для рисования линий, соединяющих точки элементов трассы. Кисть имеет собственный цвет и размер, соответствующие свойствам Brush.Color и Brush.Size.
Установка цвета кисти Ink
Этот PHP‑код показывает, как задать цвет для кисти:
$pres = new Presentation("pres.pptx");
try {
$ink = $pres->getSlides()->get_Item(0)->getShapes()->get_Item(0);
$traces = $ink->getTraces();
$brush = $traces[0]->getBrush();
$brushColor = $brush->getColor();
$brush->setColor(java("java.awt.Color")->RED);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Установка размера кисти Ink
Этот PHP‑код показывает, как задать размер для кисти:
$pres = new Presentation("pres.pptx");
try {
$ink = $pres->getSlides()->get_Item(0)->getShapes()->get_Item(0);
$traces = $ink->getTraces();
$brush = $traces[0]->getBrush();
$brushSize = $brush->getSize();
$brush->setSize(new Java("java.awt.Dimension", 5, 10));
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Обычно ширина и высота кисти не совпадают, поэтому PowerPoint не отображает размер кисти (раздел данных затемнён). Но когда ширина и высота кисти совпадают, PowerPoint отображает её размер так:

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

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

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

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