Reduce PDF Size on Multiple Documents with PowerShell and GhostScript
31 January, 2024
In this video I demonstrate how to compress the size of multiple PDF documents in a directory. I do this with PowerShell and GhostScript and achieve a 50% reduction without much loss in quality on the PDFs.
Download GhostScript
GhostScript Parameters: $parm = ” -q -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dSubsetFonts=true -dColorImageDownsampleType=/Bicubic -dColorImageResolution=144 -dGrayImageResolution=144 -dMonoImageDownsampleType=/Bicubic -dMonoImageResolution=144 -sOutputFile=$new ”
PowerShell Script:
$homedir = 'C:\Files\' $pickup = $homedir+'\drop' $completed = $pickup+'\compressed' $ghost = "C:\Program Files\gs\gs9.50\bin\gswin64c.exe" $pdfs = Get-ChildItem $pickup\*.pdf -File foreach ($pdf in $pdfs){ $new = $completed+'\compressed-'+$pdf.Name $parm = " -q -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dSubsetFonts=true -dColorImageDownsampleType=/Bicubic -dColorImageResolution=144 -dGrayImageResolution=144 -dMonoImageDownsampleType=/Bicubic -dMonoImageResolution=144 -sOutputFile=$new " $Prms = $parm.Split(" ") & "$ghost" $Prms "$pdf" }