Можно ли запустить макрос openoffice из внешнего файла? - PullRequest
5 голосов
/ 11 мая 2011

Я хочу запустить макрос OpenOffice из внешнего файла. Как:

vlad@leo ~ $ soffice macro:///home/vlad/q.vbs 

1 Ответ

5 голосов
/ 04 июня 2011

Не совсем ответ - вместо этого просто комментарий, чтобы поднять этот вопрос и, надеюсь, получить ответ :)

Возможно, это связано с необходимостью явно устанавливать разрешения для макросов, например:

Невозможно выполнить макрос из командной строки (Просмотр темы) • Форум сообщества OpenOffice.org

Редактировать: фактически кажется, что невозможно вызватьдокумент макросов, который идеально подходит по соображениям безопасности.

См. Также:

В качестве примечания стандартный файл Module1 можно найти в (в Linux):

~/.openoffice.org/3/user/basic/Standard/Module1.xba
~/.libreoffice/3/user/basic/Standard/Module1.xba

и обратите внимание, что .xba на самом деле является файлом XML, который содержитБазовый источник макросов, например:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Module1" script:language="StarBasic">REM  *****  BASIC  *****

Sub Main

End Sub</script:module>

К сожалению, простое копирование в соответствующие каталоги (ниже, в расширениях) не работает, как в следующем фрагменте командной строки ..

sudo mkdir /usr/lib/libreoffice/share/extensions/mytest
sudo cp ~/.libreoffice/3/user/basic/Standard/Module1.xba /usr/lib/libreoffice/share/extensions/mytest/MyTestModule.xba
sudo sed -i 's/Module1/MyTestModule/g' /usr/lib/libreoffice/share/extensions/mytest/MyTestModule.xba

Так что я думаю, что единственный способ - это вручную добавить / разрешить макросы в OpenOffice, а затем, возможно, найти, где хранятся соответствующие файлы .xba, и изменить там их код (если требуется только использование командной строки) ...

Возможно, с использованием Python - OpenOffice.org Wiki - более открытый подход к внешним сценариям - но для этого нужно запустить openoffice как сервер ...

...