123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536 |
- using DocumentFormat.OpenXml;
- using DocumentFormat.OpenXml.Drawing;
- using DocumentFormat.OpenXml.Packaging;
- using DocumentFormat.OpenXml.Presentation;
- using System.Collections.Generic;
- using System.Drawing;
- using System.Text;
- using System.Xml;
- using TEAMModelOS.SDK.Helper.Common.ColorHelper;
- using ColorMap = DocumentFormat.OpenXml.Presentation.ColorMap;
- using Theme = DocumentFormat.OpenXml.Drawing.Theme;
- namespace HiTeachCC.Service.PowerPoint.Implement
- {
- public class PowerPointHelper
- {
- public static XmlNamespaceManager GetXmlnsManager(XmlNameTable nameTable)
- {
- XmlNamespaceManager xmlnsManager = new XmlNamespaceManager(nameTable);
- xmlnsManager.AddNamespace("p", "http://schemas.openxmlformats.org/presentationml/2006/main");
- xmlnsManager.AddNamespace("a", "http://schemas.openxmlformats.org/drawingml/2006/main");
- xmlnsManager.AddNamespace("xsl", "http://www.w3.org/1999/XSL/Transform");
- xmlnsManager.AddNamespace("fo", "http://www.w3.org/1999/XSL/Format");
- xmlnsManager.AddNamespace("app", "http://schemas.openxmlformats.org/officeDocument/2006/extended-properties");
- xmlnsManager.AddNamespace("cp", "http://schemas.openxmlformats.org/package/2006/metadata/core-properties");
- xmlnsManager.AddNamespace("dc", "http://purl.org/dc/elements/1.1/");
- xmlnsManager.AddNamespace("dcterms", "http://purl.org/dc/terms/");
- xmlnsManager.AddNamespace("dcmitype", "http://purl.org/dc/dcmitype/");
- xmlnsManager.AddNamespace("rel", "http://schemas.openxmlformats.org/package/2006/relationships");
- xmlnsManager.AddNamespace("r", "http://schemas.openxmlformats.org/officeDocument/2006/relationships");
- xmlnsManager.AddNamespace("cus", "http://schemas.openxmlformats.org/officeDocument/2006/custom-properties");
- xmlnsManager.AddNamespace("vt", "http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes");
- xmlnsManager.AddNamespace("pic", "http://schemas.openxmlformats.org/drawingml/2006/picture");
- xmlnsManager.AddNamespace("dsp", "http://schemas.microsoft.com/office/drawing/2008/diagram");
- xmlnsManager.AddNamespace("dgm", "http://schemas.openxmlformats.org/drawingml/2006/diagram");
- xmlnsManager.AddNamespace("a14", "http://schemas.microsoft.com/office/drawing/2010/main");
- xmlnsManager.AddNamespace("m", "http://schemas.openxmlformats.org/officeDocument/2006/math");
- xmlnsManager.AddNamespace("mc", "http://schemas.openxmlformats.org/markup-compatibility/2006");
- xmlnsManager.AddNamespace("p14", "http://schemas.microsoft.com/office/powerpoint/2010/main");
- xmlnsManager.AddNamespace("pkg", "http://schemas.microsoft.com/office/2006/xmlPackage");
- xmlnsManager.AddNamespace("p15", "http://schemas.microsoft.com/office/powerpoint/2012/main");
- xmlnsManager.AddNamespace("a16", "http://schemas.microsoft.com/office/drawing/2014/main");
- xmlnsManager.AddNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");
- xmlnsManager.AddNamespace("c", "http://schemas.openxmlformats.org/drawingml/2006/chart");
- xmlnsManager.AddNamespace("c14", "http://schemas.microsoft.com/office/drawing/2007/8/2/chart");
- xmlnsManager.AddNamespace("c16", "http://schemas.microsoft.com/office/drawing/2014/chart");
- xmlnsManager.AddNamespace("cs", "http://schemas.microsoft.com/office/drawing/2012/chartStyle");
- xmlnsManager.AddNamespace("thm15", "http://schemas.microsoft.com/office/thememl/2012/main");
- xmlnsManager.AddNamespace("fn", "http://www.w3.org/2005/xpath-functions");
- return xmlnsManager;
- }
- /// <summary>
- /// 根据slideLayout 或 slideMaster 获取 id idx type
- /// </summary>
- /// <param name="xml"></param>
- /// <returns></returns>
- public static HiTeachCC.Model.PowerPoint.Style IndexNodes(string xml) {
- XmlDocument doc = new XmlDocument() ;
- doc.LoadXml(xml);
- XmlNodeList spTreeNodes = doc.SelectNodes("//p:cSld/p:spTree/child::*", GetXmlnsManager(doc.NameTable));
- XmlDocument idXmlDoc = new XmlDocument();
- //XmlDeclaration idxmldec = idXmlDoc.CreateXmlDeclaration("1.0", "utf-8", "yes");
- //idXmlDoc.AppendChild(idxmldec);
- //添加根节点
- XmlElement idElement = idXmlDoc.CreateElement("xmlDatas");
- idXmlDoc.AppendChild(idElement);
- XmlDocument idxXmlDoc = new XmlDocument();
- //XmlDeclaration idxxmldec = idxXmlDoc.CreateXmlDeclaration("1.0", "utf-8", "yes");
- //idxXmlDoc.AppendChild(idxxmldec);
- //添加根节点
- XmlElement idxElement = idxXmlDoc.CreateElement("xmlDatas");
- idxXmlDoc.AppendChild(idxElement);
- XmlDocument typeXmlDoc = new XmlDocument();
- //XmlDeclaration typexmldec = typeXmlDoc.CreateXmlDeclaration("1.0", "utf-8", "yes");
- //typeXmlDoc.AppendChild(typexmldec);
- //添加根节点
- XmlElement typeElement = typeXmlDoc.CreateElement("xmlDatas");
- typeXmlDoc.AppendChild(typeElement);
- //XmlDocument idNodeList = new XmlDocument();
- //XmlDocument idxNodeList = new XmlDocument();
- //XmlDocument typeNodeList = new XmlDocument();
- //Dictionary<string, object> idPairs = new Dictionary<string, object>();
- //Dictionary<string, object> idxPairs = new Dictionary<string, object>();
- //Dictionary<string, object> typePairs = new Dictionary<string, object>();
- if (spTreeNodes != null) {
- int size = spTreeNodes.Count;
- for (int i=0; i<size;i++) {
- XmlNode spnode = spTreeNodes.Item(i);
- if (spnode.Name.Equals("p:nvGrpSpPr") || spnode.Name.Equals("p:grpSpPr")) {
- continue;
- }
- if (spnode.LocalName.Equals("nvGrpSpPr") || spnode.LocalName.Equals("grpSpPr"))
- {
- continue;
- }
- XmlDocument docNode = new XmlDocument();
- docNode.LoadXml(spnode.OuterXml);
- XmlNode id = spnode.SelectSingleNode("./p:nvSpPr/p:cNvPr/@id", GetXmlnsManager(docNode.NameTable));
- XmlNode idx = spnode.SelectSingleNode("./p:nvSpPr/p:nvPr/p:ph/@idx", GetXmlnsManager(docNode.NameTable));
- XmlNode type = spnode.SelectSingleNode("./p:nvSpPr/p:nvPr/p:ph/@type", GetXmlnsManager(docNode.NameTable));
-
- var cnode = spnode.ChildNodes;
- StringBuilder builder = new StringBuilder();
- for (int m = 0; m < cnode.Count; m++)
- {
- var cn = cnode.Item(m);
- builder.Append(cn.OuterXml);
- }
- if (id != null)
- {
- XmlDocument docx = new XmlDocument();
- string str= "<xmlData id=\"" + id.Value + "\">"+ builder .ToString()+ "</xmlData>";
- docx.LoadXml(str);
- XmlNode importNode = idElement.OwnerDocument.ImportNode(docx.DocumentElement, true);
- idElement.AppendChild(importNode);
- }
- if (idx != null)
- {
- XmlDocument docx = new XmlDocument();
- string str = "<xmlData id=\"" + idx.Value + "\">" + builder.ToString() + "</xmlData>";
- docx.LoadXml(str);
- XmlNode importNode = idxElement.OwnerDocument.ImportNode(docx.DocumentElement, true);
- idxElement.AppendChild(importNode);
- }
- if (type != null)
- {
- XmlDocument docx = new XmlDocument();
- string str = "<xmlData id=\"" + type.Value + "\">" + builder.ToString() + "</xmlData>";
-
- docx.LoadXml(str);
- XmlNode importNode = typeElement.OwnerDocument.ImportNode(docx.DocumentElement, true);
- typeElement.AppendChild(importNode);
- }
- }
- }
- return new HiTeachCC.Model.PowerPoint.Style { IdTable = idXmlDoc, IdxTable = idxXmlDoc, TypeTable = typeXmlDoc };
- }
- public static string GetSlideBackgroundFill(SlidePart slidePart, SlideMaster slideMaster, Dictionary<string, string> colors ,Theme theme)
- {
- XmlDocument doc = new XmlDocument();
- string SlideXml = slidePart.Slide.OuterXml;
- doc.LoadXml(SlideXml);
- /*
- * blipFill (图片填充)BlipFill
- effectDag (效果容器)EffectDag
- effectLst (效果容器)EffectList
- extLst (扩展名列表)ExtensionList
- gradFill (渐变填充)GradientFill
- grpFill (组填充)
- noFill (无填充)NoFill
- pattFill (图案填充)PatternFill
- compositeElementFill (纯色填充)SolidFill
- phClr 颜色占位
- 块引用 该方案颜色值设置为占位符颜色(该值phClr)。
- 此值显示在填充,线条,效果和背景样式中,并指示这些设置应用于适用于给定样式的主题颜色。
- 这允许相同的填充,线条和效果样式填充OfficeArt图库中显示的主题颜色。
- http://msdn.microsoft.com/en-us/library/cc964302(v=office.12).aspx
- */
- //使用xPath选择需要的节点
- XmlNode node_sld = doc.SelectSingleNode("//p:sld/p:cSld/p:bg/p:bgPr/a:solidFill", GetXmlnsManager(doc.NameTable));
- if (node_sld != null)
- {
- SolidFill compositeElement = new SolidFill(node_sld.OuterXml);
- string colorHex = GetBgFill(colors,
- compositeElement.RgbColorModelPercentage,
- compositeElement.RgbColorModelHex,
- compositeElement.HslColor,
- compositeElement.SystemColor,
- compositeElement.SchemeColor,
- compositeElement.PresetColor);
- return colorHex;
- }
- string SlideLayoutXml = slidePart.SlideLayoutPart.SlideLayout.OuterXml;
- OverrideColorMapping colorMap = slidePart.SlideLayoutPart.SlideLayout.ColorMapOverride.OverrideColorMapping;
- Dictionary<string, string> styleColors = new Dictionary<string, string>();
- if (colorMap != null)
- {
- styleColors = DoColorMap(colorMap, null, theme);
- }
- else {
- styleColors = colors;
- }
- doc.LoadXml(SlideLayoutXml);
- XmlNode node_sldLayout = doc.SelectSingleNode("//p:sldLayout/p:cSld/p:bg/p:bgPr/a:solidFill", GetXmlnsManager(doc.NameTable));
- if (node_sldLayout != null)
- {
- SolidFill compositeElement = new SolidFill(node_sldLayout.OuterXml);
- string colorHex = GetBgFill(styleColors,
- compositeElement.RgbColorModelPercentage,
- compositeElement.RgbColorModelHex,
- compositeElement.HslColor,
- compositeElement.SystemColor,
- compositeElement.SchemeColor,
- compositeElement.PresetColor);
- return colorHex;
- }
- node_sldLayout = doc.SelectSingleNode("//p:sldLayout/p:cSld/p:bg/p:bgRef", GetXmlnsManager(doc.NameTable));
- if (node_sldLayout != null)
- {
- BackgroundStyleReference compositeElement = new BackgroundStyleReference(node_sldLayout.OuterXml);
-
- string colorHex = GetBgFill(styleColors, compositeElement.RgbColorModelPercentage,
- compositeElement.RgbColorModelHex,
- compositeElement.HslColor,
- compositeElement.SystemColor,
- compositeElement.SchemeColor,
- compositeElement.PresetColor);
- return colorHex;
- }
- string slideMasterXml = slideMaster.OuterXml;
- doc.LoadXml(slideMasterXml);
- XmlNode node_sldMaster = doc.SelectSingleNode("//p:sldMaster/p:cSld/p:bg/p:bgPr/a:solidFill", GetXmlnsManager(doc.NameTable));
- if (node_sldMaster != null)
- {
- SolidFill compositeElement = new SolidFill(node_sldMaster.OuterXml);
- string colorHex = GetBgFill(colors, compositeElement.RgbColorModelPercentage,
- compositeElement.RgbColorModelHex,
- compositeElement.HslColor,
- compositeElement.SystemColor,
- compositeElement.SchemeColor,
- compositeElement.PresetColor);
- return colorHex;
- }
- node_sldMaster = doc.SelectSingleNode("//p:sldMaster/p:cSld/p:bg/p:bgRef", GetXmlnsManager(doc.NameTable));
- if (node_sldMaster != null)
- {
- BackgroundStyleReference compositeElement = new BackgroundStyleReference(node_sldMaster.OuterXml);
- string colorHex = GetBgFill(colors, compositeElement.RgbColorModelPercentage,
- compositeElement.RgbColorModelHex,
- compositeElement.HslColor,
- compositeElement.SystemColor,
- compositeElement.SchemeColor,
- compositeElement.PresetColor);
- return colorHex;
- }
- return "#FFF";
- }
- public static Dictionary<string, string> DoColorMap(OverrideColorMapping overrideColorMapping, ColorMap colorMap, Theme theme)
- {
- string[] colors = { "accent1", "accent2", "accent3", "accent4", "accent5", "accent6",
- "lt1", "lt2", "tx1", "tx2", "dk1","dk2","hlink","folHlink","bg1","bg2" };
- DocumentFormat.OpenXml.Drawing.ColorScheme colorScheme = theme.ThemeElements.ColorScheme;
- Dictionary<string, string> pairs = new Dictionary<string, string>();
- Dictionary<string, string> colorDict = new Dictionary<string, string>();
- if (overrideColorMapping != null)
- {
- colorDict.Add("Text1", overrideColorMapping.Text1);
- colorDict.Add("Text2", overrideColorMapping.Text2);
- colorDict.Add("Background1", overrideColorMapping.Background1);
- colorDict.Add("Background2", overrideColorMapping.Background2);
- }
- else
- {
- if (colorMap != null)
- {
- colorDict.Add("Text1", colorMap.Text1);
- colorDict.Add("Text2", colorMap.Text2);
- colorDict.Add("Background1", colorMap.Background1);
- colorDict.Add("Background2", colorMap.Background2);
- }
- }
- foreach (var col in colors)
- {
- pairs.Add(col, PowerPointHelper.ColorForThemeClr(col, colorScheme, colorDict));
- }
- return pairs;
- }
- private static string GetBgFill(Dictionary<string, string> colors,
- RgbColorModelPercentage RgbColorModelPercentage,
- RgbColorModelHex RgbColorModelHex,
- DocumentFormat.OpenXml.Drawing.HslColor HslColor,
- SystemColor SystemColor,
- SchemeColor SchemeColor,
- PresetColor PresetColor)
- {
- var colorHex = "#FFF";
- if (RgbColorModelPercentage != null)
- {
- int r = RgbColorModelPercentage.RedPortion.Value;
- int g = RgbColorModelPercentage.GreenPortion.Value;
- int b = RgbColorModelPercentage.BluePortion.Value;
- colorHex = "#" + ColorTranslator.ToHtml(Color.FromArgb(r, g, b));
- }
- if (RgbColorModelHex != null)
- {
- colorHex = "#" + RgbColorModelHex.Val;
- }
- if (HslColor != null)
- {
- ColorHSL colorHSL = new ColorHSL(HslColor.HueValue.Value, HslColor.SatValue.Value, HslColor.LumValue.Value);
- ColorRGB rbg = ColorHelper.HslToRgb(colorHSL);
- colorHex = "#" + ColorTranslator.ToHtml(Color.FromArgb(rbg.R, rbg.G, rbg.B));
- }
- if (SystemColor != null)
- {
- if (colors.TryGetValue(SystemColor.Val, out string clr))
- {
- colorHex = "#" + clr;
- }
- }
- if (SchemeColor != null)
- {
- if (colors.TryGetValue(SchemeColor.Val, out string clr))
- {
- colorHex = "#" + clr;
- }
- }
- if (PresetColor != null)
- {
- colorHex = PresetColor.Val.ToString().Replace("2010", "");
- System.Drawing.Color color = System.Drawing.Color.FromName(colorHex);
- colorHex = ColorTranslator.ToHtml(color);
- }
- return colorHex;
- }
- /// <summary>
- /// 在主题Theme中获取颜色
- /// </summary>
- /// <param name="scv"></param>
- /// <param name="theme"></param>
- /// <returns></returns>
- public static string ColorForThemeClr(string scv, DocumentFormat.OpenXml.Drawing.ColorScheme colorScheme,Dictionary<string,string> colorMap)
- {
- string colorStr = "";
- if (scv.Equals("tx1"))
- {
- if(colorMap.TryGetValue("Text1", out string Text1))
- colorStr = ColorForThemeClr(Text1, colorScheme, colorMap);
- return colorStr;
- }
- else if (scv.Equals("bg1"))
- {
- if (colorMap.TryGetValue("Background1", out string Background1))
- colorStr = ColorForThemeClr(Background1, colorScheme, colorMap);
- return colorStr;
- }
- else if (scv.Equals("bg2"))
- {
- if (colorMap.TryGetValue("Background2", out string Background2))
- colorStr = ColorForThemeClr(Background2, colorScheme, colorMap);
- return colorStr;
- }
- else if (scv.Equals("tx2"))
- {
- if (colorMap.TryGetValue("Text2", out string Text2))
- colorStr = ColorForThemeClr(Text2, colorScheme, colorMap);
- return colorStr;
- }
- else if (scv.Equals("dk1"))
- {
- DocumentFormat.OpenXml.Drawing.SystemColor sysColor = colorScheme.Dark1Color.ChildElements.First<DocumentFormat.OpenXml.Drawing.SystemColor>();
- if (sysColor != null)
- {
- return sysColor.LastColor;
- }
- DocumentFormat.OpenXml.Drawing.RgbColorModelHex rgbColor = colorScheme.Dark1Color.ChildElements.First<DocumentFormat.OpenXml.Drawing.RgbColorModelHex>();
- if (rgbColor != null)
- {
- return rgbColor.Val;
- }
- return colorStr;
- }
- else if (scv.Equals("dk2"))
- {
- DocumentFormat.OpenXml.Drawing.SystemColor sysColor = colorScheme.Dark2Color.ChildElements.First<DocumentFormat.OpenXml.Drawing.SystemColor>();
- if (sysColor != null)
- {
- return sysColor.LastColor;
- }
- DocumentFormat.OpenXml.Drawing.RgbColorModelHex rgbColor = colorScheme.Dark2Color.ChildElements.First<DocumentFormat.OpenXml.Drawing.RgbColorModelHex>();
- if (rgbColor != null)
- {
- return rgbColor.Val;
- }
- return colorStr;
- }
- else if (scv.Equals("accent1"))
- {
- DocumentFormat.OpenXml.Drawing.SystemColor sysColor = colorScheme.Accent1Color.ChildElements.First<DocumentFormat.OpenXml.Drawing.SystemColor>();
- if (sysColor != null)
- {
- return sysColor.LastColor;
- }
- DocumentFormat.OpenXml.Drawing.RgbColorModelHex rgbColor = colorScheme.Accent1Color.ChildElements.First<DocumentFormat.OpenXml.Drawing.RgbColorModelHex>();
- if (rgbColor != null)
- {
- return rgbColor.Val;
- }
- return colorStr;
- }
- else if (scv.Equals("accent2"))
- {
- DocumentFormat.OpenXml.Drawing.SystemColor sysColor = colorScheme.Accent2Color.ChildElements.First<DocumentFormat.OpenXml.Drawing.SystemColor>();
- if (sysColor != null)
- {
- return sysColor.LastColor;
- }
- DocumentFormat.OpenXml.Drawing.RgbColorModelHex rgbColor = colorScheme.Accent2Color.ChildElements.First<DocumentFormat.OpenXml.Drawing.RgbColorModelHex>();
- if (rgbColor != null)
- {
- return rgbColor.Val;
- }
- return colorStr;
- }
- else if (scv.Equals("accent3"))
- {
- DocumentFormat.OpenXml.Drawing.SystemColor sysColor = colorScheme.Accent3Color.ChildElements.First<DocumentFormat.OpenXml.Drawing.SystemColor>();
- if (sysColor != null)
- {
- return sysColor.LastColor;
- }
- DocumentFormat.OpenXml.Drawing.RgbColorModelHex rgbColor = colorScheme.Accent3Color.ChildElements.First<DocumentFormat.OpenXml.Drawing.RgbColorModelHex>();
- if (rgbColor != null)
- {
- return rgbColor.Val;
- }
- return colorStr;
- }
- else if (scv.Equals("accent4"))
- {
- DocumentFormat.OpenXml.Drawing.SystemColor sysColor = colorScheme.Accent4Color.ChildElements.First<DocumentFormat.OpenXml.Drawing.SystemColor>();
- if (sysColor != null)
- {
- return sysColor.LastColor;
- }
- DocumentFormat.OpenXml.Drawing.RgbColorModelHex rgbColor = colorScheme.Accent4Color.ChildElements.First<DocumentFormat.OpenXml.Drawing.RgbColorModelHex>();
- if (rgbColor != null)
- {
- return rgbColor.Val;
- }
- return colorStr;
- }
- else if (scv.Equals("accent5"))
- {
- DocumentFormat.OpenXml.Drawing.SystemColor sysColor = colorScheme.Accent5Color.ChildElements.First<DocumentFormat.OpenXml.Drawing.SystemColor>();
- if (sysColor != null)
- {
- return sysColor.LastColor;
- }
- DocumentFormat.OpenXml.Drawing.RgbColorModelHex rgbColor = colorScheme.Accent5Color.ChildElements.First<DocumentFormat.OpenXml.Drawing.RgbColorModelHex>();
- if (rgbColor != null)
- {
- return rgbColor.Val;
- }
- return colorStr;
- }
- else if (scv.Equals("accent6"))
- {
- DocumentFormat.OpenXml.Drawing.SystemColor sysColor = colorScheme.Accent6Color.ChildElements.First<DocumentFormat.OpenXml.Drawing.SystemColor>();
- if (sysColor != null)
- {
- return sysColor.LastColor;
- }
- DocumentFormat.OpenXml.Drawing.RgbColorModelHex rgbColor = colorScheme.Accent6Color.ChildElements.First<DocumentFormat.OpenXml.Drawing.RgbColorModelHex>();
- if (rgbColor != null)
- {
- return rgbColor.Val;
- }
- return colorStr;
- }
- else if (scv.Equals("lt1"))
- {
- DocumentFormat.OpenXml.Drawing.SystemColor sysColor = colorScheme.Light1Color.ChildElements.First<DocumentFormat.OpenXml.Drawing.SystemColor>();
- if (sysColor != null)
- {
- return sysColor.LastColor;
- }
- DocumentFormat.OpenXml.Drawing.RgbColorModelHex rgbColor = colorScheme.Light1Color.ChildElements.First<DocumentFormat.OpenXml.Drawing.RgbColorModelHex>();
- if (rgbColor != null)
- {
- return rgbColor.Val;
- }
- return colorStr;
- }
- else if (scv.Equals("lt2"))
- {
- DocumentFormat.OpenXml.Drawing.SystemColor sysColor = colorScheme.Light2Color.ChildElements.First<DocumentFormat.OpenXml.Drawing.SystemColor>();
- if (sysColor != null)
- {
- return sysColor.LastColor;
- }
- DocumentFormat.OpenXml.Drawing.RgbColorModelHex rgbColor = colorScheme.Light2Color.ChildElements.First<DocumentFormat.OpenXml.Drawing.RgbColorModelHex>();
- if (rgbColor != null)
- {
- return rgbColor.Val;
- }
- return colorStr;
- }
- else if (scv.Equals("hlink"))
- {
- DocumentFormat.OpenXml.Drawing.SystemColor sysColor = colorScheme.Hyperlink.ChildElements.First<DocumentFormat.OpenXml.Drawing.SystemColor>();
- if (sysColor != null)
- {
- return sysColor.LastColor;
- }
- DocumentFormat.OpenXml.Drawing.RgbColorModelHex rgbColor = colorScheme.Hyperlink.ChildElements.First<DocumentFormat.OpenXml.Drawing.RgbColorModelHex>();
- if (rgbColor != null)
- {
- return rgbColor.Val;
- }
- return colorStr;
- }
- else if (scv.Equals("folHlink"))
- {
- DocumentFormat.OpenXml.Drawing.SystemColor sysColor = colorScheme.FollowedHyperlinkColor.ChildElements.First<DocumentFormat.OpenXml.Drawing.SystemColor>();
- if (sysColor != null)
- {
- return sysColor.LastColor;
- }
- DocumentFormat.OpenXml.Drawing.RgbColorModelHex rgbColor = colorScheme.FollowedHyperlinkColor.ChildElements.First<DocumentFormat.OpenXml.Drawing.RgbColorModelHex>();
- if (rgbColor != null)
- {
- return rgbColor.Val;
- }
- return colorStr;
- }
- return colorStr;
- }
- }
- }
|