//ExEnd:SaveHTMLDocumentWithResourcesFolder //ExStart:TraverseHTMLResourcesAndCSS /// <summary> /// Traverse HTML document and save resources by specifying resource folder name. /// </summary> public static void TraverseHTMLResourcesAndCSS() { // Obtain document stream Stream sourceStream = File.Open(Path.Combine(Common.sourcePath, Common.sourceFile), FileMode.Open, FileAccess.Read); using (InputHtmlDocument htmlDoc = EditorHandler.ToHtml(sourceStream)) { foreach (IFontResource fontResource in htmlDoc.FontResources) { Console.WriteLine(fontResource.FilenameWithExtension); Console.WriteLine(fontResource.Name); Console.WriteLine(fontResource.ByteContent); Console.WriteLine(fontResource.TextContent); string pathToResource = string.Format(Path.Combine(Common.resultPath, Common.resultResourcesFolder) + "\\{0}", fontResource.FilenameWithExtension); fontResource.Save(pathToResource); } foreach (RasterImageResourceBase imageResource in htmlDoc.ImageResources) { Console.WriteLine(imageResource.FilenameWithExtension); Console.WriteLine(imageResource.ByteContent); Console.WriteLine(imageResource.Name); Console.WriteLine(imageResource.TextContent); Console.WriteLine(imageResource.LinearDimensions.Height); Console.WriteLine(imageResource.LinearDimensions.Width); Console.WriteLine(imageResource.LinearDimensions.IsSquare); string pathToResource = string.Format(Path.Combine(Common.resultPath, Common.resultResourcesFolder) + "\\{0}", imageResource.FilenameWithExtension); imageResource.Save(pathToResource); } CssText css = htmlDoc.Css; Console.WriteLine(css.FilenameWithExtension); Console.WriteLine(css.ByteContent); Console.WriteLine(css.Name); Console.WriteLine(css.TextContent); Console.WriteLine(css.Encoding); string pathToCss = string.Format(Path.Combine(Common.resultPath, Common.resultResourcesFolder) + "\\{0}", css.FilenameWithExtension); css.Save(pathToCss); // saving output html file. htmlDoc.Save(Path.Combine(Common.resultPath, Common.resultFile), Path.Combine(Common.resultPath, Common.resultResourcesFolder)); } // close stream object to release file for other methods. sourceStream.Close(); }
/// <summary> /// Serves as a hash function for a particular type, suitable for use in hashing algorithms and data structures like a hash table. /// </summary> /// <returns></returns> public override int GetHashCode() { return(CssText.GetHashCode()); }