Email or username:

Password:

Forgot your password?
Top-level
Alex Schroeder

I guess I could use Ghostscript to reduce PDF file size! Sure, it wouldn’t be a bit-exact copy but perhaps archival copies don’t need to be.

https://alexschroeder.ch/view/2017-09-06_PDF_File_Size

2 comments
Alex Schroeder

First test with Ghostscript to reduce filesize is disappointing. It also turned text in the original to a badly pixelated image. I wonder why. I had hoped it would only affect images. Now I'm reading https://ghostscript.com/blog/optimizing-pdfs.html and my head is smoking.

Alex Schroeder

OK, based on that blog post, I have the following invocation. This doesn't turn the fonts into images but it does downsample all images to 150dpi if they are at 165dpi or larger, and it forces JPEG if there images are uncompressed or PNG (I think).

Let me know if there's anything else you can think of.

function pdf-shrink --description 'Turn images in PDF files to 150dpi JPG'
# https://ghostscript.com/blog/optimizing-pdfs.html
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dNOPAUSE -dQUIET -dBATCH \
   -dConvertCMYKImagesToRGB \
   -dGrayImageFilter=/DCTEncode -dColorImageFilter=/DCTEncode \
   -dAutoFilterGrayImages=false -dAutoFilterColorImages=false \
   -dDownsampleColorImages=true -dDownsampleGrayImages=true -dDownsampleMonoImages=true \
   -dColorImageResolution=150 -dGrayImageResolution=150 -dMonoImageResolution=150 \
   -dColorImageDownsampleThreshold=1.1 -dGrayImageDownsampleThreshold=1.1 -dMonoImageDownsampleThreshold=1.1 \
   -dPreserveHalftoneInfo=false -dPreserveOverprintSettings=false \
   -dTransferFunctionInfo=/Apply -dUCRandBGInfo=/Remove \
   -sOutputFile=$argv[2] $argv[1]
end

OK, based on that blog post, I have the following invocation. This doesn't turn the fonts into images but it does downsample all images to 150dpi if they are at 165dpi or larger, and it forces JPEG if there images are uncompressed or PNG (I think).

Let me know if there's anything else you can think of.

Go Up