Я хочу объединить несколько файлов PDF в один. Найденоэтот отличный ответна SO, но тут есть проблема. Мои pdf-файлы не в одном каталоге, поэтому по сути я хочу сделать вызов find
и передать вывод в gs
, что-то вроде этого:
find . -path "*_somedir/*" -name "some.pdf" -print0 | gs ...
Я проверил страницы руководства, gs
но там нет информации об аргументах с завершающим нулем, поэтому я не уверен, как передать аргументы из find
в gs
. Я предполагаю, что если я пропущу флаг -print0, он выполнит gs
вызов после первого аргумента.
Есть идеи? Я, конечно, открыт для других способов объединения pdf-файлов, но я бы хотел избежать установки новых пакетов, поскольку это будет сделано на сервере сообщества.
решение1
Один из способов сделать это, предполагая, что GNU find(1)
и GNU xargs(1)
:
find /some/dir -type f -name '*.pdf' -print0 | \
xargs -0 gs -q -dNOPAUSE -sDEVICE=pdfwrite -dBATCH -sOUTPUTFILE=out.pdf
Однако PDF-файлы — сложные звери. Ожидайте неоднозначных результатов.