-- Make sure a presentation is opened in Keynote. If not, notify the user and stop.
tell application "Keynote"
if (front slideshow exists) = false then
display alert "Unable to proceed." message "Please open a presentation in Keynote."
return
end if
set extractBody to button returned of (display alert "Would you like to extract slide content too?" buttons {"Yes", "No"}) = "Yes"
-- Target the front presentation.
tell front slideshow
-- Get the name of the presentation.
set thePresentationName to name
-- Retrieve the titles of all slides.
set theTitles to title of every slide
if extractBody = true then
set theBodyText to body of every slide
end if
-- Retrieve the presenter notes for all slides.
set theNotes to notes of every slide
end tell
end tell
-- Prepare the notes as HTML.
set theFormattedNotes to "
" & "Keynote Presentation: " & thePresentationName & "
" & return
repeat with a from 1 to length of theTitles
set theFormattedNotes to theFormattedNotes & "Slide #" & a & "
" & return
set theFormattedNotes to theFormattedNotes & "Title: " & item a of theTitles & "" & return & return
if extractBody = true then
set theFormattedNotes to theFormattedNotes & "Body: " & item a of theBodyText & return & return
end if
set theFormattedNotes to theFormattedNotes & "Presenter Notes: " & item a of theNotes & return & return
end repeat
set theFormattedNotes to theFormattedNotes & ""
-- Replace any returns with line breaks.
set AppleScript's text item delimiters to {return, ASCII character 10}
set theFormattedNotes to text items of theFormattedNotes
set AppleScript's text item delimiters to "
"
set theFormattedNotes to theFormattedNotes as string
set AppleScript's text item delimiters to ""
-- Create the note in Evernote.
tell application "Evernote"
activate
set theNote to create note notebook "Inbox" title thePresentationName with html theFormattedNotes
open note window with theNote
end tell