Microsoft ürünleri arasında Office platformunun kullanımı oldukça büyük bir yere sahip. Office ürünülerinin .NET plaformunda yazılım geliştiricilerin kullanımı için oluşturulmuş DLL dosyaları bulunmakta. Bu makale içerisinde .NET Framework 2.0 kullanarak bir Winwdows projesi içerisinde Powerpoint DLL'ini kullanarak bir powerpoint dosyası içerisindeki slaytların listelenmesi, listelenen bu slaytların bir resim olarak kaydedilmesi ve son olarak da kaydedilen bu resimlerin görüntülenmesini sağlayacağız.
Açtığımız projenin referansına aşağıda görüntülenen Microsoft Office 12.0 Object Library nesnesini ve daha sonra da Powerpoint DLL'ini kurduğunuz office'in mevcut Path'i üzerinden ekleyebilirsiniz.
Referans ekleme işleminden sonra aşağıda görüldüğü gibi üç global değişkeni oluşturuyoruz. Buradaki ilk iki değişkeni powerpoint dosyasının okunmasını ve Export işlemi için, son değişkeni de oluşturulacak klasörde dosyaların saklanması için kullanacağız.
private static Microsoft.Office.Interop.PowerPoint.Presentation presentation = null;
private static Microsoft.Office.Interop.PowerPoint.ApplicationClass presentationApp = null;
string DirectoryPath = System.Windows.Forms.Application.StartupPath + "\\PresentationImages\\";
Sonrasında aşağıdaki şekilde formun tasarımını hazırlıyoruz. Burada pptFileDialog adında bir OpenFileDialog nesnesi, bu diyalogun açılmasını tetikleyecek bir buton, slaytlara ait resimlerin listelenmesini sağlacak bir ListBox ve seçilen slayta ait resmin gösterilmesini sağlayan bir PictureBox nesnesi ekliyoruz.

Sonrasında eklediğimiz butonun "Click" eventine aşağıdaki kodu ekliyoruz.
1 if (pptFileDialog.ShowDialog() == DialogResult.OK)
2 {
3 string fileName = System.IO.Path.GetFileName(pptFileDialog.FileName);
4 string filePath = System.IO.Path.GetDirectoryName(pptFileDialog.FileName) + @"\";
5 presentationApp = new ApplicationClass();
6 presentation = presentationApp.Presentations.Open(filePath + fileName, MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoFalse);
7 presentation.Export(DirectoryPath, "JPG", 500, 500);
8
9 string[] Files = Directory.GetFiles(DirectoryPath);
10 foreach (string item in Files)
11 {
12 lbPresentationSlides.Items.Add(item.Replace(DirectoryPath, string.Empty));
13 }
14 }
Eklenilen bu kodun ilk satırında FileDialog nesnesinin dosya seçilmesinin kontrolü sağlanmakta. Sonrasında fileName değişkeni ile seçilen dosyanın adı, filePath değişkeni ile dosyaya ait yol alınır. Sonrasında ilk başta oluşturuduğumuz değişkene ait Powerpoint ApplicationClass kullanılıyor ve seçilen Powerpoint dosyası açılıyor. Export methodu ile de açılan bu powerpoint dosyasının tüm slaytları JPG formatında 500 * 500 olarak başta oluşturduğumuz değişkene ait dizine kaydedilmesi sağlanır. Sonrasında Files string dizisine eklenilen dizindeki tüm dosyaların alınması ve ListBox içerisine atılması sağlanır.
Son aşamada ise ListBox nesnesinin seçilen her elemanına ait resmin sağ alandaki PictureBox içerisinde gösterilmesini sağlayacağız. Burada ListBox nesnesinin SelectedIndexChanged eventi'ne aşağıdaki kodu ekliyoruz.
pbSlide.Image = Image.FromFile(DirectoryPath + lbPresentationSlides.Text);
Bu şekilde projemizi hazırlamış oluyoruz. Projeye ait kaynak kodlarına buraya tıklayarak ulaşabilirsiniz.
Etiketler: office, .net 2.0