I am having trouble appending a shape to a slide master. I am trying to insert a textbox with some text in the slide master, like a footer. I am very new to openxml and I was wondering if someone can help me. When I use my code below, I end up corrupting my presentation file. Any help is very much appreciated:
PresentationPart
SlideMasterPart smPart = (SlideMasterPart)presentationPart.GetPartById("rId1");
CommonSlideData sldData = smPart.SlideMaster.CommonSlideData;
ShapeTree shapeTree = (ShapeTree)sldData.ShapeTree;
Shape shape =newShape();
NonVisualShapeProperties nonVisualShapeProperties = newNonVisualShapeProperties() ;
NonVisualDrawingProperties nonVisualDrawingProperties = newNonVisualDrawingProperties() { Id = (UInt32Value)1U, Name = "Footer" };
NonVisualShapeDrawingProperties nonVisualShapeDrawingProperties = newNonVisualShapeDrawingProperties();
ApplicationNonVisualDrawingProperties applicationNonVisualDrawingProperties = newApplicationNonVisualDrawingProperties();
nonVisualShapeProperties.Append(nonVisualDrawingProperties);
nonVisualShapeProperties.Append(nonVisualShapeDrawingProperties);
nonVisualShapeProperties.Append(applicationNonVisualDrawingProperties);
TextBody textBody =newTextBody();Paragraph paragraph = new A.Paragraph();
A.
ParagraphProperties paragraphProperties = new A.ParagraphProperties() { DefaultTabSize = 1018167 };A.
DefaultRunProperties defaultRunProperties = new A.DefaultRunProperties();paragraphProperties.Append(defaultRunProperties);
A.
Run run =new A.Run();A.
RunProperties runProperties = new A.RunProperties() { Language = "en-US", FontSize = 700, Dirty = false };runProperties.SetAttribute(
newOpenXmlAttribute("","smtClean","","0"));Text text = new A.Text();
text.Text =
"© 2014 XYZ Limited-------------";run.Append(runProperties);
run.Append(text);
paragraph.Append(paragraphProperties);
paragraph.Append(run);
textBody.Append(paragraph);
shape.Append(textBody);
shapeTree.Append(shape);
presentationPart.Presentation.Save();
A.
A.
presentationPart = pptDoc.PresentationPart;