Advertisement
Guest User

Untitled

a guest
May 25th, 2015
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 0.77 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. if [ "$#" -ne 1 ]
  4. then
  5.   echo "Output folder not specified"
  6.   exit 1
  7. fi
  8.  
  9. a=0
  10. b=0
  11. c=0
  12.  
  13. for FILE in ./*.pdf; do
  14.     ((a+=$(stat -c%s "${FILE}")))
  15. done
  16.  
  17.  
  18. for FILE in ./*.pdf; do
  19.  gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/prepress -dNOPAUSE -dBATCH  -dQUIET -sOutputFile=temp.pdf "${FILE}"
  20.  
  21.  oldsize=$(stat -c%s "${FILE}")
  22.  newsize=$(stat -c%s temp.pdf)
  23.  
  24.  if (("$newsize" < "$oldsize"))
  25.  then
  26.     ((c++))
  27.     cp -f temp.pdf $1/"${FILE}"
  28.  else
  29.     cp -f "${FILE}" $1/"${FILE}"
  30.     rm -f temp.pdf
  31.  fi
  32. done
  33.  
  34. for FILE in $1/*.pdf; do
  35.     ((b+=$(stat -c%s "${FILE}")))
  36. done
  37.  
  38.  
  39. d=$(bc -l <<< "scale=2; (($a-$b))/1024")
  40. e=$(bc -l <<< "scale=2; 100*$b/$a")
  41.  
  42. echo "Shrinked $c PDFs, saving $d kiB at $e% compression ratio."
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement