AppleScripting Keynote PDF export
This past weekend I found myself in a situation where I would need to export 20 or so Keynote files to PDF. These generated PDFs all needed to have the same export options (no added dates, no presenter notes, etc.), and I really wanted to avoid having to go through all of them manually, clicking all the relevant boxes – which Keynote helpfully resets every time you hit Export.
Thankfully, there’s a (slightly) better way: AppleScript. With a couple hours’ work, I was able to tweak this script to work with the latest version of Keynote (5.3 at time of writing). The results aren’t great - the exported file always ends up in your Documents folder, and I don’t quite trust some of the delay statements - but it gets the job done with little more than a drag & drop.
on run
display dialog "Drag keynote documents on me to convert to PDF."
end run
on open draggeditems
repeat with thisFile in draggeditems as list
tell application "Finder" to reveal item thisFile
set thisFile to thisFile as alias
tell application "Keynote" to open thisFile
tell application "System Events"
tell application process "Keynote"
set frontmost to true
click menu item "PDF…" of menu 1 of menu item "Export" of menu 1 of menu bar item "File" of menu bar 1
repeat until sheet 1 of window 1 exists
delay 1
end repeat
tell sheet 1 of window 1
click radio button "Slides" of radio group 1
click checkbox "Print each stage of builds"
click checkbox "Include date"
click button "Next…"
end tell
repeat until button "Export" of sheet 1 of window 1 exists
delay 1
end repeat
tell sheet 1 of window 1
click button "Export"
end tell
delay 3
keystroke "w" using command down
end tell
end tell
end repeat
end open
Ideas for improvement? Clone the Gist on GitHub!