Я работаю с большим количеством довольно больших изображенных документов в пределах от нескольких укусов к нескольким концертам данных на файл. Мне нужны эти документы, чтобы поднять меньше пространства памяти и особенно быть более в электронном виде портативным и transmittable.
Для единых документов я использовал:
ps2pdf -dPDFSETTINGS=/ebook inputfile.pdf outputfile.pdf
Которые кодируют, я нашел здесь на AskUbuntu, и он работает отлично с отдельными файлами, уступающими вокруг 1 0,42 степеням сжатия, приводящим к выходному файлу меньше чем половины первоначального размера при поддержании допустимого уровня чтения качества.
Я хочу теперь использовать этот код для своей библиотеки PDF документов для преобразования ВСЕХ моих предыдущих файлов PDF с помощью единственной команды от терминала. Моя стратегическая цель состоит в том, чтобы избежать необходимости сжимать каждый отдельный файл PDF индивидуально; я хочу ввести строку кода, совершить нападки, входят и затем идут, делают что-то еще продуктивное и возвращаются и находят сделанным, и я надеюсь к mogrify файлы на месте (в противоположность преобразованию их, которые произвели бы, удваивается каждого файла), чтобы избежать необходимости удалять старые файлы.
Все эти файлы находятся вместе в единственной папке.
Какие-либо предложения?
Заранее спасибо!
Вы можете использовать ту же команду или mogrify
, как вы сказали, просто добавив немного bash
.
find $HOME/PDF_Lib -iname '*.pdf' | while read pdf; do ps2pdf -dPDFSETTINGS=/ebook "$pdf" "${pdf:0:(-4)}_new.pdf"; done
ИЛИ
find $HOME/PDF_Lib -iname '*.pdf' | while read pdf; do mogrify -resample 150 -compress JPEG -quality 80 "$pdf"; done
создайте sh файл в каталоге PDF и добавьте это строки:
script.sh
for f in *.pdf
do
echo $f;
convert -compress Zip $f a$f;
done
теперь открывают Ваш терминал в каталоге PDF FILES:
$ chmod +x script.sh
$ ./script.sh
теперь этот сценарий сожмет каждый файл PDF в Вашем каталоге
Я успешно использовал следующий код на терминале iOS для рекурсивного сжатия нескольких PDF-файлов. Я разместил его, потому что не смог найти что-то, что сработало бы для меня простым копированием и вставкой.
find . -name '*.pdf' | while read pdf; do gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile="${pdf}_new.pdf" "$pdf"; done
Обратите внимание, что вам может потребоваться другое качество вывода, поэтому вы можете изменить параметр -dPDFSETTINGS
следующим образом:
-dPDFSETTINGS=/экран
: более низкое качество, меньший размер.
-dPDFSETTINGS=/ebook
: для лучшего качества, но немного большего размера pdf.
-dPDFSETTINGS=/prepress
: вывод аналогичен параметру «Prepress Optimized» в Acrobat Distiller.
-dPDFSETTINGS=/printer
: выбор вывода аналогичен параметру «Оптимизированная печать» в Acrobat Distiller.
-dPDFSETTINGS=/default
: выбирает выходные данные, предназначенные для широкого спектра применений, возможно, за счет увеличения выходного файла.