LibreOffice, как восстановить текущий элемент - PullRequest
1 голос
/ 26 января 2020

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

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

image of rectangle with text

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

1 Ответ

0 голосов
/ 27 января 2020

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

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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...