6

I'd like to create a PowerPoint (not Javascript/HTML/PDF/Keynote/.mov) using code (any language, C preferred) for free.

(I've seen this SO question which references how to create them in C#)

Is this even possible? How can I write the raw bits that make up a PowerPoint file? Any good libraries for doing this?

UPDATE The Microsoft Reference Page for the binary format is here.

Community
  • 1
  • 1
Nate Murray
  • 3,841
  • 5
  • 32
  • 33

4 Answers4

7

Open Office has an API. You can use the C++ bindings (doc available here). If you really need C, you'll have to do some wrapping.. but hey, it's Christmas, isn't it ;-)

Open Office has export functions to create .ppt compatible files.

jldupont
  • 93,734
  • 56
  • 203
  • 318
7

PowerPoint you may not, but OpenOffice Impress you may. (Yoda style answer :) )

Take a look at the ODF Toolkit project. They aim to produce lots of libraries for generating this kind of content programatically.

seoul
  • 864
  • 1
  • 12
  • 32
Kico Lobo
  • 4,374
  • 4
  • 35
  • 48
3

Unless you're specifically interested in PowerPoint 2003 binary files, PowerPoint 2007 and up .PPTX files are actually a collection of XML files inside a zipped file. You can see that, by simply renaming a .pptx file to .zip and opening it. You can create these XML files in any way you like, such as writing code to do it. PresentationML defines the powerpoint XML documents, have a look here for example: http://msdn.microsoft.com/en-us/openspecifications/hh295812.aspx The standards could be found here: http://www.ecma-international.org/publications/standards/Ecma-376.htm

Arie Livshin
  • 865
  • 1
  • 12
  • 26
2

If you don't mind going to Java, Apache POI provides readers and writers for most MS Office formats (up to the 2003 version anyway).

David Winslow
  • 8,472
  • 1
  • 31
  • 27