2012-05-04 15 views
6

Ho una presentazione in PowerPoint che contiene 3 diapositive. Ogni diapositiva ha una casella di testo che è un segnaposto. Vorrei sostituire i contenuti della Textbox su una diapositiva.Modifica testo in una casella di testo nella diapositiva di PowerPoint

ho bisogno di sapere come fare questo usando C# e OpenXML

Grazie una tonnellata

+0

Hai funzionato? Sei in grado di inviare la soluzione per favore? –

risposta

1

fare questo per ogni diapositiva, si desidera modificare:

ODP.ShapeTree tree = slide.Slide.CommonSlideData.ShapeTree; 
     foreach (ODP.Shape shape in tree.Elements<ODP.Shape>()) 
     { 
      // Run through all the paragraphs in the document 
      foreach (ODD.Paragraph paragraph in shape.Descendants().OfType<ODD.Paragraph>()) 
      { 
       foreach (ODD.Run run in paragraph.Elements<ODD.Run>()) 
       { 
        if (run.Text.InnerText.Contains("PLACEHOLDER")) 
        { 
         run.Text = new ODD.Text("Your new text"); 
        } 
       } 
      } 
     } 

Tenete a mente, che se i segnaposti del modello contengono spazi, è possibile che vengano creati due singoli elementi di esecuzione. Quindi, invece di un elemento di esecuzione con run.Text di "Place holder", potresti ottenere una corsa con run.text di "Place" e un altro con run.Text "holder".

+1

Ho uno scenario, che ho solo un paragrafo, nessun elemento figlio al suo interno. provo ad aggiungere l'elemento di esecuzione e di testo al suo interno ancora NON FUNZIONANTE. Qualsiasi aiuto è gradito – Eldho

+0

Quando eseguo questa operazione e salvo il file, il testo modificato non è presente. Se controllo 'run.Text' nel debugger mostra il testo aggiornato. –

Problemi correlati