本文整理汇总了C#中Format.Reset方法的典型用法代码示例。如果您正苦于以下问题:C# Format.Reset方法的具体用法?C# Format.Reset怎么用?C# Format.Reset使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Format
的用法示例。
在下文中一共展示了Format.Reset方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Convert
/// <summary>
/// Convierte una cadena de código RTF a formato HTML
/// </summary>
public string Convert(string rtf)
{
//Generar arbol DOM
RtfTree rtfTree = new RtfTree();
rtfTree.LoadRtfText(rtf);
//Inicializar variables empleadas
_builder = new StringBuilder();
_htmlFormat = new Format();
_currentFormat = new Format();
_fontTable = rtfTree.GetFontTable();
_colorTable = rtfTree.GetColorTable();
//Buscar el inicio del contenido visible del documento
int inicio;
for (inicio = 0; inicio < rtfTree.RootNode.FirstChild.ChildNodes.Count; inicio++)
{
if (rtfTree.RootNode.FirstChild.ChildNodes[inicio].NodeKey == "pard")
break;
}
//Procesar todos los nodos visibles
ProcessChildNodes(rtfTree.RootNode.FirstChild.ChildNodes, inicio);
//Cerrar etiquetas pendientes
_currentFormat.Reset();
WriteText(string.Empty);
//Arreglar HTML
//Arreglar listas
Regex repairList = new Regex("<span [^>]*>·</span><span style=\"([^\"]*)\">(.*?)<br\\s+/><" + "/span>",
RegexOptions.IgnoreCase | RegexOptions.Singleline |
RegexOptions.CultureInvariant);
foreach (Match match in repairList.Matches(_builder.ToString()))
{
_builder.Replace(match.Value, string.Format("<li style=\"{0}\">{1}</li>", match.Groups[1].Value, match.Groups[2].Value));
}
Regex repairUl = new Regex("(?<!</li>)<li", RegexOptions.IgnoreCase | RegexOptions.CultureInvariant);
foreach (Match match in repairUl.Matches(_builder.ToString()))
{
_builder.Insert(match.Index, "<ul>");
}
repairUl = new Regex("/li>(?!<li)", RegexOptions.IgnoreCase | RegexOptions.CultureInvariant);
foreach (Match match in repairUl.Matches(_builder.ToString()))
{
_builder.Insert(match.Index + match.Length, "</ul>");
}
//Generar párrafos (cada 2 <br /><br /> se cambiará por un <p>)
if (AutoParagraph)
{
string[] partes = _builder.ToString().Split(new[] { "<br /><br />" }, StringSplitOptions.RemoveEmptyEntries);
_builder = new StringBuilder(_builder.Length + 7 * partes.Length);
foreach (string parte in partes)
{
_builder.Append("<p>");
_builder.Append(parte);
_builder.Append("</p>");
}
}
return EscapeHtmlEntities ? HtmlEntities.Encode(_builder.ToString()) : _builder.ToString();
}