Skip to main content

Работа со встроенными объектами

Работа со встроенными объектами для текстовых и табличных документов различается, поэтому описания вставки и перечисления объектов описаны в отдельных разделах:

В данном разделе описаны общие методы работы со встроенными объектами, одинаковые для текстовых и табличных документов.

1. Получение размеров​

Размеры встроенного объекта могут быть получены из объектов InlineFrame или AbsoluteFrame, которые, в свою очередь, могут быть получены посредством использования методов MediaObject.getFrame(), Image.getFrame(), Chart.getFrame(), Shape.getFrame(), TextBox.getFrame() (см раздел Frame).


if (isinstance(frame, myOfficeSDK.InlineFrame)):
dimensions = frame.getDimensions()
print(dimensions.toString())

if (isinstance(frame, myOfficeSDK.AbsoluteFrame)):
dimensions = frame.getDimensions()
print(dimensions.toString)

2. Получение текущей позиции​

С помощью методов InlineFrame.getPosition(), AbsoluteFrame.getTopLeft() можно получить текущую позицию объекта.


if (isinstance(frame, myOfficeSDK.InlineFrame)):
position = frame.getPosition()
print(position.horizontal)

if (isinstance(frame, myOfficeSDK.AbsoluteFrame)):
position = frame.getPosition()
print(position.horizontal)

3. Установка размеров​

С помощью методов InlineFrame.setDimensions(), AbsoluteFrame.setDimensions() можно изменить размеры встроенных объектов


size = SizeU(50.0, 50.0)

if (isinstance(frame, myOfficeSDK.InlineFrame)):
frame.setDimensions(size)

if (isinstance(frame, myOfficeSDK.AbsoluteFrame)):
frame.setDimensions(size)

4. Установка позиции​

Для объекта AbsoluteFrame используется метод AbsoluteFrame.moveTo()


if (isinstance(frame, myOfficeSDK.AbsoluteFrame)):
frame.moveTo(PointU(50, 50))

Для объекта InlineFrame используется метод InlineFrame.setPosition(). Примеры использования с различными параметрами приведены в разделе описании метода.

5. Масштабирование размеров​

Для объекта AbsoluteFrame используется метод AbsoluteFrame.scale()


if (isinstance(frame, myOfficeSDK.AbsoluteFrame)):
frame.scale(100, 100, myOfficeSDK.ScaleFrom_TopLeft)

6. Установка обтекания текстом​

Для InlineFrame вариант обтекания текстом графического объекта TextWrapType может быть задан посредством использованием метода InlineFrame.setWrapType().


if (isinstance(frame, myOfficeSDK.InlineFrame)):
frame.setWrapType(myOfficeSDK.TextWrapType_Inline)

7. Вращение и отражение объектов​

Следующие возможности предусмотрены только для объектов Shape и TextBox.

Для данных объектов могут быть заданы угол вращения и вертикальное / горизонтальное отражение посредством использования методов Shape.setGeometryProperties(), TextBox.setGeometryProperties().


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.