I'm confused about Office Open XML architecture: w:rPr tag doesn't seem to be working when inside of a w:pPr tag.
<w:p w:rsidR="00573C57" w:rsidRPr="004A77F9" w:rsidRDefault="00573C57" w:rsidP="006F57C5">
<w:pPr>
<w:rPr>
<w:b />
<w:sz w:val="36" />
<w:szCs w:val="36" />
</w:rPr>
</w:pPr>
<w:r w:rsidRPr="004A77F9">
<w:rPr>
<w:b />
<w:sz w:val="36" />
<w:szCs w:val="36" />
</w:rPr>
<w:t xml:space="preserve"> BUSINESS</w:t>
</w:r>
<w:r w:rsidRPr="004A77F9">
<w:t xml:space="preserve"> PLAN FILE</w:t>
</w:r>
</w:p>
First w:r tag has a w:rPr tag which including bold (w:b) and font-size (w:sz) so section style taking bold and font-size style when docx outputting.
Last w:r tag hasn't w:rPr tag so this section has no style when docx outputting.
Then why w:pPr tag has w:rPr style when totally useless?
OOXML character properties can be applied at the paragraph (w:p/w:pPr) or run (w:r/w:rPr) levels. Properties at the run level override those at the paragraph level.
In your particular example, there are currently no (general, but see note #2 below) paragraph-level properties and one run-level property, which is responsible for BUSINESS being bold.
Notes:
There's no guarantee that character properties will be normalized to a minimal representation for any given effect.
When a w:rPr element appears within a w:pPr,
<w:pPr>
<w:rPr>
<w:b />
<w:sz w:val="36" />
<w:szCs w:val="36" />
</w:rPr>
</w:pPr>
it applies only to the paragraph glyph (¶). (Yes, it's a rather esoteric feature.) If you want to format the paragraph glyph, add properties there; if you do not particularly care about the paragraph glyph, you can remove the w:pPr/w:rPr wrapper and allow its properties to apply at the paragraph level:
<w:pPr>
<w:b />
<w:sz w:val="36" />
<w:szCs w:val="36" />
</w:pPr>
When a w:rPr element appears within a w:lvl, it applies to the numbering level's text specified in the w:lvl.
When a w:rPr elements appears within a w:sdtPr, it applies to the "text entered into the nearest ancestor structured document tag in replacement of the placeholder text." [ISO/IEC 29500-1:2016(E) pg350]
There are further semantics associated with w:rPr depending upon its parent element context (w:rPrChange etc). See the OOXML standards specifications for further details.
The only thing I wanted to add to the @kjhughes's answer is that pPr > rPr styles actually do apply in the document, but not to the paragraph itself - they apply to the list styles (a.k.a. numbering). For example, if you have a paragraph like this:
The styles specified in the pPr > rPr (like "w:color" or "w:b" (bold)), will be applied only to the text "1."
So if you're working with lists as well, you can't just disregard the pPr > rPr styles.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With