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.

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top