Как написать расширение для LibreOffice

Автор Борис_С, 22 июля 2020, 17:59

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

Борис_С

Всем доброго дня!
Мне нужно написать расширение для LibreOffice.
Хотелось бы использовать для этого Visual C++.
Можно ли это сделать или нужно использовать другой язык программирования.
Буду очень признателен за ссылки.
Спасибо.

mikekaganski

Посмотрите Examples и Additional Examples здесь. Расширение можно сделать в том числе и на C++.
С уважением,
Михаил Каганский

Борис_С

Я взял пример DocumentLoader из папки c:\Program Files\LibreOffice\sdk\examples\cpp\DocumentLoader
Выяснилось, что это не расширение, а просто приложение, которое загружает документ в LO.
Может быть кто-нибудь знает, где сидят расширения?

Борис_С

Есть такая страничка http://rus-linux.net/MyLDP/algol/libreoffice_addon.html
Там описано, как создать расширение для LO.
Разработка ведется на Python.
Все это очень хорошо, но мне нужен Visual С++

kompilainenn

Цитата: Борис_С от 22 июля 2020, 18:27но мне нужен Visual С++
поддерживаются C++, Python, JS и BeanShell для написания макросов, из которых потом делают расширения
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

kompilainenn

Цитата: Борис_С от 22 июля 2020, 18:09Может быть кто-нибудь знает, где сидят расширения?
на extensions.libreoffice.org - качаете любое, распаковываете его (это просто архив с расширением OXT) и смотрите структуру
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

mikekaganski

Скажите, Вы смотрели ссылку?

Нажав на неё и затем на Examples, потом на C++ examples, можно увидеть, во-первых, перечень примеров - с одним из них, описанным как

Цитироватьcomplextoolbarcontrols   This example shows how to create a toolbar add-on

... и во-вторых, ссылки на дополнительные ресурсы. Первая из них - "How to write a UNO component in C++" - ведёт на сайт с описанием создания компонента C++ внутри общего описания создания UNO-компонентов для расширений.
С уважением,
Михаил Каганский

economist

Еще можно написать макрос на LO Basic (больше примеров и источников сведений, чем по С++ в LO, встроенная IDE с отладчиком и возможность привлечь VBA/VBS/VB-шников). Модуль с ним можно безо всяких хитростей сохранить как *.oxt расширение, которое легко установить другим людям (с парольной защитой, кстати, "ломалок" для которой я не не находил, в отличие от VBA).

В локальной сети предприятия, впрочем, проще сделать библиотеку на сетевых ссылках на ReadOnly-файлы макросов, тогда их можно программисту, имеющему полные права на правку файлов - исправлять "налету", пользователям для обновления достаточно перезапустить OpenOffice|LibreOffice. Такой же фокус прокатывает и с MS Excel и его xla/xlam - библиотекой, а вот *.oxt так править удаленно - низзя.  
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

Борис_С

Цитата: economist от 23 июля 2020, 07:59Скажите, Вы смотрели ссылку?

Нажав на неё и затем на Examples, потом на C++ examples, можно увидеть, во-первых, перечень примеров - с одним из них, описанным как

Цитата:
complextoolbarcontrols   This example shows how to create a toolbar add-on

Если я правильно понимаю, добавление записывается в файл архива. В этом примере указан Makefile.
Зачем он нужен. Мне ведь не нужно создавать исполняемый файл.
Из этого примера непонятно, как формировать файл архива.

mikekaganski

Цитата: Борис_С от 23 июля 2020, 12:37
Если я правильно понимаю, добавление записывается в файл архива. В этом примере указан Makefile.
Зачем он нужен. Мне ведь не нужно создавать исполняемый файл.

Это как? Вы собираетесь писать что-то на C++, и при этом не собираетесь компилировать бинарник? Возможно, Вы полагаете, что ЛО умеет интерпретировать код на C++? но это не так. Код C++ надо собрать (в бинарную динамическую библиотеку, платформо-зависимую, между прочим - это одно из больших преимуществ расширений на питоне или бейсике).

Цитировать
Из этого примера непонятно, как формировать файл архива.

@Kompilainenn знает это...
С уважением,
Михаил Каганский

Борис_С

Спасибо. Понял. А где можно прочитать про структуру архива?

mikekaganski

С уважением,
Михаил Каганский

Борис_С

Большое спасибо. Буду разбираться.