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>"); }
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>"); }
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>"); }
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>"); }
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>"); }