public override void Build(HtmlBuilderContext context, PrintElementLine element, TextWriter result) { result.Write("<hr style=\""); result.ApplyBaseStyles(element); result.ApplyBlockStyles(element); result.Write("\">"); result.Write("</hr>"); }
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, PrintElementImage element, TextWriter result) { result.Write("<img src=\"data:image/png;base64,"); result.StreamToBase64(element.Source); result.Write("\" style=\""); result.ApplyBaseStyles(element); result.ApplyInlineStyles(element); result.ApplyImageStyles(element); result.Write("\">"); result.Write("</img>"); }
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, PrintViewDocument element, TextWriter result) { result.Write("<!DOCTYPE html><html><head><style>*{margin:0;padding:0;}</style></head><body style=\""); result.Write("padding-top:"); result.WriteInvariant(element.PagePadding.Top); result.Write("px;"); result.Write("padding-right:"); result.WriteInvariant(element.PagePadding.Right); result.Write("px;"); result.Write("padding-bottom:"); result.WriteInvariant(element.PagePadding.Bottom); result.Write("px;"); result.Write("padding-left:"); result.WriteInvariant(element.PagePadding.Left); result.Write("px;"); if (element.PageSize != null && element.PageSize.Width != null) { result.Write("width:"); result.WriteInvariant(element.PageSize.Width - element.PagePadding.Left - element.PagePadding.Right); result.Write("px;"); } result.ApplyBaseStyles(element); result.Write("\">"); foreach (var item in element.Blocks) { context.Build(item, result); } result.Write("</body></html>"); }
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>"); }