I had to re-print a batch of bills that are saved in (sorry) xls format.
Now my problem is, I need to send the PDFs, obviously. Exporting xls files to pdf is not exactly built-in Office X and 2004, so I had to go with AppleScript.
I have been a long time fan of that technology. The language itself might be weird, but the concept of something that can glue any piece of software together is a pretty smart one. Problem is, most of the applications or standard functions are not really “applescriptable”, meaning they don’t respond to precise functions. So that leaves UI scripting.
UI scripting is phenomenal, if a little hard to use. Basically, what it does is simulate keystrokes and clicks. That allows you to do anything a user would be able to do.
Without further ado, the AppleScript to batch sve to pdf a bunch of excel files using the print dialog!
on open some_items repeat with this_item in some_items try tell application "Microsoft Excel" activate open this_item tell application "System Events" to tell process "Microsoft Excel" --Bring up print window keystroke "p" using command down --Choose "PDF" > "Save as PDF" click (menu button "PDF" of window 1) click (menu item 1 of menu of menu button "PDF" of window 1) delay 2 -- Choose the desktop as save locaton (Command-D) keystroke "d" using command down --Save keystroke "s" using command down keystroke return -- wait and close delay 3 keystroke "w" using command down end tell end tell end try end repeat tell application "Finder" open desktop end tell end open