Git Product home page Git Product logo

1c_libreoffice_sample's Introduction

ОБЩИЕ СВЕДЕНИЯ

Репозиторий содержит исходные файлы для сборки шаблона внешней компоненты для "1С:Предприятие" под Linux, взаимодействующей с LibreOffice API. Внешняя компонента открывает LibreOffice Writer и записывает в новый файл строку "Hello, LibreOffice!!"

Компонента состоит из 2-х частей: 1). Статическая библиотека libhello.a экспортирует функцию hello() которая выполняет действия с LibreOffice 2). Динамическая библиотека libSampleAddIn.so, реализующая внешнюю компоненту 1С. Библиотека, в числе прочих, экспортирует метод Привет(), который вызывает функцию hello() библиотеки libhello.a.

Дополнительно, при компиляции библиотеки libhello.a компилируется исполняемый файл "libhello_test", который позволяет проверить библиотеку libhello_a из строки терминала. В каталоге epf репозитория содержится обработка для проверки компоненты libSampleAddIn.so: она подключает внешнюю компоненту и вызывает функцию Привет().

При разработке внешней компоненты за основу был взят нестандартный шаблон. Ссылка на исходный шаблон: https://github.com/Infactum/addin-template

LibreOffice Developer Guide: https://wiki.documentfoundation.org/Documentation/DevGuide

СБОРКА ВНЕШНЕЙ КОМПОНЕНТЫ

  1. Импорт проекта из github Если не установлен git, нужно его установить Например: sudo apt install git

Клонировать репозиторий проекта. Например, в домашний каталог, подкаталог liboffice_sample, можно выполнив в терминале команду: git clone https://github.com/Dajigin/1c_libreoffice_sample.git ~/liboffice_sample

  1. Установка инструментов:

2.1 Для сборки и тестирования нужны: набор компиляторов gcc, компилятор g++, пакет uuid-dev, утилиты сборки make и cmake, Libre Office SDK.

Примечание: для AstraLinux: необходимо раскомментировать репозиторий repository-base в файле:
sudo nano /etc/apt/sources.list
после чего выполнить:
sudo apt update

Для установки на deb-based системах  можно запустить файл install_tools_deb.sh из склонированного репозитория, который установит инструменты.		

2-2 Добавление символических ссылок на библиотеки в каталоге /usr/lib или /usr/lib64 После установки основных компонент необходимо выяснить, куда установлен LibreOffice (например, используя команду терминала whereis loffice). Она вернет несколько расположений (в т.ч. символические ссылки). Как правило, он расположен в одном из подкаталогов /usr/lib, /usr/lib64 или /opt/ Необходимо изменить путь к LibreOffice SDK (переменная OFFICE_SDK) в одном из файлов loffice_libs_xx.sh, где xx - разрядность вашей системы, после чего запустить его на выполнение с правами sudo.

В результате в каталоге библиотек (/usr/lib или /usr/lib64) будут созданы символические ссылки на бииблиотеки LibreOffice, используемые компонентой.
  1. Сборка

3.1 В первую очередь собирается статическая библиотека libhello.a

Откройте терминал, перейдите в каталог /libhello репозитория.
В Makefile в переменной PRJ измените путь к LibreOffice SDK на свой.
Из терминала запустите файл инициализации окружения LibreOffice SDK (Находится в каталоге SDK. Например, у меня здесь: /usr/lib64/libreoffice/sdk/setsdkenv_unix). У вас может быть другой путь.
!! Сборку необходимо выполнять  в той же сессии терминала, в которой инициализировался SDK
Выполните в терминале в каталоге /libhello команду "make clean", затем - "make"
Результат компиляции помещается в каталог /libhello/bin/
Проверить библиотеку можно запустив на исполнение libhello_test из этого каталога. Должно открыться окно Writer и вывестись приветственное сообщение.

3.2 Затем собирается динамическая библиотека внешней компоненты Перейдите в каталог libhello_extcomp Выполните скрипт build.sh Будет выполнена компиляция библиотеки libSampleAddIn.so в каталог tmp (каталог будет создан при отсутствии). Для проверки работоспособности внешней компоненты можно открыть в 1С обработку /epf/ПриветЛибреОфис.epf, указав в поле обработки библиотеку libSampleAddIn.so

1c_libreoffice_sample's People

Contributors

dajigin avatar

Watchers

 avatar

Forkers

webstorage119

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.