示例#1
0
        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());
            }
        }
示例#2
0
        private TableCellSpacing BuildCellSpacing(float val, TableWidthUnitValues type)
        {
            var spacing = new TableCellSpacing
            {
                Type  = type,
                Width = val.ToString()
            };

            return(spacing);
        }
示例#3
0
        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);
        }
示例#4
0
        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);
        }