2.6.1 Character Properties

A Prl with a sprm.sgc of 2 modifies a character property.

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

Sprm

ispmd

operand

sprmCFRMarkDel

(0x0800)

0x00

A ToggleOperand that specifies whether the text is formatted as deleted revision mark text, which is text that was deleted while revision marking was on. By default, text is not formatted as deleted revision mark text.

sprmCFRMarkIns

(0x0801)

0x01

A ToggleOperand that specifies whether the text is formatted as inserted revision mark text, which is text that was inserted while revision marking was on. By default, text is not formatted as inserted revision mark text.

sprmCFFldVanish

(0x0802)

0x02

A ToggleOperand that specifies whether the field text is hidden. By default, field text is not hidden.

sprmCPicLocation

(0x6A03)

0x03

A signed 32-bit integer that specifies either the position in the Data Stream of a picture or binary data or the name of an OLE object storage.

Text with sprmCPicLocation applied MUST also have sprmCFSpec applied with a value of 1. The text range MUST contain only characters from the special characters specified in sprmCFSpec.

The value of sprmCPicLocation is evaluated for each character in the text range. The value is evaluated differently depending on the character code, as shown following:

If the character is U+0001:

  • The operand of sprmCPicLocation is a position in the DataStream. If sprmCFData is also present and set to 1, the value specifies the position of a NilPICFAndBinData and describes binary data; otherwise the value specifies the position of a PICFAndOfficeArtData and describes a picture.

If the character is U+0014:

  • If sprmCFOle2 is also present and set to "true" and the associated field does not have grffldEnd.fZombieEmbed set, the operand of sprmCPicLocation specifies the location of an OLE object storage. If the file is not encrypted with Office Binary Document RC4 CryptoAPI Encryption (section 2.2.6.3), the value specifies the name of an OLE object storage in the ObjectPool of the document.

    Specifically, the decimal value is converted to a string, and prefixed with an underscore. The resultant string MUST be the name of a valid OLE storage in the ObjectPool of the document. If the file is encrypted with Office Binary Document RC4 CryptoAPI Encryption, the value specifies an offset in the data stream which contains an FOBJH followed by an OLE object storage.

    When used in this fashion, the text range on which sprmCPicLocation is applied MUST contain exactly one character.

    If sprmCFOle2 is absent or set to "false" or the associated field has grffldEnd.fZombieEmbed set, sprmCPicLocation is unused and MUST be ignored.

If there is another character, sprmCPicLocation MUST be ignored.

sprmCPicLocation MUST be present for characters that indicate a picture, binary data, or OLE object storage.

sprmCIbstRMark

(0x4804)

0x04

A signed 16-bit integer that specifies a zero-based index into SttbfRMark. This value MUST be greater than or equal to zero and MUST be less than SttbfRMark.cData. The string at this index is the name of the author who inserted the text. This is only recorded if revision marking is on at the time of the insertion. By default, this index is zero, which is the index of the "unknown" author.

sprmCDttmRMark

(0x6805)

0x05

A DTTM that specifies the date and time at which the text was inserted. This is recorded only if revision marking is on at the time of the insertion. By default, all fields of this DTTM are zero.

sprmCFData

(0x0806)

0x06

A Bool8 that specifies whether the picture character in the text represents binary data. If set to true, the text range MUST contain exactly 1 character that is the picture character (U+0001) and sprmCPicLocation MUST be present to specify the location of the binary data. By default, a picture character specifies a picture and does not specify binary data.

sprmCIdslRMark

(0x4807)

0x07

An unsigned 16-bit integer that specifies the reason value of the inserted or modified revision mark text. This is recorded only if revision marking is on at the time of the text insertion or modification. MUST be one of the values shown following.

0x0000 - Performed a normal edit

0x0001 - Applied a style

0x0002 - Adjusted alignment with a tab

0x0003 - Adjusted alignment with a tab

0x0004 - Removed extra paragraph mark

0x0005 - Replaced all caps with mixed caps

0x0006 - Replaced bullet character with bullet symbol

0x0007 - Replaced straight quote with smart quote

0x0008 - Replaced multiple-character symbol with single symbol

0x0009 - Replaced text with trademark symbol

0x000A - Replaced text with copyright symbol

0x000B - Replaced text with registered trademark symbol

0x000C - Adjusted spaces after period

0x000D - Replaced numbers with fraction symbol

0x000E - Applied a heading style

0x000F - Applied an outline style

0x0010 - Applied a list style

0x0011 - Applied a memo header style

0x0012 - Applied an address style

0x0013 - Applied a salutation style

0x0014 - Applied a closing phrase style

0x0015 - Applied a date style

0x0016 - Applied a distribution list style

0x0017 - Applied a bullet list style

0x0018 - Applied a column style

0x0019 - Applied a carbon copy style

0x001A - Replaced text with superscript

0x001B - Replaced whitespace galley with tabs

0x001C - Removed leading whitespace

0x001D - Removed manual numbering

0x001E - Replaced two hyphens with long (em) dash

0x001F - Adjusted spaces before: '!', '?', or ';'

0x0020 - Inserted paragraph mark

0x0021 - Replaced leading whitespace to first line indent

0x0022 - Removed a space from between a double byte character and a single byte character

0x0023 - Replaced to match to open parenthesis

0x0024 - Replaced double byte to single byte

0x0025 - Replaced single byte to double byte

0x0026 - Replaced manual emphasis

0x0027 - Replaced border characters with borders

0x0028 - Replaced e-mail history characters with indentation

0x0029 - Replaced URL or UNC with hyperlink

0x002A - Replaced Gateway-generated hex characters

0x002B - Applied outline level for document map

By default, the reason value of text that is revision-marked is zero.

sprmCSymbol

(0x6A09)

0x09

A CSymbolOperand structure that designates the character as a symbol and specifies the font and character code for the symbol. By default, characters are not symbols.

sprmCFOle2

(0x080A)

0x0A

A Bool8 value that specifies whether the character is a placeholder for an OLE object. When sprmCFOle2 is true, sprmCFObj MUST also be true, and sprmCPicLocation MUST also be set with the OLE storage name. The character representing the OLE object MUST be the field separator (U+00014) of an EMBED field (0x3A), LINK field (0x38), or CONTROL field (0x57). By default, characters are not placeholders for OLE objects.

sprmCHighlight

(0x2A0C)

0x0C

An Ico value that specifies the highlighting color of the text. By default, text is not highlighted.

sprmCFWebHidden

(0x0811)

0x11

A ToggleOperand value that specifies whether the text is hidden in Web Layout view of the document. By default, text is not hidden in Web Layout view.

sprmCRsidProp

(0x6815)

0x15

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 character formatting. If not present, then no revision save ID is specified for this formatting.

sprmCRsidText

(0x6816)

0x16

An integer 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 insertion of text. If not present, then no revision save ID is specified for this text.

sprmCRsidRMDel

(0x6817)

0x17

An integer 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 tracked deletion of text. If not present, then no revision save ID is specified for this deletion.

sprmCFSpecVanish

(0x0818)

0x18

A ToggleOperand that specifies that this line break does not indicate a line break but serves as a style separator. A style separator allows one paragraph to consist of parts that have different paragraph styles. This Sprm MUST NOT be applied to any character other than a line break character (Unicode 0x000B). By default, line break characters specify regular line breaks, and are not used as style separators.

sprmCFMathPr

(0xC81A)

0x1A

A MathPrOperand that specifies the justification of equations in the paragraph. This Sprm MUST only be applied to paragraph mark characters or line break characters (Unicode 0x000B). By default, equations are justified according to the mthbpjc member of the DOPMTH. MAY<145> be ignored.

sprmCIstd

(0x4A30)

0x30

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

To apply the istd:

  1. Reset the character properties of the text to match the results of the paragraph style (in other words, revert any formatting that is applied on top of the paragraph style).

  2. Fetch the set of properties from the specified character style. (For instructions, see Applying Properties.)

  3. Apply those properties to the current text.

During steps 1 and 3, preserve the previous values of the following:

  • Whether the text is formatted as deleted revision mark text (for example, by sprmCFRMarkDel).

  • Whether the text is formatted with right-to-left layout (for example, by sprmCFBiDi).

  • Whether the text is displayed right-to-left or is in a South Asian language. (for example, by sprmCFComplexScripts).

  • Whether the field text is hidden (for example, by sprmCFFldVanish).

  • Whether the text is formatted as inserted revision mark text (for example, by sprmCFRMarkIns).

  • Whether the text has a special meaning and special display handling (for example, by sprmCFSpec).

  • Whether the text has associated picture data (for example, by sprmCFData).

  • Whether the character is a placeholder for an OLE object (for example, by sprmCFOle2).

  • Whether the text is hidden in Web Layout view (for example, by sprmCFWebHidden).

  • Whether the text is hidden and the image of a shape is displayed in its place (for example, by sprmCFObj).

  • The position in the Data Stream of a picture, or the name of an Object Linking and Embedding (OLE) stream (for example, by sprmCPicLocation).

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

  • Paragraph properties that have been preserved for revision marking (for example, by sprmCWall).

  • The reason value of the inserted or modified revision mark text (for example, by sprmCIdslRMark).

  • Whether the text is a symbol and, if it is, the font and character code (for example, by sprmCSymbol).

  • Any previous operand value of sprmCIdctHint.

  • The highlighting color of the text (for example, from sprmCHighlight).

  • Whether the text is hidden from display when hiding arbitrary XML delimiters (for example, from sprmCFSdtVanish).

  • The type of font substitution that is needed for the associated text (for example, from sprmCNeedFontFixup).

  • The revision save ID that is associated with the insertion of text (for example, from sprmCRsidText).

  • The revision save ID that is associated with character formatting (for example, from sprmCRsidProp).

  • The revision save ID that is associated with the tracked deletion of text (for example, by sprmCRsidRMDel).

  • The names of the authors who inserted the text, (for example, by sprmCIbstRMark).

  • The dates and times at which the text was inserted (for example, by sprmCDttmRMark).

  • The names of the authors who deleted the text (for example, by sprmCIbstRMarkDel).

  • The dates and times at which the text was deleted (for example, by sprmCDttmRMarkDel).

  • The justification of equations in the paragraph (for example, by sprmCFMathPr).

By default, text has the character style specified by istd 0x000A.

sprmCIstdPermute

(0xCA31)

0x31

An SPPOperand value that specifies a potential application of a different character style (istd).

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

If the istd is affected, the operation of this sprm specifies the new istd as equivalent to sprmCIstd. Note that the character properties of the text that are not specified by the current character style are reapplied after applying sprmCIstdPermute.

By default, the character style of the text is unaffected.

sprmCPlain

(0x2A33)

0x33

The operand is an unsigned integer that MUST be 0 and MUST be ignored.

The presence of this Sprm specifies a reset of the character properties of the text to match that of the underlying paragraph style (taking style hierarchy into account), while preserving the previous values of properties in the following list.

To determine the properties of the underlying paragraph style (taking style hierarchy into account), follow the algorithm in Determining Formatting Properties but stop before applying Direct Character Formatting. (In other words, the new values are determined by evaluating the properties of the text as if no character style or direct character formatting are applied; see Style Hierarchy in [ECMA-376] Part 4, Section 2.7.2 for further specification.)

The following properties MUST NOT be affected by the application of sprmCPlain:

  • Whether the text is formatted as deleted revision mark text (for example, by sprmCFRMarkDel).

  • Whether the text is formatted with right-to-left layout (for example, by sprmCFBiDi).

  • Whether the text is displayed right-to-left or is in a South Asian language. (for example, by sprmCFComplexScripts).

  • Whether the field text is hidden (for example, by sprmCFFldVanish).

  • Whether the text is formatted as inserted revision mark text (for example, by sprmCFRMarkIns).

  • Whether the text has a special meaning and special display handling (for example, by sprmCFSpec).

  • Whether the text has associated picture data (for example, by sprmCFData).

  • Whether the character is a placeholder for an OLE object (for example, by sprmCFOle2).

  • Whether the text is hidden in Web Layout view (for example, by sprmCFWebHidden).

  • The names of the authors who inserted the text (for example, by sprmCIbstRMark).

  • The dates and times at which the text was inserted (for example, by sprmCDttmRMark).

  • The names of the authors who deleted the text (for example, by sprmCIbstRMarkDel).

  • The dates and times at which the text was deleted (for example, by sprmCDttmRMarkDel).

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

  • Paragraph properties that have been preserved for revision marking (for example, by sprmCWall).

  • The reason value of the inserted or modified revision mark text (for example, by sprmCIdslRMark).

  • Whether the text is a symbol and, if it is, the font and character code (for example, by sprmCSymbol).

  • The position in the Data Stream of a picture, or the name of an OLE stream (for example, by sprmCPicLocation).

  • Any previous operand value of sprmCIdctHint.

  • The highlighting color of the text (for example, by sprmCHighlight).

  • The type of font substitution that is needed for the associated text (for example, by sprmCNeedFontFixup).

  • The revision save ID that is associated with the insertion of text (for example, by sprmCRsidText).

  • The revision save ID that is associated with character formatting (for example, by sprmCRsidProp).

  • The revision save ID that is associated with the tracked deletion of text (for example, by sprmCRsidRMDel).

  • The justification of equations in the paragraph (for example, by sprmCFMathPr).

By default, the character properties of the text are not reset.

sprmCKcd

(0x2A34)

0x34

A byte that specifies the kind of emphasis to apply to the text. The operand MUST be one of the following values.

0x00 - No emphasis

0x01 - Solid circle

0x02 - Comma above

0x03 - Circle above

0x04 - Solid circle below

The operands map to Unicode characters as shown following. The East Asian language of the text is specified by sprmCRgLid1_80 and sprmCRgLid1. The default East Asian language is Japanese if sprmCRgLid1_80 or sprmCRgLid1 does not specify Japanese, Korean, Chinese (Taiwan), or Chinese (China).

If the meaning of the operand is "solid circle", the following applies:

  • In the Japanese language, the Unicode character of 0xFF0E is positioned above the text.

  • In the Korean language, the Unicode character of 0x02D9 is positioned above the text.

  • In the Chinese (Taiwan) language, the Unicode character of 0x2027 is positioned above the text.

  • In the Chinese (China) language, the Unicode character of 0xFF0E is positioned below the text.

If the meaning of the operand is "comma above", the following applies:

  • In the Japanese language, the Unicode character of 0x3001 is positioned above the text.

  • In the Korean language, the Unicode character of 0x02DA is positioned above the text.

  • In the Chinese (Taiwan) language, the Unicode character of 0x3002 is positioned above the text.

  • In the Chinese (China) language, the Unicode character of 0x3001 is positioned above the text.

If the meaning of the operand is "circle above", the following applies:

  • In the Japanese language, the Unicode character of 0x02DA is positioned above the text.

  • In the Korean language, the Unicode character of 0x02DA is positioned above the text.

  • In the Chinese (Taiwan) language, the Unicode character of 0x3002 is positioned above the text.

  • In the Chinese (China) language, the Unicode character of 0x02DA is positioned above the text.

If the meaning of the operand is "solid circle below", the following applies:

  • In the Japanese language, the Unicode character of 0xFF0E is positioned below the text.

  • In the Korean language, the Unicode character of 0xFF0E is positioned below the text.

  • In the Chinese (Taiwan) language, the Unicode character of 0xFF0E is positioned below the text.

  • In the Chinese (China) language, the Unicode character of 0xFF0E is positioned below the text.

By default, text has no emphasis mark.

sprmCFBold

(0x0835)

0x35

A ToggleOperand value that specifies whether the text is bold. By default, text is not bold.

sprmCFItalic

(0x0836)

0x36

A ToggleOperand value that specifies whether the text is italicized. By default, text is not italicized.

sprmCFStrike

(0x0837)

0x37

A ToggleOperand value that specifies whether the text is formatted with strikethrough. By default, text is not struck through.

sprmCFOutline

(0x0838)

0x38

A ToggleOperand value that specifies whether only the outline contour of the characters in the text is rendered, with the inside of each character left empty. By default, text is rendered in normal solid characters. If sprmCFEmboss, or sprmCFImprint is true, then sprmCFOutline MUST be false.

sprmCFShadow

(0x0839)

0x39

A ToggleOperand value that specifies whether the text is formatted with a shadow. By default, text has no shadow. If sprmCFEmboss or sprmCFImprint is true, then sprmCFShadow MUST be false.

sprmCFSmallCaps

(0x083A)

0x3A

A ToggleOperand value that specifies whether the text characters are displayed as their capital letter equivalents, in a font size that is smaller than the actual font size that is specified for this text. It does not affect any nonalphabetic character. By default, the characters are displayed in their original character form.

sprmCFCaps

(0x083B)

0x3B

A ToggleOperand value that specifies whether the text characters are displayed as their capital letter equivalents. It does not affect any nonalphabetic character. By default, the characters are displayed in their original character form.

sprmCFVanish

(0x083C)

0x3C

A ToggleOperand value that specifies whether the text is formatted as hidden. By default, text is not hidden.

sprmCKul

(0x2A3E)

0x3E

A Kul value that specifies the underlining style of the text. By default, text is not underlined.

sprmCDxaSpace

(0x8840)

0x40

An XAS value that specifies the extra space, in twips, between a character and the one to its right. This does not vary with the directionality of the script or layout. Negative values indicate that space is removed, possibly producing character overlap. Negative space beyond the character width is ignored. By default, the space to the right of a character is neither added nor removed.

sprmCIco

(0x2A42)

0x42

An Ico value that specifies the color of the text. The default text color is cvAuto.

sprmCHps

(0x4A43)

0x43

An unsigned 2-byte integer that specifies the size of the text, except for text that meets the qualifications for sprmCHpsBi. This value is specified in half-points. The specified value MUST be between 2 and 3276. By default, the font size is 20 half-points.

sprmCHpsPos

(0x4845)

0x45

A signed integer value that specifies the vertical position, in half-points, of text relative to the normal position. The specified value MUST be between -3168 and 3168. By default, text is in its normal vertical position.

sprmCMajority

(0xCA47)

0x47

A CMajorityOperand value that specifies which of the character properties of the text to reset to match the properties of the underlying paragraph style, taking the style hierarchy into account.

If the character style index (the istd) of the text is not 10 (the default), this Sprm MUST be ignored.

sprmCMajority can affect any of the character properties in the following list. If a character property is affected, that property on the text is then set to the value of that property in the underlying paragraph style, taking the style hierarchy into account.

To determine if a given property (from the following list of potentially affected character properties) is affected, do the following:

  1. Find the property value on the text.

  2. Find the property value as specified in the grpprl member of CMajorityOperand. If the property value is not specified in the grpprl member, use the default value.

  3. Compare the two values.

  4. If the values match, the property is affected.

After it is determined that a property is affected, see sprmCPlain for information about how to determine the properties of the underlying paragraph style.

Note that two special cases occur in the determination of whether a property is affected:

  • In the case of whether the text is excluded from the proofing analysis (for example, by sprmCFNoProof), if the value of the property on the text is 1 and the value of the property specified in the grpprl is 1, the property is not affected (it is left as 1 on the text.) Otherwise the preceding rules apply.

  • In the case of the font index that is used only if the language for the text is an East Asian language (for example, by sprmCRgFtc1), if the preceding rules would lead to the application of a font index for this property that specifies the Times New Roman font, the property is not affected (it is left as before).

The character properties (potentially) affected are:

  • Whether the text is bold (for example, by sprmCFBold)

  • Whether the text is italicized (for example, by sprmCFItalic)

  • Whether the text is formatted in smaller capital forms (for example, by sprmCFSmallCaps)

  • Whether the text is formatted as hidden (for example, by sprmCFVanish)

  • Whether the text is bolded when displayed right-to-left (for example, by sprmCFBoldBi)

  • Whether the text is italicized when the text is displayed right-to-left (for example, by sprmCFItalicBi)

  • Whether the text is formatted with a strikethrough effect (for example, by sprmCFStrike)

  • Whether the text is formatted in capital form (for example, by sprmCFCaps)

  • Whether the text is formatted with a shadow effect (for example, by sprmCFShadow)

  • Whether only the outline contour of the characters in the text is rendered, with the inside of each character left empty (for example, by sprmCFOutline)

  • Whether the text is formatted with a double strikethrough effect (for example, by sprmCFDStrike)

  • Whether the text is embossed (for example, by sprmCFEmboss)

  • Whether the text is formatted with the imprint style (for example, by sprmCFImprint)

  • Whether the text is excluded from the proofing analysis (for example, by sprmCFNoProof)

  • The font index that is used to display the text only if the conditions for using these fonts do not apply: sprmCRgFtc1, sprmCRgFtc2 and sprmCFtcBi (for example, by sprmCRgFtc0)

  • The font index that is used only if the language for the text is an East Asian language (for example, by sprmCRgFtc1)

  • The font index that is used to display the text if the language for the text is one of those listed for sprmCRgFtc2 (for example, by sprmCRgFtc2)

  • The font index that is used to display the text only if the text flow is right-to-left or if the language for the text is a South Asian language (for example, by sprmCFtcBi)

  • The size of the text (for example, by sprmCHps)

  • The size of the text, for text that is displayed right-to-left (for example, by sprmCHpsBi)

  • The vertical position of the text relative to the normal position (for example, by sprmCHpsPos)

  • The superscript or subscript for text (for example, by sprmCIss)

  • The kind of emphasis to apply to the text (for example, by sprmCKcd)

  • The underlining style of the text (for example, by sprmCKul)

  • The extra space, in twips, between a character and the one to its right (for example, by sprmCDxaSpace)

  • The color of the text (for example, by sprmCCv)

  • The text effect of the text (for example, by sprmCSfxText)

  • The language of the text, except for East Asian languages (for example, by sprmCRgLid0)

  • The language of the text, if it is an East Asian language (for example, by sprmCRgLid1)

  • The language of the text when the text is displayed right-to-left (for example, by sprmCLidBi)

Any character property that is not in this list MUST NOT be affected by sprmCMajority.

sprmCIss

(0x2A48)

0x48

An 8-bit unsigned integer that specifies superscript or subscript for text. By default, text is normal. The value MUST be one of those listed following.

0x00 - Normal text

0x01 - Superscript

0x02 - Subscript

sprmCHpsKern

(0x484B)

0x4B

A signed integer that specifies a font size threshold, in half-points, at or above which kerning is applied to the text. If the operand is 0, no kerning is applied; otherwise, it MUST be a value between 1 and 3276. By default, kerning is not applied to any characters.

sprmCHresi

(0x484E)

0x4E

An HresiOperand value that specifies the word-breaking behavior for the text. By default the text uses normal hyphenation.

sprmCRgFtc0

(0x4A4F)

0x4F

A 2-byte signed integer value that is an index into the font table (SttbfFfn). The font that is referenced by this index is used to display the text only if the conditions for using these fonts do not apply: sprmCRgFtc1, sprmCRgFtc2 and sprmCFtcBi. This value MUST be between 0 and a number that is one less than the count of entries in SttbfFfn unless there are 0 entries, in which case this value MUST be 0. By default, the font used under these conditions is STSH.Stshi.Stshif.ftcAsci.

sprmCRgFtc1

(0x4A50)

0x50

A 2-byte signed integer value that is an index into the font table (SttbfFfn). The font referenced by this index is used only if the language for the text is an East Asian language. This value MUST be between 0 and a number that is one less than the count of entries in SttbfFfn unless there are 0 entries, in which case this value MUST be 0. By default, the font that is used under these conditions is STSH.Stshi.Stshif.ftcFE.

sprmCRgFtc2

(0x4A51)

0x51

A 2-byte signed integer that is an index into the font table (SttbfFfn). The font that is referenced by this index is used to display text if the character falls outside the Unicode character range U+0020 to U+007F and the conditions for using these fonts do not apply: sprmCRgFtc1 and sprmCFtcBi. This value MUST be between 0 and a number that is one less than the count of entries in SttbfFfn unless there are 0 entries, in which case this value MUST be 0. By default, the font that is used under these conditions is STSH.Stshi.Stshif.ftcOther.

sprmCCharScale

(0x4852)

0x52

A 2-byte unsigned integer that specifies the percentage by which to horizontally scale the text, thereby changing the shape of the characters. The value MUST be greater than or equal to 1, and less than or equal to 600. Values that are less than 100 represent the compressing of text. Values that are greater than 100 represent the expanding of text. By default, text is neither compressed nor expanded.

sprmCFDStrike

(0x2A53)

0x53

A ToggleOperand value that specifies whether the text is formatted with the double strikethrough effect. By default, text is not struck through.

sprmCFImprint

(0x0854)

0x54

A ToggleOperand value that specifies whether the text is formatted with the imprint effect. By default, text does not have this formatting applied. If sprmCFEmboss, sprmCFOutline or sprmCFShadow is "true", then sprmCFImprint MUST be "false".

sprmCFSpec

(0x0855)

0x55

A ToggleOperand value that specifies whether the current text has a meaning that differs or displays differently than the underlying character to which it is applied. This value SHOULD<146> be applied only to the following characters.

U+0001 - A picture location that is used in conjunction with sprmCPicLocation.

U+0002 - An auto-numbered footnote reference. See plcffndRef.

U+0003 - A short horizontal line.

U+0004 - A long horizontal line that is the width of the content area of the page.

U+0005 - An annotation reference character. See PlcfandRef.

U+0008 - A drawn object. See plcfSpa.

U+0013 - A field begin character. See Plcfld.

U+0014 - A field separator character. See Plcfld.

U+0015 - A field end character. See Plcfld.

U+0028 - A symbol. See sprmCSymbol.

U+003C - The start of a structured document tag bookmark range. See FibRgFcLcb2003.fcPlcfBkfSdt.

U+003E - The end of a structured document tag bookmark range. See FibRgFcLcb2003.fcPlcfBklSdt.

U+2002 - An en space.

U+2003 - An em space.

By default, characters have no special meaning beyond their underlying glyph.

sprmCFObj

(0x0856)

0x56

A Bool8 value that specifies whether the current text represents an embedded object. If sprmCFObj is "true", sprmCFOle2 MUST also be "true". By default, text is not an embedded object.

sprmCPropRMark90

(0xCA57)

0x57

A PropRMarkOperand value that specifies whether the character run has an associated property revision mark, as well as its author and date/time.

By default, character runs have no property revision marks.

sprmCFEmboss

(0x0858)

0x58

A ToggleOperand value that specifies whether the text is embossed. By default, text is not embossed. If sprmCFOutline, sprmCFShadow or sprmCFImprint is "true", sprmCFEmboss MUST be "false".

sprmCSfxText

(0x2859)

0x59

A byte that specifies a text effect to apply to the text. By default, text does not have any text effects. The allowed values and their meanings are listed following.

0x0 - None.

0x1 - Las Vegas Lights. Text is bordered by marquee lights that blink between the colors red, yellow, green, and blue.

0x2 - Blinking background. Text has a black background that blinks on and off.

0x3 - Sparkle Text. Text is overlaid with multicolored stars that blink on and off at regular intervals.

0x4 - Marching Black Ants. Text is surrounded by a black dashed-line border. The border is animated so that the individual dashes appear to move clockwise around the text.

0x5 - Marching Red Ants. Text is surrounded by a red dashed-line border that is animated to appear to move clockwise around the text.

0x6 - Shimmer. Text is alternately blurred and unblurred at regular intervals, to give the appearance of shimmering.

sprmCFBiDi

(0x085A)

0x5A

A ToggleOperand value that specifies whether the text is formatted with right-to-left layout. By default, text is displayed from right to left if the language for the text is a right-to-left language.

sprmCFBoldBi

(0x085C)

0x5C

A ToggleOperand value that specifies whether the text is formatted bold when displayed right-to-left or determined to be complex script. By default, text is not bold.

sprmCFItalicBi

(0x085D)

0x5D

A ToggleOperand value that specifies whether the text is italicized when displayed right-to-left or determined to be complex script. By default, text is not italicized.

sprmCFtcBi

(0x4A5E)

0x5E

A 2-byte signed index into the font table (SttbfFfn). The font that is referenced by this index is used to display the text only if the text flow is right-to-left or if the text is a complex script. This value MUST be a number that is between 0 and one less than the count of entries in SttbfFfn unless there are 0 entries, in which case this value MUST be 0. By default, the font used under these conditions is STSH.Stshi.ftcBi.

sprmCLidBi

(0x485F)

0x5F

A LID value that specifies the language of the text when the text is displayed right-to-left or if the text is complex script. By default, text language is undefined and text is not checked for spelling, grammar, or hyphenation.

sprmCIcoBi

(0x4A60)

0x60

An ICO value that specifies the color of text when displayed right-to-left or determined to be complex script.<147>

sprmCHpsBi

(0x4A61)

0x61

An unsigned 2-byte integer value that specifies the size of the text, for text that is displayed right-to-left or text that is a complex script. This value is specified in half-points. The specified value MUST be between 0 and 3276. By default, text of the following Unicode subranges uses the associated size, in half points, as specified in [MC-USB].

  • Thai, Mongolian, and Bangla use a font size of 28.

  • Tibetan uses a font size of 32.

  • Devanagari uses a font size of 20.

  • Khmer uses a font size of 36.

Text of other Unicode subranges uses a font size of 24 half points.

sprmCDispFldRMark

(0xCA62)

0x62

A DispFldRmOperand value that indicates a revision within the result of a display field. This sprm MUST be applied only to a LISTNUM display field.

sprmCIbstRMarkDel

(0x4863)

0x63

A signed 16-bit integer value that specifies a zero-based index into SttbfRMark. This value MUST be greater than or equal to zero and MUST be less than SttbfRMark.cData. The string at this index is the name of the author who deleted the text. This is recorded only if revision marking is on at the time of deletion. By default, this index is zero, which is the index of the "Unknown" author.

sprmCDttmRMarkDel

(0x6864)

0x64

A DTTM value that specifies the date and time at which the text was deleted. This is recorded only if revision marking is on at the time of the deletion. By default, the date is 1/1/1900 and the time is 00:00:00.

sprmCBrc80

(0x6865)

0x65

A Brc80 value that specifies the border of all four sides of the text. The logical left border is hidden if the previous character on the same line has the same border as this character. The logical right border is hidden if the next character on the same line has the same border as this character. By default, text has no border.

Brc80.dptSpace MUST be ignored when applied to character borders.

sprmCShd80

(0x4866)

0x66

A Shd80 structure that specifies the background shading for the text. By default, text is not shaded.

sprmCIdslRMarkDel

(0x4867)

0x67

An unsigned 16-bit integer that specifies the reason why the text under revision was deleted. This is recorded only if revision marking is on at the time when the text is edited. This value MUST be one of the following.

0x0000 – Performed a normal edit.

0x0001 – Applied a style.

0x0002 – Adjusted alignment with a tab.

0x0003 – Adjusted alignment with a tab.

0x0004 – Removed extra paragraph mark.

0x0005 – Replaced all caps with mixed caps.

0x0006 – Replaced bullet character with bullet symbol.

0x0007 – Replaced straight quote with smart quote.

0x0008 – Replaced multiple-character symbol with single symbol.

0x0009 – Replaced text with trademark symbol.

0x000A – Replaced text with copyright symbol.

0x000B – Replaced text with registered trademark symbol.

0x000C – Adjusted spaces after period.

0x000D – Replaced numbers with fraction symbol.

0x000E – Applied a heading style.

0x000F – Applied an outline style.

0x0010 – Applied a list style.

0x0011 – Applied a memo header style.

0x0012 – Applied an address style.

0x0013 – Applied a salutation style.

0x0014 – Applied a closing phrase style.

0x0015 – Applied a date style.

0x0016 – Applied a distribution list style.

0x0017 – Applied a bullet list style.

0x0018 – Applied a column style.

0x0019 – Applied a carbon copy style.

0x001A – Replaced text with superscript.

0x001B – Replaced whitespace galley with tabs.

0x001C – Removed leading whitespace.

0x001D – Removed manual numbering.

0x001E – Replaced two hyphens with long (em) dash.

0x001F – Adjusted spaces before: ‘!’, ‘?’, or ‘;’

0x0020 – Inserted paragraph mark.

0x0021 – Replaced leading whitespace to first line indent.

0x0022 – Removed space between a double byte character and a single byte character.

0x0023 – Replaced to match to open parenthesis.

0x0024 – Replaced double byte to single byte.

0x0025 – Replaced single byte to double byte.

0x0026 – Replaced manual emphasis.

0x0027 – Replaced border characters with borders

0x0028 – Replaced e-mail history characters with indentation.

0x0029 – Replaced URL or UNC with hyperlink.

0x002A – Replaced Gateway-generated hex characters.

0x002B – Applied outline level for document map.

By default, the reason for the revision is "Performed a normal edit."

sprmCFUsePgsuSettings

(0x0868)

0x68

A ToggleOperand value that specifies whether the text is to be displayed according to the document grid. By default, text uses the document grid if one is defined. (See sprmSClm for more details about the document grid.)

sprmCRgLid0_80

(0x486D)

0x6D

A LID value that specifies the language of the text, except for East Asian languages. East Asian languages are specified by sprmCRgLid1_80. By default, the text language is undefined.

sprmCRgLid1_80

(0x486E)

0x6E

A LID value that specifies the language of the text if it is an East Asian language. Other languages are specified by sprmCRgLid0_80. By default, the text language is undefined.

sprmCIdctHint

(0x286F)

0x6F

An 8-bit unsigned integer value that specifies which of the language, font, size, bold, and italic properties is to be used for handling the text, in the case where this cannot be derived from the characters themselves. The valid values and their meanings are specified as follows. These meanings correspond to the values of the ST_Hint type specified in [ECMA-376] Part 4, Section 2.18.47.

0x00 - default

Use sprmCRgLid0 (or sprmCRgLid0_80) for language. Use sprmCRgFtc0 for font if the character is between 0x0020 and 0x007F, inclusive. Otherwise, use sprmCRgFtc2. Use sprmCHps for size, sprmCFBold for bold, and sprmCFItalic for italic.

0x01 - eastAsia

Use sprmCRgLid1 (or sprmCRgLid1_80) for language, sprmCRgFtc1 for font, sprmCHps for size, sprmCFBold for bold, and sprmCFItalic for italic.

0x02 - cs

Use sprmCLidBi for language, sprmCFtcBi for font, sprmCHpsBi for size, sprmCFBoldBi for bold, and sprmCFItalicBi for italic.

0xFF - No ST_Hint equivalent

Provides no guidance on how to treat ambiguous text.

sprmCCv

(0x6870)

0x70

A COLORREF value that specifies the color of the text. The default text color is cvAuto.

sprmCShd

(0xCA71)

0x71

A SHDOperand value that specifies the background shading for the text. By default, text is not shaded.

sprmCBrc

(0xCA72)

0x72

A BrcOperand value that specifies the border on all four sides of the text. The logical left border is hidden if the previous character on the same line has the same border as this character. The logical right border is hidden if the next character on the same line has the same border as this character. By default, text has no border.

Brc.dptSpace MUST be ignored when applied to character borders.

sprmCRgLid0

(0x4873)

0x73

A LID value that specifies the language of the text, except for East Asian languages. East Asian languages are specified by sprmCRgLid1. By default, the text language is undefined and text is not checked for spelling, grammar, or hyphenation.

sprmCRgLid1

(0x4874)

0x74

A LID value that specifies the language of the text if it is an East Asian language. Other languages are specified by the sprmCRgLid0. By default, the text language is undefined and text is not checked for spelling, grammar, or hyphenation.

sprmCFNoProof

(0x0875)

0x75

A ToggleOperand value that specifies whether the text is excluded from the proofing analysis. By default, text is not excluded from the proofing analysis.

sprmCFitText

(0xCA76)

0x76

A CFitTextOperand value that specifies a width, in twips, to which text is expanded or condensed to fit. By default, text is not modified to fit into a specific width.

sprmCCvUl

(0x6877)

0x77

A COLORREF value that specifies the color of the text underline. The default underline color is cvAuto.

sprmCFELayout

(0xCA78)

0x78

A FarEastLayoutOperand value that specifies text layout information for East Asian languages. By default, text layout is unchanged by the sprmCFELayout value.

sprmCLbcCRJ

(0x2879)

0x79

An LBCOperand value that specifies that this character is a special character representing a line break of the given type. The presence of a line break character means that the line ends at this point and that the rest of the text continues on another line even though it is part of the same paragraph. This Sprm MUST NOT be applied to any character other than a line break character (Unicode 0x000B). By default, text restarts at the beginning of the next line after a line break character.

sprmCFComplexScripts

(0x0882)

0x82

A ToggleOperand value that specifies whether complex script formatting (for example, see sprmCFBoldBi) is applied to the text regardless of the Unicode characters themselves.

By default, characters are evaluated to determine whether complex script formatting is applied.

sprmCWall

(0x2A83)

0x83

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

A value of 1 specifies that the values of properties are preserved. All character SPRMs that are encountered before the sprmCWall in the text property evaluation specify the state of the character properties before revision marking is enabled, whereas all character SPRMs that follow the sprmCWall specify the character property modifications that occur after revision marking is enabled.

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

By default, values of properties are not preserved.

sprmCCnf

(0xCA85)

0x85

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

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

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

sprmCNeedFontFixup

(0x2A86)

0x86

An FFM that specifies the type of font substitution that is needed for the associated text. Font substitution is needed when certain language characters are not supported by the current font for the text, so it is necessary to pick a different font that supports the characters. By default, text is not marked as requiring font substitution.

sprmCPbiIBullet

(0x6887)

0x87

A CP value in the Bullet Pictures document that specifies which picture is used as a bullet character when rendering the bullet. The CP value MUST be greater than or equal to zero. The Bullet Pictures document is stored within the main document and marked by a hidden bookmark (1) called "_PictureBullets."

This Sprm MUST NOT be applied to any character other than a paragraph mark (Unicode 0x000D), a cell mark (Unicode 0x0007), or a section mark (Unicode 0x000C). If a picture bullet is used, sprmCPbiGrf MUST be present to specify the properties of the picture bullet. By default, pictures are not used for rendering bullets.

sprmCPbiGrf

(0x4888)

0x88

A PbiGrfOperand value that specifies whether a picture is used as a bullet character when rendering the bullet. This value also specifies the properties of the picture bullet. This Sprm MUST NOT be applied to any character other than a paragraph mark (Unicode 0x000D). If a picture bullet is used, sprmCPbiIBullet MUST be present to specify the location of the picture that is used for the bullet. By default, pictures are not used to render bullets.

sprmCPropRMark

(0xCA89)

0x89

A PropRMarkOperand value that specifies whether the text has an associated property revision mark, as well as its author and the date and time.

By default, text has no property revision marks.

sprmCFSdtVanish

(0x2A90)

0x90

A Bool8 value that specifies whether the text is hidden from display when the option to hide arbitrary XML delimiters is enabled. This value MUST NOT be applied to any characters other than '<' (U+003C) or '>' (U+003E) with sprmCFSpec set to "true". By default, text is not hidden when the option to hide XML delimiters is enabled.