- Создан скрипт Python с библиотекой ScriptForge
- Различия между Basic и Python
- Запустите скрипт Python в LibreOffice
- Скрипт, работающий в процессе LibreOffice
- При содействии APSO
- Создан файл со скриптами Python
- Запускать скрипт отдельно от процесса LibreOffice
- Указанная папка установки
- Запуск LibreOffice с настройками сокета
- Запустить внешнюю оболочку Python
Создан скрипт Python с библиотекой ScriptForge
Различия между Basic и Python
Библиотека Scriptforge доступна для языков Basic и Python. Большинство сервисов, методов и свойств работают одинаково на обоих языках программирования. Однако из-за различий между ними пользователь, использующий ScriptForge в Python, должен знать о некоторых характеристиках этой библиотеки:
Имена методов и свойств: в Python имена методов и свойств могут быть отформатированы строчными буквами (нижний регистр), заглавными буквами в начале слов (ProperCased) или первой буквой в нижнем регистре, а остальными в верхнем регистре. (в верблюжьем корпусе).
Аргументы: все имена аргументов, передаваемые методам, пишутся в нижнем регистре.
Данные: все объекты даты представлены и возвращаются как нативные объекты Python типа datetime.datetime .
Массивы: одномерные массивы преобразуются и возвращаются в виде кортежа (который является неизменяемым объектом). Двумерные массивы передаются и возвращаются как кортежи кортежей.
None: ключевое слово Python None возвращает Null , Empty или Nothing в Basic.
Объекты UNO: все структуры UNO передаются между Basic и Python без каких-либо изменений.
Исправлено: если в скрипте Python возникает ошибка с использованием библиотеки ScriptForge, сообщение об ошибке, предоставленное Python, содержит строку кода, вызвавшую ошибку. Эта информация не включается в основные сообщения об ошибках.
Дополнительную информацию о сценариях Python в LibreOffice см. в справке по сценариям Python в LibreOffice.
Запустите скрипт Python в LibreOffice
В зависимости от того, чего вы хотите достичь, вы можете выбрать один из следующих шагов для расчетаСкрипты Python в LibreOffice:
Запуск скриптов в рамках текущего процесса LibreOffice: скрипты Python запускаются в рамках процесса LibreOffice, выбирая в меню Инструменты — Макросы — Запустить макрос или распределенную справку APSO, которая называется пользовательскими скриптами, хранящимися в папке se Python scripts. Вы также можете использовать оболочку APSO Python для интерактивных сценариев Python.
Запуск скриптов отдельно от процесса LibreOffice: скрипты Python запускаются из внешнего процесса, который подключается к текущему процессу LibreOffice через сокет.
Если вы планируете запускать скрипты в процессе LibreOffice, рекомендуется установить APSO (Альтернативный органайзер скриптов для Python). Для разработки сценариев Python вне LibreOffice вы можете выбрать предпочитаемую интегрированную среду разработки (IDE).
Скрипт, работающий в процессе LibreOffice
При содействии APSO
Самый простой способ начать работу со сценариями Python в LibreOffice — установить дистрибутив APSO. После установки откройте любое приложение LibreOffice и выберите «Инструменты» — «Макросы» — «Упорядочить скрипты Python».
В главном окне APSO выберите Меню — Оболочка Python.
Вы также можете открыть APSO с помощью сочетания клавиш Alt+Shift+F11.
Затем вы можете начать писать команды Python, после выполнения каждой строки кода соответствующий вывод будет напечатан в оболочке.
Чтобы начать использовать библиотеку ScriptForge, необходимо импортировать метод CreateScriptService, чтобы вы могли получить доступ к службам, предоставляемым этой библиотекой. В приведенном ниже примере служба Basic используется для отображения диалогового окна.
Запустите приведенный выше пример, чтобы постепенно послеВведите строки в оболочку Python один раз и нажимайте Enter после каждой строки.
Вы можете запускать команды Python с помощью любого сервиса ScriptForge. Например, следующий фрагмент кода создаст пустое окно Writer с помощью службы пользовательского интерфейса.
Создан файл со скриптами Python
Вы можете создавать и редактировать собственные сценарии Python в своем любимом текстовом редакторе. Вызовите их позже из любого приложения LibreOffice.
Первый шаг — выяснить, где хранятся пользовательские сценарии. Это описано на странице макета и размещения скрипта Python.
Затем вы можете создать текстовый файл, например sf_test.py, в пользовательской папке скриптов Python и начать писать скрипт.
Ниже приведен простой пример, в котором числовое значение получается из ячейки калькулятора и увеличивается на 1. Скопируйте следующий код в файл sf_test.py.
В примере создана функция increment_cell. Переменная g_exportedScripts — это кортеж, указывающий, какие функции будут отображаться как пользовательские сценарии в LibreOffice.
Чтобы запустить этот скрипт в документе Calcu:
Создайте или откройте файл Calcu.
Введите любое числовое значение в ячейку «A1» на текущем листе.
Выберите Инструменты – Макросы – Запустить макрос.
В выборе библиотеки выберите Мои макросы — sf_test. Затем выберите функцию increment_cell .
из списка имен макросов.
Нажмите «Пуск». Значение в ячейке «A1» увеличилось на 1.
Вы также можете использовать APSO для запуска скриптов Python:
Сначала откройте APSO, выбрав Инструменты — Макросы — Организовать скрипты Python.
В списке макросов перейдите в Мои макросы — sf_test — increment_cell .
Нажмите «Выполнить» .
Запускать скрипт отдельно от процесса LibreOffice
Указанная папка установки
Первым шагом для запуска скрипта из отдельного процесса является поиск папки, в которой установлен LibreOffice. Есть несколько способов сделать это, но ScriptForge предлагает быстрый способ определить путь установки. После этого элемента откройте оболочку APSO Python и введите:
Вывод приведенного выше кода — это базовый адрес™, на котором установлен LibreOffice. К полученному пути нужно добавить подпапку «program», чтобы получить базовую папку, из которой вы будете запускать скрипты Python в отдельном процессе.
В результате приведенного выше кода Python вы получили, например, путь /usr/lib/libreoffice/ . Тогда путь для скрипта Python будет /usr/lib/libreoffice/program .
Запуск LibreOffice с настройками сокета
Чтобы запускать сценарии Python из отдельного процесса, необходимо запустить LibreOffice с несколькими дополнительными параметрами, указывающими имя хоста и порт, которые внешний процесс будет использовать для связи с процессом приложения LibreOffice.
Откройте командную строку операционной системы, перейдите в папку «program» в каталоге установки LibreOffice и введите:
Эта команда запускает LibreOffice с открытым каналом связи, по которому другие процессы могут обмениваться с ним сообщениями.
Эта команда откроет главный экран LibreOffice. Чтобы открыть конкретное приложение, например Writer, добавьте в команду ключ —writer.
./soffice —writer —accept=’socket,host=localhost,port=2021;urp;’
Обратите внимание на параметры хоста и порта, которые они имеют в этомНапример, значения localhost и 2021 .
Запустить внешнюю оболочку Python
Запустите оболочку Python из папки программы по пути установки LibreOffice. Узнайте путь установки в соответствии с процедурой, описанной выше.
В Linux/MacOS:
В Windows:
$ cd C:\Program Files\LibreOffice\program\
Откроется оболочка Python, в которой вы можете ввести команды, которые будут выполняться в LibreOffice. Однако сначала необходимо настроить подключение к сокету.
Во второй строке приведенного выше кода хост и порт задаются таким образом, чтобы оболочка Python могла обмениваться данными с работающим процессом LibreOffice, который был открыт с тем же набором сокетов.
Затем вы сможете запускать больше команд Python, они смогут взаимодействовать с процессом LibreOffice. Например: