Here's a tremendously hacky way to automate the procedure of optimizing a PDF using Acrobat Pro (with default settings) from the command line. It's an applescript sending mouse clicks and keyboard signals so don't get too excited.
However, I'm doing this all the time and it will hopefully save clicking through menus.
#!/usr/bin/osascript
on run argv
if (count of argv) < 2 then
do shell script "echo " & "\"optimizepdf path/to/input.pdf simple-output-name\""
else
set p to item 1 of argv
set out_name to item 2 of argv
set abs to do shell script "[[ \"" & p & "\" = /* ]] && echo \"" & p & "\" || echo \"$PWD/\"" & p & "\"\""
set a to POSIX file abs
tell application "Adobe Acrobat Pro"
activate
open a
tell application "System Events"
click menu item "Optimized PDF..." of ((process "Acrobat")'s (menu bar 1)'s ¬
(menu bar item "File")'s (menu "File")'s ¬
(menu item "Save As")'s (menu "Save As"))
tell process "Acrobat"
keystroke return
keystroke out_name
keystroke return
keystroke "r" using {command down}
end tell
end tell
close document 1
end tell
end if
end run
Then you can run this with something like:
optimizepdf path/to/input.pdf simple-output-name
overwrite warning: this will overwrite the output file (and potentially files named similarly if the keystrokes fail or get garbled).
Oddly, it seems to work fastest if the input document is not already open in acrobat pro.
This code above is written for Acrobat Pro Version 10.1.16.
Update: Here's a legacy version for Acrobat Pro Version 9.5.1
#!/usr/bin/osascript
on run argv
if (count of argv) < 2 then
do shell script "echo " & "\"optimizepdf path/to/input.pdf simple-output-name\""
else
set p to item 1 of argv
set out_name to item 2 of argv
set abs to do shell script "[[ \"" & p & "\" = /* ]] && echo \"" & p & "\" || echo \"$PWD/\"" & p & "\"\""
set a to POSIX file abs
tell application "Adobe Acrobat Pro"
activate
open a
tell application "System Events"
click menu item "PDF Optimizer..." of ((process "Acrobat")'s (menu bar 1)'s ¬
(menu bar item "Advanced")'s (menu "Advanced"))
tell process "Acrobat"
keystroke return
keystroke out_name
keystroke return
keystroke "r" using {command down}
end tell
end tell
close document 1
end tell
end if
end run
Note: You may have to enable scripts to use keystrokes.