AText

Добавление текста в документ

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

def my_first_macro_atext():
   doc = XSCRIPTCONTEXT.getDocument()
   text = doc.getText()
   text.setString("Hello World in Python in AText")

Функции для работы с текстом

getCurrentController()

Метод интерфейса XModel Предоставляет доступ к контроллеру, который в данный момент управляет этой моделью. Если активный контроллер является контроллером этой модели, он будет возвращен. Если нет, возвращается последний активный контроллер этой модели. Если ни один контроллер этой модели никогда не был активен, возвращается первый зарегистрированный контроллер. Если для этой модели не зарегистрирован контроллер, возвращается NULL.


createTextCursorByRange(TextPosition)


Метод интерфейса XSimpleText Начальная позиция устанавливается в TextPosition. Создает новый экземпляра курсора, расположенного в указанном текстовом диапозоне, для перемещения в данном текстовом контексте


isStartOfWord()


Метод интерфейса XWordCursor Определяет, стоит ли курсор в начале слова.


isEndOfWord()


Метод интерфейса XWordCursor Определяет, стоит ли курсор в конце слова.


gotoStartOfWord()


Метод интерфейса XWordCursor Перемещает курсор в начало текущего слова. Возвращает TRUE, если курсор находится в начале слова, в противном случае FALSE . Если было возвращено FALSE, курсор останется в исходной позиции.


gotoNextWord()


Метод интерфейса XWordCursor Перемещает курсор к следующему слову. Примечание: функция, возвращающая TRUE, не обязательно означает, что курсор находится на следующем слове или вообще на любом слове! Это может произойти, например, если он перемещается по пустым абзацам. Возвращает TRUE, если курсор был перемещен. Возвращает FALSE, если курсор не может двигаться дальше.


gotoEndOfWord()


Метод интерфейса XWordCursor Перемещает курсор в конец текущего слова. Возвращает TRUE, если курсор находится в конце слова, иначе FALSE. Если было возвращено FALSE, курсор останется в исходной позиции.

Создание таблицы

import uno

from com.sun.star.text.ControlCharacter import PARAGRAPH_BREAK
from com.sun.star.text.TextContentAnchorType import AS_CHARACTER
from com.sun.star.awt import Size

def createTable():

   ctx = uno.getComponentContext()
   smgr = ctx.ServiceManager
   desktop = smgr.createInstanceWithContext("com.sun.star.frame.Desktop", ctx)

   doc = desktop.loadComponentFromURL(
       "private:factory/swriter", "_blank", 0, ())
     
   table = doc.createInstance("com.sun.star.text.TextTable")

  • Чтобы задать размеры таблицы, необходимо передать количество строк и колонок в качестве параметров в метод initialize()
table.initialize(row, col)

  • Задаем заголовок таблицы
insertTextIntoCell(table, cell, cell_name, textColor)

  • Добавление значения в ячейку
table.getCellByName(cell).setValue(value)

  • В качестве значения ячеек можно использовать формулы
table.getCellByName(cell).setFormula(formula)

Создание класса для работы с Atext


import uno

class PrintToAText:
   def __init__( self ):
       desktop = XSCRIPTCONTEXT.getDesktop()
       self.oWriterDoc = desktop.loadComponentFromURL( "private:factory/swriter", 0, 0, () )
       self.oWriterText = self.oWriterDoc.getText()
       self.oWriterCursor = self.oWriterText.createTextCursor()