private static void ReplaceWordRun(OXD.Paragraph paragraph, OXD.Run initRun, OXD.Run finalRun) { if (null != paragraph.Descendants<OXD.Run>()) { List<OXD.Run> runs = paragraph.Descendants<OXD.Run>().ToList(); foreach (var run in runs) { if (initRun != run) { paragraph.RemoveChild<OXD.Run>(run); } } paragraph.ReplaceChild<OXD.Run>(finalRun, initRun); } }
private static void ModifyPowerPointRowTextContent(OXD.TableRow headerRowTemplate, string txt) { if (null != headerRowTemplate) { var cells = headerRowTemplate.Descendants<OXD.TableCell>(); if (null != cells) { foreach (var cell in cells) { ModifyPowerPointCellTextContent(cell, txt); } } } }
private static void RemoveLastGridColumn(OXD.TableGrid tableGrid) { var lastColumn = tableGrid.Descendants<OXD.GridColumn>().Last(); tableGrid.RemoveChild<OXD.GridColumn>(lastColumn); }
private static void ModifyPowerPointCellTextContent(OXD.TableCell cell, string txt) { if (null != cell) { OXD.TextBody textbody = cell.Descendants<OXD.TextBody>().FirstOrDefault(); if (null != textbody) { OXD.TextBody final_textbody = textbody.CloneNode(true) as OXD.TextBody; OXD.Paragraph paragraph = final_textbody.Descendants<OXD.Paragraph>().FirstOrDefault(); if (null != paragraph) { OXD.Paragraph final_paragraph = paragraph.CloneNode(true) as OXD.Paragraph; ModifyPowerPointParagraphTextContent(final_paragraph, txt); final_textbody.ReplaceChild<OXD.Paragraph>(final_paragraph, paragraph); } cell.ReplaceChild<OXD.TextBody>(final_textbody, textbody); } } }
private static void ModifyPowerPointParagraphTextContent(OXD.Paragraph paragraph, string txt) { if (null != paragraph) { OXD.Run run = paragraph.Descendants<OXD.Run>().FirstOrDefault(); if (null != run) { OXD.Run final_run = run.CloneNode(true) as OXD.Run; OXD.Text text = final_run.Descendants<OXD.Text>().FirstOrDefault(); OXD.Text final_text = (null == text ? new OXD.Text() : text.CloneNode(true) as OXD.Text); final_text.Text = txt; try { final_run.ReplaceChild<OXD.Text>(final_text, text); } catch { throw; } ReplaceWordRun(paragraph, run, final_run); } else { run = new OXD.Run(); } } }
private static void AddNewGridColumn(OXD.TableGrid tableGrid, OXD.TableRow headerRow, OXD.TableRow contentRow) { var columns = tableGrid.Descendants<OXD.GridColumn>(); if (null != columns && columns.Any()) { var headerLastCell = headerRow.Descendants<OXD.TableCell>().Last(); var contentLastCell = contentRow.Descendants<OXD.TableCell>().Last(); double tableWidth = columns.Sum(_ => Convert.ToInt32(_.Width.Value)); var newColWidth = Math.Floor(tableWidth / columns.Count()); foreach (var col in columns) { col.Width = col.Width > 0 ? Convert.ToInt64(Math.Floor((tableWidth - newColWidth) / (tableWidth / col.Width))) : 0; } tableGrid.InsertAfter<OXD.GridColumn>(new OXD.GridColumn() { Width = Convert.ToInt64(newColWidth) }, columns.Last()); headerRow.InsertAfter<OXD.TableCell>((OXD.TableCell)headerLastCell.CloneNode(true), headerLastCell); contentRow.InsertAfter<OXD.TableCell>((OXD.TableCell)contentLastCell.CloneNode(true), contentLastCell); } }
/// <summary> /// Gets the size of the text in the given run /// </summary> /// <param name="run">Run of interest</param> /// <returns>Size of the font in points, /// default is 11.0pt</returns> private string RunFontSize(Drawing.Run run) { var runProperty = run.Descendants<Drawing.RunProperties>().FirstOrDefault(); if (runProperty.FontSize != null) return String.Format("{0:0.0}pt", runProperty.FontSize.Value / 100.0); else return "11.0pt"; }
/// <summary> /// Gets if this run is Strike-through or not /// </summary> /// <param name="run">Run of interest</param> /// <returns>True if it is strike-through, false otherwise</returns> private bool IsRunStrikeThrough(Drawing.Run run) { var runProperty = run.Descendants<Drawing.RunProperties>().FirstOrDefault(); return runProperty.Strike != null && runProperty.Strike.Value != Drawing.TextStrikeValues.NoStrike; }
/// <summary> /// Gets if this run is underlined or not /// </summary> /// <param name="run">Run of interest</param> /// <returns>True if it is underlined, false otherwise</returns> private bool IsRunUnderlined(Drawing.Run run) { var runProperty = run.Descendants<Drawing.RunProperties>().FirstOrDefault(); return runProperty.Underline != null && runProperty.Underline.Value != Drawing.TextUnderlineValues.None; }
/// <summary> /// Gets if this run is italic or not /// </summary> /// <param name="run">Run of interest</param> /// <returns>True if it is italic, false otherwise</returns> private bool IsRunItalic(Drawing.Run run) { var runProperty = run.Descendants<Drawing.RunProperties>().FirstOrDefault(); return runProperty.Italic != null && runProperty.Italic.Value; }