/// <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(""); }
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); }