PowerPoint import filter for KPresenter

Synopsis:

In this project, an import filter for reading PowerPoint presentation into KPresenter will be designed and developed. The approach is to create two libraries, one for PowerPoint text and slide information and one for drawing elements, and then combine them together to produce KPresenter document as the output.

Goals:

The objectives of the import filter are to:

  • read PowerPoint file, version 97 and later
  • import text and basic slide information
  • import common drawing elements

Project Details:

The first part deals with PowerPoint slide format, which may contains text, notes and miscellaneous properties such as color and animation. This part is implemented as library and will be named "libppt". This library is responsible for parsing a presentation in PowerPoint format.

The second part deals with drawing embeed in the slide. For example, when a slide consists of some text and block diagram, the first part (libppt) can handle the text but the block diagram may comprise of some drawing element and handled in this second part. Again, this part will be implemented as library and will be named "libmsdraw".

Although it is possible to put those two parts together ("monolithic"), a library separation approach is preferrable because it allows faster test and development. No need to compile the filter and run KPresenter everytime.

Both libraries will be combined together to produce the import filter. KOffice is moving to OASIS/OpenDocument format as the default file format, hence the import filter is proposed to output directly OASIS presentation document.

For test documents, simple presentation made in PowerPoint for basic tests and some real presentations googled from the web will be both used. The source code of PowerPoint filter in OpenOffice will also be utilized as references.

Project Schedule:

June 27- July 3: digest file format, discuss with mentor(s)
July 4-July 17: design and code libppt
July 18-July 24: make import filter using libppt only
July 25-August 21: design and code libmsdraw
August 22-August 31: improve filter using libmsdraw

Motivation

I have good knowledge of C++ and am willing to participate in KOffice development. However I am new to KDE development and still need to learn the tools. I think making a filter does not require a deep understanding about the application, that's why I want to start with import filter first.

[ Edit ]