I'm looking for a way in Ubuntu to reduce the size of a pdf (by reducing the quality of the images).

I know that this can be done in Ghostscript by typing the following command in terminal:

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

The problem is that I can't specify the quality with any accuracy. The parameter -dPDFSETTINGS=/screen is the one that decides the quality; but the alternatives are quite rigid (for example it is possible to do -dPDFSETTINGS=/ebook for slightly better quality).

I'm looking for a way to reduce the size of a pdf in a way that allows me to specify the desired quality numerically.


I was able to make a slight variation on your command successful using the -r300 option from @drN The -r option allows you to set the output resolution in the pdf as well as png.

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/default \
    -dNOPAUSE -dQUIET -dBATCH -dDetectDuplicateImages \
    -dCompressFonts=true -r150 -sOutputFile=output.pdf input.pdf
| improve this answer | |
  • 8
    This command transformed a 25MB 4-pages PDF into the almost same quality one, but 2MB. Cheers! – Yanick Rochon May 28 '15 at 0:57
  • This works with most files. However, in some cases it actually increases the file size. It seems the -r option is ignored in these cases. – Luís de Sousa Mar 2 '17 at 18:49
  • 1
    This command consumed all of my RAM (8Gb) and froze my laptop with a 1000page pdf file. – To Do Sep 30 '19 at 7:32

The simplest way I found is to open source PDF file with LibreOffice Draw and then export to PDF with expected DPI. Export dialog window of Draw allows you to specify DPI and other options for exported PDF.

| improve this answer | |
  • 1
    I tried all the other command line things, but in the end, this allowed me to raise the compression enough for my purposes. – C.Rogers Nov 15 '16 at 17:54
  • 1
    The graphical way, with still a lot of control. – Agmenor Nov 22 '16 at 14:41
  • I found out that LibreOffice Draw is better at printing/exporting pdf than just about anything else, so +1. – Yoric Jul 24 '19 at 16:04

These two posts that I had posted on Stackoverflow should help you. I was trying to reduce the size of pdfs whilst ensuring that they met a certain dpi or ppi for my thesis.

Reducing size of pdf with ghostscript

Changing pdf image dpi using gs

Have you tried playing around with convert in Linux?


gs \
  -o out300.png \
  -sDEVICE=pngalpha \
  -r300 \

If I remember correctly, r300 is the output dpi but you might want to check. This converts a pdf to a png, though.


convert -units PixelsPerInch myPic.pdf -density 300 fileout.pdf

Let us know how it goes! This is for a pdf or any other format to any other format. I just used an input file of myPic.pdf and an output file of fileout.pdf

| improve this answer | |
  • Hmm... I looked at the questions you linked to. They are interesting, but it is difficult to eke out a concrete command that I should use. I'm looking for a command with some numerical value there that I can play with that will determine the quality. Can you effect such a command? Can one do it using convert? – Nicole Oct 28 '12 at 3:11
  • I editted my answer to include some more simpler options. Take a look and let us know! :) – dearN Oct 28 '12 at 13:10
  • 2
    The convert increases my pdf size, even if I use a 100 dpi. Maybe the best choice is to convert to png using "gs" and then "convert" to go to pdf? – Nicole Oct 28 '12 at 19:15
  • @Nicole There have always been issues with pdf conversions. What do you propose to use the pdf for? – dearN Oct 28 '12 at 19:26
  • @Nicole I noticed that to get the best result for pdfs/eps files, I'd have to go back to the program that made the pdf in the first place and change my save options to save in the dpi/ppi that I want. I hope that helps and yes that can be a bit of a pain the backside. – dearN Oct 28 '12 at 19:31
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=myNewFile.pdf myOldFile.pdf

This is the easiest way I think, can reduce the size to 50+/- kb. On your terminal, go to the directory of the file: example

cd ~/document/files

Then type the above code where:


is the file's new name and


is the name of the file.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.