Beispiel #1
0
        public XSSFColor GetThemeColor(int idx)
        {
            CT_ColorScheme clrScheme = this.theme.GetTheme().themeElements.clrScheme;
            int            num       = 0;

            foreach (NPOI.OpenXmlFormats.Dml.CT_Color ctColor1 in new List <NPOI.OpenXmlFormats.Dml.CT_Color>()
            {
                clrScheme.dk1, clrScheme.lt1, clrScheme.dk2, clrScheme.lt2, clrScheme.accent1, clrScheme.accent2, clrScheme.accent3, clrScheme.accent4, clrScheme.accent5, clrScheme.accent6, clrScheme.hlink, clrScheme.folHlink
            })
            {
                if (num == idx)
                {
                    NPOI.OpenXmlFormats.Dml.CT_Color ctColor2 = ctColor1;
                    byte[] rgb = (byte[])null;
                    if (ctColor2.srgbClr != null)
                    {
                        rgb = ctColor2.srgbClr.val;
                    }
                    else if (ctColor2.sysClr != null)
                    {
                        rgb = ctColor2.sysClr.lastClr;
                    }
                    return(new XSSFColor(rgb));
                }
                ++num;
            }
            return((XSSFColor)null);
        }
Beispiel #2
0
        /**
         * Convert a theme "index" into a color.
         * @param idx A theme "index"
         * @return The mapped XSSFColor, or null if not mapped.
         */
        public XSSFColor GetThemeColor(int idx)
        {
            // Theme color references are NOT positional indices into the color scheme,
            // i.e. these keys are NOT the same as the order in which theme colors appear
            // in theme1.xml. They are keys to a mapped color.
            CT_ColorScheme colorScheme = theme.GetTheme().themeElements.clrScheme;

            NPOI.OpenXmlFormats.Dml.CT_Color ctColor = null;

            switch (idx)
            {
            case THEME_LT1: ctColor = colorScheme.lt1; break;

            case THEME_DK1: ctColor = colorScheme.dk1; break;

            case THEME_LT2: ctColor = colorScheme.lt2; break;

            case THEME_DK2: ctColor = colorScheme.dk2; break;

            case THEME_ACCENT1: ctColor = colorScheme.accent1; break;

            case THEME_ACCENT2: ctColor = colorScheme.accent2; break;

            case THEME_ACCENT3: ctColor = colorScheme.accent3; break;

            case THEME_ACCENT4: ctColor = colorScheme.accent4; break;

            case THEME_ACCENT5: ctColor = colorScheme.accent5; break;

            case THEME_ACCENT6: ctColor = colorScheme.accent6; break;

            case THEME_HLINK: ctColor = colorScheme.hlink; break;

            case THEME_FOLHLINK: ctColor = colorScheme.folHlink; break;

            default: return(null);
            }

            byte[] rgb = null;
            if (ctColor.IsSetSrgbClr())
            {
                // Color is a regular one
                rgb = ctColor.srgbClr.val;
            }
            else if (ctColor.IsSetSysClr())
            {
                // Color is a tint of white or black
                rgb = ctColor.sysClr.lastClr;
            }
            else
            {
                return(null);
            }
            return(new XSSFColor(rgb));
        }
Beispiel #3
0
        public XSSFColor GetThemeColor(int idx)
        {
            CT_ColorScheme colorScheme = theme.GetTheme().themeElements.clrScheme;

            NPOI.OpenXmlFormats.Dml.CT_Color ctColor = null;

            int cnt = 0;
            List <NPOI.OpenXmlFormats.Dml.CT_Color> colors = new List <NPOI.OpenXmlFormats.Dml.CT_Color>();

            colors.Add(colorScheme.dk1);
            colors.Add(colorScheme.lt1);
            colors.Add(colorScheme.dk2);
            colors.Add(colorScheme.lt2);
            colors.Add(colorScheme.accent1);
            colors.Add(colorScheme.accent2);
            colors.Add(colorScheme.accent3);
            colors.Add(colorScheme.accent4);
            colors.Add(colorScheme.accent5);
            colors.Add(colorScheme.accent6);
            colors.Add(colorScheme.hlink);
            colors.Add(colorScheme.folHlink);

            //iterate ctcolors in colorschema
            foreach (NPOI.OpenXmlFormats.Dml.CT_Color color in colors)
            {
                if (cnt == idx)
                {
                    ctColor = color;

                    byte[] rgb = null;
                    if (ctColor.srgbClr != null)
                    {
                        // Colour is a regular one
                        rgb = ctColor.srgbClr.val;
                    }
                    else if (ctColor.sysClr != null)
                    {
                        // Colour is a tint of white or black
                        rgb = ctColor.sysClr.lastClr;
                    }

                    return(new XSSFColor(rgb));
                }
                cnt++;
            }
            return(null);
        }
Beispiel #4
0
        public static CT_ColorSchemeAndMapping Parse(XElement node, XmlNamespaceManager namespaceManager)
        {
            if (node == null)
            {
                return(null);
            }
            CT_ColorSchemeAndMapping ctObj = new CT_ColorSchemeAndMapping();

            foreach (XElement childNode in node.ChildElements())
            {
                if (childNode.Name.LocalName == "clrScheme")
                {
                    ctObj.clrScheme = CT_ColorScheme.Parse(childNode, namespaceManager);
                }
                else if (childNode.Name.LocalName == "clrMap")
                {
                    ctObj.clrMap = CT_ColorMapping.Parse(childNode, namespaceManager);
                }
            }
            return(ctObj);
        }
Beispiel #5
0
 public CT_BaseStylesOverride()
 {
     this.fmtSchemeField  = new CT_StyleMatrix();
     this.fontSchemeField = new CT_FontScheme();
     this.clrSchemeField  = new CT_ColorScheme();
 }