Share via


BodyProperties Class

Defines the BodyProperties Class.When the object is serialized out as xml, its qualified name is a:bodyPr.

Inheritance Hierarchy

System.Object
  DocumentFormat.OpenXml.OpenXmlElement
    DocumentFormat.OpenXml.OpenXmlCompositeElement
      DocumentFormat.OpenXml.Drawing.BodyProperties

Namespace:  DocumentFormat.OpenXml.Drawing
Assembly:  DocumentFormat.OpenXml (in DocumentFormat.OpenXml.dll)

Syntax

'Declaration
<ChildElementInfoAttribute(GetType(NoAutoFit))> _
<ChildElementInfoAttribute(GetType(PresetTextWrap))> _
<ChildElementInfoAttribute(GetType(Scene3DType))> _
<ChildElementInfoAttribute(GetType(NormalAutoFit))> _
<ChildElementInfoAttribute(GetType(ShapeAutoFit))> _
<ChildElementInfoAttribute(GetType(FlatText))> _
<ChildElementInfoAttribute(GetType(Shape3DType))> _
<ChildElementInfoAttribute(GetType(ExtensionList))> _
Public Class BodyProperties _
    Inherits OpenXmlCompositeElement
'Usage
Dim instance As BodyProperties
[ChildElementInfoAttribute(typeof(NoAutoFit))]
[ChildElementInfoAttribute(typeof(PresetTextWrap))]
[ChildElementInfoAttribute(typeof(Scene3DType))]
[ChildElementInfoAttribute(typeof(NormalAutoFit))]
[ChildElementInfoAttribute(typeof(ShapeAutoFit))]
[ChildElementInfoAttribute(typeof(FlatText))]
[ChildElementInfoAttribute(typeof(Shape3DType))]
[ChildElementInfoAttribute(typeof(ExtensionList))]
public class BodyProperties : OpenXmlCompositeElement

Remarks

The following table lists the possible child types:

  • PresetTextWrap <a:prstTxWarp>

  • NoAutoFit <a:noAutofit>

  • NormalAutoFit <a:normAutofit>

  • ShapeAutoFit <a:spAutoFit>

  • Scene3DType <a:scene3d>

  • Shape3DType <a:sp3d>

  • FlatText <a:flatTx>

  • ExtensionList <a:extLst>

[ISO/IEC 29500-1 1st Edition]

21.1.2.1.1 bodyPr (Body Properties)

This element defines the body properties for the text body within a shape.

[Example: Consider a shape with a text body that has some formatting properties associated with it. For the formatting of text body properties, the bodyPr element should be used as follows:

<p:sp>
…
<p:txBody>
<a:bodyPr>
(text body properties)
</a:bodyPr>
…
</p:txBody>
</p:sp>

end example]

Parent Elements

lnDef (§20.1.4.1.20); rich (§21.2.2.156); spDef (§20.1.4.1.27); t (§21.4.3.8); txBody (§21.3.2.26); txBody (§20.1.2.2.40); txBody (§20.5.2.34); txBody (§19.3.1.51); txDef (§20.1.4.1.28); txPr (§21.2.2.216)

Child Elements

Subclause

extLst (Extension List)

§20.1.2.2.15

flatTx (No text in 3D scene)

§20.1.5.8

noAutofit (No AutoFit)

§21.1.2.1.2

normAutofit (Normal AutoFit)

§21.1.2.1.3

prstTxWarp (Preset Text Warp)

§20.1.9.19

scene3d (3D Scene Properties)

§20.1.4.1.26

sp3d (Apply 3D shape properties)

§20.1.5.12

spAutoFit (Shape AutoFit)

§21.1.2.1.4

Attributes

Description

anchor (Anchor)

Specifies the anchoring position of the txBody within the shape. If this attribute is omitted, then a value of t, or top is implied.

[Example: Consider the following DrawingML:

<p:txBody>
<a:bodyPr anchor="ctr" … />
…
</p:txBody>

Here the text is vertically aligned in the center of the shape within which it is contained. end example]

The possible values for this attribute are defined by the ST_TextAnchoringType simple type (§20.1.10.60).

anchorCtr (Anchor Center)

Specifies the centering of the text box. The way it works fundamentally is to determine the smallest possible "bounds box" for the text and then to center that "bounds box" accordingly. This is different than paragraph alignment, which aligns the text within the "bounds box" for the text. This flag is compatible with all of the different kinds of anchoring. If this attribute is omitted, then a value of 0 or false is implied.

[Example: The text within this shape has been both vertically centered with the anchor attribute and horizontally centered with the anchorCtr attribute.

<p:txBody>
<a:bodyPr anchor="ctr" anchorCtr="1" … />
…
</p:txBody>

end example]

The possible values for this attribute are defined by the W3C XML Schema boolean datatype.

bIns (Bottom Inset)

Specifies the bottom inset of the bounding rectangle. Insets are used just as internal margins for text boxes within shapes. If this attribute is omitted, a value of 45720 or 0.05 inches is implied.

[Example: Consider the following DrawingML:

<p:txBody>
<a:bodyPr lIns="91440" tIns="91440"
rIns="91440" bIns="91440" … />
…
</p:txBody>

The text box having the above body properties has inset margins of 91440 or 0.1 inches on all four sides. end example]

The possible values for this attribute are defined by the ST_Coordinate32 simple type (§20.1.10.17).

compatLnSpc (Compatible Line Spacing)

Specifies that the line spacing for this text body is decided in a simplistic manner using the font scene. If this attribute is omitted, a value of 0 or false is implied.

The possible values for this attribute are defined by the W3C XML Schema boolean datatype.

forceAA (Force Anti-Alias)

Forces the text to be rendered anti-aliased regardless of the font size. Certain fonts can appear grainy around their edges unless they are anti-aliased. Therefore this attribute allows for the specifying of which bodies of text should always be anti-aliased and which ones should not. If this attribute is omitted, then a value of 0 or falseis implied.

The possible values for this attribute are defined by the W3C XML Schema boolean datatype.

fromWordArt (From WordArt)

Specifies that text within this textbox is converted text from a WordArt object. This is more of a backwards compatibility attribute that is useful to the application from a tracking perspective. WordArt was the former way to apply text effects and therefore this attribute is useful in document conversion scenarios. If this attribute is omitted, then a value of 0 or falseis implied.

[Example: Consider the following DrawingML:

<p:txBody>
<a:bodyPr wrap="none" fromWordArt="1" …
/>
…
</p:txBody>

end example]

Because of the presence of the fromWordArt attribute the text within this shape can be mapped back to the corresponding WordArt during document conversion. end example]

The possible values for this attribute are defined by the W3C XML Schema boolean datatype.

horzOverflow (Text Horizontal Overflow)

Determines whether the text can flow out of the bounding box horizontally. This is used to determine what happens in the event that the text within a shape is too large for the bounding box it is contained within. If this attribute is omitted, then a value of overflow is implied.

[Example: Consider the case where we have multiply paragraphs within a shape and the second is greater in length and causes text to flow outside the shape. By applying the clip value of the horzOverflow attribute as a body property this overflowing text now is cut off instead of extending beyond the bounds of the shape.

<p:txBody>
<a:bodyPr horzOverflow="clip" … />
…
<a:p>
…
(Some text)
…
</a:p>
    <a:p>
…
(Some more text)
…
</a:p>
</p:txBody>

end example]

The possible values for this attribute are defined by the ST_TextHorzOverflowType simple type (§20.1.10.69).

lIns (Left Inset)

Specifies the left inset of the bounding rectangle. Insets are used just as internal margins for text boxes within shapes. If this attribute is omitted, then a value of 91440 or 0.1 inches is implied.

[Example: Consider the following DrawingML:

<p:txBody>
<a:bodyPr lIns="91440" tIns="91440" rIns="91440"
bIns="91440" … />
…
</p:txBody>

The text box having the above body properties has inset margins of 91440 or 0.1 inches on all four sides. end example]

The possible values for this attribute are defined by the ST_Coordinate32 simple type (§20.1.10.17).

numCol (Number of Columns)

Specifies the number of columns of text in the bounding rectangle. When applied to a text run this property takes the width of the bounding box for the text and divides it by the number of columns specified. These columns are then treated as overflow containers in that when the previous column has been filled with text the next column acts as the repository for additional text. When all columns have been filled and text still remains then the overflow properties set for this text body are used and the text is reflowed to make room for additional text. If this attribute is omitted, then a value of 1 is implied.

[Example: Consider the case where a text area would need to be split up into four separate columns. Then simply specifying one paragraph with one run of text is enough to describe four columns of text here.

<p:txBody>
<a:bodyPr numCol="4" … />
<a:p>
<a:r>
…
(Some text)
…
</a:r>
</a:p>
</p:txBody>

end example]

The possible values for this attribute are defined by the ST_TextColumnCount simple type (§20.1.10.65).

rIns (Right Inset)

Specifies the right inset of the bounding rectangle. Insets are used just as internal margins for text boxes within shapes. If this attribute is omitted, then a value of 91440 or 0.1 inches is implied.

[Example: Consider the following DrawingML:

<p:txBody>
  <a:bodyPr lIns="91440" tIns="91440" 
  rIns="91440" bIns="91440" … />
  …
</p:txBody>

The text box having the above body properties has inset margins of 91440 or 0.1 inches on all four sides. end example]

The possible values for this attribute are defined by the ST_Coordinate32 simple type (§20.1.10.17).

rot (Rotation)

Specifies the rotation that is being applied to the text within the bounding box. If it not specified, the rotation of the accompanying shape is used. If it is specified, then this is applied independently from the shape. That is the shape can have a rotation applied in addition to the text itself having a rotation applied to it. If this attribute is omitted, then a value of 0, is implied.

[Example: Consider the case where a shape has a rotation of 5400000, or 90 degrees clockwise applied to it. In addition to this, the text body itself has a rotation of -5400000, or 90 degrees counter-clockwise applied to it. Then the resulting shape would appear to be rotated but the text within it would appear as though it had not been rotated at all. The DrawingML specifying this would look like the following:

<p:sp>
  <p:spPr>
    <a:xfrm rot="5400000">
      …
    </a:xfrm>
  </p:spPr>
  …
  <p:txBody>
    <a:bodyPr rot="-5400000" … />
    …
    (Some text)
    …
  </p:txBody>
</p:sp>

end example]

The possible values for this attribute are defined by the ST_Angle simple type (§20.1.10.3).

rtlCol (Columns Right-To-Left)

Specifies whether columns are used in a right-to-left or left-to-right order. The usage of this attribute only sets the column order that is used to determine which column overflow text should go to next. If this attribute is omitted, then a value of 0 or falseis implied in which case text starts in the leftmost column and flow to the right.

[Note: This attribute in no way determines the direction of text but merely the direction in which multiple columns are used. end note]

The possible values for this attribute are defined by the W3C XML Schema boolean datatype.

spcCol (Space Between Columns)

Specifies the space between text columns in the text area. This should only apply when there is more than 1 column present. If this attribute is omitted, then a value of 0 is implied.

The possible values for this attribute are defined by the ST_PositiveCoordinate32 simple type (§20.1.10.43).

spcFirstLastPara (Paragraph Spacing)

Specifies whether the before and after paragraph spacing defined by the user is to be respected. While the spacing between paragraphs is helpful, it is additionally useful to be able to set a flag as to whether this spacing is to be followed at the edges of the text body, in other words the first and last paragraphs in the text body. More precisely since this is a text body level property it should only effect the before paragraph spacing of the first paragraph and the after paragraph spacing of the last paragraph for a given text body. If this attribute is omitted, then a value of 0, or false is implied.

[Example: Consider the case where spacing has been defined between multiple paragraphs within a text body using the spcBef and spcAft paragraph spacing attributes. For this text body however the user would like to not have this followed for the edge paragraphs and thus we have the following DrawingML.

<p:txBody>
<a:bodyPr spcFirstLastPara="0" … />
…
<a:p>
<a:pPr>
<a:spcBef>
<a:spcPts val="1800"/>
</a:spcBef>
<a:spcAft>
<a:spcPts val="600"/>
</a:spcAft>
</a:pPr>
…
(Some text)
…
</a:p>
  <a:p>
<a:pPr>
<a:spcBef>
<a:spcPts val="1800"/>
</a:spcBef>
<a:spcAft>
<a:spcPts val="600"/>
</a:spcAft>
</a:pPr>
…
(Some text)
…
</a:p>
…
</p:txBody>

end example]

The possible values for this attribute are defined by the W3C XML Schema boolean datatype.

tIns (Top Inset)

Specifies the top inset of the bounding rectangle. Insets are used just as internal margins for text boxes within shapes. If this attribute is omitted, then a value of 45720 or 0.05 inches is implied.

[Example: Consider the following DrawingML:

<p:txBody>
<a:bodyPr lIns="91440" tIns="91440"
rIns="91440" bIns="91440" … />
…
</p:txBody>

The text box having the above body properties has inset margins of 91440 or 0.1 inches on all four sides. end example]

The possible values for this attribute are defined by the ST_Coordinate32 simple type (§20.1.10.17).

upright (Text Upright)

Specifies whether text should remain upright, regardless of the transform applied to it and the accompanying shape transform. If this attribute is omitted, then a value of 0, or false is implied.

[Example: Consider text that has been rotated within the text body but has the upright flag set.

<p:txBody>
<a:bodyPr upright="1" rot="5400000" …/>
…
(Some text)
…
</p:txBody>

This text appears as though no transform has been applied to it. end example]

The possible values for this attribute are defined by the W3C XML Schema boolean datatype.

vert (Vertical Text)

Determines if the text within the given text body should be displayed vertically. If this attribute is omitted, then a value of horz, or no vertical text is implied.

[Example: Consider the case where the user needs to display text that appears vertical and has a right to left flow with respect to its columns.

<p:txBody>
<a:bodyPr vert="wordArtVertRtl" … />
…
<a:p>
…
<a:t>This is</a:t>
…
</a:p>
<a:p>
…
<a:t>some text.</a:t>
…
</a:p>
</p:txBody>

In the above sample DrawingML there are two paragraphs denoting a separation between the text otherwise which are known as either a line or paragraph break. Because wordArtVertRtl is used here this text is not only displayed in a stacked manner flowing from top to bottom but also have the first paragraph be displayed to the right of the second. This is because it is both vertical text and right to left. end example]

The possible values for this attribute are defined by the ST_TextVerticalType simple type (§20.1.10.83).

vertOverflow (Text Vertical Overflow)

Determines whether the text can flow out of the bounding box vertically. This is used to determine what happens in the event that the text within a shape is too large for the bounding box it is contained within. If this attribute is omitted, then a value of overflow is implied.

[Example: Consider the case where we have multiply paragraphs within a shape and the second causes text to flow outside the shape. By applying the clip value of the vertOverflow attribute as a body property this overflowing text is now cut off instead of extending beyond the bounds of the shape.

<p:txBody>
<a:bodyPr vertOverflow="clip" … />
…
<a:p>
…
(Some text)
…
</a:p>
  <a:p>
…
(Some longer text)
…
</a:p>
</p:txBody>

end example]

The possible values for this attribute are defined by the ST_TextVertOverflowType simple type (§20.1.10.84).

wrap (Text Wrapping Type)

Specifies the wrapping options to be used for this text body. If this attribute is omitted, then a value of square is implied which wraps the text using the bounding text box.

The possible values for this attribute are defined by the ST_TextWrappingType simple type (§20.1.10.85).

[Note: The W3C XML Schema definition of this element’s content model (CT_TextBodyProperties) is located in §A.4.1. end note]

© ISO/IEC29500: 2008.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

See Also

Reference

BodyProperties Members

DocumentFormat.OpenXml.Drawing Namespace