public void TableCellSpacing() { using (MemoryStream mem = new MemoryStream()) { WordDocument doc = new WordDocument(mem); doc.Process(new HtmlParser("<table cellspacing='5'><tr><td>test</td></tr></table>")); Assert.IsNotNull(doc.Document.Body); Assert.AreEqual(1, doc.Document.Body.ChildElements.Count); Word.Table table = doc.Document.Body.ChildElements[0] as Word.Table; Assert.IsNotNull(table); Assert.AreEqual(3, table.ChildElements.Count); TableRow row = table.ChildElements[2] as TableRow; Assert.IsNotNull(row); Assert.AreEqual(2, row.ChildElements.Count); TableRowProperties rowProperties = row.ChildElements[0] as TableRowProperties; Assert.IsNotNull(rowProperties); Assert.AreEqual(1, rowProperties.ChildElements.Count); TableCellSpacing cellSpacing = rowProperties.ChildElements[0] as TableCellSpacing; Assert.IsNotNull(cellSpacing); Assert.AreEqual("100", cellSpacing.Width.Value); Assert.AreEqual(TableWidthUnitValues.Dxa, cellSpacing.Type.Value); TableCell cell = row.ChildElements[1] as TableCell; Assert.IsNotNull(cell); Assert.AreEqual(1, cell.ChildElements.Count); Paragraph para = cell.ChildElements[0] as Paragraph; Assert.IsNotNull(para); Assert.AreEqual(1, para.ChildElements.Count); Run run = para.ChildElements[0] as Run; Assert.IsNotNull(run); Assert.AreEqual(1, run.ChildElements.Count); Word.Text text = run.ChildElements[0] as Word.Text; Assert.IsNotNull(text); Assert.AreEqual(0, text.ChildElements.Count); Assert.AreEqual("test", text.InnerText); OpenXmlValidator validator = new OpenXmlValidator(); var errors = validator.Validate(doc.WordprocessingDocument); Assert.AreEqual(0, errors.Count()); } }
private TableCellSpacing BuildCellSpacing(float val, TableWidthUnitValues type) { var spacing = new TableCellSpacing { Type = type, Width = val.ToString() }; return(spacing); }
public static (TableWidthUnitValues, float) ExtractSpacingValue(TableCellSpacing tableCellSpacing) { var widthStr = tableCellSpacing.Width?.Value; var widthValue = (widthStr != null && widthStr != "") ? float.Parse(widthStr) : 0.0f; var type = tableCellSpacing.Type?.Value; var widthUnit = type.GetValueOrDefault(TableWidthUnitValues.Dxa); switch (widthUnit) { case TableWidthUnitValues.Nil: case TableWidthUnitValues.Auto: widthValue = 0.0f; break; case TableWidthUnitValues.Dxa: widthValue = widthValue / 20; // Style.Properties.Utils.TwipsToCm(widthValue); break; case TableWidthUnitValues.Pct: break; } return(widthUnit, widthValue); }
private static Table GetTable(string consultor, string fecha, string titulo, string carpeta) { Table table = new Table(); TableProperties tblPr = new TableProperties(); //**********************Armado de estilo de tabla según una doctrina********************************// TableWidth tw = new TableWidth() { Width = "5000", Type = new EnumValue <TableWidthUnitValues>(TableWidthUnitValues.Pct) }; tblPr.Append(tw); TableCellSpacing tcs = new TableCellSpacing() { Width = "0", Type = new EnumValue <TableWidthUnitValues>(TableWidthUnitValues.Dxa) }; tblPr.Append(tcs); TableCellMarginDefault tcm = new TableCellMarginDefault { TopMargin = new TopMargin() { Width = "60", Type = new EnumValue <TableWidthUnitValues>(TableWidthUnitValues.Dxa) }, //LeftMargin = new LeftMargin() { Width = "60", Type = new EnumValue<TableWidthUnitValues>(TableWidthUnitValues.Dxa) }, //RightMargin = new RightMargin() { Width = "60", Type = new EnumValue<TableWidthUnitValues>(TableWidthUnitValues.Dxa) }, BottomMargin = new BottomMargin() { Width = "60", Type = new EnumValue <TableWidthUnitValues>(TableWidthUnitValues.Dxa) } }; tblPr.Append(tcm); TableLook tl = new TableLook() { Val = new HexBinaryValue() { Value = "04A0" }, FirstRow = new OnOffValue() { Value = true }, LastRow = new OnOffValue() { Value = false }, FirstColumn = new OnOffValue() { Value = true }, LastColumn = new OnOffValue() { Value = false }, NoHorizontalBand = new OnOffValue() { Value = false }, NoVerticalBand = new OnOffValue() { Value = true } }; tblPr.Append(tl); table.Append(tblPr); TableGrid tg = new TableGrid(); GridColumn gc1 = new GridColumn() { Width = "2844" }; GridColumn gc2 = new GridColumn() { Width = "6636" }; tg.Append(gc1); tg.Append(gc2); table.Append(tg); //**********************Fin de Armado de estilo de tabla según una doctrina*************************// List <OpenXmlElement> rows = new List <OpenXmlElement>(); //Preparo lista de columnas para el consultor List <OpenXmlElement> cells = new List <OpenXmlElement>(); //Preparo lista de columnas para el Título TableCell tcTitulo = new TableCell(TableParagraphStyle("TÍTULO:")); cells.Add(tcTitulo); TableCell tcTituloValor = new TableCell(TableParagraphStyle(titulo)); cells.Add(tcTituloValor); rows.Add(new TableRow(cells)); //Preparo lista de columnas para la fecha cells = new List <OpenXmlElement>(); TableCell tcAutores = new TableCell(TableParagraphStyle("AUTOR/ES:")); cells.Add(tcAutores); TableCell tcConsultor = new TableCell(TableParagraphStyle(consultor)); cells.Add(tcConsultor); rows.Add(new TableRow(cells)); //Preparo lista de columnas para la fecha cells = new List <OpenXmlElement>(); TableCell tcFecha = new TableCell(TableParagraphStyle("FECHA:")); cells.Add(tcFecha); TableCell tcFechaValor = new TableCell(TableParagraphStyle(fecha)); cells.Add(tcFechaValor); rows.Add(new TableRow(cells)); //Preparo lista de columnas para las Voces cells = new List <OpenXmlElement>(); TableCell tcVoces = new TableCell(TableParagraphStyle("TEMA:")); cells.Add(tcVoces); TableCell tcCarpeta = new TableCell(TableParagraphStyle(carpeta)); cells.Add(tcCarpeta); rows.Add(new TableRow(cells)); table.Append(rows); return(table); }