Работа со встроенными объектами
Работа со встроенными объектами для текстовых и табличных документов различается, поэтому описания вставки и перечисления объектов описаны в отдельных разделах:
В данном разделе описаны общие методы работы со встроенными объектами, одинаковые для текстовых и табличных документов.
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.