2.4.329 TxO

The TxO record specifies the text in a text box or a form control. This record can be followed by a collection of Continue records that specifies additional feature data to complete this record, as follows:

  • If the value of the cchText field is not zero, this record does not fully specify the text. The rest of the data that MUST be specified is the text string and the formatting runs information. That data is specified in two sets of following Continue records:

    • Text String Specification: The first set of Continue records specifies the text string. Each of these Continue records contains an XLUnicodeStringNoCch structure that specifies part of the string. The total number of characters in all XLUnicodeStringNoCch MUST be cchText.

    • Formatting Run Specification: The second set of Continue records specifies formatting runs. These Continue records contain a TxORuns structure. If the size of the TxORuns structure is longer than 8,224 bytes, it is split across multiple Continue records.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

A

B

C

D

E

F

G

H

rot

reserved4 (optional)

reserved5 (optional)

...

controlInfo (optional)

...

cchText

cbRuns

ifntEmpty

fmla (variable)

...

A - reserved1 (1 bit): MUST be zero, and MUST be ignored.

B - hAlignment (3 bits): An unsigned integer that specifies the horizontal alignment. The value MUST be one of the values in the following table:

Value

Meaning

1

Specifies left alignment.

2<138>

Specifies centered alignment.

3

Specifies right alignment.

4

Specifies justify alignment.

7

Specifies justify distributed alignment.

C - vAlignment (3 bits): An unsigned integer that specifies the vertical alignment. The value MUST be one of the values in the following table:

Value

Meaning

1

Specifies top alignment.

2

Specifies middle alignment.

3

Specifies bottom alignment.

4

Specifies justify alignment<139>.

7

Specifies justify distributed alignment.

D - reserved2 (2 bits): MUST be zero, and MUST be ignored.

E - fLockText (1 bit): A bit that specifies whether the text is locked.

F - reserved3 (4 bits): MUST be zero, and MUST be ignored.

G - fJustLast (1 bit): A bit that specifies whether the justify alignment or justify distributed alignment is used on the last line of the text in specific versions of the application<140>.

H - fSecretEdit (1 bit): A bit that specifies whether this is a text box used for typing passwords and hiding the actual characters being typed by the user.

rot (2 bytes): An unsigned integer that specifies the orientation of the text within the object boundary. The value MUST be one of the values in the following table:

Value

Meaning

0

Specifies no rotation.

1

Specifies stacked or vertical orientation.

2

Specifies 90-degree counter-clockwise rotation.

3

Specifies 90-degree clockwise rotation.

reserved4 (2 bytes): MUST be zero and MUST be ignored. This field MUST exist if and only if the value of cmo.ot in the preceding Obj record is not 0, 5, 7, 11, 12 or 14.

reserved5 (4 bytes): MUST be zero and MUST be ignored. This field MUST exist if and only if the value of cmo.ot in the preceding Obj record is not 0, 5, 7, 11, 12 or 14.

controlInfo (6 bytes): An optional ControlInfo structure that specifies the properties for some form controls. The field MUST exist if and only if the value of cmo.ot in the preceding Obj record is 0, 5, 7, 11, 12, or 14.

cchText (2 bytes): An unsigned integer that specifies the number of characters in the text string contained in the Continue records immediately following this record.

cbRuns (2 bytes): An unsigned integer that specifies the number of bytes of formatting run information in the TxORuns structure contained in the Continue records following this record.  If cchText is 0, this value MUST be 0. Otherwise, the value MUST be greater than or equal to 16 and MUST be a multiple of 8.

ifntEmpty (2 bytes): A FontIndex structure that specifies the font when the value of cchText is 0.

fmla (variable): An ObjFmla structure that specifies the parsed expression of the formula (section 2.2.2) for the text.