LibreOffice (форматы Office)¶
Конвейер перевода Office выбирает лучший доступный бэкенд в этом порядке:
- win32com (Windows + установленный MS Office) — наивысшая точность
- LibreOffice UNO (кроссплатформенный) — запасной, когда win32com нет
- python-docx / openpyxl / python-pptx (только современные форматы) — чистый Python запасной, когда ни одного из вышеуказанных нет
LibreOffice — единственный путь для устаревших .doc / .xls /
.ppt на Linux и macOS, и рекомендуемый путь на этих платформах
также для современных форматов Office (лучшая точность, чем у
чисто-Python бэкенда, особенно для таблиц и встроенных объектов).
Установка¶
Или скачай с https://www.libreoffice.org/download/download/.
Desktop-приложение на Windows обычно использует win32com с установленным MS Office — LibreOffice — запасной вариант, если MS Office отсутствует. Установи с https://www.libreoffice.org/download/download/.
Проверка¶
Если получаешь "command not found" на macOS, бинарник находится в
/Applications/LibreOffice.app/Contents/MacOS/soffice. Приложение
автоматически обнаруживает его по распространённым путям установки,
но ты можешь переопределить в Настройки → Общие → Путь
LibreOffice при необходимости.
Что он обеспечивает¶
Когда LibreOffice — активный бэкенд:
| Функция | Заметка |
|---|---|
Современный Office (.docx, .xlsx, .pptx) |
Используется как запасной, когда win32com недоступен |
Устаревший Office (.doc, .xls, .ppt) |
Требуется — чистый Python не может их прочитать |
ODF (.odt, .ods, .odp) |
Используется для round-trip конвертации, когда Авто-конвертация ODF включена |
| Авто-конвертация устаревшего / ODF → OOXML | Требуется |
Фоновый процесс¶
В первый раз, когда LibreOffice нужен, приложение запускает процесс
soffice в headless-режиме и поддерживает его живым между
переводами (office_lifecycle.py). Он автоматически выключается
при выходе из приложения.
Оговорки¶
Время запуска при первом запуске
Первый перевод, который попадает на LibreOffice, ждёт ~5-10
секунд для запуска soffice. Последующие переводы повторно
используют тот же процесс и быстры.
Логи краша JVM
Java-компонент LibreOffice иногда производит файлы
hs_err_pid*.log, когда сегфолтит. Приложение направляет их в
временный каталог, чтобы они не загрязняли папку твоего проекта.
Авто-конвертация устаревшего / ODF
Включи Настройки → Перевод → Авто-конвертация устаревшего,
если регулярно переводишь .doc / .xls / .ppt. Конвейер
сначала конвертирует их в .docx / .xlsx / .pptx (через
convert_to_modern_format), переводит современную копию, затем
конвертирует обратно. Точность намного выше, чем при прямом
переводе устаревшего формата.