Reduce filesize of a scanned PDF [duplicate]
Solution 1:
Use the following ghostscript command:
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook \
-dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
Summary of -dPDFSETTINGS
:
-
-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
Reference: https://www.ghostscript.com/doc/current/VectorDevices.htm#PSPDF_IN:
Controls and features specific to PostScript and PDF input
-dPDFSETTINGS=configuration
Presets the "distiller parameters" to one of four predefined settings:
/screen
selects low-resolution output similar to the Acrobat Distiller (up to version X) "Screen Optimized" setting./ebook
selects medium-resolution output similar to the Acrobat Distiller (up to version X) "eBook" setting./printer
selects output similar to the Acrobat Distiller "Print Optimized" (up to version X) setting./prepress
selects output similar to Acrobat Distiller "Prepress Optimized" (up to version X) setting./default
selects output intended to be useful across a wide variety of uses, possibly at the expense of a larger output file.
The exact settings for each of these, including their DPI values, are shown in the dozens of options in this table: https://www.ghostscript.com/doc/current/VectorDevices.htm#distillerparams.
Solution 2:
My favorite way to do this is to convert the PDF to PostScript and back. It does not always work, though, but when it works the results are nice:
ps2pdf input.pdf output.pdf
This also directly works on PDFs, as suggested in the comments.
Some users also report more success when using the ebook settings as follows:
ps2pdf -dPDFSETTINGS=/ebook input.pdf output.pdf