Bonjour,

Je cherche à extraire toutes les slides d'une présentation Powerpoint vers des fichiers .ppt (slide1.ppt, slide2.ppt, ...). J'ai utilisé l'objet COM de Office mais il semble que son fonctionnement soit très aléatoire (allant du fonctionnement correct au plantage powerpoint).

Ci-dessous mon bout de code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
            Microsoft.Office.Interop.PowerPoint.Application msPowerPointPresentation = null;
            Microsoft.Office.Interop.PowerPoint.Presentation ppt = null;
            msPowerPointPresentation = new Microsoft.Office.Interop.PowerPoint.Application();
            ppt = msPowerPointPresentation.Presentations.Open(@tmpPathMainPpt, MsoTriState.msoCTrue, MsoTriState.msoCTrue, MsoTriState.msoFalse);
            if (ppt != null)
            {
                int compteur = 0;
                foreach (Slide tmpSlide in ppt.Slides)
                {
                    compteur++;
 
                    string name = System.IO.Path.GetDirectoryName(toAbsolutePath(filename));
                    name += "\\" + compteur + ".ppt";
                    Console.WriteLine(name);
                    try
                    {
                        tmpSlide.Export(name, "PPT", 1024, 768);
                    }
                    catch
                    {
                    }
                }
 
                try
                {
                    ppt.Close();
                    ppt = null;
                }
                catch
                {
                }
 
                try
                {
                    msPowerPointPresentation.Quit();
                    msPowerPointPresentation = null;
                }
                catch
                {
                }
Actuellement, il est capable de produire le premier slide puis plante pour la génération des suivants. Il semble qu'il y est un problème de serveur RPC (serveur que l'on appelle pour chaque instruction COM si j'ai bien tout compris) qui ne répond pas ( "Le serveur RPC n’est pas disponible. (Exception de HRESULT : 0x800706BA) ").
Pour information, ce même bout de code n'a jamais planté si je produit des png.

J'apprécierai votre aide. Merci d'avance.