public static void SetValueToRtf(HtmlNode htmlNode, ref StringBuilder builder) { foreach (var attribute in htmlNode.Attributes) { if (attribute.Name == "style") { var cssAttritues = new List <CssAttritue>(); cssAttritues = GetAttributesInfo(attribute.Value); // 적용 foreach (var cssAttritue in cssAttritues) { foreach (var cssValue in cssAttritue.CssValues) { var rtfTuple = RtfSpec.GetRtfCodeFromCss(cssAttritue.AttributeName, cssValue.Value); // 적용할 텍스트가 있는지 검사해서 있으면 적용 if (htmlNode.FirstChild.Name.Equals("#text") && !string.IsNullOrEmpty(htmlNode.FirstChild.InnerText.Trim())) { var valueText = new StringBuilder(htmlNode.FirstChild.InnerText); valueText.Insert(0, rtfTuple.header); valueText.Append(rtfTuple.footer); builder.Append(valueText); } } } } else if (attribute.Name == "class") { var rtfTuples = GetRtfCodeFromClasses(attribute.Value); // 적용할 텍스트가 있는지 검사해서 있으면 적용 if (htmlNode.FirstChild.Name.Equals("#text") && !string.IsNullOrEmpty(htmlNode.FirstChild.InnerText.Trim())) { var valueText = new StringBuilder(htmlNode.FirstChild.InnerText); foreach (var rtfTuple in rtfTuples) { valueText.Insert(0, rtfTuple.header); valueText.Append(rtfTuple.footer); } builder.Append(valueText); } } } }
public static List <(string header, string footer)> GetRtfCodeFromClasses(string _className) { var ps = new List <(string header, string footer)>(); var rtfCode = (header : "", footer : ""); foreach (var cssClass in CssClasses) { if (cssClass.ClassName.Equals(_className)) { foreach (var cssAttritue in cssClass.CssAttritues) { foreach (var cssValue in cssAttritue.CssValues) { rtfCode = RtfSpec.GetRtfCodeFromCss(cssAttritue.AttributeName, cssValue.Value); ps.Add(rtfCode); } } } } return(ps); }