2.9.33 ChpxFkp

The ChpxFkp structure maps text to its character properties. A ChpxFkp structure is 512 bytes in size, with crun in the last byte. The elements of rgb point to Chpxs that start at offsets between crun and the end of rgb.


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

rgfc (variable)

...

rgb (variable)

...

crun

rgfc (variable): An array of 4-byte unsigned integers. Each element of this array specifies an offset in the WordDocument Stream where a run of text begins. This array MUST be sorted in ascending order and MUST NOT contain duplicates. Each run ends at the beginning of the next run. This array contains crun+1 elements, where the last element specifies the end of the last run.

rgb (variable): An array of 1-byte unsigned integers, followed by an array of Chpx structures. The elements of this array, which has crun elements and parallels rgfc, each specify the offset of one of the Chpxs within this ChpxFkp. The offset is computed by multiplying the value of the byte by 2.

For each i from 0 to crun, rgb[i]×2 MUST either specify an offset, in bytes, between the end of the array and crun, or be equal to zero, which specifies that there is no Chpx associated with this element of rgb.

Each Chpx specifies the character properties for the run of text that is indicated by the corresponding element of rgfc.

crun (1 byte):  An unsigned integer that specifies the number of runs of text this ChpxFkp describes. Crun is the last byte of the ChpxFkp. Crun MUST be at least 0x01, and MUST NOT exceed 0x65, as that would cause rgfc and rgb to grow too large for the ChpxFkp to be 512 bytes.