Возможности программирования LibreOffice/OpenOffice для создания программ …
5
терфейс ОП Офис, в том числе редактирование документов, управле-
ние окнами, перехват событий и отмена выполнения стандартных
команд [9].
Макросы управляют работой ОП Офис через объектную модель
по технологии UNO. Технология UNO определяет объектно-
ориентированный интерфейс для программно-управляемого доступа
к ОП Офис. Все элементы, компоненты и документы ОП Офис (ре-
дактируемые документы и их части, окна и панели редактирования,
модули ядра и подключенные библиотеки) доступны для управления
и представлены набором связанных объектов, имеющих методы и
свойства [10].
Для обращения к любому объекту ОП Офис необходимо создать
соответствующий сервис. Сервисы создаются через вызов специаль-
ной функции, которая в качестве входного параметра принимает
название сервиса и возвращает указатель на созданный объект серви-
са. Через последующий вызов методов сервиса можно загружать объ-
екты компонентов ОП Офис и далее обращаться к их методам и
свойствам, в том числе являющихся вложенными объектами. Приме-
рами объектов ОП Офис могут служить:
объект главного окна, являющийся объектом верхнего уровня и
управляющий загрузкой документов и отображением окон;
объекты загружаемых документов, позволяющие сохранять,
экспортировать и печатать документы;
объекты соединения с БД и объекты текстовых символов, абза-
цев и ячеек электронных таблиц [11].
Некоторые объекты доступны без явной загрузки сервисов,
например, объекты главного окна и текущего документа, являющиеся
глобальными переменными. Некоторые сервисы могут быть загру-
жены неявно, если они являются зависимыми, и доступны через се-
тевые объекты, предоставляющие сервисы более высоких уровней.
Базовые понятия в технологии UNO – интерфейс, сервис и модуль.
Интерфейс определяет набор доступных методов и их сигнатуры.
Именно эти методы вызываются из макросов. Каждый сервис реализу-
ет один или более интерфейсов и содержит свойства, используемые
при обращении к сервису: структуры, исключения, константы и пере-
числения. Сервисы иерархически объединены в модули, вложенные
друг в друга в соответствии с иерархией. Вершиной иерархии является
центральный модуль, в который вложены все прочие модули. Струк-
тура иерархии задается правилами именования сервисов, сходные с
правилами именования иерархии пакетов в языке Java, например,
«сервис_главный.сервис2уровня.сервис3уровня.сервис4уровня» [12].
При работе с объектами ОП Офис можно перейти от объектов
верхнего уровня иерархии к вложенным объектам, используя интер-
фейсы первых. Так, для конкретного документа можно работать с