Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

1 Ноябрь 2020, 03:56 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Часто задаваемые вопросы по LibreOffice и Apache OpenOffice.org
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Как написать расширение для LibreOffice  (Прочитано 2196 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Борис_С
Форумчанин
***
Offline Offline

Сообщений: 113


« Стартовое сообщение: 22 Июль 2020, 17:59 »

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

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 2 043


« Ответ #1: 22 Июль 2020, 18:01 »

Посмотрите Examples и Additional Examples здесь. Расширение можно сделать в том числе и на C++.
Записан

С уважением,
Михаил Каганский
Борис_С
Форумчанин
***
Offline Offline

Сообщений: 113


« Ответ #2: 22 Июль 2020, 18:09 »

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

Сообщений: 113


« Ответ #3: 22 Июль 2020, 18:27 »

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

Сообщений: 3 059



« Ответ #4: 22 Июль 2020, 18:35 »

но мне нужен Visual С++
поддерживаются C++, Python, JS и BeanShell для написания макросов, из которых потом делают расширения
Записан

Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут
kompilainenn
Мастер
*****
Offline Offline

Сообщений: 3 059



« Ответ #5: 22 Июль 2020, 18:36 »

Может быть кто-нибудь знает, где сидят расширения?
на extensions.libreoffice.org - качаете любое, распаковываете его (это просто архив с расширением OXT) и смотрите структуру
Записан

Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут
mikekaganski
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 2 043


« Ответ #6: 22 Июль 2020, 18:42 »

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

Нажав на неё и затем на 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
Форумчанин
***
Offline Offline

Сообщений: 1 298


« Ответ #7: 23 Июль 2020, 07:59 »

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

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

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
Борис_С
Форумчанин
***
Offline Offline

Сообщений: 113


« Ответ #8: 23 Июль 2020, 12:37 »

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

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

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

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

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 2 043


« Ответ #9: 23 Июль 2020, 12:43 »

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

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

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

@Kompilainenn знает это...
Записан

С уважением,
Михаил Каганский
Борис_С
Форумчанин
***
Offline Offline

Сообщений: 113


« Ответ #10: 23 Июль 2020, 12:55 »

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

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 2 043


« Ответ #11: 23 Июль 2020, 12:58 »

https://wiki.openoffice.org/wiki/Extensions_Packager
https://wiki.openoffice.org/wiki/Documentation/DevGuide/Extensions/File_Format
« Последнее редактирование: 23 Июль 2020, 13:00 от mikekaganski » Записан

С уважением,
Михаил Каганский
Борис_С
Форумчанин
***
Offline Offline

Сообщений: 113


« Ответ #12: 23 Июль 2020, 13:12 »

Большое спасибо. Буду разбираться.
Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!