예제 #1
0
        /// <summary>
        /// Read all color spaces defined the resources
        /// </summary>
        private void ReadResourceDefinedColorSpaces(PdfResources resourcesDict)
        {
            var colorSpaceDict = resourcesDict.ColorSpaces;

            if (colorSpaceDict == null)
            {
                return;
            }

            foreach (var name in colorSpaceDict.Elements.Keys)
            {
                var colorSpaceArray = colorSpaceDict.Elements.GetArray(name);
                var type            = colorSpaceArray.Elements.GetName(0);

                IColorSpace colorSpace = null;

                switch (type)
                {
                case PdfKeys.DevicePattern:
                {
                    colorSpace = new PatternColorSpace(patternManager);
                    colorSpace.Init(colorSpaceArray);
                    break;
                }

                default:
                    colorSpace = CreateColorSpace(colorSpaceArray);
                    break;
                }

                colorSpaces.Add(name, colorSpace);
            }
        }
예제 #2
0
        /// <summary>
        /// Init
        /// </summary>
        public void Init(PdfResources resourcesDict)
        {
            colorSpaces = new Dictionary <string, IColorSpace>();

            IColorSpace predefinedColorSpace = new RGBDeviceColorSpace();

            colorSpaces.Add(PdfKeys.DeviceRGB, predefinedColorSpace);

            predefinedColorSpace = new CMYKDeviceColorSpace();
            colorSpaces.Add(PdfKeys.DeviceCMYK, predefinedColorSpace);

            predefinedColorSpace = new GrayDeviceColorSpace();
            colorSpaces.Add(PdfKeys.DeviceGray, predefinedColorSpace);

            var predefinedColorSpacePattern = new PatternColorSpace(patternManager);

            colorSpaces.Add(PdfKeys.DevicePattern, predefinedColorSpacePattern);

            if (resourcesDict != null)
            {
                ReadResourceDefinedColorSpaces(resourcesDict);
            }
        }