Interoperabilidad de Office 2007 [y superior]: recupera el color RGB


ACTUALIZAR: Si necesita determinar rgb-color en un documento de Office (formato 2007) mire mi respuesta a continuación.

Tener:

Interop.Word.dll ver.14 de VS2010 PIA,Edición Express VS2010MS Word 2010 (ver.14).docx-archivo hecho en la palabra mencionada manualmente sin interoperabilidad. El archivo contiene varias tablas con celdas de esquina coloreadas.

Propósito: Para crear otro archivo .docx con Interop contenía las tablas llenas de degradado de color basadas en colores en sus esquinas.
Donde aparece el problema: Necesito transformar colores en las esquinas de las tablas.WdColor aSystem.Drawing.Color para calcular el gradiente. Así que trabajo con celularesShading.BackgroundPatternColor propiedad. Y descubrí que a veces contiene el valor correcto de BGR de 24 bits y otras veces no.
El segundo caso aparece solo cuando la celda tiene uno de los colores de la paleta de temas (los colores estándar y rgb-paleta funcionan bien, pero los colores de la paleta de temas pueden causar problemas). Por ejemplo, cuando configuro0x00F2F2F2 El color (el gris más claro) se almacena endocument.xml dentro del archivo .docx archiva correctamente peroShading.BackgroundPatternColor la propiedad se establece en0xDC00F2FF. Asi queColorTranslator.FromOle Vuelve diferente color.
Por cierto, no hay WdColor para este gris en la enumeración. El gris mas clarowdColorGray05 = 0xF3F3F3 Debido a .Net Reflector. Esto significa que no todos los colores predeterminados de la paleta corresponden a los colores de enumeración.
Además, si configuro manualmente el mismo color en la paleta RGB en Word (es decir, 242, 242, 242), guardar archivo y abrir de nuevo con Interop - el color se establecerá correctamente como0x00F2F2F2!
Pregunta: ¿Alguien tuvo ese problema? Cómo recuperar correctamente el color RGB deShading.BackgroundPatternColor ¿propiedad? Por qué esta propiedad no corresponde al valor almacenado endocument.xml?

Respuestas a la pregunta(1)

Su respuesta a la pregunta