Работа со встроенными объектами
Работа со встроенными объектами для текстовых и табличных документов различается, поэтому описания вставки и перечисления объектов описаны в отдельных разделах:
В данном разделе описаны общие методы работы со встроенными объектами, одинаковые для текстовых и табличных документов.
1. Получение размеров
Размеры встроенного объекта могут быть получены из объектов InlineFrame или AbsoluteFrame, которые, в свою очередь, могут быть получены посредством использования методов MediaObject.getFrame(), Image.getFrame(), Chart.getFrame(), Shape.getFrame(), TextBox.getFrame() (см раздел Frame).
Console.WriteLine(frame->getDimensions().height);
2. Получение текущей позиции
С помощью методов InlineFrame.getPosition(), AbsoluteFrame.getTopLeft() можно получить текущую позицию объекта.
Console.WriteLine(frame.getPosition().horizontal);
3. Установка размеров
С помощью методов InlineFrame.setDimensions(), AbsoluteFrame.setDimensions() можно изменить размеры встроенных объектов
SizeU size = SizeU(50.0, 50.0);
frame.setDimensions(size);
4. Установка позиции
Для объекта AbsoluteFrame используется метод AbsoluteFrame.moveTo()
if (AbsoluteFrame* absoluteFrame = boost::variant2::get_if<AbsoluteFrame>(&frame))
{
PointU position = new PointU(50, 50);
absoluteFrame.moveTo(position);
}
Для объекта InlineFrame используется метод InlineFrame.setPosition(). Примеры использования с различными параметрами приведены в разделе описании метода.
5. Масштабирование размеров
Для объекта AbsoluteFrame используется метод AbsoluteFrame.scale()
absoluteFrame.scale(100, 100, ScaleFrom.TopLeft);
6. Установка обтекания текстом
Для InlineFrame вариант обтекания текстом графического объекта TextWrapType может быть задан посредством использованием метода InlineFrame.setWrapType().
inlineFrame->setWrapType(TextWrapType.Inline);
7. Вращение и отражение объектов
Следующие возможности предусмотрены только для объектов Shape и TextBox.
Для данных объектов могут быть заданы угол вращения и вертикальное / горизонтальное отражение посредством использования методов Shape.setGeometryProperties(), TextBox.setGeometryProperties().
GeometryProperties geometryProperties = shape.getGeometryProperties();
geometryProperties.rotation = 45.0;
geometryProperties.horizontalFlip = true;
geometryProperties.verticalFlip = false;
shape.setGeometryProperties(geometryProperties);
geometryProperties = textBox.getGeometryProperties();
geometryProperties.rotation = 45.0;
geometryProperties.horizontalFlip = true;
geometryProperties.verticalFlip = false;
textBox.setGeometryProperties(geometryProperties);
Метод Image.getGeometryProperties вернет геометрические свойства изображения.
Метод Image.setGeometryProperties в данный момент не реализован и вызовет исключение NotImplementedError.