Instantly share code, notes, and snippets.

Embed
What would you like to do?
Compress PDF files with ghostscript

This can reduce files to ~15% of their size (2.3M to 345K, in one case) with no obvious degradation of quality.

ghostscript -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/printer -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf

Other options for PDFSETTINGS:

  • /screen selects low-resolution output similar to the Acrobat Distiller "Screen Optimized" setting.
  • /ebook selects medium-resolution output similar to the Acrobat Distiller "eBook" setting.
  • /printer selects output similar to the Acrobat Distiller "Print Optimized" setting.
  • /prepress selects output similar to Acrobat Distiller "Prepress Optimized" setting.
  • /default selects output intended to be useful across a wide variety of uses, possibly at the expense of a larger output file.

Source: http://ghostscript.com/doc/current/Ps2pdf.htm

@Johnwulp

This comment has been minimized.

Johnwulp commented Aug 21, 2017

Not always working. See command below:

-q -dNOPAUSE -dBATCH -dSAFER -dPDFA=2 -dPDFACompatibilityPolicy=1 -dSimulateOverprint=true -sDEVICE=pdfwrite -dCompatibilityLevel=1.3 -dPDFSETTINGS=/screen -dEmbedAllFonts=true -dSubsetFonts=true -dAutoRotatePages=/None -dColorImageDownsampleType=/Bicubic -dColorImageResolution=150 -dGrayImageDownsampleType=/Bicubic -dGrayImageResolution=150 -dMonoImageDownsampleType=/Bicubic -dMonoImageResolution=150

@AneudyM

This comment has been minimized.

AneudyM commented Dec 10, 2017

Also, remember that dCompatibilityLevel will be overridden by what you choose in dPDFSETTINGS (i.e.: Level 1.3 or 1.4). If you want to choose a specific level it must be done by declaring dCompatibilityLevel AFTER the declaration of dPDFSETTINGS, otherwise, it is unnecessary.

@michaeljohnston0

This comment has been minimized.

michaeljohnston0 commented Dec 20, 2017

This is great. Any thoughts on compression affecting search functionality? After compressing everything looks great to the eye, but if I do Ctrl+F or similar search for text in Mac preview, the matches are very spotty. Other than that, worked like a charm.

@cschwaderer

This comment has been minimized.

cschwaderer commented Feb 26, 2018

In my test case, this command destroyed digital signatures in a PDF.

@dusek

This comment has been minimized.

dusek commented Mar 18, 2018

In my test case, this command destroyed digital signatures in a PDF.

@cschwaderer Any processing (modification) will always invalidate digital signatures, that is a principle of digital signatures. I.e. even if they were left in the document (and not removed by ghostscript), the signatures would no longer match with the changed document. That is correct, since the signer did not sign the changed (processed) document, only the original one.

@readyready15728

This comment has been minimized.

readyready15728 commented Apr 18, 2018

I can confirm this was very useful for me. I also have a means of EPUB recompression detailed here:

https://github.com/readyready15728/misc/blob/master/epub-recompression.md

@krishjun

This comment has been minimized.

krishjun commented Jul 26, 2018

thanks '/ebook ' works perfect , big difference in size and marginal difference in quality.

@caminoezequiel

This comment has been minimized.

caminoezequiel commented Aug 12, 2018

Thanks it worked very good for me. I am using to index files with ElasticSearch so I also added options to convert to grayscale with: -dColorConversionStrategy=/Gray -dProcessColorModel=/DeviceGray

The original file had 9 mb, next 4.3mb and finally with grayscale 3.0 mb

@csantosburguete

This comment has been minimized.

csantosburguete commented Oct 14, 2018

I used current ghostscript version 9.25 (2018-09-13) to reduce the size of a PDF that contains hyperlinks to several URLs, as well as hyperlinks to several points inside the PDF. Ghostscript reduces the file size substantially, BUT destroys all the hyperlinks. Any ideas, any hints, please?

@xMrWhite

This comment has been minimized.

xMrWhite commented Dec 6, 2018

@csantosburguete you could try -dPDFSETTINGS=/ebook to preserve links, but this has a lower quality for images and text, you might want to tune compression with settings after that option

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment