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.
|