2.6.2 Paragraph Properties

A Prl with a sprm.sgc of 1 modifies a paragraph property.

The following table specifies the paragraph property modifiers, including the valid sprm values, their function, and the corresponding operand type and meaning.

sprm

ispmd

Operand

sprmPIstd

(0x4600)

0x00

An unsigned integer that specifies the istd of a paragraph style to apply.

To apply the istd, fetch the complete set of paragraph and character properties from that style. (See Applying Properties for instructions.) Apply those properties to the current paragraph, while preserving the previous values of the following:

  • Whether the paragraph is a Table Terminating Paragraph Mark (for example, by sprmPFTtp). (See Overview of Tables).

  • Whether the paragraph is in a table (for example, by sprmPFInTable).

  • The table depth of the paragraph (for example, by sprmPItap).

  • Whether the paragraph is the final paragraph in a nested table cell (for example, by sprmPFInnerTableCell).

  • The table style applied to the paragraph (for example, by sprmTIstd).

  • The ipgpSelf value of the PGPInfo data that is applied to the paragraph (for example, by sprmPIpgp).

  • Paragraph properties that have been preserved for revision marking (for example, by sprmPWall) See sprmPWall for the meaning of revision marking.

  • The revision save ID that is associated with the paragraph (for example, by sprmPRsid), as specified in [ECMA-376] Part 4, Section 2.15.1.70.

  • Whether the paragraph has an associated property revision mark, as well as its author and the date and time (for example, by sprmPPropRMark).

  • The numbering revision mark for the paragraph (for example, by sprmPNumRM).

  • Whether a numbered list was applied to the paragraph after the previous revision (for example, by sprmPFNumRMIns).

An istd value in the range of 1 to 9, inclusive, also specifies the outline level of the paragraph (for example, by sprmPOutLvl), where the new outline level is equal to the value of the istd minus 1.

If an istd value refers to an empty or nonexistent style, or to a style of a different type, a later Prl such as sprmPIstd or sprmPIstdPermute MUST change the istd to a valid value. Applying an istd that refers to an empty or nonexistent style, or to a style of a different type, is equivalent to applying the paragraph and character document default formatting (while preserving the same set of properties as when applying an istd.)

By default, the paragraph style is unchanged.

sprmPIstdPermute

(0xC601)

0x01

A SPPOperand value that specifies a potential change in the current paragraph style (istd).

If the istd is not affected, this Prl MUST be ignored.

If the istd is affected, this sprm is equivalent to sprmPIstd with the operand being the new istd.

sprmPIncLvl

(0x2602)

0x02

A signed 8-bit integer value. If the paragraph has an istd that is greater than or equal to 0x0001 and less than or equal to 0x0009, this value specifies an offset to the istd of the paragraph. If this value offsets the istd of the paragraph beyond one of the limits 0x0001 or 0x0009, then the istd of the paragraph is set to that limit. See Determining Formatting Properties for information about how to determine the istd of the paragraph.

If the istd of the paragraph is not within the range that was specified earlier, this value specifies an offset to the outline level of the paragraph, unless the outline level of the paragraph is equal to 0x09, in which case this value MUST be ignored. If this offset adjusts the outline level beyond one of the limits 0x00 or 0x09, than the outline level of the paragraph is set to that limit. See sprmPOutLvl for the outline level of the paragraph.

sprmPJc80

(0x2403)

0x03

An unsigned 8-bit integer that specifies the physical justification of the paragraph. This MUST be one of the following values.

0 - Paragraph is physically left justified.

1 - Paragraph is centered.

2 - Paragraph is physically right justified.

3 - Paragraph is justified to both right and left with a low character compression ratio.

4 - Paragraph is justified to both right and left with a medium character compression ratio.

5 - Paragraph is justified to both right and left with a high character compression ratio.

By default, paragraphs are physically left-justified.

sprmPFKeep

(0x2405)

0x05

A Bool8 value that specifies whether an application SHOULD<148> keep this paragraph on a single page. By default, paragraphs are allowed to split across pages.

sprmPFKeepFollow

(0x2406)

0x06

A Bool8 value that specifies whether an application SHOULD<149> keep the end of this paragraph on the same page as the beginning of the next paragraph. By default, adjacent paragraphs are allowed to be on separate pages.

sprmPFPageBreakBefore

(0x2407)

0x07

A Bool8 value that specifies whether this paragraph has a page break before it. 

By default, paragraphs do not have page breaks before them.

sprmPIlvl

(0x260A)

0x0A

An unsigned 8-bit integer that specifies the list level of the paragraph. This value MUST be ignored if this paragraph is not in a list (see sprmPIlfo). This value MUST be one of the following:

0x0 - 0x8

The value specifies the zero-based level of the list that contains this paragraph. For example, a value of 0x0 means that the paragraph is in the first level of the list.

0xC

The list skips this paragraph and does not include it in its numbering.

By default, a paragraph is in the first level of the list.

sprmPIlfo

(0x460B)

0x0B

A 16-bit signed integer value that is used to determine which list contains the paragraph. This value MUST be one of the following:

0x0000

This paragraph is not in a list, and any list formatting on the paragraph is removed.

0x0001 - 0x07FE

The value is a 1-based index into PlfLfo.rgLfo. The LFO at this index defines the list that this paragraph is in.

0xF801

This paragraph is not in a list.

0xF802 - 0xFFFF

The value is the negation of a 1-based index into PlfLfo.rgLfo. The LFO at this index defines the list that this paragraph is in. The logical left indentation (see sprmPDxaLeft) and the logical left first line indentation (see sprmPDxaLeft1) of the paragraph MUST be preserved despite any list formatting.

By default, a paragraph is not in a list.

sprmPFNoLineNumb

(0x240C)

0x0C

A Bool8 value that specifies whether this paragraph is ignored when the application counts or displays line numbers. By default, if line numbers are enabled, paragraphs have line numbers.

sprmPChgTabsPapx

(0xC60D)

0x0D

A PChgTabsPapxOperand value that specifies custom tab stops to be added or ignored. By default, custom tab stops are neither added nor ignored.

sprmPDxaRight80

(0x840E)

0x0E

An XAS value that specifies the physical right indent of the paragraph, in twips. By default, there is no right indentation.

sprmPDxaLeft80

(0x840F)

0x0F

An XAS value that specifies the physical left indent of the paragraph, in twips. By default, there is no left indentation.

sprmPNest80

(0x4610)

0x10

An XAS value that is added to sprmPDxaLeft80 to specify the final indent of a paragraph. By default, there is no additional space added to sprmPDxaLeft80 to determine the final indent of a paragraph.

sprmPDxaLeft180

(0x8411)

0x11

An XAS value that specifies the logical left indent of the first line of the paragraph, in twips, relative to the rest of the paragraph. By default, the first line is not indented relative to the rest of the paragraph.

sprmPDyaLine

(0x6412)

0x12

An LSPD value that specifies the spacing between lines in this paragraph. By default, paragraphs use single spacing.

sprmPDyaBefore

(0xA413)

0x13

A two-byte unsigned integer value that specifies the size, in twips, of the spacing before this paragraph. The value MUST be a number between 0x0000 and 0x7BC0, inclusive. When auto-spacing is supported and the value of sprmPFDyaBeforeAuto is 1, this property is ignored. By default, the space before a paragraph is zero twips.

sprmPDyaAfter

(0xA414)

0x14

A two-byte unsigned integer value that specifies the size, in twips, of the spacing after this paragraph. The value MUST be between 0x0000 and 0x7BC0, inclusive. When auto spacing is supported and the value of sprmPFDyaAfterAuto is 1, this property is ignored. By default, the space after a paragraph is zero twips.

sprmPChgTabs

(0xC615)

0x15

A PChgTabsOperand value that specifies custom tab stops that are added or ignored. By default, custom tab stops are neither added nor ignored.

sprmPFInTable

(0x2416)

0x16

A Bool8 value that specifies whether this paragraph is in a table. The value MUST be 1 any time the table depth is greater than zero. See section 2.4.3, Overview of Tables. By default, paragraphs are not in tables.

sprmPFTtp

(0x2417)

0x17

A Bool8 that, when set to 1, specifies that the cell mark it is applied to is a Table Terminating Paragraph (TTP) mark. The TTP mark MUST be immediately preceded by a cell mark. See Overview of Tables. By default, a cell mark is not a Table Terminating Paragraph Mark.

sprmPDxaAbs

(0x8418)

0x18

A XAS_plusOne that specifies the logical left horizontal position relative to the horizontal anchor of the frame. See sprmPPc for the frame anchor. If the value is any of the those that follow, the operand specifies a special descriptive, relative position. The meanings that are provided correspond to the values that are specified in [ECMA-376] Part 4, Section 2.18.114 ST_XAlign (Horizontal Alignment Location):

0x0000 - left

0xFFFC - center

0xFFF8 - right

0xFFF4 - inside

0xFFF0 - outside

By default, the relative horizontal position is Left.

sprmPDyaAbs

(0x8419)

0x19

A YAS_plusOne value that specifies downward vertical position relative to the vertical anchor of the frame. See sprmPPc for the frame anchor. If the value is any of those that follow, the operand specifies a special descriptive, relative position. The meanings that are provided correspond to the values that are specified in [ECMA-376] Part 4, Section 2.18.115 ST_YAlign (Vertical Alignment Location).

0x0000 - inline

0xFFFC - top

0xFFF8 - center

0xFFF4 - bottom

0xFFF0 - inside

0xFFEC - outside

By default, the relative vertical position is 0x0000 (Inline).

sprmPDxaWidth

(0x841A)

0x1A

A XAS_nonNeg value that specifies the width of the frame. If the operand value is 0, the width of the frame is automatically determined by the maximum line width of the content that is within the frame. By default, the width of the frame is automatically determined by the maximum line width of the content the frame contains.

sprmPPc

(0x261B)

0x1B

A PositionCodeOperand that specifies the anchor from which the frame position is calculated.

sprmPWr

(0x2423)

0x23

A 1-byte integer that specifies how text is wrapped around a frame. Its value MUST be one of those that follow, corresponding to the values of ST_Wrap that are specified in [ECMA-376] Part 4, Section 2.18.113 ST_Wrap (Text Wrapping around Text Frame type).

0x00

ST_Wrap: auto

This value specifies automatic text wrapping.

0x01

ST_Wrap: notBeside

This value specifies that there is no text wrapping to either side of the frame.

0x02

ST_Wrap: around

This value specifies that text is wrapped around the frame.

0x03

ST_Wrap: none

Text is not wrapped around the frame.

0x04

ST_Wrap: tight

This value specifies that text is tightly wrapped around the frame.

0x05

ST_Wrap: through

This value specifies that text is wrapped through the frame, to the contours of the contents of the frame.

By default, text is automatically wrapped around a frame.

sprmPBrcTop80

(0x6424)

0x24

A Brc80 value that specifies the top border of the paragraph. This border is hidden if the previous paragraph is identical to this one in terms of its top, bottom, left, and right borders; its left and right indents; its table depth; and its sprmPIpgp value.

By default, paragraphs have no top border.

sprmPBrcLeft80

(0x6425)

0x25

A Brc80 value that specifies the logical left border of the paragraph. By default, paragraphs have no logical left border.

sprmPBrcBottom80

(0x6426)

0x26

A Brc80 value that specifies the bottom border of the paragraph. This border is hidden if the next paragraph is identical to this one in terms of its top, bottom, left, and right borders; its left and right indents; its table depth; and its sprmPIpgp value.

By default, paragraphs have no bottom border.

sprmPBrcRight80

(0x6427)

0x27

A Brc80 value that specifies the logical right border of the paragraph. By default, paragraphs have no logical right border.

sprmPBrcBetween80

(0x6428)

0x28

A Brc80 value that specifies the border between this paragraph and the next. This border is hidden unless the next paragraph is identical to this one in terms of its top, bottom, left, and right borders; its left and right indents; its table depth; and its sprmPIpgp value.

By default, paragraphs have no borders between them.

sprmPBrcBar80

(0x6629)

0x29

A Brc80 value that has no effect.

sprmPFNoAutoHyph

(0x242A)

0x2A

A Bool8 value that specifies whether this paragraph is auto-hyphenated when hyphenation is enabled for the document. A value of 1 specifies that this paragraph is not auto-hyphenated when hyphenation is enabled for the document. A value of 0 specifies that this paragraph is auto-hyphenated when hyphenation is enabled for the document. By default, paragraphs are auto-hyphenated when hyphenation is enabled for the document.

Document hyphenation is enabled when the fAutoHyphen field of the DopBase structure is 1.

sprmPWHeightAbs

(0x442B)

0x2B

A WHeightAbs value that specifies the height of the frame. By default, the height of a frame height is automatically determined based on the height of its contents.

sprmPDcs

(0x442C)

0x2C

A DCS value that specifies the properties, if any, of the drop cap for this paragraph. By default, paragraphs do not have a drop cap.

sprmPShd80

(0x442D)

0x2D

A Shd80 structure that specifies the background shading for the paragraph. By default, paragraphs are not shaded.

sprmPDyaFromText

(0x842E)

0x2E

A YAS_nonNeg value that specifies the minimum vertical distance between the edge of the frame and the edge of main document text that wraps around the frame. By default, the minimum vertical distance is 0 twips.

sprmPDxaFromText

(0x842F)

0x2F

A XAS_nonNeg value that specifies the minimum horizontal distance between the edge of the frame and the edge of main document text that wraps around the frame. By default, the minimum horizontal distance is 0 twips.

sprmPFLocked

(0x2430)

0x30

A Bool8 value that specifies whether the anchor of the frame which contains this paragraph is locked to its current location. By default, the frame anchor is not locked. This Sprm corresponds to the anchorLock attribute as specified in [ECMA-376] Part 4, Section 2.3.1.11 framePr (Text Frame Properties)

sprmPFWidowControl

(0x2431)

0x31

A Bool8 value that specifies whether widow and orphan control is enabled for this paragraph. An orphaned line is the first line of a paragraph when it is displayed by itself at the bottom of a page. A widowed line is the last line of a paragraph when it is displayed by itself at the top of a page. When widow and orphan control is enabled, the application attempts to eliminate widowed and orphaned lines. By default, widow and orphan control is enabled.

sprmPFKinsoku

(0x2433)

0x33

A Bool8 value that specifies whether this paragraph uses East Asian typography and line-breaking rules to determine the valid characters that are allowed to begin and end each line of East Asian text. These rules are specified in [ECMA-376] Part 4, Section 2.3.1.16 kinsoku paragraph property. By default, paragraphs use East Asian rules to determine the allowed values for the first and last characters of each line of text.

sprmPFWordWrap

(0x2434)

0x34

A Bool8 value that, when equal to 0, specifies a preference to break Latin text that exceeds text line limits by breaking a word across two lines (breaking on the character level). If the language used is Korean, this property affects Korean text instead of Latin text.

By default, the word is placed on the following line (breaking on the word level).

sprmPFOverflowPunct

(0x2435)

0x35

A Bool8 value that, when equal to 0, specifies a preference against allowing a punctuation character that follows a word at the end of a line to appear beyond the extent of that line of text.

By default, a single punctuation character that follows a word can appear beyond the extent of a line.

sprmPFTopLinePunct

(0x2436)

0x36

A Bool8 value that specifies a preference to render punctuation characters at the beginning of a line so that they appear to be closer to both the beginning of the line and to the next character, regardless of the amount of whitespace in the glyph as defined by the font.

By default, punctuation is rendered normally.

sprmPFAutoSpaceDE

(0x2437)

0x37

A Bool8 value that specifies whether space is automatically inserted between East Asian and Latin text. By default, this option is enabled.

sprmPFAutoSpaceDN

(0x2438)

0x38

A Bool8 value that specifies whether space is automatically inserted between East Asian text and numbers. By default, this option is enabled.

sprmPWAlignFont

(0x4439)

0x39

A 16-bit unsigned integer that specifies vertical font alignment for East Asian languages. This Sprm corresponds to the textAlignment paragraph property that is specified in [ECMA-376] Part 4, Section 2.3.1.39. This value MUST be one of the following, corresponding to the values of ST_TextAlignment that are specified in [ECMA-376] Part 4, Section 2.18.98.

0x0000

ST_TextAlignment: top

This value specifies that characters are aligned based on the top of each character.

0x0001

ST_TextAlignment: center

This value specifies that characters are centered on the line.

0x0002

ST_TextAlignment: baseline

This value specifies that characters are aligned based on their baseline. This is how standard Latin text is displayed.

0x0003

ST_TextAlignment: bottom

This value specifies that characters are aligned based on the bottom of each character.

0x0004

ST_TextAlignment: auto

This value specifies that alignment is automatically determined by the application.

By default, font alignment is automatically determined by the application.

sprmPFrameTextFlow

(0x443A)

0x3A

A FrameTextFlowOperand that specifies the direction of text flow in the frame. If this property is set, then at least one of the following paragraph properties MUST be set with a non-default value:

  • sprmPDxaAbs

  • sprmPDyaAbs

  • sprmPDxaWidth

  • sprmPPc

  • sprmPWr

  • sprmPWHeightAbs

By default, paragraph text flows horizontally, without rotation.

sprmPOutLvl

(0x2640)

0x40

An unsigned 8-bit integer value that specifies the outline level of the paragraph. This value MUST be one of the following.

0x0 - 0x8

The value is the zero-based outline level that this paragraph is in.

0x9

The paragraph at any outline level; instead, the paragraph is body text.

This MUST be ignored if the paragraph has an istd that is greater than or equal to 0x1 and less than or equal to 0x9. By default, paragraphs are body text, and are therefore not in any outline level.

sprmPFBiDi

(0x2441)

0x41

A Bool8 value that specifies whether the paragraph uses right-to-left layout.

By default, a paragraph does not use right-to-left layout.

sprmPFNumRMIns

(0x2443)

0x43

A Bool8 value that specifies whether a numbered list was applied to this paragraph after the previous revision. By default, paragraphs do not have numbered lists applied.

sprmPNumRM

(0xC645)

0x45

A NumRMOperand value that specifies a numbering revision mark for this paragraph. By default, paragraphs do not have numbering revision marks.

sprmPHugePapx

(0x6646)

0x46

A 4-byte unsigned integer that specifies a location in the Data Stream. A PrcData structure begins at this offset and specifies additional properties for the paragraph. The cbGrpprl member of the referenced PrcData structure MUST NOT be less than 10. If an application processes this PrcData, then it MUST NOT process any more Prl elements in the array that contained the sprmPHugePapx.

If a Prl with a sprm of sprmPHugePapx is in an array of Prl elements and is not the first element of the array, then that Prl MUST be ignored. If a Prl with a sprm of sprmPHugePapx is contained in the grpprl array of a GrpPrlAndIstd structure, then it MUST be the only Prl in that array and the istd member of that GrpPrlAndIstd structure MUST be zero.

The sprmPHugePapx and sprmPTableProps values can refer to PrcDatas containing each other, but the chain MUST eventually terminate in a PrcData structure does not contain a sprmPHugePapx value or a sprmPTableProps value.

sprmPFUsePgsuSettings

(0x2447)

0x47

A Bool8 value that specifies whether the paragraph adheres to the vertical components of the document grid. By default, text uses the document grid if one is defined. (See sprmSClm for more details about the document grid.)

sprmPFAdjustRight

(0x2448)

0x48

A Bool8 value that specifies whether this paragraph is set to automatically adjust the right indent when a document grid for East Asian characters is defined. This Sprm is the same as the adjustRightInd paragraph property specified in [ECMA-376] Part 4, Section 2.3.1.1. By default, this option is enabled.

sprmPItap

(0x6649)

0x49

An integer value that specifies the table depth of this paragraph. See the Overview of Tables (section 2.4.3) for the rules that this value follows. This value, when present, MUST be a non-negative number. By default, paragraphs are not in tables.

sprmPDtap

(0x664A)

0x4A

A signed integer that specifies an addition or subtraction to the existing table depth of this paragraph. It provides an alternate way of specifying table depth to sprmPItap or a way to increment or decrement any value that was already set by sprmPItap or sprmPDtap.

The resultant table depth MUST be non-negative and MUST obey the rules described in Overview of Tables (section 2.4.3).

By default, paragraphs are not in tables.

sprmPFInnerTableCell

(0x244B)

0x4B

A Bool8 value that specifies whether this paragraph is the final paragraph in a nested table cell.

When true, the nesting level of this paragraph MUST be greater than 1, indicating that this paragraph is in a table which is nested within another table.

When true, this is the last paragraph of a nested table cell and its paragraph mark is treated as if it were an end of cell mark. By default, paragraphs are not the last paragraph of a nested table cell. See the Overview of Tables (section 2.4.3) for more information about nested tables.

sprmPFInnerTtp

(0x244C)

0x4C

A Bool8 value that specifies whether this paragraph is the final paragraph in a nested table row. When 1, the table depth of this paragraph MUST be greater than 1, indicating that this paragraph is in a table that is nested within another table. When 1, this is the last paragraph of a nested table row and its paragraph mark is treated as if it were a TTP mark. By default, paragraphs are not the last paragraph of a nested table row. See the Overview of Tables for more information about nested tables.

sprmPShd

(0xC64D)

0x4D

A SHDOperand value that specifies the background shading for the paragraph. By default, paragraphs are not shaded.

sprmPBrcTop

(0xC64E)

0x4E

A BrcOperand value which specifies the top border of the paragraph. This border is hidden if the previous paragraph is identical to this one in terms of its top, bottom, left, and right borders; its left and right indents; its table depth; and its sprmPIpgp value.

By default, paragraphs have no top border.

sprmPBrcLeft

(0xC64F)

0x4F

A BrcOperand value that specifies the logical left border of the paragraph. By default, paragraphs have no logical left border.

sprmPBrcBottom

(0xC650)

0x50

A BrcOperand value that specifies the bottom border of the paragraph This border is hidden if the next paragraph is identical to this one in terms of its top, bottom, left, and right borders; its left and right indents; its table depth; and its sprmPIpgp value.

By default, paragraphs have no bottom border.

sprmPBrcRight

(0xC651)

0x51

A BrcOperand value that specifies the logical right border of the paragraph. By default, paragraphs have no logical right border.

sprmPBrcBetween

(0xC652)

0x52

A BrcOperand value that specifies the border between this paragraph and the next. This border is hidden unless the next paragraph is identical to this one in terms of its top, bottom, left, and right borders, left and right indents, table depth, and sprmPIpgp value.

By default, paragraphs have no borders between them.

sprmPBrcBar

(0xC653)

0x53

A BrcOperand value that has no effect.

sprmPDxcRight

(0x4455)

0x55

A signed 16-bit integer value that specifies the logical right indent of the paragraph in hundredths of character units. By default, there is no right indentation.

sprmPDxcLeft

(0x4456)

0x56

A signed 16-bit integer value that specifies the logical left indent of the paragraph in hundredths of character units. By default, there is no left indentation.

sprmPDxcLeft1

(0x4457)

0x57

A signed 16-bit integer value that specifies the logical left indent of the first line of the paragraph, in hundredths of character units, relative to the rest of the paragraph. By default, the first line is not indented relative to the rest of the paragraph.

sprmPDylBefore

(0x4458)

0x58

A signed 16-bit integer value that specifies the spacing before the paragraph, in 1/100 line units. This value MUST be at least -20 and MUST NOT exceed 31680. By default, paragraphs do not have spacing before them.

sprmPDylAfter

(0x4459)

0x59

A signed 16-bit integer that specifies the spacing after the paragraph, in 1/100 line units. MUST be at least -20 and MUST NOT exceed 31680. By default, paragraphs do not have spacing after them.

sprmPFOpenTch

(0x245A)

0x5A

A Bool8 value that specifies whether this table cell mark was being displayed when this file was last saved, even though it immediately follows a nested table.

sprmPFDyaBeforeAuto

(0x245B)

0x5B

A Bool8 value that specifies whether the space displayed before this paragraph uses auto spacing. A value of 1 specifies that the sprmPDyaBefore value MUST be ignored when the application supports auto spacing. By default, auto spacing is disabled for paragraphs.

sprmPFDyaAfterAuto

(0x245C)

0x5C

A Bool8 value that specifies whether the space displayed after this paragraph uses auto spacing. A value of 1 specifies that sprmPDyaAfter MUST be ignored if the application supports auto spacing. By default, auto spacing is disabled for paragraphs.

sprmPDxaRight

(0x845D)

0x5D

An XAS value that specifies the logical right indent of the paragraph, in twips. By default, there is no right indentation.

sprmPDxaLeft

(0x845E)

0x5E

An XAS value that specifies the logical left indent of the paragraph, in twips. By default, there is no left indentation.

sprmPNest

(0x465F)

0x5F

An XAS value that is added to the sprmPDxaLeft value to determine the final indent of a paragraph. By default, there is no additional space added to sprmPDxaLeft to determine the final indent of a paragraph. When present, this Sprm supersedes any value for sprmPNest80.

sprmPDxaLeft1

(0x8460)

0x60

An XAS value that specifies the logical left indent of the first line of the paragraph, in twips, relative to the rest of the paragraph. By default, the first line is not indented relative to the rest of the paragraph.

sprmPJc

(0x2461)

0x61

An unsigned 8-bit integer value that specifies the logical justification of the paragraph. The value MUST be one of those listed following. Some of the values also correspond to the ST_Jc enumeration values that are specified in [ECMA-376] Part 4, Section 2.18.50 ST_Jc (Horizontal Alignment Type).

0

St_Jc: left

Paragraph is logical left justified

1

St_Jc: center

Paragraph is centered

2

St_Jc: right

Paragraph is logical right justified

3

St_Jc: both

Paragraph is justified to both right and left

4

St_Jc:distribute

Paragraph characters are distributed to fill the entire width of the paragraph

5

St_Jc: mediumKashida

If the language is Arabic, the paragraph uses medium-length Kashida. In other languages, text is justified with a medium character compression ratio.

6

Paragraph is indented

7

St_Jc: highKashida

If the language is Arabic, the paragraph uses longer length Kashida. In other languages, text is justified with a high character compression ratio.

8

St_Jc: lowKashida

If the language is Arabic, the paragraph uses small length Kashida. In other languages, text is justified with a high character compression ratio.

9

St_Jc:thaiDistribute

If the language of the paragraph is Thai, the text is justified with Thai distributed justification. In other languages, text is justified with a low character compression ratio.

The default is logical left justification.

sprmPFNoAllowOverlap

(0x2462)

0x62

A Bool8 value that specifies whether the frame of this paragraph can overlap with other frames. A value of 1 specifies that frames MUST NOT overlap. By default, frames can overlap with other frames.

sprmPWall

(0x2664)

0x64

A Bool8 value that specifies whether the values of paragraph properties are preserved for revision marking purposes until the modifications are accepted or rejected by the user.

A value of 1 specifies that the property values were preserved. All SPRMs that are encountered before the sprmPWall in the property evaluation of the paragraph specify the state of properties before revision marking was enabled, whereas all SPRMs following the sprmPWall specify the property modifications that occur after revision marking was enabled.

A value of 0 specifies that no values were preserved (overriding any previously encountered sprmPWall SPRMs that specify the contrary). Neither SPRMs that were encountered before the sprmPWall, nor subsequent SPRMs (until another sprmPWall, if any), are treated in any special way with regard to revision marking.

By default, property values are not preserved.

sprmPIpgp

(0x6465)

0x65

An unsigned integer value that specifies the PGPInfo.ipgpSelf value of the PGPInfo data that is applied to this paragraph. The table depth of the paragraph (see Overview of Tables) MUST match PGPInfo.itap unless the paragraph is a table terminating mark, in which case PGPInfo.itap MUST be 1 less than the paragraph table depth.

PGPInfo.ipgpSelf values MUST NOT be applied in such a way as to break the hierarchy that is implied by the PGPInfo structures themselves. Given that the application of a particular PGPInfo.ipgpSelf value implies the application of all of the PGPInfo.ipgpParent values that are encountered by ascending the PGPInfo chain, ensuring that all occurrences of any PGPInfo.ipgpSelf are on adjacent paragraphs of the same table depth ensures that the hierarchy is not broken.

By default, a paragraph has no associated PGPInfo.

sprmPCnf

(0xC666)

0x66

A CNFOperand value that specifies conditional paragraph formatting for a specific condition of a table style. The grpprl member of the CNFOperand value specifies the paragraph formatting properties and MUST NOT contain any Sprms that are disallowed in the grpprlPapx member of UpxPapx.

This sprm MUST only be specified within the grpprlPapx member of a UpxPapx within a table style definition (LPStd).

By default, a table style definition does not include conditional formatting.

sprmPRsid

(0x6467)

0x67

An integer value that specifies a revision save ID, as specified in [ECMA-376] Part 4, Section 2.15.1.70 rsid (Single Session Revision Save ID), associated with paragraph formatting. If not present, then no revision save ID is specified for this formatting.

sprmPIstdListPermute

(0xC669)

0x69

An SPPOperand value that has no effect and MUST be ignored.

sprmPTableProps

(0x646B)

0x6B

An unsigned integer value that specifies a location in the Data Stream. A PrcData structure begins at this offset and specifies additional properties for the paragraph. The cbGrpprl member of the referenced PrcData structure MUST NOT be less than 10. If an application processes this PrcData structure, then it MUST NOT process anymore Prl elements in the array that contained the sprmPTableProps value. SprmPHugePapx and sprmPTableProps values can refer to PrcData structures containing each other, but the chain MUST eventually terminate in a PrcData that contains neither sprmPHugePapx nor sprmPTableProps.

sprmPTIstdInfo

(0xC66C)

0x6C

A PTIstdInfoOperand value that has no effect and MUST be ignored.

sprmPFContextualSpacing

(0x246D)

0x6D

A Bool8 value that specifies whether contextual spacing is enabled for this paragraph. A value of 0x01 specifies that any space before this paragraph (sprmPDyaBefore) MUST be ignored if the preceding paragraph is of the same paragraph style and any space after this paragraph (sprmPDyaAfter) MUST be ignored if the following paragraph is of the same paragraph style. By default, paragraphs do not use contextual spacing.

sprmPPropRMark

(0xC66F)

0x6F

A PropRMarkOperand value that specifies whether the paragraph has an associated property revision mark, as well as its author and the date and time. By default, paragraphs have no property revision marks.

sprmPFMirrorIndents

(0x2470)

0x70

A Bool8 value that specifies whether the left and right indents that are set for this paragraph are interpreted as inside and outside margins for odd and even numbered pages. For specifications of the display behavior, see [ECMA-376] Part 4, Section 2.3.1.18 mirrorIndents (use Left/Right Indents as Inside/Outside Indents). By default, paragraph indents are not swapped.

sprmPTtwo

(0x2471)

0x71

A 1-byte integer that specifies text wrapping options for a text box when tight wrapping is set for the text box. This option is the same as [ECMA-376] Part 4, Section 2.3.1.40 textboxTightWrap (Allow Surrounding Paragraphs to Tight Wrap to Text Box Contents)

The value MUST be one of the following, which correspond to values specified in [ECMA-376] Part 4, Section 2.18.99 ST_TextboxTightWrap (Lines To Tight Wrap Within Text Box).

0x00

ST_TextboxTightWrap: none

No lines of the paragraph allow the surrounding text to tightly wrap around their edges.

0x01

ST_TextboxTightWrap: allLines

All lines of the paragraph allow the surrounding text to tightly wrap to their edges.

0x02

ST_TextboxTightWrap: firstAndLastLine

Only the first and last lines of the paragraph allow the surrounding text to tightly wrap around their edges.

0x03

ST_TextboxTightWrap: firstLineOnly

Only the first line of the paragraph allows the surrounding text to tightly wrap around its edges.

0x04

ST_TextboxTightWrap: lastLineOnly

Only the last line of the paragraph allows the surrounding text to tightly wrap around its edges.

By default, the surrounding text is not allowed to tightly wrap to the edges of the lines of a paragraph in a textbox.