Пример #1
0
        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);
        }
Пример #2
0
        //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));
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }
Пример #6
0
        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);
        }
Пример #7
0
        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);
            }
        }