Question

J'ai besoin de créer une présentation PowerPoint 2007 à partir d'un modèle avec Format XML ouvert 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:

  • Diapositive texte
  • Diapositive d'image

L'application doit désormais créer une copie du fichier de modèle, créer plusieurs copies des diapositives de texte et d'image et remplacer les propriétaires de contenu par du contenu.

J'en ai déjà trouvé Extraits de code de Microsoft Pour modifier le titre d'une diapositive, supprimez-les ou remplacez 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.

Était-ce utile?

La solution

J'ai cherché pour une réponse similaire et j'ai trouvé des ressources à partager:

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

ou plus d'échantillons

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

ou ce site Web

http://www.openxmldeveloper.com

Il y a aussi ceci Livre gratuit documentant la norme OpenXML ce qui était quelque peu utile.

Autres conseils

Ceci est un exemple de ce que je recherche, mais sinon, faites-le moi savoir: http://openxmldeveloper.org/articles/7429.aspx

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érez toutes les diapositives / formes

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);

                            }
                        }
                    }

}

J'espère que cela pourrait clarifier votre demande.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top