3.4 Outline Text

The outline text can be displayed visually, as shown in the figure titled "Outline text" in section 3.1. The records used to construct the outline text are found inside the SlideListWithTextContainer record (section 2.4.14.3) contained within the DocumentContainer record (section 2.4.1). The child-record hierarchy of the DocumentContainer record S from the table titled "Top-level record sequence in the PowerPoint Document Stream from sample.ppt" in section 3.3 is shown expanded in the following table.

Offset

Size

Structure

00005C69

0CFB

DocumentContainer

00005C69

0008

    RecordHeader - rh

00005C71

0030

    E: DocumentAtom - documentAtom

00005CA1

0152

    F: ExObjListContainer - exObjList

00005DF3

016A

    DocumentTextInfoContainer - documentTextInfo

00005F5D

01FC

    DrawingGroupContainer - drawingGroup

00006159

0040

    A: MasterListWithTextContainer - masterList

00006199

04D7

    D: DocInfoListContainer - docInfoList

00006670

0014

    SlideHeadersFootersContainer - slideHF

00006684

0014

    NotesHeadersFootersContainer - notesHF

00006698

0214

    B: SlideListWithTextContainer - slideList

000068AC

00B0

    C: NotesListWithTextContainer - notesList

0000695C

0008

    EndDocumentAtom - endDocumentAtom

Figure 26: DocumentContainer child-record hierarchy

The child-record hierarchy of the SlideListWithTextContainer (section 2.4.14.3) record B from the previous table is shown expanded in the following table.

Offset

Size

Structure

00006698

0214

SlideListWithTextContainer - slideList

00006698

0008

    RecordHeader - rh

000066A0

001C

    SlidePersistAtom - case of RT_SlidePersistAtom

000066BC

000C

    A: TextHeaderAtom - case of RT_TextHeaderAtom

000066C8

0010

    B: TextBytesAtom - case of RT_TextBytesAtom

000066D8

000C

    C: TextHeaderAtom - case of RT_TextHeaderAtom

000066E4

0014

    D: TextBytesAtom - case of RT_TextBytesAtom

000066F8

001C

    SlidePersistAtom - case of RT_SlidePersistAtom

00006714

000C

    E: TextHeaderAtom - case of RT_TextHeaderAtom

00006720

0013

    F: TextBytesAtom - case of RT_TextBytesAtom

00006733

000C

    G: TextHeaderAtom - case of RT_TextHeaderAtom

0000673F

0031

    H: TextBytesAtom - case of RT_TextBytesAtom

00006770

0022

    StyleTextPropAtom - case of RT_StyleTextPropAtom

00006792

001C

    SlidePersistAtom - case of RT_SlidePersistAtom

000067AE

000C

    I: TextHeaderAtom - case of RT_TextHeaderAtom

000067BA

0016

    J: TextBytesAtom - case of RT_TextBytesAtom

000067D0

000C

    TextHeaderAtom - case of RT_TextHeaderAtom

000067DC

0012

    TextSpecialInfoAtom - case of RT_TextSpecialInfoAtom

000067EE

001C

    SlidePersistAtom - case of RT_SlidePersistAtom

0000680A

000C

    K: TextHeaderAtom - case of RT_TextHeaderAtom

00006816

0015

    L: TextBytesAtom - case of RT_TextBytesAtom

0000682B

001C

    SlidePersistAtom - case of RT_SlidePersistAtom

00006847

000C

    M: TextHeaderAtom - case of RT_TextHeaderAtom

00006853

0019

    N: TextBytesAtom - case of RT_TextBytesAtom

0000686C

001C

    SlidePersistAtom - case of RT_SlidePersistAtom

00006888

000C

    O: TextHeaderAtom - case of RT_TextHeaderAtom

00006894

0018

    P: TextBytesAtom - case of RT_TextBytesAtom

Figure 27: SlideListWithTextContainer child-record hierarchy

The character content of the outline text is derived from the TextBytesAtom records labeled B, D, F, H, J, L, N, and P in the previous table titled "SlideListWithTextContainer child-record hierarchy". The TextHeaderAtom records labeled A, C, E, G, I, K, M, and O that precede the TextBytesAtom records indicate the type of text content as specified by the textType field and the TextTypeEnum. These values can be used to organize the text into logical outline levels, where title placeholder shape text is a top-level outline item and body placeholder shape text is a subordinate outline item.

The detailed structures of records A through P in the previous table titled "SlideListWithTextContainer child-record hierarchy" are shown in the following tables. Non-printable character content in TextBytesAtom records has been replaced with "\t", "\n", "\v", or "\r" where applicable.

The first line of the outline text as shown in the figure titled "Outline text" in section 3.1 is derived from records A and B, which are shown expanded in the following tables.

Offset

Size

Structure

Value

000066BC

000C

A: TextHeaderAtom - case of RT_TextHeaderAtom

000066BC

0008

    RecordHeader - rh

000066BC

4 bits

        unsigned integer - recVer

0x0

000066BC

12 bits

        unsigned integer - recInstance

0x000

000066BE

0002

        RecordType - recType

0x0F9F

000066C0

0004

        unsigned integer - recLen

0x00000004

000066C4

0004

    TextTypeEnum - textType

0x00000006

Figure 28: Outline TextHeaderAtom record A

textType: 0x00000006 specifies that the following character content in the textBytes field of the following table represents the center title placeholder shape text.

Offset

Size

Structure

Value

000066C8

0010

B: TextBytesAtom - case of RT_TextBytesAtom

000066C8

0008

    RecordHeader - rh

000066C8

4 bits

        unsigned integer - recVer

0x0

000066C8

12 bits

        unsigned integer - recInstance

0x000

000066CA

0002

        RecordType - recType

0x0FA8

000066CC

0004

        unsigned integer - recLen

0x00000008

000066D0

0008

    array of bytes - textBytes

a sample

Figure 29: Outline TextBytesAtom record B

textBytes: "a sample" specifies the center title placeholder shape text.

The second line of the outline text as shown in the figure titled "Outline text" in section 3.1 is derived from records C and D, which are shown expanded in the following tables.

Offset

Size

Structure

Value

000066D8

000C

C: TextHeaderAtom - case of RT_TextHeaderAtom

000066D8

0008

    RecordHeader - rh

000066D8

4 bits

        unsigned integer - recVer

0x0

000066D8

12 bits

        unsigned integer - recInstance

0x001

000066DA

0002

        RecordType - recType

0x0F9F

000066DC

0004

        unsigned integer - recLen

0x00000004

000066E0

0004

    TextTypeEnum - textType

0x00000005

Figure 30: Outline TextHeaderAtom record C

textType: 0x00000005 specifies that the following character content in the textBytes field of the following table represents the center body placeholder shape text.

Offset

Size

Structure

Value

000066E4

0014

D: TextBytesAtom - case of RT_TextBytesAtom

000066E4

0008

    RecordHeader - rh

000066E4

4 bits

        unsigned integer - recVer

0x0

000066E4

12 bits

        unsigned integer - recInstance

0x000

000066E6

0002

        RecordType - recType

0x0FA8

000066E8

0004

        unsigned integer - recLen

0x0000000C

000066EC

000C

    array of bytes - textBytes

presentation

Figure 31: Outline TextBytesAtom record D

textBytes: "presentation" specifies the center body placeholder shape text.

The third line of the outline text as shown in the figure titled "Outline text" in section 3.1 is derived from records E and F, which are shown expanded in the following tables.

Offset

Size

Structure

Value

00006714

000C

E: TextHeaderAtom - case of RT_TextHeaderAtom

00006714

0008

    RecordHeader - rh

00006714

4 bits

        unsigned integer - recVer

0x0

00006714

12 bits

        unsigned integer - recInstance

0x000

00006716

0002

        RecordType - recType

0x0F9F

00006718

0004

        unsigned integer - recLen

0x00000004

0000671C

0004

    TextTypeEnum - textType

0x00000000

Figure 32: Outline TextHeaderAtom record E

textType: 0x00000000 specifies that the following character content in the textBytes field of the following table represents the title placeholder shape text.

Offset

Size

Structure

Value

00006720

0013

F: TextBytesAtom - case of RT_TextBytesAtom

00006720

0008

    RecordHeader - rh

00006720

4 bits

        unsigned integer - recVer

0x0

00006720

12 bits

        unsigned integer - recInstance

0x000

00006722

0002

        RecordType - recType

0x0FA8

00006724

0004

        unsigned integer - recLen

0x0000000B

00006728

000B

    array of bytes - textBytes

the weather

Figure 33: Outline TextBytesAtom record F

textBytes: "the weather" specifies the title placeholder shape text.

Lines four through six of the outline text as shown in the figure titled "Outline text" in section 3.1 are derived from records G and H, which are shown expanded in the following tables.

Offset

Size

Structure

Value

00006733

000C

G: TextHeaderAtom - case of RT_TextHeaderAtom

00006733

0008

    RecordHeader - rh

00006733

4 bits

        unsigned integer - recVer

0x0

00006733

12 bits

        unsigned integer - recInstance

0x001

00006735

0002

        RecordType - recType

0x0F9F

00006737

0004

        unsigned integer - recLen

0x00000004

0000673B

0004

    TextTypeEnum - textType

0x00000001

Figure 34: Outline TextHeaderAtom record G

textType: 0x00000001 specifies that the following character content in the textBytes field of the following table represents the body placeholder shape text.

Offset

Size

Structure

Value

0000673F

0031

H: TextBytesAtom - case of RT_TextBytesAtom

0000673F

0008

    RecordHeader - rh

0000673F

4 bits

        unsigned integer - recVer

0x0

0000673F

12 bits

        unsigned integer - recInstance

0x000

00006741

0002

        RecordType - recType

0x0FA8

00006743

0004

        unsigned integer - recLen

0x00000029

00006747

0029

    array of bytes - textBytes

a sunny day\rthe blue sky\rsome green grass

Figure 35: Outline TextBytesAtom record H

textBytes: "a sunny day\rthe blue sky\rsome green grass" specifies the body placeholder shape text. Each line break in the text, shown as "\r", is displayed as a separate outline item shown in the figure titled "Outline text" in section 3.1.

Line seven of the outline text as shown in the figure titled "Outline text" in section 3.1 is derived from records I and J, which are shown expanded in the following tables.

Offset

Size

Structure

Value

000067AE

000C

I: TextHeaderAtom - case of RT_TextHeaderAtom

000067AE

0008

    RecordHeader - rh

000067AE

4 bits

        unsigned integer - recVer

0x0

000067AE

12 bits

        unsigned integer - recInstance

0x000

000067B0

0002

        RecordType - recType

0x0F9F

000067B2

0004

        unsigned integer - recLen

0x00000004

000067B6

0004

    TextTypeEnum - textType

0x00000000

Figure 36: Outline TextHeaderAtom record I

textType: 0x00000000 specifies that the following character content in the textBytes field of the following table represents the title placeholder shape text.

Offset

Size

Structure

Value

000067BA

0016

J: TextBytesAtom - case of RT_TextBytesAtom

000067BA

0008

    RecordHeader - rh

000067BA

4 bits

        unsigned integer - recVer

0x0

000067BA

12 bits

        unsigned integer - recInstance

0x000

000067BC

0002

        RecordType - recType

0x0FA8

000067BE

0004

        unsigned integer - recLen

0x0000000E

000067C2

000E

    array of bytes - textBytes

a green square

Figure 37: Outline TextBytesAtom record J

textBytes: "a green square" specifies the title placeholder shape text.

Line eight of the outline text as shown in the figure titled "Outline text" in section 3.1 is derived from records K and L, which are shown expanded in the following tables.

Offset

Size

Structure

Value

0000680A

000C

K: TextHeaderAtom - case of RT_TextHeaderAtom

0000680A

0008

    RecordHeader - rh

0000680A

4 bits

        unsigned integer - recVer

0x0

0000680A

12 bits

        unsigned integer - recInstance

0x000

0000680C

0002

        RecordType - recType

0x0F9F

0000680E

0004

        unsigned integer - recLen

0x00000004

00006812

0004

    TextTypeEnum - textType

0x00000000

Figure 38: Outline TextHeaderAtom record K

textType: 0x00000000 specifies that the following character content in the textBytes field of the following table represents the title placeholder shape text.

Offset

Size

Structure

Value

00006816

0015

L: TextBytesAtom - case of RT_TextBytesAtom

00006816

0008

    RecordHeader - rh

00006816

4 bits

        unsigned integer - recVer

0x0

00006816

12 bits

        unsigned integer - recInstance

0x000

00006818

0002

        RecordType - recType

0x0FA8

0000681A

0004

        unsigned integer - recLen

0x0000000D

0000681E

000D

    array of bytes - textBytes

a hungry bear

Figure 39: Outline TextBytesAtom record L

textBytes: "a hungry bear" specifies the title placeholder shape text.

Line nine of the outline text as shown in the figure titled "Outline text" in section 3.1 is derived from records M and N, which are shown expanded in the following tables.

Offset

Size

Structure

Value

00006847

000C

M: TextHeaderAtom - case of RT_TextHeaderAtom

00006847

0008

    RecordHeader - rh

00006847

4 bits

        unsigned integer - recVer

0x0

00006847

12 bits

        unsigned integer - recInstance

0x000

00006849

0002

        RecordType - recType

0x0F9F

0000684B

0004

        unsigned integer - recLen

0x00000004

0000684F

0004

    TextTypeEnum - textType

0x00000000

Figure 40: Outline TextHeaderAtom record M

textType: 0x00000000 specifies that the following character content in the textBytes field of the following table represents the title placeholder shape text.

Offset

Size

Structure

Value

00006853

0019

N: TextBytesAtom - case of RT_TextBytesAtom

00006853

0008

    RecordHeader - rh

00006853

4 bits

        unsigned integer - recVer

0x0

00006853

12 bits

        unsigned integer - recInstance

0x000

00006855

0002

        RecordType - recType

0x0FA8

00006857

0004

        unsigned integer - recLen

0x00000011

0000685B

0011

    array of bytes - textBytes

a fruit pie chart

Figure 41: Outline TextBytesAtom record N

textBytes: "a fruit pie chart" specifies the title placeholder shape text.

The last line of the outline text as shown in the figure titled "Outline text" in section 3.1 is derived from records O and P, which are shown expanded in the following tables.

Offset

Size

Structure

Value

00006888

000C

O: TextHeaderAtom - case of RT_TextHeaderAtom

00006888

0008

    RecordHeader - rh

00006888

4 bits

        unsigned integer - recVer

0x0

00006888

12 bits

        unsigned integer - recInstance

0x000

0000688A

0002

        RecordType - recType

0x0F9F

0000688C

0004

        unsigned integer - recLen

0x00000004

00006890

0004

    TextTypeEnum - textType

0x00000000

Figure 42: Outline TextHeaderAtom record O

textType: 0x00000000 specifies that the following character content in the textBytes field of the following table represents the title placeholder shape text.

Offset

Size

Structure

Value

00006894

0018

P: TextBytesAtom - case of RT_TextBytesAtom

00006894

0008

    RecordHeader - rh

00006894

4 bits

        unsigned integer - recVer

0x0

00006894

12 bits

        unsigned integer - recInstance

0x000

00006896

0002

        RecordType - recType

0x0FA8

00006898

0004

        unsigned integer - recLen

0x00000010

0000689C

0010

    array of bytes - textBytes

shapes with text

Figure 43: Outline TextBytesAtom record P

textBytes: "shapes with text" specifies the title placeholder shape text.

For more information about how the outline text formatting as shown in the figure titled "Outline text" in section 3.1, for example bullet points, font face, and font size, is derived, see the Text Example section.