Example #1
0
        /// <summary>
        /// Add graphic data
        /// </summary>
        /// <param name="graphicData"></param>
        /// <returns></returns>
        private string AddGraphicData(DocumentFormat.OpenXml.Drawing.GraphicData graphicData)
        {
            foreach (OpenXmlElement element in graphicData.Elements())
            {
                if (element is DocumentFormat.OpenXml.Drawing.Pictures.Picture)
                {
                    return(AddPicture((DocumentFormat.OpenXml.Drawing.Pictures.Picture)element));
                }
            }

            return("");
        }
Example #2
0
        public HtmlElement HandleParagraph(Paragraph p, ConvertConfig conConfig)
        {
            HtmlElement pa = new HtmlElement("p");

            OpenXmlHelper helper = new OpenXmlHelper();

            StyleConfig config = new StyleConfig
            {
                Charset = "EastAsia"
            };

            #region Paragraph
            var pClass = "";
            if (p.ParagraphProperties != null)
            {
                var pPr = p.ParagraphProperties;
                pa.AddStyle(helper.GetStyleFromParagraphProperties(pPr, config));

                if (pPr.ParagraphStyleId != null)
                {
                    var id = pPr.ParagraphStyleId.Val;
                    pClass += "Inner_P_" + id;
                }
            }
            pa.AddAttribute("class", pClass);
            //div.AddChild(_pa);
            var runs = p.Elements <Run>();
            foreach (var r in runs)
            {
                var span = new HtmlElement("span");
                var rpr  = r.RunProperties;

                config.Charset = "EastAsia";
                var   tt  = r.InnerText;
                Regex reg = new Regex("[\x00-\xff]{1,}", RegexOptions.IgnoreCase | RegexOptions.Multiline);
                var   mc  = reg.Match(tt);
                if (mc.Success)
                {
                    config.Charset = "Ascii";
                }
                span.AddStyle(helper.GetStyleFromRunProperties(rpr, config));

                if (r.RunProperties != null && r.RunProperties.RunStyle != null && r.RunProperties.RunStyle.Val != null)
                {
                    var id = r.RunProperties.RunStyle.Val;
                    span.AddAttribute("class", "Inner_P_" + id + " " + "Inner_R_" + id);
                }

                var ts   = r.Elements <Text>();
                var pics = r.Elements <Drawing>();
                foreach (Text t in ts)
                {
                    span.AddChild(new HtmlElement("span", t.InnerText));
                }

                foreach (Drawing d in pics)
                {
                    DocumentFormat.OpenXml.Drawing.GraphicData gd = d.Inline.Graphic.GraphicData;
                    var pic  = gd.Elements <DocumentFormat.OpenXml.Drawing.Pictures.Picture>().ElementAt(0);
                    var pb   = pic.BlipFill;
                    var blip = pb.Blip;
                    var ppp  = blip.Embed.Value;

                    //var path = doc.GetReferenceRelationship(ppp).Uri;
                    //var relationships = doc.Package.GetRelationships();
                    //content += ppp;
                    var imgp = this._mainPart.GetPartById(ppp);

                    var img = new HtmlElement("img");
                    //img.AddAttribute("src", imgp.Uri.ToString().Replace("/word/", "./"));
                    img.AddAttribute("src", conConfig.ResourcePath + imgp.Uri.ToString().Substring(1));
                    span.AddChild(img);
                }
                pa.AddChild(span);
            }
            #endregion
            return(pa);
        }