summaryrefslogtreecommitdiff
path: root/scripts/.local/bin/compress-pdf
blob: 012b93341018f030e335aefc5bf6a4f46c400649 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/bin/sh

# https://askubuntu.com/questions/113544/how-can-i-reduce-the-file-size-of-a-scanned-pdf-file
#-dPDFSETTINGS=/screen lower quality, smaller size. (72 dpi)
#-dPDFSETTINGS=/ebook for better quality, but slightly larger pdfs. (150 dpi)
#-dPDFSETTINGS=/prepress output similar to Acrobat Distiller "Prepress Optimized" setting (300 dpi)
#-dPDFSETTINGS=/printer selects output similar to the Acrobat Distiller "Print Optimized" setting (300 dpi)
#-dPDFSETTINGS=/default selects output intended to be useful across a wide variety of uses, possibly at the expense of a larger output file
PDFSETTINGS="/printer"
image_resolution="300"

basename="$(echo "$1" | cut -f 1 -d '.')"

# full list of parameters
# https://ghostscript.com/docs/9.54.0/VectorDevices.htm

#-dCompatibilityLevel=1.4 \
gs  -q -dNOPAUSE -dBATCH -dSAFER \
    -sDEVICE=pdfwrite \
    -dPDFSETTINGS="$PDFSETTINGS" \
    -dEmbedAllFonts=true \
    -dSubsetFonts=true \
    -dColorImageDownsampleType=/Bicubic \
    -dColorImageResolution="$image_resolution" \
    -dGrayImageDownsampleType=/Bicubic \
    -dGrayImageResolution="$image_resolution" \
    -dMonoImageDownsampleType=/Bicubic \
    -dMonoImageResolution="$image_resolution" \
    -sOutputFile="$basename.compressed.pdf" \
     "$1"