2009-04-01 3 views
4

Je dois créer une présentation PowerPoint 2007 à partir d'un modèle avec Open XML Format SDK 2.0. Le modèle doit être fourni par le client et est utilisé pour un style de mise en page individuel (police, couleur d'arrière-plan ou image, ...). Il doit contenir deux diapositives prédéfinies:Créer une présentation PowerPoint 2007 à partir d'un modèle

  • Texte slide
  • slide image

L'application devrait maintenant créer une copie du fichier de modèle, créer plusieurs copies des diapositives de texte et d'images et remplacer les espaces réservés de contenu par du contenu.

J'ai déjà trouvé quelques code snippets from Microsoft pour modifier le titre d'une diapositive, les supprimer ou remplacer une image sur une diapositive. Mais je n'ai pas découvert comment je peux créer une copie d'une diapositive existante. Peut-être que quelqu'un peut m'aider avec ça.

Répondre

1

je cherche autour d'une réponse similaire et ont trouvé quelques ressources à partager:

http://msdn.microsoft.com/en-us/library/cc850834(office.14).aspx

ou plusieurs échantillons

http://msdn.microsoft.com/en-us/library/cc850828(office.14).aspx

ou ce site

http://www.openxmldeveloper.com

Il y a aussi ce free book documenting the OpenXML standard qui a été quelque peu utile.

+1

Dans votre lien de livre vous liez au fichier local. = P –

+0

Merci pour le conseil, le lien du livre a été corrigé. –

0

Pour C#

File.Copy(SourceFile,ExportedFile); 

Vous gardez essentiellement le fichier d'origine.

Maintenant, vous ouvrez ExportedFile

PowerPoint.Application ppApp = new PowerPoint.Application(); 
PowerPoint.Presentation presentation; 
presentation = ppApp.Presentations.Open(ExportedFile, MsoTriState.msoFalse, MsoTriState.msoTrue, MsoTriState.msoTrue); 

maintenant itérer toutes les diapositives/façonne

foreach (PowerPoint.Slide slide in presentation.Slides) 
{ 
        slide.Select(); 
        foreach (PowerPoint.Shape shape in slide.Shapes) 
        { 
         if (shape.Type.ToString().Equals("<any type of shape>")) 
         { 
          if (shape.TextFrame.TextRange.Text.Equals("<contains a name")) 
          { 
           shape.TextFrame.TextRange.Text = <new value>; 
           shape.Delete(); // or delete 
           shape.AddPicture(<your new picture>, MsoTriState.msoTrue, MsoTriState.msoTrue, left, top, width, height); 

          } 
         } 
        } 

}

Espérons que cela pourrait clarifier votre demande.

Questions connexes