# Token Buffer

Filter technology parses the native file structure to generate an intermediate stream called a token buffer. The token buffer consists of multiple sequences of tokens, which are defined in `kvtoken.h` and listed below.

    #define KVT_TEXT         0x00 /* PutText() */
    #define KVT_PARAINFO     0x01 /* SetParaInfo() */
    #define KVT_SETTABS      0x02 /* SetTabs() */
    #define KVT_TAB          0x03 /* Tab() */
    #define KVT_MODE         0x04 /* SetMode() */
    #define KVT_PARASPACE    0x05 /* SetParaSpace() */
    #define KVT_ROWDEFN      0x06 /* DefineRow(), EndTable() */
    #define KVT_COLUMNS      0x07 /* StartColumns(), etc. */
    #define KVT_CELLSTART    0x08 /* NextCell() */
    #define KVT_BITMAP       0x09 /* Reserved for annotations. */
    #define KVT_PAGEOBJ      0x0A /* PutHeader(), PrintPage(), etc.*/
    #define KVT_NOOP         0x0B /* Just skip a BYTE. */
    #define KVT_PAGE_BREAK   0x0C /* PageBreak() */
    #define KVT_PARA_BREAK   0x0D /* ParaEnd() */
    #define KVT_LINE_BREAK   0x0E /* LineBreak() */
    #define KVT_SET_FONT     0x0F /* SetFont() */
    #define KVT_PAGE         0x10 /* SetPageInfo() */
    #define KVT_HOTSPOT      0x11 /* StartHotSpot() */
    #define KVT_LINESPACE    0x12 /* SetLineSpacing() */
    #define KVT_COLOR        0x13 /* VESetTextColor(),VESetBkColor()*/
    #define KVT_PICTURE      0x14 /* PutPicture() */
    #define KVT_CELLMERGE    0x15 /* MergeCells() */
    #define KVT_RULE         0x16 /* HorzRule() */
    #define KVT_PATTERN      0x17 /* StartPattern(), etc. */
    #define KVT_BORDER       0x18 /* StartParaBorder(), etc. */
    #define KVT_HEADING      0x19 /* PutParaHeading() */
    #define KVT_LISTING      0x1A /* StartList(), etc. */
    #define KVT_CHARSET      0x1B /* SetCharSet() */
    #define KVT_STYLE        0x1C /* PutCharStyle(), PutParaStyle()*/
    #define KVT_BIDI         0x1D /* Set Bidirectional text */
    #define KVT_LOCALE       0x1E /* Set locale of a document */
    #define KVT_ZONE         0x1F /* StartZone(), EndZone() */
    #define KVT_POSITION     0x20 /* SetPosition(), etc. */
    #define KVT_AUTOREC      0x21 /* Reserved for Internal Use */
    #define KVT_METADATA     0x22 /* Rsserved for Internal Use */
    #define KVT_BYTEORDER    0x23 /* SetByteOrder() */
    #define KVT_PARASPACEAUTO 0x24 /* SetParaSpaceAuto() */
    #define KVT_ATTACH        0x25 /* PutAttachment() */
    #define KVT_TOCPRINTIMAGE 0x26 /* StartTOCPrintImage(), etc. */
    #define KVT_STREAM        0x27 /* PutStream(),Reserved */
    #define KVT_REVISIONMARK  0x28 /* StartRevisionMark(),
    EndRevisionMark(), SetRMAuthor(), SetRMDateTime() */
    #define KVT_DOCXTRINFO    0x29 /* SetDocXtrInfo() */
    #define KVT_PCTEMDFT      0x30 /* SetPctEmdFt() */

A token is a single-byte identifier that corresponds to attributes in a document. Each token has one or more associated macros that provide detailed information about an attribute. Many of these tokens define components of the document, such as page margins, line indentation, and foreground and background color. Collectively, these are referred to as the state of the document. This state changes as the document is parsed.

_FT_HTML5_bannerTitle.htm