Domanda

Devo creare una presentazione di PowerPoint 2007 da un modello con Open XML Format SDK 2.0. Il modello deve essere fornito dal cliente e viene utilizzato per uno stile di layout individuale (carattere, colore di sfondo o immagine, ...). Deve contenere due diapositive predefinite:

  • Slide di testo
  • Slide dell'immagine

L'applicazione dovrebbe ora creare una copia del file modello, creare più copie delle diapositive di testo e immagine e sostituire i titolari di contenuto con alcuni contenuti.

Ne ho già trovati alcuni frammenti di codice da Microsoft Per modificare il titolo di una diapositiva, eliminali o sostituire un'immagine su una diapositiva. Ma non ho scoperto come posso creare una copia di una diapositiva esistente. Forse qualcuno può aiutarmi con questo.

È stato utile?

Soluzione

Ho cercato una risposta simile e ho trovato alcune risorse da condividere:

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

o più campioni

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

o questo sito web

http://www.openxmldeloper.com

C'è anche questo Libro gratuito Documentazione dello standard OpenXML che è stato in qualche modo utile.

Altri suggerimenti

Questo è un esempio di ciò che sto cercando, ma in caso contrario, fammi sapere: http://openxmldeveloper.org/articles/7429.aspx

Per c#

File.Copy(SourceFile,ExportedFile);

Fondamentalmente tieni il file originale.

Ora apri il file esportato

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

Ora itera tutte le diapositive/forme

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

                            }
                        }
                    }

}

Spero che questo possa chiarire la tua richiesta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top