LibreOffice, как восстановить текущий элемент

Я хочу получить текущий элемент в LibreOffice Impress, чтобы применить к нему изменения.

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

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

1 ответ

Решение

Чтобы получить текущую выбранную форму:

oSel = ThisComponent.getCurrentController.getSelection()
oShape = oSel.getByIndex(0)
Print oShape.getString()

Чтобы перебрать все фигуры на слайде, начните с ThisComponent.getDrawPages()а затем используйте XrayTool.

Вам также может быть полезен следующий фрагмент кода Python:

def iterate_draw_shapes():
    oDrawPage = oDrawPages.getByIndex(1)
    for oShape in oDrawPage:
        if oShape.supportsService("com.sun.star.drawing.TextShape"):
            oTexts = oShape.createEnumeration()
            while oTexts.hasMoreElements():
                oText = oTexts.nextElement()
                oTextPortions = oText.createEnumeration()
                while oTextPortions.hasMoreElements():
                    oTextPortion = oTextPortions.nextElement()
Другие вопросы по тегам