Конвертирование из командной строки с помощью Libre/OpenOffice


FrBrGeorge аватар

FrBrGeorge - Posted on 29 Июль 2014

Утилита unoconv «правильно» (со всеми нужными параметрами) запускает Libre/OpenOffce из командной строки для конвертации файлов из любого поддерживаемого формата в любой.

Давно известно, что LibreOffice и OpenOffice.org можно использовать для преобразования форматов файлов. Для этого их надо запускать в «безголовом» (--headless) режиме и передавать кучу параметров/команд. С другой стороны, то же самое можно сделать, например, на Python с помощью UNO-интерфейса. В этом случае офис запускается в режиме «сервера», а программа передаёт ему UNO-команды.

Этим занимается утилита unoconv из одноимённого пакета. Пользоваться unoconv просто:

$ unoconv -f odt filename.rtf

Эта команда сгененрирует файл filename.odt.

По умолчанию (без -f тип) конвертация идёт в PDF. Параметр --show покажет список поддерживаемых форматов.

Не для новичков:
Апстрим проекта на сегодня устарел (исходно программа написана на python2, а LO/OOo испльзует python3); если в вашем репозитории этой программы нет, можно, например, разрахивировать пакет из Fedora (нужен единственный файл unoconv) или воспользоваться патчами из федорного пакета на файл из апстрима.

0
Ваша оценка: Ничего

кстати, unoconv довольно глючная софтина

можно обойтись и без утилиты, напрямую обращаясь к либре

HOME=/tmp LANG=ru_UA.UTF-8 /usr/bin/libreoffice --headless --invisible -convert-to pdf -outdir /path/to/outdir /path/to/docs/*.odt

смысл указания HOME - он временные файлы в этой папке устраивает
самое важное, это опции --headless --invisible, но для этого должен быть либра установлен/скомпилен из пакета headless. обычно он есть в репах.

круто. как то искал и обламался :) спасибо

Спасибо! Надо бы скриптик в пакет впилить, чтобы не ходить далеко.

Отправить комментарий

Google Friend Connect (leave a quick comment)
loading...
Содержание этого поля является приватным и не предназначено к показу.