Предположите, что ряд .docx файлы находится в каталоге, который будет преобразован в формат pdf. Существует ли умный способ перечислить файлы и передать его по каналу в команду, которая 'распечатала' бы файлы PDF к целевому каталогу? Например, получающийся вывод
ls -l *.docx
питался бы в команду PDF (как это сделано, по Вашему усмотрению).
Предположите, что MSWord не установлен на ПК (Office установленный Libre).
Предпочтение для решений, требующих минимальной установки утилит Ubuntu / пакеты, и хорошо документируется.Спасибо
Эта простая команда должна помочь:
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
Где:
Затем для "произведения" преобразованных файлов я использовал эту команду:
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
видеть больше опций к той команде.
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
Ошибка: Не мог соединиться или запустить собственного слушателя. Прерывание.