/// <summary> /// Append given text with a given font style. /// </summary> /// <param name="Text">The text.</param> /// <param name="TextFont">The font style.</param> public void AppendText(string Text, SLFont TextFont) { Run run = new Run(); RunProperties runprops = new RunProperties(); if (TextFont.FontName != null) { runprops.Append(new RunFont() { Val = TextFont.FontName }); } if (TextFont.CharacterSet != null) { runprops.Append(new RunPropertyCharSet() { Val = TextFont.CharacterSet.Value }); } if (TextFont.FontFamily != null) { runprops.Append(new FontFamily() { Val = TextFont.FontFamily.Value }); } if (TextFont.Bold != null) { runprops.Append(new Bold() { Val = TextFont.Bold.Value }); } if (TextFont.Italic != null) { runprops.Append(new Italic() { Val = TextFont.Italic.Value }); } if (TextFont.Strike != null) { runprops.Append(new Strike() { Val = TextFont.Strike.Value }); } if (TextFont.Outline != null) { runprops.Append(new Outline() { Val = TextFont.Outline.Value }); } if (TextFont.Shadow != null) { runprops.Append(new Shadow() { Val = TextFont.Shadow.Value }); } if (TextFont.Condense != null) { runprops.Append(new Condense() { Val = TextFont.Condense.Value }); } if (TextFont.Extend != null) { runprops.Append(new Extend() { Val = TextFont.Extend.Value }); } if (TextFont.HasFontColor) { runprops.Append(TextFont.clrFontColor.ToSpreadsheetColor()); } if (TextFont.FontSize != null) { runprops.Append(new FontSize() { Val = TextFont.FontSize.Value }); } if (TextFont.HasUnderline) { runprops.Append(new Underline() { Val = TextFont.Underline }); } if (TextFont.HasVerticalAlignment) { runprops.Append(new VerticalTextAlignment() { Val = TextFont.VerticalAlignment }); } if (TextFont.HasFontScheme) { runprops.Append(new FontScheme() { Val = TextFont.FontScheme }); } if (runprops.ChildElements.Count > 0) { run.Append(runprops); } run.Text = new Text(); run.Text.Text = Text; if (SLTool.ToPreserveSpace(Text)) { run.Text.Space = SpaceProcessingModeValues.Preserve; } bool bFound = false; OpenXmlElement oxe = istrReal.FirstChild; foreach (var child in this.istrReal.ChildElements) { if (child is Text || child is Run) { oxe = child; bFound = true; } } if (bFound) { istrReal.InsertAfter(run, oxe); } else { istrReal.PrependChild(run); } }