Monday, February 26, 2007

Automating Powerpoint

In July 2006, I started a small project for writing a software to generate a PowerPoint file for our church 'Responsive Reading.' It's painful to see someone actually has to copy and paste bible verses to PowerPoint for generating the Responsive Reading' every week. The software has been developed and used for a while now.

I grabbed all bible verses from http://sabdaweb.sabda.org/bible/ by writing a Perl script. Initially, I saved each verse in a file, and use combination of Perl and C# for generating the PowerPoint file; Perl for finding verses from files and C# for generating the PowerPoint. However, I found out that Windows are extremely slow at processing folders that contains thousand of files. Hence, I moved all those verses' files to SQL Express database, and also eliminate the use of Perl. Now, the application is basically C# app that utilized COM object for PowerPoint.

This project is half a year ago, why am I writing it now? I am going to start a new project that will manage church's song databases. Since most of the songs are currently saved in Powerpoint, I need to write a C# app that will go through all the files and convert it to plain text format.

The problem is when I tried to reuse my previous code, I got the following error:

The type 'Microsoft.Office.Core.MsoTriState' is defined in an assembly that is not referenced. You must add a reference to assembly 'office, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'

Then, I went back to my reference site, and I followed all the instruction there step by step, but still got the same error. After googling around, I finally managed to solve the problem by re-installing the Microsoft Office XP primary interop assemblies (PIAs). Here is the link to download it. Hope this will help someone who encounters similar problem.

No comments: