[]
Usually, in a Word document, the content formatting is picked from default document style, parent content formatting or direct formatting. In order to detect the source of formatting properties, GcWord library provides the GetPropertyValueSource method in GcWordDocument class. This feature is useful for users, who want to programmatically determine the formatting source of Word objects in documents.
The GetPropertyValueSource method takes the formatting "property" as a parameter to find and return the object in the inheritance chain which is the source of the formatting property.
If the target property's value is determined by an object in the inheritance hierarchy, the type of the object returned by the GetPropertyValueSource method can be one of:
Paragraph
Run
Table
Row
Cell
ContentControl
Style
ConditionalStyle
StyleCollection
ListLevel
PageSetup
Settings
If the property belongs directly to an object, that object will be returned (and it can be of any type)
To detect source of a paragraph's formatting properties:
Create an instance of GcWordDocument and load the Word document having styles.
Get a source object of the "Font.Size" property set for a run within a paragraph formatted with Heading 1 style.
public static void DetectFormatting()
{
//Create a new GcWordDocument
GcWordDocument doc = new GcWordDocument();
//Get Heading 1 style
Style style = doc.Styles[BuiltInStyleId.Heading1];
//Add a run within a paragraph formatted with Heading 1 style
doc.Body.Paragraphs.Add("text", style);
//Get a source object of the "Font.Size" property from the created run
object source = GcWordDocument.GetPropertyValueSource(() => doc.Body.Runs.First.Font.Size);
//The source object must be "Heading1" style because the font size is defined here.
Console.Write("Formatting source name: " + ((Style)source).Name);
Console.ReadLine();
}
For more information on how to modify theme colors using GcWord, see GcWord sample browser.