PDF ряд Office файлы Libre из командной строки

Предположите, что ряд .docx файлы находится в каталоге, который будет преобразован в формат pdf. Существует ли умный способ перечислить файлы и передать его по каналу в команду, которая 'распечатала' бы файлы PDF к целевому каталогу? Например, получающийся вывод

ls -l *.docx

питался бы в команду PDF (как это сделано, по Вашему усмотрению).

Предположите, что MSWord не установлен на ПК (Office установленный Libre).

Предпочтение для решений, требующих минимальной установки утилит Ubuntu / пакеты, и хорошо документируется.Спасибо

2
задан 10 April 2019 в 21:23

2 ответа

Эта простая команда должна помочь:

soffice --headless --convert-to pdf ./* --outdir /path/to/target

Или:

soffice --headless --convert-to pdf /path/to/files/folder --outdir /path/to/target

Формат:

soffice --headless --convert-to <TargetFileExtension>[:NameOfFilter] file_to_convert.xxx

Где:

  • фильтр: определенный формат файла для преобразования
  • бездисплейный: Запускается в "бездисплейном режиме", который позволяет использовать
    приложение без GUI. Этот специальный режим может использоваться
    когда приложением управляют внешние клиенты
    через API.

Затем для "произведения" преобразованных файлов я использовал эту команду:

ls -p | grep -v / | xargs -d "\n" soffice --headless --convert-to pdf --outdir /tmp/convert/target 2> /dev/null | grep -Eo "/.*\.doc[x]?"

Информация:

  • ls -p: Добавьте индикаторы к папкам.
  • grep -v /: Только возвратите файлы.
  • xargs -d "\n": Используемый для передачи вывода soffice управляйте, заботится о пробелах в именах файлов.
  • 2> /dev/null: Скройте ошибки.
  • grep -Eo "/.*\.doc[x]?": Возврат только влиял на файлы. И [x]? выгоды оба .docx и .doc файлы, как используется на моем конце и могут быть не учтены.

Позвольте мне добавить anwser использование примера, который дал OP:

ls *.docx | xargs -d "\n" soffice --headless --convert-to pdf --outdir /tmp/container/target

см.: https://ask.libreoffice.org/en/question/2641/convert-to-command-line-parameter/

Пользователь soffice --help видеть больше опций к той команде.

4
ответ дан 2 December 2019 в 02:11

unoconv был быстрым и простым, хотя по некоторым причинам на первой попытке он возвратил ошибку.

Установка:

sudo apt-get install unoconv

Использование:

unoconv -f pdf -o proper_format *.docx

Команда к преобразованиям все .docx документы в текущем каталоге (или два или сто) к формату PDF и размещает их в “proper_format” каталог под текущим каталогом. Каталог "proper_format" создается, если он не существует.

По некоторым причинам первая попытка возвратила ошибку:

mkdir ./pdftarget
unoconv -f pdf -o pdftarget *.docx

Ошибка: Не мог соединиться или запустить собственного слушателя. Прерывание.

0
ответ дан 2 December 2019 в 02:11

Другие вопросы по тегам:

Похожие вопросы: