I have a Powerpoint presentation which contains 3 slides. Each slide has a Textbox which is a place holder. I would like to replace the Textbox contents on one slide.
I need to know how to do this using C# and OpenXML
Thanks a ton
Do this for each slide, you want to change:
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");
}
}
}
}
Keep in mind, that if your template's placeholders contain spaces, this may create two individual run elements. So instead of one run element with run.Text of "Place holder", you might get one run with run.text of "Place" and another one with run.Text "holder".
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With