As I mentioned earlier, I’m generating lots of PDF files that don’t work in Preview.app, and are also a tad on the large side. Resolving this problem requires the use of Adobe Acrobat and Acrobat Distiller. Automating this solution requires AppleScript. AppleScript is evil.
Just in case anyone else wants to do something like this from the command line, here’s what I ended up with, which is run as “osascript pdfcleaner.scpt myfile.pdf”:
on run argv set input to POSIX file ((system attribute "PWD") & "/" & (item 1 of argv)) set output to replace_chars(input as string, ".pdf", ".ps") tell application "Adobe Acrobat 7.0 Standard" activate open alias input save the first document to file output using PostScript Conversion close all docs saving no end tell tell application "Acrobat Distiller 7.0" Distill sourcePath POSIX path of output end tell set nullCh to ASCII character 0 set nullFourCharCode to nullCh & nullCh & nullCh & nullCh tell application "Finder" set file type of input to nullFourCharCode set creator type of input to nullFourCharCode end tell tell application "Terminal" activate end tell end run on replace_chars(this_text, search_string, replacement_string) set AppleScript's text item delimiters to the search_string set the item_list to every text item of this_text set AppleScript's text item delimiters to the replacement_string set this_text to the item_list as string set AppleScript's text item delimiters to "" return this_text end replace_chars
[I wiped out the file type and creator code to make sure that the resulting PDFs opened by default with Preview.app, not Acrobat; I swiped that code from Daring Fireball. The string-replace function came from Apple’s AppleScript sample site.]