Ejemplo n.º 1
0
        public override void Build(HtmlBuilderContext context, PrintElementList element, TextWriter result)
        {
            result.Write("<div style=\"");

            result.ApplyBaseStyles(element);
            result.ApplyBlockStyles(element);

            result.Write("\">");

            if (IsUnorderedList(element))
            {
                result.Write("<ul style=\"");
            }
            else
            {
                result.Write("<ol start=\"");
                if (element.StartIndex != null)
                {
                    result.Write(element.StartIndex);
                }
                result.Write("\" style=\"");
            }

            result.ApplyListStyles(element);

            result.Write("\">");

            result.ApplySubOrSup(element);

            foreach (var item in element.Items)
            {
                result.Write("<li style=\"");

                result.Write("padding-left:");
                result.WriteInvariant(element.MarkerOffsetSize);
                result.Write("px;");

                result.Write("\">");

                context.Build(item, result);

                result.Write("</li>");
            }

            result.ApplySubOrSupSlash(element);

            result.Write(IsUnorderedList(element) ? "</ul>" : "</ol>");

            result.Write("</div>");
        }
        public override void Build(HtmlBuilderContext context, PrintElementRun element, TextWriter result)
        {
            result.Write("<span style=\"");

            result.ApplyBaseStyles(element);
            result.ApplyInlineStyles(element);

            result.Write("\">");

            result.ApplySubOrSup(element);

            result.Write(element.Text);

            result.ApplySubOrSupSlash(element);

            result.Write("</span>");
        }
Ejemplo n.º 3
0
        public override void Build(HtmlBuilderContext context, PrintElementItalic element, TextWriter result)
        {
            result.Write("<i style=\"");
            result.ApplyBaseStyles(element);
            result.ApplyInlineStyles(element);
            result.Write("\">");

            result.ApplySubOrSup(element);

            foreach (var item in element.Inlines)
            {
                context.Build(item, result);
            }

            result.ApplySubOrSupSlash(element);

            result.Write("</i>");
        }
        public override void Build(HtmlBuilderContext context, PrintElementHyperlink element, TextWriter result)
        {
            result.Write("<a href=\"");
            result.Write(element.Reference);
            result.Write("\" style=\"");
            result.ApplyBaseStyles(element);
            result.ApplyInlineStyles(element);
            result.Write("\">");

            result.ApplySubOrSup(element);

            foreach (var item in element.Inlines)
            {
                context.Build(item, result);
            }

            result.ApplySubOrSupSlash(element);

            result.Write("</a>");
        }
Ejemplo n.º 5
0
        public override void Build(HtmlBuilderContext context, PrintElementSection element, TextWriter result)
        {
            result.Write("<div style=\"");

            result.ApplyBaseStyles(element);
            result.ApplyBlockStyles(element);

            result.Write("\">");

            result.ApplySubOrSup(element);

            foreach (var item in element.Blocks)
            {
                context.Build(item, result);
            }

            result.ApplySubOrSupSlash(element);

            result.Write("</div>");
        }
Ejemplo n.º 6
0
        public override void Build(HtmlBuilderContext context, PrintElementParagraph element, TextWriter result)
        {
            result.Write("<p style=\"");

            result.ApplyBaseStyles(element);
            result.ApplyBlockStyles(element);
            result.ApplyParagraphStyles(element);

            result.Write("\">");

            result.ApplySubOrSup(element);

            foreach (var item in element.Inlines)
            {
                context.Build(item, result);
            }

            result.ApplySubOrSupSlash(element);

            result.Write("</p>");
        }
Ejemplo n.º 7
0
        public override void Build(HtmlBuilderContext context, PrintElementTable element, TextWriter result)
        {
            result.Write("<table style=\"");

            result.ApplyBaseStyles(element);
            result.ApplyBlockStyles(element);

            result.Write("border-collapse:collapse;");

            result.Write("\">");

            result.ApplySubOrSup(element);

            foreach (var column in element.Columns)
            {
                result.Write("<col width=\"");

                if (column.Size != null)
                {
                    result.WriteInvariant(column.Size);
                    result.Write("px");
                }

                result.Write("\">");
            }

            foreach (var row in element.Rows)
            {
                result.Write("<tr style=\"");

                result.ApplyRowStyles(row);

                result.Write("border-collapse:collapse;");

                result.Write("\">");

                foreach (var cell in row.Cells)
                {
                    result.Write("<td ");

                    result.ApplyCellProperties(cell);

                    result.Write("style=\"");

                    result.ApplyCellStyles(cell);

                    result.Write("border-collapse:collapse;");

                    //По умолчанию содержимое ячейки выравнивается по верхрнему краю
                    result.Write("vertical-align:top;");

                    //max width and overflow

                    var cellIndex = row.Cells.IndexOf(cell);

                    result.Write("max-width:");

                    if (element.Columns[cellIndex].Size != null)
                    {
                        result.WriteInvariant(element.Columns[cellIndex].Size);
                    }

                    result.Write("px;");
                    result.Write("overflow:hidden;");

                    result.Write("\">");

                    if (cell != null)
                    {
                        context.Build(cell.Block, result);
                    }

                    result.Write("</td>");
                }

                result.Write("</tr>");
            }

            result.ApplySubOrSupSlash(element);

            result.Write("</table>");
        }