Pdfsizeopt: PDF file size optimizer
code.google.com
code.google.com
pdfsizeopt.py --do-unify-fonts=false --do-unify-pages=false infile.pdf
The first option is important: several of my PDFs were horribly corrupted without it. The second option prevents a (benign?) error message with some PDFs in xpdf/poppler.Small files dominated by complicated fonts can be reduced several times. Very large PDFs with raster images can also be made much smaller, unless you obsessively squished the graphics before including them: http://homepages.inf.ed.ac.uk/imurray2/compnotes/squish_imag...
pkfix-helper input.ps tmp.ps
pkfix tmp.ps output.ps
output.ps will now have Type 1 fonts, and can be converted to a good PDF with ps2pdf. The pkfix-helper man page says how to check and tweak the font substitutions.