Как к рекурсивно и автоматически преобразовывают весь TIFs в агрегированный PDF на каталог?

Я пытаюсь использовать GraphicsMagick в Ubuntu для преобразования сотен каталогов, которые содержат несколько файлов TIF в один многостраничный файл PDF на каталог. Глубина папки согласовывается с этой структурой:

Root/Limb_1/Branch_1/Twig_1/A.tif B.tif C.tif

Таким образом, был бы один многостраничный PDF на каталог "Twig".

Для сохранения контекстной информации, найденной в пути к файлу, каждый многостраничный PDF на каталог идеально назвали бы с его данным путем к файлу.

Так производит файлы PDF, как назвали бы: Root_Limb_1_Branch_1_Twig_1.pdf

Вплоть до создания 1 PDF на 1 TIF этот вопрос был полезен:

Как к рекурсивно и автоматически преобразовывают весь bmps в pngs в данном каталоге?

Особенно сценарий, предоставленный @andrew.46, который я изменил для своего варианта использования:

find . -name '*.tif' -type f -exec bash -c 'gm convert -monitor "$0" "${0%.tif}.pdf"' {} \;

К сожалению, я не знаю, как изменить этот сценарий для вывода 1 PDF на каталог; или как произвести имя пути к файлу на PDF.

Спасибо за любого и весь вход.

1
задан 8 August 2019 в 02:10

1 ответ

Принятие Вас имеет Ваше преобразование, работающее на каталог, просто необходимо объединить PDFs с pdftk.

NAME=${PWD//\//_}
pdftk *.pdf cat output ${NAME:1}.pdf

Первая строка берет Ваш полный путь и подкачивает наклонные черты с символами нижнего подчеркивания. $ {NAME:1} затем пропускает первый символ.

Вот короткий монстр, удостоверьтесь, что у Вас ничего нет названным ".tif.pdf" или чем-либо соответствующим Вашему желаемому выходному имени, поскольку они будут стерты/изменены.

find . -name '*.tif' -type f -exec bash -c 'gm convert -monitor "$0" "$0.pdf"; DD=$(dirname "$0"); DN=`eval "cd "$DD";pwd;cd - > /dev/null"`;  D="${DN//\//_}"; FN="${D:1}.pdf"; if [ -f "$FN" ]; then pdftk "$0.pdf" "$FN" cat output "$FN.tmp"; rm "$0.pdf"; else mv "$0.pdf" "$FN.tmp"; fi; mv "$FN.tmp" "$FN"' {} \;
1
ответ дан 7 December 2019 в 14:59

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

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