public static IEnumerable <OXmlElement> HtmlPagesToOXmlElements(HtmlToOXmlElements_v2 htmlToOXmlElements, IEnumerable <HtmlPage> pages, string footerText = null) { //HtmlToOXmlElements_v2 htmlToOXmlElements = HtmlToOXmlElements_v2.Create(configElement.zXPathElement("HtmlToDocx"), imageDirectory); IEnumerable <OXmlElement> elements = GetDocDefaults().Union( GetStyles()).Union( GetDocSection()).Union( GetHeaderFooter(footerText)); bool first = true; foreach (HtmlPage page in pages) { //Trace.WriteLine($"page \"{page.Title}\" date \"{page.Date}\""); if (!first) { //elements = elements.Union(new OXmlElement[] { new OXmlBreakElement { BreakType = BreakValues.Page } }); elements = elements.Union(GetPageBreak()); } first = false; elements = elements.Union(GetTitle(page.Date + " : " + page.Title)); //elements = elements.Union(HtmlToOXmlElements_v2.ToOXmlXElements(page.HtmlNodes, imageDirectory, page.WebImages)); elements = elements.Union(htmlToOXmlElements.ToOXmlXElements(page.HtmlNodes, page.WebImages)); } return(elements); }
//public static void HtmlPagesToDocx(string file, string imageDirectory, IEnumerable<BlogDemoorDetailData> pages, string footerText = null) //{ // OXmlDoc.Create(file, HtmlPagesToOXmlElements(pages.Select(page => DetailDataToHtmlPage(page)), imageDirectory, footerText)); //} public static void HtmlPagesToDocx(string file, string imageDirectory, IEnumerable <HtmlPage> pages, string footerText = null) { //HtmlToOXmlElements_v2 htmlToOXmlElements = HtmlToOXmlElements_v2.Create(BlogDemoor_v4.GetConfigElement().zXPathElement("HtmlToDocx"), imageDirectory); HtmlToOXmlElements_v2 htmlToOXmlElements = CreateHtmlToOXmlElements(BlogDemoor_v4.GetConfigElement(), imageDirectory); OXmlDoc.Create(file, HtmlPagesToOXmlElements(htmlToOXmlElements, pages, footerText)); }
public static void Test_Trace_HtmlToOXml_v2(string file, string imageDirectory) { string traceFile = file + ".oxml.json"; //HtmlToOXmlElements_v2.ToOXmlXElements(HtmlDocReader.ReadFile(file), imageDirectory).zSave(traceFile); //HtmlToOXmlElements_v2 htmlToOXmlElements = HtmlToOXmlElements_v2.Create(BlogDemoor_v4.GetConfigElement().zXPathElement("HtmlToDocx"), imageDirectory); HtmlToOXmlElements_v2 htmlToOXmlElements = CreateHtmlToOXmlElements(BlogDemoor_v4.GetConfigElement(), imageDirectory); htmlToOXmlElements.ToOXmlXElements(HtmlDocReader.ReadFile(file)).zSave(traceFile, jsonIndent: true); }
public static IEnumerable <OXmlElement> HtmlPageToOXmlElements(HtmlToOXmlElements_v2 htmlToOXmlElements, HtmlPage page, string footerText = null) { IEnumerable <OXmlElement> elements = GetDocDefaults().Union( GetStyles()).Union( GetDocSection()).Union( GetHeaderFooter(footerText)); //Trace.WriteLine($"page \"{page.Title}\" date \"{page.Date}\""); elements = elements.Union(GetTitle(page.Date + " : " + page.Title)); //elements = elements.Union(HtmlToOXmlElements_v2.ToOXmlXElements(page.HtmlNodes, imageDirectory, page.WebImages)); elements = elements.Union(htmlToOXmlElements.ToOXmlXElements(page.HtmlNodes, page.WebImages)); return(elements); }
public static HtmlToOXmlElements_v2 CreateHtmlToOXmlElements(XElement xe, string imageDirectory) { HtmlToOXmlElements_v2 htmlToOXmlElements = new HtmlToOXmlElements_v2(); htmlToOXmlElements.ImageDirectory = imageDirectory; htmlToOXmlElements.Init(xe.zXPathElement("HtmlToDocx")); htmlToOXmlElements.TextRemoveBlank = true; htmlToOXmlElements.TextRemoveLine = true; //htmlToOXmlElements.ForcedMaxImageWidth = 300; htmlToOXmlElements.MaxImageHorizontalSize = 700; htmlToOXmlElements.ImageHorizontalLeftMarge = 2; htmlToOXmlElements.ImageHorizontalMarge = 3; htmlToOXmlElements.ImageHorizontalBorder = 71755; // 71755 = 0.2 cm htmlToOXmlElements.ImageSeparationParagraphStyle = "TinyParagraph"; htmlToOXmlElements.UseLinkImage = false; // true : take image link from tag a, false : take image link from tag img return(htmlToOXmlElements); }
public static void Test_HtmlToDocx(string file, string imageDirectory, string title = null, string footerText = null) { IEnumerable <OXmlElement> elements = GetDocDefaults().Union( GetStyles()).Union( GetDocSection()).Union( GetHeaderFooter(footerText)); if (title != null) { elements = elements.Union(GetTitle(title)); } //HtmlToOXmlElements_v2 htmlToOXmlElements = HtmlToOXmlElements_v2.Create(BlogDemoor_v4.GetConfigElement().zXPathElement("HtmlToDocx"), imageDirectory); HtmlToOXmlElements_v2 htmlToOXmlElements = CreateHtmlToOXmlElements(BlogDemoor_v4.GetConfigElement(), imageDirectory); //elements = elements.Union(HtmlToOXmlElements_v2.ToOXmlXElements(HtmlDocReader.ReadFile(file), imageDirectory)); elements = elements.Union(htmlToOXmlElements.ToOXmlXElements(HtmlDocReader.ReadFile(file))); OXmlDoc.Create(file + ".docx", elements); }
public static void Test_BlogDemoorToOXml(string file, IEnumerable <int> detailIds, string footerText, string parameters = null) { BlogDemoor_v4 dataManager = WebData.CreateDataManager_v4(parameters); //string imageDirectory = dataManager.DetailDataManager.WebLoadImageManager.WebImageCacheManager.UrlCache.CacheDirectory; //HtmlToOXmlElements_v2 htmlToOXmlElements = HtmlToOXmlElements_v2.Create(dataManager.ConfigElement.zXPathElement("HtmlToDocx"), imageDirectory); HtmlToOXmlElements_v2 htmlToOXmlElements = CreateHtmlToOXmlElements(dataManager); int i = 0; foreach (HtmlPage page in GetHtmlPages(dataManager, detailIds)) { string traceFile = file; if (i != 0) { traceFile += $".{i}"; } traceFile += ".oxml.json"; //htmlToOXmlElements.ToOXmlXElements(page.HtmlNodes).zSave(traceFile, jsonIndent: true); HtmlPageToOXmlElements(htmlToOXmlElements, page, footerText).zSave(traceFile, jsonIndent: true); } }