public XElement Parse(Paragraph paragraph) { Style style = (Style)paragraph.get_Style(); if (style.NameLocal == DocumentAndParagraphStyles.ImagePreviewStyle) { IEnumerable <Hyperlink> hs = paragraph.Range.Hyperlinks.Cast <Hyperlink>().ToArray(); if (hs.Count() == 0) { return(null); } try { var hyperline = hs.First(); if (!WordUtils.IsHyperlinkValid(hyperline)) { return(null); } Uri tempUri = new Uri(hyperline.Address); var src = tempUri.AbsolutePath; //XElement wrapper = GetImageElement(src, hyperline.ScreenTip); XElement wrapper = GetImageElement(src); return(wrapper); } catch (WebException e) { Globals.SitecoreAddin.LogException("", e); Globals.SitecoreAddin.AlertConnectionFailure(); } catch (Exception e) { Globals.SitecoreAddin.LogException("", e); throw; } } if (ImageStyles.Contains(style.NameLocal)) { WordStyleStruct w; if (!ParagraphStyles.TryGetValue(style.NameLocal, out w)) { return(null); } var element = new XElement("p"); element.SetAttributeValue("class", w.CssClass); element = Transformer.GetCharacterStyledElement(element, paragraph, CharacterStyleFactory.GetCharacterStyles(), false);//new XElement(w.CssElement); //var value = Transformer.GetCharacterStylesValue(paragraph).Replace("\a", ""); string value = element.Value; if (value.StartsWith("SOURCE: ")) { element.Value = value.Remove(0, 8); } return(element); } return(null); }
/// <summary> /// Parses hyperlink if the current Range in the enumerator e /// is part of a hyperlink and moves the enumerator to the next /// Range not part of current hyperlink /// </summary> /// <param name="e"></param> /// <param name="currentElement"></param> /// <returns>True if is hyperlink, else false</returns> protected bool ParseHyperlink(ref List <Range> .Enumerator e, XElement currentElement) { var cur = e.Current; if (cur == null) { return(false); } IEnumerable <Hyperlink> hs = cur.Hyperlinks.Cast <Hyperlink>().ToList(); if (hs.Any()) { Hyperlink currentHyperlink = hs.First(); Range currentHyperlinkRange = currentHyperlink.Range; if (currentHyperlinkRange != null) { while (e.Current != null && (e.Current.End < currentHyperlinkRange.End && e.MoveNext())) { } } if (!WordUtils.IsHyperlinkValid(currentHyperlink)) { return(false); } XElement temp = SupportingDocumentsReferenceBuilder.GetHtmlHyperlink(currentHyperlink); if (temp != null) { currentElement.Add(temp); return(true); } if (!ShouldNotTransformHyperlink(currentHyperlink)) { currentElement.Add(GetExternalHyperlink(currentHyperlink)); return(true); } if (currentHyperlinkRange != null) { currentElement.Add(currentHyperlinkRange.Text.RinseMsChars()); return(false); } } return(false); }