Thanks for the response Eric.
I have worked out a crude implementation of rolling up style inheritance and a run’s style hierarchy. Right now my implementation accepts any new attributes that change for the next hierarchy or inheritance, as long as that attribute is defined. I handle the toggle properties when rolling up the run style hierarchy as well.
The properties that aren’t On/Off types like shading, borders, color, and the run font names are what I’m looking for in particular. Whether or not their attributes (like shading’s background & foreground colors, and texture) are replaced wholesale, or each is looked at in turn.
Thanks for pointing me towards FormattingAssembler.cs, I’m looking through it right now to hopefully find what I need.
No, there isn’t. OOXML only knows about runs, paragraphs etc. Most of the information needed to reconstruct it is in the XML, but there are some edge cases where the range info from the word application would differ.