LibreOffice Writer Элементы управления

Автор Ципихович Эндрю, 16 апреля 2026, 06:34

0 Пользователи и 1 гость просматривают эту тему.

Ципихович Эндрю

разобрался...
2
у меня ОС ВИН 11, расширение oxt для LO Writer создано, установлено и имеет структуру:
в файле Events.xcu текст
<?xml version="1.0" encoding="windows-1251"?>
<oor:component-data oor:name="Events" oor:package="org.openoffice.Office" xmlns:oor="http://openoffice.org/2001/registry">
    <node oor:name="Events">
        <node oor:name="DocumentEvent">
            <node oor:name="OnDocumentOpened" oor:op="fuse">
                <prop oor:name="Script" oor:type="xs:string">
                    <value>vnd.sun.star.script:python/main.py$show?language=Python&amp;location=application</value>
                </prop>
            </node>
        </node>
    </node>
</oor:component-data>
в файле description.xml
<?xml version="1.0" encoding="windows-1251"?>
<description xmlns="http://openoffice.org/extensions/description/2006">
    <identifier value="com.autostart"/>
    <version value="1.0"/>
    <display-name>
        <name lang="ru">AutoStart</name>
    </display-name>
</description>
в файле META-INF\manifest.xml текст
<?xml version="1.0" encoding="windows-1251"?>
<manifest:manifest xmlns:manifest="http://openoffice.org/2001/manifest">
    <manifest:file-entry manifest:full-path="description.xml" manifest:media-type="application/vnd.sun.star.configuration-data"/>
    <manifest:file-entry manifest:full-path="python/main.py" manifest:media-type="application/vnd.sun.star.python-script"/>
</manifest:manifest>
в файле python\main.py текст
# -*- coding: utf-8 -*-
import uno
from com.sun.star.awt import MessageBoxButtons

def show(*args):
    ctx = uno.getComponentContext()
    smgr = ctx.ServiceManager
    toolkit = smgr.createInstanceWithContext("com.sun.star.awt.Toolkit", ctx)
    desktop = smgr.createInstanceWithContext("com.sun.star.frame.Desktop", ctx)
    frame = desktop.getCurrentFrame()
    window = frame.getContainerWindow()
    msg = toolkit.createMessageBox(window, MessageBoxButtons.BUTTONS_OK, 0, "OK", "Extension works!")
    msg.execute()

g_exportedScripts = (show,)
то есть всё по минимуму, расширение ставится, удаляется
я по задумке при открытии документа LO Writer должен увидеть сообщение, прописанное в коде-Extension works!, но этого не происходит, ЧЯДНТ? спасибо

Ципихович Эндрю

скажите, а практика:
расширение после установки в LibreOffice Writer в менеджере расширений должно автоматически запускаться при открытии любого документа Writer без ручной настройки со стороны пользователя
вообще реальна? если да, не подскажите в каком расширении так сделано?

Ципихович Эндрю

Цитата: Ципихович Эндрю от  3 мая 2026, 21:49скажите, а практика:
расширение после установки в LibreOffice Writer в менеджере расширений должно автоматически запускаться при открытии любого документа Writer без ручной настройки со стороны пользователя
вообще реальна? если да, не подскажите в каком расширении так сделано?
ну допустим, ответ ДА, AltSearch, потому как при открытии любого документа врайтер в документе появляется панель Альтернативный поиск - до тех пока юзер не примет какое-то решение
я правильно понимаю, что после того как юзер зайдёт Сервис-Настройка-События-Открытие файла-там должен быть указан макрос, но его там нет, значит какой в этом расширении механизм, который обеспечивает чтобы при открытии любого документа врайтер в документе что-то появлялось?