RecursiveAI.OneDocument.OfficeArt reads the drawing layer ([MS-ODRAW]) that the binary Word, Excel and PowerPoint formats share. It is a record-level reader: it finds, bounds and decodes records and leaves their host-specific meaning to the format that embeds them.
- Records.
ArtRecords.Parseturns bytes intoArtRecordtrees. A record header is eight bytes (recVer4 bits,recInstance12,recType16,recLen32);recVer0xF marks a container. The PowerPoint binary format uses the same header, so the parser serves its own record stream too. A record that claims more bytes than remain is clamped and reported; the record count, record size and nesting depth limits ofOfficeLimitsapply. Every record keeps its raw bytes as a slice of the parsed buffer, so unknown records are carried without copying. - Drawings.
ArtDrawing.Parsereads a drawing container into the patriarch group, nested groups and shapes (ArtShape): shape id, type (MSOSPT), flags, merged property tables, group coordinate space, child anchor, and the host records (ClientAnchor,ClientData,ClientTextbox) as raw records. - Properties.
ArtPropertiesmerges the primary, secondary and tertiary tables. Boolean sets are read withGetFlag(set, flag, default), which honours the "use" bit 16 positions above each flag. Colours areArtColor(RGB bytes plus the flag byte; the scheme-index flag is for the host to resolve). Complex properties are slices;GetStringandGetArraydecode UTF-16 text andIMsoArray. - Pictures.
ArtDrawingGroup.Parsereads the group and its BLIP store;ArtBlipStore.GetImagereturns the picture of a one-based index, reading it from the delay stream (Picturesin PowerPoint files) when it is not embedded. Metafile data is inflated withinMaxAllocationBytes; a DIB gets a BMP file header; JPEG, PNG and TIFF bytes are returned as stored. - Defects. The
art.codes indefects.md.