Many Mac users who give presentations have gravitated toward Apple’s Keynote application and away from Microsoft’s PowerPoint because they prefer the flexibility and slick design of Apple’s alternative and, perhaps more importantly in today's mobile-centric world, Keynote presentations can be projected from an iOS device. But if you’ve been at this a long time, it’s likely you created a fair number of PowerPoint presentations that you might like to work with in Keynote. Fortunately, Keynote can easily open PowerPoint presentations. Even more fortunately, Apple's automation utility, Automator, and scripting application, AppleScript, can make the conversion process even easier.
Quick conversion, one presentation at a time
We’ll start by creating a workflow that opens a PowerPoint presentation in Keynote and then saves it to the desktop as a Keynote file. With this workflow you can drop a PowerPoint file on top of the application we create and Automator will take care of the rest.
Launch Automator and in the template chooser that appears, select Application. Click Choose. In the Library pane, click on Files & Folder and then drag Open Finder Items into the workflow area. From the Open With pop-up menu within this action, select Other and in the Choose dialog box that appears, navigate to the iWork ’09 folder inside your Applications folder. Select Keynote and click Choose.
Now, select Presentations in the Library pane and drag the Save Keynote Presentations action to the workflow area. Click the Variables button that appears in the top-left portion of your workflow area next to the Actions button. Double-click on the AppleScript variable. It will appear in a Variable area at the bottom of the workflow pane. Double-click on the AppleScript variable here. In the Variable Options window that appears, enter a name for your variable—Keynoteconvert, for example—and enter (or copy and paste) this text in the Script field:
tell application "Keynote" set thisName to the name of slideshow 1 end tell set thisHFSPath to ((path to desktop folder) as string) & thisName set thisPOSIXPath to the POSIX path of thisHFSPath return thisPOSIXPath
Click Done to close the Variable Options window. Now drag the Keynoteconvert variable you created on to the Save To pop-up menu found in the Save Keynote Presentation action. Finally, click on Actions at the top left of the Automator window to reveal the actions library again. From the Presentations library, drag the Close Keynote Presentation action to the workflow area. Choose File -> Save to save your workflow with the name Convert to Keynote to the desktop.
To convert a PowerPoint presentation, just drop it on top of your Convert to Keynote application on the desktop. Keynote will launch (if it isn’t active already) and open the file. It will then save a Keynote version on the desktop.
Of course, due to the nature of how Keynote converts these files, you may still need to tweak the formatting of your converted file. But this workflow takes some of the drudgery out of the process.
Convert a batch of old presentations
If you’d like to convert multiple PowerPoint files at once, turn to Apple's AppleScript instead. Launch AppleScript Editor (/Applications/Utilities) and type (or copy and paste) this text in the script editor window:
property targetFolderPath : (path to desktop folder) on open theseItems repeat with thisFilePath in theseItems if ((thisFilePath as string) ends with ".pptx") or ((thisFilePath as string) ends with ".ppt") then tell application "Keynote" open thisFilePath set thisName to the name of slideshow 1 set the targetFilePath to (targetFolderPath as string) & thisName save slideshow 1 in file targetFilePath close slideshow 1 end tell end if end repeat end open
Choose File -> Save, and in the sheet that appears, choose Application from the File Format pop-up menu and save the application to your desktop. You can now drop multiple PowerPoint files on this AppleScript droplet and convert them in one fell swoop. The new Keynote files will appear on your desktop.