Я использую libreoffice под CentOS 6. Я могу конвертировать файлы ODT в PDF с помощью:
libreoffice --headless --convert-to pdf *.odt
но проблема в том, что он работает только тогда, когда в libreoffice не открыт документ.
Когда я указываю --env:UserInstallation=file:///path/to/some/directory
как это предлагается в одном из комментариев по этому вопросу , это не помогает.
Что я делаю не так? Недопустимо закрывать все экземпляры libreoffice перед запуском команды before.
Это вряд ли будет работать, так как предложение в комментарии является неполным (вы не можете просто указать какой-то каталог) и неверным ( --env:...
должно быть -env:..
Вот что я рекомендую вам:
Запустите libreoffice из командной строки без указания --headless
:
libreoffice -env:UserInstallation=file:///home/username/.config/libreoffice-alt
вы должны заменить /home/username
на свой домашний каталог (и настроить .config
если у вас его нет в CentOS, я сделал это на Ubuntu и Linux Mint). Вышеупомянутый создаст новый каталог конфигурации для альтернативного libreoffice в вашем каталоге .config, без которого вы получите некоторую ошибку о том, что java не найден.
/home/username/.config/libreoffice-alt
теперь должен быть создан для вас. Теперь запустите другое libreoffice
из командной строки (это позволяет вам видеть некоторые полезные сообщения, если что-то не так, если вы -env:...
второй экземпляр), без -env:...
, и пока он все еще запущен, начните преобразование, используя:
libreoffice -env:UserInstallation=file:///home/username/.config/libreoffice-alt --headless --convert-to pdf *.odt
Один из возможных подходов – установить unoconv
(если он еще не установлен) и
unoconv file.odt
Подробнее см. Man unoconv
unoconv
– это утилита командной строки, которая может конвертировать любой формат файла, который LibreOffice может импортировать, в любой формат файла, который LibreOffice способен экспортировать.unoconv
использует привязки UNO LibreOffice для неинтерактивного преобразования ….
На некоторых платформах также необходимо установить libreoffice-headless
\ thanks {Aaron}