2013-10-11 3 views
0

Я хочу прогрессировать через подкаталоги каталога и конвертировать или размещать изображения .TIF в pdf. У меня есть структура каталогов вроде этого:shellscript для преобразования .TIF в .PDF

folder 
    item_one 
     file1.TIF 
     file2.TIF 
     ... 
     fileN.TIF 
    item_two 
     file1.TIF 
     file2.TIF 
     ... 
    ... 

Я работаю на Mac и считается использованием глотков, чтобы изменить мои .tif файлы .PNG файлы, а затем использовать pdfjoin соединить все файлы .PNG в единый .PDF-файл в папке.

Я использовал:

for filename in *; do sips -s format png $filename --out $filename.png; done 

, но это работает только для .tif файлов в одном каталоге. Как написать скрипт для прохождения через ряд каталогов?

после того, как .PNG файлы были созданы, я бы сделал по существу то же самое, но с использованием:

pdfjoin --a4paper --fitpaper false --rotateoversize false *.png 

Является ли это правильным способом это сделать? Есть ли лучший, более эффективный способ выполнения такого действия? Или я идиот и должен делать это с помощью какого-то программного обеспечения, такого как ImageMagick или что-то в этом роде?

ответ

1

Попробуйте использовать команду find с помощью переключателя exec, чтобы позвонить вашему решению по преобразованию изображений. В качестве альтернативы вместо использования переключателя exec вы можете вывести вывод find в xargs. В Интернете есть много информации об использовании find. Вот один example от StackOverflow.

Что касается преобразования изображения, я думаю, что это действительно зависит от ваших требований к скорости и эффективности. Если вы проверили описанный процесс, и это одноразовый процесс, и для запуска требуется всего несколько секунд или минут, то вы, вероятно, все в порядке. С другой стороны, если вам нужно делать это часто, то, возможно, стоит потратить время на то, чтобы найти одношаговое решение для преобразования, которое занимает меньше времени, чем ваше текущее двухпроходное решение.

Обратите внимание, что вместо двух проходов вы можете подключить выход sips к pdfjoin; однако для этого потребуется провести некоторое расследование.

+0

Спасибо! Это действительно помогло! – shadonar

Смежные вопросы