Erstellen Sie PowerPoint 2007 -Präsentation aus einer Vorlage
-
22-08-2019 - |
Frage
Ich muss eine PowerPoint 2007 -Präsentation aus einer Vorlage mit erstellen Öffnen Sie das XML -Format SDK 2.0. Die Vorlage muss vom Kunden bereitgestellt werden und wird für einen individuellen Layoutstil (Schriftart, Hintergrundfarbe oder Bild, ...) verwendet. Es muss zwei vordefinierte Folien enthalten:
- Text Folie
- Bildrutsche
Die Anwendung sollte nun eine Kopie der Vorlagendatei erstellen, mehrere Kopien der Text- und Bildrutschen erstellen und die Inhaltsklassen durch Inhalte ersetzen.
Ich habe schon einige gefunden Code -Snippets von Microsoft Um den Titel einer Folie zu bearbeiten, löschen Sie sie oder ersetzen Sie ein Bild auf einer Folie. Aber ich habe nicht herausgefunden, wie ich eine Kopie einer vorhandenen Folie erstellen kann. Vielleicht kann mir jemand dabei helfen.
Lösung
Ich habe mich nach einer ähnlichen Antwort umgesehen und einige Ressourcen zum Teilen gefunden:
http://msdn.microsoft.com/en-us/library/cc850834(office.14).aspx
oder mehr Proben
http://msdn.microsoft.com/en-us/library/cc850828(office.14).aspx
oder diese Website
http://www.openxmldeveloper.com
Da ist auch das Kostenloses Buch Dokumentieren des OpenXML -Standards Was etwas hilfreich war.
Andere Tipps
Dies ist ein Beispiel für das, wonach ich suchst, aber wenn nicht, lassen Sie es mich wissen: http://openxmldeveloper.org/articles/7429.aspx
Für C#
File.Copy(SourceFile,ExportedFile);
Sie behalten im Grunde die Originaldatei.
Jetzt öffnen Sie exportierte Datei
PowerPoint.Application ppApp = new PowerPoint.Application();
PowerPoint.Presentation presentation;
presentation = ppApp.Presentations.Open(ExportedFile, MsoTriState.msoFalse, MsoTriState.msoTrue, MsoTriState.msoTrue);
Iterieren Sie jetzt alle Folien/Formen
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);
}
}
}
}
Ich hoffe, dies könnte Ihre Anfrage klären.