How can I reduce the file size of a scanned PDF file?
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.
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
aking1012 is right. With more information regarding possible embedded images, hyperlinks etc.. it would be much more easier to answer this question!
Here are a couple of script and command-line solutions. Use as you see fit.
- reduce-pdf-file-size-linux
- shrinkpdf
- compress-a-pdf-with-pdftk
- pdfcompress