public corel.Color Convert(corel.Color color) { string colorName; if (color.Type == cdrColorType.cdrColorSpot) { colorName = color.Name; // если спот из таблиц пантонов if (colorName.Contains("PANTONE")) { colorName = colorName.Replace(" 2X", ""); colorName = colorName.Substring(0, colorName.LastIndexOf(' ')); //разные названия TransWhite if (!colorName.Contains("Trans. White")) { colorName = colorName + " C"; } // исправление неправильного названия в PANTONE MATCHING SYSTEM Coated - Corel 10 if (colorName == "PANTONE Relfex Blue C") { colorName = "PANTONE Reflex Blue C"; } } } else { colorName = color.HexValue.ToString(); } // поиск в найденных цветах if (foundColors.ContainsKey(colorName)) { corel.Color c = foundColors[colorName]; // если спот сохранить тинт if (color.Type == cdrColorType.cdrColorSpot && color.IsTintable && c.IsSpot && c.IsTintable) { c.Tint = color.Tint; return(c); } else { return(c); } } // поиск в палитрах корела если палитра Locked if (color.Type == cdrColorType.cdrColorSpot) { foreach (string id in palettesID) { if (color.PaletteIdentifier != id) { corel.Palette castPalette = corelApp.PaletteManager.GetPalette(id); int colorID = castPalette.FindColor(colorName); if (colorID != 0) { corel.Color c = new Color(); c.PaletteAssign(castPalette.Identifier, colorID); foundColors.Add(c.Name.ToString(), c); c.Tint = color.Tint; return(c); } } else { return(color); } } // если нигде нет if (MessageBox.Show("В палитрах ненайден цвет:\n" + color.Name + "\n" + "Заменить вручную?", "Ненайден цвет", MessageBoxButton.YesNo, MessageBoxImage.Information) == MessageBoxResult.Yes) { corel.Color c = new corel.Color(); if (c.UserAssignEx()) { // если спот учитывать тинт foundColors.Add(colorName, c); if (c.IsSpot && c.IsTintable) { c.Tint = color.Tint; } return(c); } } else { foundColors.Add(colorName, color); return(color); } } else { corel.Color c = new corel.Color(); c.CopyAssign(color); c.ConvertToPalette("6e75244b-d853-4d2e-bea2-a5da3f195d08"); foundColors.Add(colorName, c); return(c); } return(color); }