Récupérer une image d'un PowerPoint [Résolu]

Messages postés
8
Date d'inscription
mercredi 12 mars 2008
Statut
Membre
Dernière intervention
13 mars 2012
- - Dernière réponse : Christophe59193
Messages postés
8
Date d'inscription
mercredi 12 mars 2008
Statut
Membre
Dernière intervention
13 mars 2012
- 14 févr. 2012 à 10:56
Bonjour tout le monde,

Alors aujourd'hui, je viens vous voir car je suis légèrement bloqué (pour ne pas dire complètement)

Je travaille actuellement avec PowerPoint (Microsoft.Office.Interop.PowerPoint). J'ai quelques soucis pour récupérer des éléments.

Jusqu'à présent, aucun soucis pour récupérer tout ce qui concerne le nombre de slides, les formes, les textes, etc. Mais les images, pas moyen de les récupérer !

Je vous mets le code que j'ai actuellement (pour la partie qui ne fonctionne pas):

if (PowerPoint.Slides[i].Shapes[j].Type == msoTriState.msoPicture)
{
    Image image;
    // Ici il faut mettre la forme n°j du slide n°i dans l'image
}


Cependant après de très longue recherche (par moi même et sur le web) pas le moyen de trouver comment faire (pour "caster" la forme en image).

Quelqu'un aurait-il une idée ou déjà eu le problème?

Merci d'avance
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
8
Date d'inscription
mercredi 12 mars 2008
Statut
Membre
Dernière intervention
13 mars 2012
3
Merci
Solution trouvée:

PowerPoint.Shape shape = PresPpt.Slides[i].Shapes[j];
                                StringBuilder Images;
                                Images = new StringBuilder(Repertoire_slide.ToString() + "\");
                                Images.Append(compteur_image.ToString());
                                Images.Append(".jpg");
                                shape.Export(Images.ToString(), PpShapeFormat.ppShapeFormatJPG, (int)PresPpt.Slides[i].Master.Width, (int)PresPpt.Slides[i].Master.Height, PpExportMode.ppRelativeToSlide);


Compteur_image servira pour différencier les images s'il y en a plusieurs.
Après il est possible de créer des sous répertoires par slide pour être plus clair etc.

Merci quand même !

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 202 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Christophe59193
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
11
0
Merci
Salut,

je ne connais pas du tout ce namespace, mais je suis pas mauvais avec la MSDN ^^
Voilà ce que j'ai trouvé :
- l'interface Shape possède une méthode Copy qui permet de copier l'élément dans le presse-papier,
- la classe Clipboard possède une méthode GetDataObject qui permet de récupérer la donnée (IDataObject) dans le presse-papier,
- la classe IDataObject possède une méthode GetData qui permet de récupérer la donnée selon un format que tu dois pouvoir directement caster en Image.

Je n'ai pas trouvé de méthode directe pour récupérer des images depuis PowerPoint. Excel possède bien une Shape.CopyPicture(), mais pas PowerPoint.
Commenter la réponse de cs_jopop
Messages postés
8
Date d'inscription
mercredi 12 mars 2008
Statut
Membre
Dernière intervention
13 mars 2012
0
Merci
Solution trouvée:

PowerPoint.Shape shape = PresPpt.Slides[i].Shapes[j];
StringBuilder Images;
Images = new StringBuilder(Repertoire_slide.ToString() + "\");
Images.Append(compteur_image.ToString());
Images.Append(".jpg");
shape.Export(Images.ToString(), PpShapeFormat.ppShapeFormatJPG, (int)PresPpt.Slides[i].Master.Width, (int)PresPpt.Slides[i].Master.Height, PpExportMode.ppRelativeToSlide);

Compteur_image servira pour différencier les images s'il y en a plusieurs.
Après il est possible de créer des sous répertoires par slide pour être plus clair etc.

Merci quand même !
Commenter la réponse de Christophe59193