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