Automating PowerPoint to HTML

mako132 on 2003-03-13T21:04:31

A step in our Distance Education production process is the converting of PowerPoint slides to HTML. We've been doing this manually.

We're looking to save time by automating this -- having instructors email or upload the presentation, automatically convert it and transfer it to the right server.

Over a year ago, I discovered and purchased PPT2HTML (http://www.rdpslides.com/pptools/), a VB program which implements a 'watched' dropbox and configuration templates and does the automatic conversion. Naturally, I'd rather do this with Perl, so I have complete control.

I attempted it a year ago, but stuck when it turns out that Office97's PowerPoint doesn't have an OLE interface to saving as HTML.

But this week, perhaps due to luck, I discovered that later Offices (at least OfficeXP) has the interface now and I stumbled upon a Javascript/ActiveX snippet that did a simple conversion. I ran with that and Win32::OLE and now I'm rocking and rolling.

Before I was rockin' and rollin', I lurchin' and reelin' trying to use Win32::API to import ppt2html.dll (Office97's Internet Assistant). I made baby steps, but never got any output.

Why bother with Office97? Because the converted HTML is so much cleaner way back then. Now Microsoft's HTML conversion produces monster files bloated with every [XD]HTML feature and Microsoft extension in an attempt to duplicate the exact look of a PowerPoint Presentation in Internet Explorer.

So I intend to snag the images and text from the OfficeXP conversion and roll them into HTML::Template's built from a representative Office97 conversion. I know people have also written filters to clean up the Microsoftisms from an HTML conversion, so I'll try those too.


What about pdf??

jcavanaugh on 2003-03-14T16:44:33

Have you considered using acrobat to print to a pdf file, then process the pdf file to produce the html.

This might be a better long term solution as the pdf output is likely to change a lot less than the html output will.

Just a thought...

--John C