Today I finally got around to use Automator, and make one of the command line scripts I have been running for ages a little easier to use.
The problem I have been trying to solve is the fact that the PDF files that a Mac creates are normally of very high quality and hence large. If you just want to send someone a document for reading on screen, a much smaller PDF file would do. The open source package “ghostscript” has a tool called ps2pdf that can be (ab)used to adjust the size of components for PDF files. I installed this in /opt/local/bin using the “macports” software.
To make it possible to do the PDF-shrinking from the Finder, I started automator, and made a new “Service”. I instructed it to use PDF files, and only in the Finder. In the workflow, I added a “run shell script” step. The system passes the files as arguments to this script.
The contents of the script are:
export PATH=$PATH:/opt/local/bin for f in "$@" do echo "$f" d=`dirname "$f"` cd "$d" b=`basename "$f"` ps2pdf -dPDFSETTINGS=/ebook "$b" # Choose /screen for even smaller PDF, or # /printer /prepress or /default for successively larger if [ -f "$b".pdf ]; then mv "$b" "$b".old mv "$b".pdf "$b" else echo "Apparently conversion failed" fi done
I saved this as the service named “Small PDF”, and Done!
And using it is even easier: