private void URLButton_Click(object sender, RoutedEventArgs e) { if (original_url == URLText.Text) { HTMLList.DataContext = new HTMLDataGridViewModel(GetLoadResults()); return; } try { original_url = URLText.Text; root_url = string.Join("/", URLText.Text.Split(new char[] { '/' }, 4), 0, 3); if (driverCheck.IsChecked == false) { var html = NetCommon.DownloadString(URLText.Text); tree = new HTMLTree(html); tree.BuildTree(); HTMLList.DataContext = new HTMLDataGridViewModel(GetLoadResults()); } else { //var driver = new SeleniumWrapper(); //driver.Navigate(URLText.Text); //tree = new HtmlTree(driver.GetHtml()); //tree.BuildTree(); //driver.Close(); //HTMLList.DataContext = new HTMLDataGridViewModel(GetLoadResults()); } } catch (Exception ex) { MessageBox.Show(ex.Message, Title, MessageBoxButton.OK, MessageBoxImage.Error); } }
public HTML2RTF(string html) { this.a = new HTMLTree(html); this.d = new FontStyle(HTMLTree.defaultFontName, HTMLTree.defaultFontSize, HTMLTree.defaultColor, Colors.Transparent); this.b = new List <object>(); this.c = new List <object>(); this.c.Add((object)HTMLTree.defaultFontName); this.b.Add((object)HTMLTree.defaultColor); this.e = this.f(); }
private string da(string A_0) { string s = HTMLTree.HTMLDecode(A_0); string str = ""; byte[] bytes = Encoding.UTF8.GetBytes(s); for (int index = 0; index < bytes.Length; ++index) { str = (int)bytes[index] == 92 || (int)bytes[index] == 123 || (int)bytes[index] == 125 ? str + "\\" + ((char)bytes[index]).ToString() : ((int)bytes[index] <= 128 ? str + ((char)bytes[index]).ToString() : str + "\\'" + ((int)bytes[index]).ToString("x")); } return(str); }
public async static Task <string> LoadFromHtml(HTMLNode imgNode, string baseUrl) { Param param = imgNode.Param.ByName("src"); string str = ""; if (param == null) { return(str); } string url = param.Value.Trim().ToLower(); if ((url == "#") || url.Equals(string.Empty)) { return(""); } if ((url.StartsWith("http://") || url.StartsWith("ftp://")) || url.StartsWith("file://")) { url = param.Value.Trim(); } else { url = baseUrl + param.Value.Trim(); } ImageStyle style = new ImageStyle(url); using (Stream stream = await NetHelper.Get(url)) { int width = 0; int height = 0; RandomStream rs = new RandomStream(stream); BitmapImage image = new BitmapImage(); { image.SetSource(rs); width = image.PixelWidth; height = image.PixelHeight; Param param2 = imgNode.Param.ByName("width"); if (param2 != null) { style.Width = HTMLTree.FontSizeFromHTML(param2.Value.Trim()); } Param param3 = imgNode.Param.ByName("height"); if (param3 != null) { style.Height = HTMLTree.FontSizeFromHTML(param3.Value.Trim()); } if ((style.Width != -1) && (style.Height != -1)) { width = style.Width; height = style.Height; } else if (style.Width != -1) { height = (width * style.Height) / style.Width; width = style.Width; } else if (style.Height != -1) { width = (height * style.Width) / style.Height; height = style.Height; } } StringBuilder builder = new StringBuilder(); builder.AppendFormat("{{\\pict\\wmetafile8\\picwgoal{0}\\pichgoal{1}\n", width * 20, height * 20); byte[] buffer = new byte[40]; stream.Position = 0L; int num3 = 0; while ((num3 = stream.Read(buffer, 0, 40)) > 0) { for (int i = 0; i < num3; i++) { builder.Append(buffer[i].ToString("x").PadLeft(2, '0')); } builder.Append("\n"); } builder.Append("}"); return(builder.ToString()); } }
private string da(HTMLNode A_0, FontStyle A_1, ref int A_2) { if (A_0.TagName.Equals("head")) { return(""); } string str = ""; FontStyle fontStyle = A_1; int A_2_1 = -1; int index1 = A_0.Css.Css.IndexOf("font-size", CssType.ForAll, ""); if (index1 == -1) { int index2 = A_0.Css.Css.IndexOf("size", CssType.ForAll, ""); if (index2 != -1) { string fontsize = A_0.Css.Css[index2].Value.Trim(); fontStyle.FontSize = (uint)HTMLTree.FontSizeFromHTML(fontsize); fontStyle.FontSize = (uint)((((int)fontStyle.FontSize - 1) * 2 + 10) * 2); } } else { string fontsize = A_0.Css.Css[index1].Value.Trim(); fontStyle.FontSize = (uint)(HTMLTree.FontSizeFromHTML(fontsize) * 2); } int index3 = A_0.Css.Css.IndexOf("font-family", CssType.ForAll, ""); if (index3 != -1) { fontStyle.FontName = A_0.Css.Css[index3].Value.Trim(); } int index4 = A_0.Css.Css.IndexOf("color", CssType.ForAll, ""); if (index4 != -1) { string color = A_0.Css.Css[index4].Value.Trim(); fontStyle.FontColor = HTMLTree.ColorFromHTML(color); } int index5 = A_0.Css.Css.IndexOf("align", CssType.ForAll, ""); if (index5 != -1) { string align = A_0.Css.Css[index5].Value.Trim(); fontStyle.Align = HTMLTree.AlignFromHtml(align); } switch (A_0.TagName) { case "i": case "em": fontStyle.IsItalic = true; break; case "b": case "strong": fontStyle.IsBold = true; break; case "u": fontStyle.IsUnderLine = true; break; case "center": fontStyle.Align = Alignment.Center; break; case "ul": A_2_1 = 0; break; case "ol": A_2_1 = 1; break; case "sup": fontStyle.Raise = RaiseType.Sup; str = str + "{"; break; case "sub": fontStyle.Raise = RaiseType.Sub; str = str + "{"; break; } switch (A_0.TagName) { case "br": str = str + "\\par"; break; case "li": if (A_2 == 0) { str = str + "\\par\n" + this.da(fontStyle) + "{\\pntext\\'B7\\tab}" + this.da(A_0.Text); break; } else if (A_2 > 0) { str = str + "\\par\n " + this.da(fontStyle) + "{\\pntext " + A_2.ToString() + "\\tab}" + this.da(A_0.Text); ++A_2; break; } else { break; } case "font": if (!A_0.Text.Trim().Equals(string.Empty)) { str = str + this.da(fontStyle) + " " + this.da(A_0.Text); break; } else { break; } case "p": case "div": str = str + "\\par\n\\pard" + this.da(fontStyle) + " " + this.da(A_0.Text); break; case "img": str = str + RTFImageHelper.LoadFromHtml(A_0, ""); break; default: if (A_0.Text != string.Empty) { str = str + this.da(fontStyle) + " " + this.da(A_0.Text); break; } else { break; } } for (int index2 = 0; index2 < A_0.Nodes.Count; ++index2) { str = str + this.da(A_0.Nodes[index2], fontStyle, ref A_2_1); } switch (A_0.TagName) { case "sup": case "sub": str = str + "}"; break; } return(str); }