Макрос LibreOffice - доступ к тексту сноски

276
Paul B.

У меня есть макрос в LibreOffice Writer, который изменяет регистр слова, в котором находится курсор. Он отлично работает, за исключением случаев, когда курсор находится в сноске, где он выходит из строя. Частичный код:

Document = ThisComponent.CurrentController.Frame dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")   oVC = ThisComponent.CurrentController.getViewCursor oTC = ThisComponent.Text.createTextCursorByRange(oVC) ' <-the footnote error ctext = oTC.string ' get selected text 

Рядом с последней строкой, определяющей oTC, происходит ошибка. Очевидно, спецификация .Text в этой строке не включает сноски, что я и собираю, читая книгу Эндрю OOME. Но я не смог понять, как обобщить макрос, чтобы он работал как в основном документе, так и в сносках. Любая помощь будет оценена.

1

1 ответ на вопрос

2
Jim K
oTC = oVC.getText().createTextCursorByRange(oVC) 

РЕДАКТИРОВАТЬ :

Как это работает? Он получает объект Text из oVC. В вашем случае это отличается от того, что дано ThisComponent, потому что курсор просмотра находится в области сноски, а не в основном теле.

Клетки также имеют свои собственные объекты Text, которые отличаются от основного тела. oVC.getText()работает, когда находится в клетках, а также.

Свойство ThisComponent.Textи метод ThisComponent.getText()делают одно и то же.

Абсолютно идеально. Я видел, что Эндрю написал, чтобы использовать getText вместо Text для других текстовых потоков, но не мог понять, как это реализовать. Мои сноски спасибо, и я благодарю вас большое! Paul B. 6 лет назад 0

Похожие вопросы