internal ParagraphSearchResult(int startIndex, int length, RunSearchResult[] runs, DocumentContentContainer container) { this.container = container; StartIndex = startIndex; Length = length; Runs = runs; }
public RunDrawing(XElement xml, DocumentContentContainer documentContentContainer) : base(xml) { if (xml.Name != Namespaces.w + "drawing") { throw new ArgumentException($"XML element must be drawing but was {xml.Name}", nameof(xml)); } this.documentContentContainer = documentContentContainer; }
internal Paragraph(XElement xml, DocumentContentContainer parent) : base(xml, parent) { }
internal static Table Create(CreateTableParameters parameters, DocumentContentContainer parent) { if (parameters.Rows < 1) { throw new ArgumentOutOfRangeException(nameof(parameters.Rows), parameters.Rows, "Rows must be greater than 0"); } if (parameters.ColumnWidths.Length < 1) { throw new ArgumentOutOfRangeException(nameof(parameters.ColumnWidths), parameters.ColumnWidths.Length, "ColumnWidths must not be empty"); } var columnWidths = parameters.ColumnWidths; var columnWidthUnit = parameters.ColumnWidthUnit; int[] computedColumnWidths = columnWidths.Select(value => ComputeWidth(columnWidthUnit, value)).ToArray(); if (columnWidthUnit == WidthUnit.Pc) // Fixing the last width so the sum of Pct widths equals 5000 for LibreOffice { computedColumnWidths[computedColumnWidths.Length - 1] += 5000 - computedColumnWidths.Sum(); } var tbl = new XElement(Namespaces.w + "tbl"); // //This code below is commented out as it does not actually impact behavior // if (parameters.ColumnWidthUnit != WidthUnit.Pc) // { // var tableGrid = new XElement(Namespaces.w + "tblGrid"); // foreach (var c in computedColumnWidths) // tableGrid.Add(new XElement(Namespaces.w + "gridCol", new XAttribute(Namespaces.w + "w", c))); // // tbl.Add(tableGrid); // } for (var r = 0; r < parameters.Rows; r++) { var row = new XElement(Namespaces.w + "tr"); foreach (var c in computedColumnWidths) { var cell = CreateTableCell(columnWidthUnit == WidthUnit.Pc, c); row.Add(cell); } tbl.Add(row); } var table = new Table(tbl, parent); var properties = table.Properties; properties.StyleId = parameters.Style; properties.LayoutType = TableLayoutType.Fixed; if (parameters.TableWidth.HasValue && parameters.TableWidthUnit.HasValue) { if (parameters.TableWidthUnit == WidthUnit.Pc) { properties.PreferredWidthFp = ComputeWidth(WidthUnit.Pc, parameters.TableWidth.Value); } else { properties.PreferredWidthTw = ComputeWidth(parameters.TableWidthUnit.Value, parameters.TableWidth.Value); } } return(table); }
internal Table(XElement xml, DocumentContentContainer parent) : base(xml, parent) { }
internal Run(XElement xml, DocumentContentContainer contentContainer) : base(xml) { this.contentContainer = contentContainer; }
internal static Run Create(string text, DocumentContentContainer contentContainer) { var xml = new XElement(Namespaces.w + "r", BuildContent(text).Select(e => e.Xml)); return(new Run(xml, contentContainer)); }
internal static Run CreateEmpty(DocumentContentContainer contentContainer) { var xml = new XElement(Namespaces.w + "r"); return(new Run(xml, contentContainer)); }