Minska storleken på en PDF med Ghostscript
-
PDF
Det finns många sätt att komprimera och minska filstorleken på en pdf. Detta är perfekt ifall man vill lagra många dokument på en server där det inte finns obegränsat med utrymme. Jag använder mig av Ghostscript för att lösa detta. Om du kör Gentoo så heter paketet app-text/ghostscript-gpl.
- Mitt gs_pdf_shrink.sh script
#!/bin/sh function gs_pdf() { gs -q -dNOPAUSE -dBATCH -dSAFER \ -sDEVICE=pdfwrite \ -dCompatibilityLevel=1.3 \ -dPDFSETTINGS=/screen \ -dEmbedAllFonts=true \ -dSubsetFonts=true \ -dAutoRotatePages=/None \ -dColorImageDownsampleType=/Bicubic \ -dColorImageResolution=$3 \ -dGrayImageDownsampleType=/Bicubic \ -dGrayImageResolution=$3 \ -dMonoImageDownsampleType=/Bicubic \ -dMonoImageResolution=$3 \ -sOutputFile="$2" "$1" &> /dev/null } check_smaller () { if [ ! -f "$1" -o ! -f "$2" ]; then return 0; fi ISIZE="$(echo $(wc -c "$1") | cut -f1 -d\ )" OSIZE="$(echo $(wc -c "$2") | cut -f1 -d\ )" if [ "$ISIZE" -lt "$OSIZE" ]; then echo "Input smaller than output, doing straight copy" >&2 cp "$1" "$2" fi } in="$1" if [ -z "$in" ]; then echo "Usage: $0 infile [outfile] [resolution in dpi]" exit fi if [ ! -z "$2" ]; then out="$2" else out="-" fi if [ ! -z "$3" ]; then res="$3" else res="100" fi gs_pdf "$in" "$out" "$res" || exit $? check_smaller "$in" "$out" ls -la
Bara att spara ner detta i en fil och köra, happy shrinking
Om ni inte har Linux så finns det online-verktyg för att optimera pdfer med.