Я пытаюсь использовать 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.
Спасибо за любого и весь вход.
Принятие Вас имеет Ваше преобразование, работающее на каталог, просто необходимо объединить 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"' {} \;