Is there an Automator action to create Keynote presentation from text file?
Importing text into multiple Keynote slides directly

I finally found out how you can import text paragraphs directly into multiple Keynote slides. Here's a quick proof of concept that works with iWork '08 Keynote at least:


Open Keynote, select Black template or use your own subtitling template (the title component is what will hold the text on each slide)
Select View &gt; Outline to show the presentation outline on the left
Click on the small icon of the first screen in the outline list
Paste in text -- each paragraph will go into the title of a new slide

Note that the selected slide's title will be replaced with the first pasted paragraph
All formatting (e.g. italics) seem to be lost at this stage, unfortunately

Select all slides in the outline list (cmd+A)
Select Format &gt; Reapply master to slide to fix the font and text color of pasted text to the ones defined in the template


You can also use Edit &gt; Paste and match style when pasting in text to avoid the last steps of fixing the font and color.

So Keynote does have some basic import text into multiple slides functionality.

To preserve the formatting (italics etc) you can still go the paste into Powerpoint, save and open PPT into Keynote route.

Original response: Subtitling with slideware works OK

I have done movie subtitling before with Powerpoint. Something similar probably will work with Keynote or you can use Powerpoint and import that into Keynote for better visual quality.

By experimenting I found out that importing RTF files into Powerpoint mapped each paragraph to one slide. All italics and formatting was preserved, too.

Thus I made a RTF files out of the subtitle text documents (using some editor that allowed finding and replacing paragraph marks etc) and imported the RTF into Powerpoint that had a template with just a few white lines of text at the bottom of the screen.

Before anyone asks: This can be really useful for movies that are only shown once or twice at a festival: Show the text somewhere using a video projector and someone times the subtitle slides by hand. Cheap and works well.

Other notes: 


I found that adding the blank slide between each subtitle text slide really helped (i.e. two paragraph marks between subtitles): 

To advance to the next text, quickly press -> -> producing a slight flicker that made people notice the text change.
Hide text for a while? -> ... wait and -> to show the next text item. Very flexible. 

If you show the text over the movie image, you want to make a mask (think cardboard and duct tape ;-) for the video projector so that the edges of the video projector display area will be blurred -- otherwise they will be visible.
I would guess that some work by hand will be necessary to make the best results, as the source material is never uniform enough to automate completely.


Mac note: If you want to automate things that are not covered by Automator workflows, you can automate almost anything on a Mac with QuicKeys or other macro tools, even UNIX shell scripts or perl and the "osascript" command to integrate with AppleScript and GUI Applications...

Please let us know what solution you find that works with Keynote. Thanks.

Microsoft Office HOWTO (Added later)

I just tried this again with Mac Office 2004's Word and Powerpoint. Seemed to work OK still. Probably works with all Office versions.

What I did was:


Wrote some paragraphs of text in Word.
Saved the document as RTF (File &gt; Save as &gt; Format: RTF)
In Powerpoint, selected File &gt; Open &gt; the RTF text file. Sorry, earlier I remembered that I used some import command, it was open instead.
Powerpoint asked me if I wanted to open it with Powerpoint or Word, chose Powerpoint
The text was placed on multiple slides, one paragraph on each slide in as the slide title
Save in Powerpoint and open the PPT file in Keynote, should import OK
If you use suitable format for the slide(s) or suitable slide masters (white bold text on black and positioning) it should be good to go...


I think this process is pretty simple and could be automated with e.g. QuicKeys or AppleScript.