a:bodyPr (Body Properties)

Defines text body properties like wrapping, margins, rotation, and vertical anchoring.

Description

a:bodyPr specifies formatting properties for text bodies in DrawingML shapes. It is defined in ECMA-376 Part 1 §20.1.2.27.

It controls:

  • Text wrapping mode (square, none)
  • Vertical anchoring (top, center, bottom)
  • Internal margins (left, right, top, bottom insets)
  • Text rotation and skew
  • Auto-fit options (resize text to fit, etc.)
  • 3D scene for text (for special effects)

Attributes

Attribute Type Possible Values Description
rot ST_Angle Integer in degrees × 60000 (e.g., 2700000 = 90° × 60000). May be negative. Rotation angle in 60,000ths of a degree.
flipH xsd:boolean 0 | 1 Flip text horizontally.
flipV xsd:boolean 0 | 1 Flip text vertically.
anchor ST_TextAnchoringType t (top), ctr (center), b (bottom), just (justified), dist (distributed) Vertical text anchor point.
anchorCtr xsd:boolean 0 | 1 Center text box vertically within bounds.
wrap ST_TextWrappingType none, square Text wrapping behavior.
rtlCol xsd:boolean 0 | 1 Use right-to-left column layout.
lIns ST_Coordinate32 Non-negative integer in EMUs Left inset/margin.
tIns ST_Coordinate32 Non-negative integer in EMUs Top inset/margin.
rIns ST_Coordinate32 Non-negative integer in EMUs Right inset/margin.
bIns ST_Coordinate32 Non-negative integer in EMUs Bottom inset/margin.
numCol ST_TextColumnCount 1 to 16 Number of text columns.
spcCol ST_Coordinate32 Non-negative integer in EMUs Space between columns.
rtlCol xsd:boolean 0 | 1 Column flow direction (RTL).

Examples

Text Body with Square Wrapping and Center Anchoring

<a:bodyPr anchor="ctr" wrap="square" lIns="45720" tIns="22860" rIns="45720" bIns="22860"/>

Rotated Text Body with Top Anchoring

<a:bodyPr rot="2700000" anchor="t" anchorCtr="true" wrap="square" lIns="91440" tIns="45720" rIns="91440" bIns="45720"/>

Text Body with Multiple Columns and Right-to-Left Layout

<a:bodyPr anchor="t" wrap="none" numCol="3" spcCol="228600" rtlCol="true" lIns="45720" rIns="45720"/>

Notes

  • Inset values (lIns, tIns, rIns, bIns) are in EMUs; 914400 EMUs = 1 inch.
  • Rotation angle is in 60,000ths of a degree; divide display degrees by 1 and multiply by 60000 to convert.
  • Text wrapping “square” allows text to wrap within the shape bounds; “none” prevents wrapping.
  • The anchor attribute determines vertical positioning: t (top), ctr (center), b (bottom).
  • Multiple columns are useful for newspaper-style text layouts; numCol ranges 1–16.

  • The permitted child elements and attribute values depend on the surrounding OOXML part and the schema version in use.
  • In practice, DrawingML content is usually generated from higher-level shape or picture APIs rather than built manually element-by-element.
  • When this element appears inside a document package, it is typically linked by relationships or contained in a drawing part that is referenced from a shape or graphic object.