Créer une présentation PowerPoint 2007 à partir d'un modèle
-
22-08-2019 - |
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.
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.