Document Converter

Document Converter

This project provides an example using libreoffice to converting documents.

Конвертер Документов

Проект предоставляет пример использования LibreOffice для конвертирования документов.

Условия использования и участия

Исходный код проекта предоставляется по лицензии, которая позволяет использовать его в сторонних приложениях.

Соглашение участника регламентирует права, предоставляемые участниками компании «Открытая Мобильная Платформа».

Информация об участниках указана в файле AUTHORS.

Кодекс поведения — это действующий набор правил компании «Открытая Мобильная Платформа», который информирует об ожиданиях по взаимодействию между членами сообщества при общении и работе над проектами.

Структура проекта

Проект имеет стандартную структуру приложения на базе C++ и QML для ОС Аврора.

  • Каталог application содержит исходный код приложения:
    • Файл application.pro описывает структуру проекта для системы сборки qmake.
    • Каталог icons содержит иконки приложения для поддерживаемых разрешений экрана.
    • Каталог qml содержит исходный код на QML и ресурсы интерфейса пользователя.
      • Каталог cover содержит реализации обложек приложения.
      • Каталог icons содержит дополнительные иконки интерфейса пользователя.
      • Каталог pages содержит страницы приложения.
        • Файл DocumentConverter.qml предоставляет реализацию окна приложения.
    • Каталог translations содержит файлы перевода интерфейса пользователя.
      • Каталог src содержит исходный код на C++.
        • Файл main.cpp является точкой входа в приложение.
    • Файл ru.auroraos.DocumentConverter.desktop определяет отображение и параметры запуска приложения.
  • Каталог rpm содержит настройки сборки rpm-пакета.
  • Файл ru.auroraos.DocumentConverter.pro описывает проект, который содержит два подпроекта, первый отвечает за сборку libreoffice, второй описывает структуру приложения для системы сборки qmake.
  • Каталог upstream содержит исходный код библиотеки LibreOffice (подмодуль git).
  • Каталог tarballs содержит зависимости в форме архивов, необходимые для сборки библиотеки LibreOffice.
  • Каталог libs содержит зависимости в форме исходного кода, необходимые для сборки библиотеки LibreOffice.

Совместимость

Проект совместим с актуальными версиями ОС Аврора.

Сборка проекта

Чистовая сборка

  1. Убедитесь, что у вас есть 32 ГБ оперативной памяти и SDK с docker (не используйте VB для сборки этого примера).
  2. Откройте терминал или командную строку.
  3. Перейдите в каталог, содержащий ваш Git-репозиторий.
  4. Выполните команду "git lfs pull", чтобы загрузить все файлы, отслеживаемые LFS.
  5. Выполните команду "git submodule update --init", чтобы обновить и инициализировать все подмодули в репозитории.
  6. Выполните команду "mb2 -t AuroraOS-5.0.0.60-base-armv7hl build-init", чтобы инициализировать окружение сборки.
  7. Выполните команду "mb2 -t AuroraOS-5.0.0.60-base-armv7hl prepare", чтобы применить патчи, необходимые для сборки.
  8. Выполните команду "mb2 -t AuroraOS-5.0.0.60-base-armv7hl build", чтобы начать сборку пакета.
  9. Выполните команду для подписи rpm-пакета:
sfdk engine exec rpmsign-external sign  \
    --key absolute/path/to/key/file.pem \
    --cert absolute/path/to/cert/file.pem \
      absolute/path/to/rpm/package.rpm

Целевой rpm-пакет находится в каталоге RPMS.

Решение возможных проблем

Если сборка проекта упала со следующей ошибкой

+ aclocal -I <path/to>/DocumentConverter/upstream/m4
autom4te: error: need GNU m4 1.4 or later: /usr/bin/m4
aclocal: error: echo failed with exit status: 1

то требуется зайти в таргет и установить вручную зависимость m4.

Повторная сборка под другой таргет

Поскольку сборка проходит в той же самой директории, что и основной исходный код, перед сборкой под новый таргет требуется удалить результат предыдущий сборки. Для этого требуется выполнить следующие команды из корня проекта:

  1. rm -fr libs_build
  2. rm -fr upstream/workdir
  3. rm -f application/Makefile
  4. cd libs/liblangtag && make distclean

Снимки экранов

screenshots

Ограничения

LibreOffice в текущей реализации не поддерживает одновременную работу в нескольких потоках. Попытка инициализации объекта Office во время работы другого процесса может привести к задержке инициализации до завершения текущей конвертации или падению приложения.

This document in English

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.