Ejemplo n.º 1
0
        //private OXmlElement BeginTag(HtmlDocNodeBeginTag beginTag)
        //{
        //    // <p> <a>
        //    if (beginTag.Tag == HtmlTagType.P)
        //        return new OXmlElement { Type = OXmlElementType.Paragraph };
        //    return null;
        //}

        //private OXmlElement Tag(HtmlDocNodeTag tag)
        //{
        //    // <br> <img>
        //    if (tag.Tag == HtmlTagType.BR)
        //        return new OXmlElement { Type = OXmlElementType.Line };
        //    else if (tag.Tag == HtmlTagType.Img)
        //    {
        //        HtmlDocNodeTagImg img = (HtmlDocNodeTagImg)tag;
        //        Uri uri = new Uri(img.Link);
        //        string file = uri.Segments[uri.Segments.Length - 1];
        //        // new zDocXPictureElement { File = _pictureDir + file, Width = 300, PictureDrawing = new zDocXPictureWrapTightAnchorDrawing() { SquareSize = 21800 } }
        //        OXmlPictureElement pictureElement = new OXmlPictureElement { File = _pictureDir + file };
        //        foreach (string className in img.ClassList)
        //            SetPictureClassParam(pictureElement, className);
        //        return pictureElement;
        //    }
        //    else
        //        return null;
        //}

        //private static void SetPictureClassParam(OXmlPictureElement pictureElement, string className)
        //{
        //    // class : leftalign, nonealign, width300, width450
        //    switch (className.ToLower())
        //    {
        //        case "nonealign":
        //            pictureElement.PictureDrawing = new OXmlPictureInlineDrawing();
        //            break;
        //        case "leftalign":
        //            //pictureElement.PictureDrawing = new zDocXPictureWrapTightAnchorDrawing() { SquareSize = 21800 };
        //            pictureElement.PictureDrawing = new OXmlPictureAnchorDrawing() { Wrap = new OXmlAnchorWrapTight() { SquareSize = 21800 } };
        //            break;
        //        case "width300":
        //            pictureElement.Width = 300;
        //            break;
        //        case "width450":
        //            pictureElement.Width = 450;
        //            break;
        //        default:
        //            throw new pb.PBException($"unknow img class \"{className}\"");
        //    }
        //}

        //public static IEnumerable<OXmlElement> ToOXmlXElements(IEnumerable<HtmlDocNode> nodes, WebImage[] webImages = null)
        //{
        //    HtmlToOXmlElements_v2 htmlToOXmlElements = new HtmlToOXmlElements_v2();
        //    htmlToOXmlElements._imageDirectory = imageDirectory;
        //    htmlToOXmlElements._webImages = webImages;
        //    return htmlToOXmlElements._ToOXmlXElements(nodes);
        //}

        // string imagePatchesFile = null
        public static HtmlToOXmlElements_v2 Create(XElement xe, string imageDirectory = null)
        {
            HtmlToOXmlElements_v2 htmlToOXmlElements = new HtmlToOXmlElements_v2();

            htmlToOXmlElements._imageDirectory = imageDirectory;
            //htmlToOXmlElements._imagePatchesFile = imagePatchesFile;
            htmlToOXmlElements.Init(xe);
            return(htmlToOXmlElements);
        }
Ejemplo n.º 2
0
        private static HtmlToOXmlElements_v2 CreateHtmlToOXmlElements(XElement xe, string imageDirectory)
        {
            HtmlToOXmlElements_v2 htmlToOXmlElements = new HtmlToOXmlElements_v2();

            htmlToOXmlElements.ImageDirectory  = imageDirectory;
            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
            //htmlToOXmlElements.ImagePatchesFile = imagePatchesFile;
            htmlToOXmlElements.Init(xe.zXPathElement("HtmlToDocx"));
            return(htmlToOXmlElements);
        }