|   Packet Data Formats 
 
 Reserved packets may appear in a document prefix.  Most of the strings in the packet data are
strings made up of short values.  The high byte of the short value is the WP character set number.
The low byte of the short value is the character number.  The strings are null terminated with a
short value unless otherwise specified.
 
 
Packet Type 0 (0x00)Index Entry Is Available or Was Deleted
 This does not apply to the index header, which is always the first index in the index
block.
 
 
Packet Type 1 (0x01)Document Height
 The document height is the height of the entire document from top to bottom.
 {document height (text mode)} in formatter text lines
{document height (graphics mode)} in WPUs
{document height (page mode)} in 3600ths
 
 
 Packet Type 2 (0x02)
 Document-Specific Flags
 <flag bits for doc>
  bit 0:
    1 = baseline placement for typesetters is active
  bits 1-2:
    00 = font change
    01 = character in right margin
    10 = character in left margin
    11 = character in alternating margins
  bit 3:
    1 = document needs to be formatted
  bit 4:
    1 = document needs to be (re)generated
  bit 5:
    1 = manual display pitch
  bit 6:
    1 = links should be updated on retrieval
  bit 7:
    1 = links codes should not be displayed
<text/graphics quality>
  low nibble = text quality
  high nibble = graphics quality
  both nibbles:
    0 = do not print
    1 = draft
    2 = medium
    3 = high
[redline character]
[width of screen character]
<ink color>
  0 = black
  1 = full color
  2 = solid color
<merge display flags>
  2 (0x02) = display merge codes
  4 (0x04) = show displayed codes as icons
<reserved>
<default form number>
[current undo-level number]
[current range level number]
<more document flags>
  bit 0:
    1 = hypertext mode is active
  bit 1:
    1 = hiding text marked for hiding
<reserved for future use>
 
Packet Type 3 (0x03)Reserved
 
 
Packet Type 4 (0x04)Form Hash Table
 [hash value for each form contained in a document] x ?
 
 
Packet Type 5 (0x05)Writing Tools API
 [company ID]
[tool (or product) ID]
<tool information> x ?
 
 The Speller uses the Tool information field for the document Supplemental Dictionary.  The
format of the Supplemental Dictionary is a WP short string.
 
 
Packet Type 6 (0x06)Character Map
 This structure is the same as used in a MAP file.  The file type for a
MAP file is 49 (0x31).  In a MAP file, this structure begins directly
following the 16-byte prefix.
 [size of character mapping packet]
<map flags>
  bit 7 is set when using 2-byte mappings (WP short string mappings)
    80 = Japanese mapping
    81 = Korean mapping
    82 = Chinese mapping
    83 = Taiwanese mapping
[pointer to map name] offset from start of packet
[pointer to map table] table for converting document characters to WP
characters
[map name] x ? null terminated WP word string of indeterminate length
[min value = 1] minimum value of mappable characters
[max value = 127] maximum value of mappable characters
[number of mappable chars] max - min + 1
[size of map table]
[document char, WP char]
 Document characters are mapped into the range 1-127.  The 1-byte document character to
WP
character mapping table is essentially a lookup table.  It consists of 127 entries, each one word in
length.  The first byte of the first word represents document character 1 and the second byte
represents the WP character that document character 1 is mapped to.
 
 
Packet Type 7 (0x07)Native Filename
 If this packet does not have any children, the format is:
 <filename> x ?  or [filename] x ?  null terminated byte or word
string
 If this packet does have children, the format is the following:
 
 [count of child IDs]
  [ID 1] ID of child packet
  [ID 2] ID of child packet
  .. ..
  [ID n] ID of last child
  [tag 1] tag flag for first child packet
  [tag 2] tag flag for second child packet
  .. ..
  [tag n] last tag flag for last child packet
[filename] x ?  null terminated
 
 
 Format for tag flags
 0x0001 = data being kept internal
0x0010 = data being kept internal (hot link)
0x0011 = data being kept internal (warm link)
0x0012 = data being kept internal (cold link)
 
 
Packet Type 8 (0x08)General WP Text
 [number of text blocks]
{relative offset of first text block within packet}
{size of 1st text block}
{size of 2nd text block}
..
{size of last text block}
..
<text data for 1st block> x 1st block size
<text data for 2nd block> x 2nd block size
..
<text data for last block> x last block size
 
Packet Type 9 (0x09)Bookmark Data
 [reserved]
<bookmark flags>
  bits 0-3: reserved
  bit 4: 1 = paired bookmark
  bit 5: 1 = bookmark is in a substructure
  bit 6: 1 = quick bookmark
  bit 7: 1 = deleted bookmark
<reserved>
[bookmark name] x ? (null-terminated WP short string; max 78 bytes or
38 chars + null)
 
 
Packet Type 10 (0x0A)Macro Executable
 No documentation will be provided for this packet.
 
 
Packet Type 11 (0x0B)Mark Text for Generate Definition
 The byte following the PIDs in each of the following structures indicates which type of
definition
exits in a particular instance of this packet.
 
 Table of Contents Definition
 [number of child prefix IDs = 2-6]
  [style PID 1 (type=0x30)]
  [style PID 2 (type=0x30)]
  ..
  [format PID (type=0x62)]
<ToC definition = 0>
<number mode>
  0 = no number
  1 = number follows entry
  2 = number in parentheses follows entry
  3 = number flush right
  4 = number flush right with dot leaders
[ToC name = 0]
 
 Index Definition
 [number of child prefix IDs = 4]
  [child PID (level 1) (type=0x30)]
  [child PID (level 2) (type=0x30)]
  [concordance filename PID (type=0x07, 0 if none)]
  [format PID (type=0x62, 0 for document format)]
<index definition = 2>
<number mode>
  0 = no number
  1 = number follows entry
  2 = number in parentheses follows entry
  3 = number flush right
  4 = number flush right with dot leaders
<definition flags>
  1 = reserved
  2 = combining of sequential page numbers (default)
[index name = 0]
 
 List Definition
 [number of child prefix IDs = 3]
[style PID (type=0x30)]
[format string PID (type=0x62)]
[graphics style PID (type=0x11)]
<list definition = 1>
<number mode>
  0 = no number
  1 = number follows entry
  2 = number in parentheses follows entry
  3 = number flush right
  4 = number flush right with dot leaders
<reserved>
[list name] x ?  short string format
 
 Table of Authorities Definition
 [number of child prefix IDs = 2]
  [style PID (type=0x30)]
  [format string PID (type=0x62)]
<ToA definition = 4>
<number mode>
  0 = no number
  1 = number follows entry
  2 = number in parentheses follows entry
  3 = number flush right
  4 = number flush right with dot leaders
<definition flags>
  1 = ToA definition - underlining allowed
  2 = combining of sequential page numbers (default)
[ToA name] x ?  short string format
 
 
Packet Type 12 (0x0C)Subdocument
 If this packet does not have any children, the format is a short string of the filename for the
subdocument.  The subdocument is stored externally on disk.
 [subdocument filename] x ?  null terminated
 
 
 If this packet has children, the format is the following:
 
 [number of child IDs]
  [ID 1]  ID of child packet containing subdocument information
  [ID 2]  ID of child packet containing subdocument information
  ..  ..
  [ID cnt] last child ID for subdocument information
  [tag 1]  tag flag for first child packet
  [tag 2]  tag flag for second child packet
  ..  ..
  [tag cnt] tag flag for last child packet
[subdocument filename] x ?
 
 Format for tag flags
 0x0001 = data is part of this file
0x0010 = data is part of this file (hot link)
0x0011 = data is part of this file (warm link)
0x0012 = data is part of this file (cold link)
 
 
Packet Type 13 (0x0D)Table of Authorities Mark
 The full form Table of Authorities mark consists of this parent packet and a General WP
Text
child packet.
 
 [number of child prefix IDs = 1]
[child PID (type=0x08)]
[short form name] x ?  WP word string
[ToA section name] x ?  WP word string
 
 The short form Table of Authorities mark consists of the short form name contained within
this packet.
 
 [short form name] x ?  WP word string
 
 
Packet Type 14 (0x0E)Index Mark
 [index name] x ?  null terminated
[heading] x ?  null terminated
[subheading] x ?  null terminated
 
 
Packet Type 15 (0x0F)Cross-Reference Target
 [target name] x ?  null terminated
 
 
Packet Type 16 (0x10)NeXT  Total Page Count
 No documentation will be provided for this packet.
 
 
Packet Type 17 (0x11)Counters Data
 [name or ID] x 16  There will always be 32 bytes set aside for the
name, but if the counter is a system counter, then this field is an ID
number instead of a name.  Both the name and the ID number are null
terminated with a word null and the remaining bytes are random.
<number of counter levels valid (1-5)> actual number of levels used
<default numbering method for level 1>
<default numbering method for level 2>
<default numbering method for level 3>
<default numbering method for level 4>
<default numbering method for level 5>
[level name 1] x 16  null terminated word strings, begin with two
spaces ([2000] [2000])
[level name 2] x 16  null terminated word strings, begin with two
spaces ([2000] [2000])
[level name 3] x 16  null terminated word strings, begin with two
spaces ([2000] [2000])
[level name 4] x 16  null terminated word strings, begin with two
spaces ([2000] [2000])
[level name 5] x 16  null terminated word strings, begin with two
spaces ([2000] [2000])
 
 
Packet Type 18 (0x12)Extended Document Summary
 The extended summary data group occurs for up to 100 times, one for each field defined in
the
extended summary:
 
 [size] (byte length of data group.)
[tag] (field ID of the extended summary field.)
[type] (field data type)
  bit 0: 1 = single line, data length is limited to 255 words
  bit 1: 1 = multi-line, data length is limited to 1023 words
  bit 2: 1 = date, see 10-byte date structure below.
  bit 3: 1 = read only (document may be locked by another user)
[name] x ?  (null-terminated word string, optional.)
[data] x ?  (null-terminated word string or 10-byte date field.)
 
 
 
 
 
 
 
| Valid predefined extended summary
fields: |  | Tag | Name | Type |  | 1 | Abstract | Multi-line |  | 2 | Account | Single line |  | 3 | Address | Multi-line |  | 4 | Attachments | Single line |  | 5 | Author | Single line |  | 6 | Authorization | Single line |  | 7 | Bill To | Multi-line |  | 8 | Blind Copy | Single line |  | 9 | Carbon Copy | Single line |  | 10 | Category | Single line |  | 11 | Checked By | Single line |  | 12 | Client | Single line |  | 13 | Comments | Multi-line |  | 14 | Creation Date | Date |  | 15 | Date Completed | Date |  | 16 | Department | Single line |  | 17 | Descriptive Name | Single line |  | 18 | Descriptive Type | Single line |  | 19 | Destination | Single line |  | 20 | Disposition | Single line |  | 21 | Division | Single line |  | 22 | Document number | Single line |  | 23 | Editor | Single line |  | 24 | Forward To | Single line |  | 25 | Group | Single line |  | 26 | Keywords | Single line |  | 27 | Language | Single line |  | 28 | Mail Stop | Single line |  | 29 | Matter | Single line |  | 30 | Office | Single line |  | 31 | Owner | Single line |  | 32 | Project | Single line |  | 33 | Publisher | Single line |  | 34 | Purpose | Multi-line |  | 35 | Received From | Single line |  | 36 | Recorded By | Single line |  | 37 | Recorded Date | Date |  | 38 | Reference | Single line |  | 39 | Revision Date | Date and read only |  | 40 | Revision Notes | Multi-line |  | 41 | Revision number | Single line |  | 42 | Section | Single line |  | 43 | Security | Single line |  | 44 | Source | Single line |  | 45 | Status | Single line |  | 46 | Subject | Single line |  | 47 | Telephone number | Single line |  | 48 | Typist | Single line |  | 49 | Version Date | Date |  | 50 | Version Notes | Multi-line |  | 51 | Version number | Single line |  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 10-Byte Date Structure
 [year]
<month>
<day>
<hour>
<minute>
<second>
<day of week> (not implemented)
<time zone> (not implemented)
<unused>
 
 User-defined extended summary fields have a tag number in the range of 101 to 65535 and
must
have a field name.
 
 Predefined fields have tag numbers in the range of 1 to 100 and may have a name, but for
multilingual purposes, the name displayed in all interfaces comes from a translatable resource
file.
 
 Tag number 39, Revision Date, is a special case where the date is extracted from the DOS
file date.
 
 
Packet Type 19 (0x13)Macro Labels
 No documentation will be provided for this packet.
 
 
Packet Type 20 (0x14)Macro Global Labels
 No documentation will be provided for this packet.
 
 
Packet Type 21 (0x15)Macro Translation Table
 No documentation will be provided for this packet.
 
 
Packet Type 22 (0x16)Macro Debug Information
 No documentation will be provided for this packet.
 
 
Packet Type 23 (0x17)Hypertext (Bookmark Name)
 [bookmark name] x ?  null terminated
 
 
Packet Type 24 (0x18)Box Text Filename
 [box text filename] x ?  null terminated
 
 If this packet ever has child IDs, the format will be that of the Native Filename packet type
0x07.
 
 
Packet Type 25 (0x19)Equation Text Filename
 [equation text filename] x ?  null terminated
 
 If this packet ever has child IDs, the format will be that of the Native Filename packet type
0x07.
 
 
Packet Type 26 (0x1A)Envelope Address Document
 The structure of this packet is the same as packet type 8 (0x08), General WP Text.
 
 
Packet Type 27 (0x1B)Comment/Annotation
 [number of prefix IDs = 1]
[text PID (type=0x08)]
<annotation flag>
  0 = comment
  1 = annotation
date/time:
[year]
<month>
<day>
<hour>
<minute>
<second>
<day of week> not implemented
<time zone> not implemented
<unused>
<annotation color (RGBS)> x 4
[user initials] x ?  word string null terminated
[user name] x ?  word string null terminated
 
 
Packet Type 28 (0x1C)WP Hidden Outline Text
 The structure of this packet is the same as packet type 8 (0x08), General WP Text.
 
 
Packet Type 29 (0x1D) - Added for WP 7.0Prefix Needs Spell-Check
 The entire document is dirty regardless of clean/dirty spell gates.  An index exists only if a
spell-check is needed.  The data size is zero.  The data pointer is unused and invalid if
non-zero.
 
 Packet Type 30 (0x1E)- Added for WP 7.0Formatter Region
 Region being tracked in the formatter for any changes. This packet contains a region packet
header followed by information for each region packet.
 
 Header information in the Formatter Region packet:
 [offset to first region packet information]
{number of region entries in this prefix packet}
{the next region number to allocate}
<name of file this packet created with> x ?
 
Region information for each region packet:
 {unique number representing this tracked region}
{byte count offset in edit buffer to region on code} (distance from
beginning of file if positive, distance from end of file if negative)
{byte count offset in edit buffer to region off code} (distance from
beginning of file if positive, distance from end of file if negative)
[page number where start of tracked region starts]
[y position where start of tracked region starts]
[page number where end of tracked region ends]
[y position where end of tracked region ends]
[font face at start of region]
[font size at start of region]
[attributes at start of region]
<color at start of region (RGB)> x 3
<region active flag> indicates if changes to region should be sent to
the interface
  0 = region is not active
  1 = region is active
<type of region being tracked>
  1 = OLE
  2 = OBEX
 
Packet Type 31 (0x1F)- Added for WP 7.0Mideast Flags Prefix
 Mideast-specific document flags.
 
 <ligature control>
  0 = none
  1 = partial ligatures
  2 = full ligatures
<number shape>
  0 = context
  1 = force English font
  2 = force Arabic/Hebrew font
 
 
 
 
Packet Type 32 (0x20)Font Typeface Descriptor Pool
 This packet contains all font descriptors used in the document)
 
 In the SET file the font typeface descriptor pool only contains the default descriptor.
 
 Matched Font Descriptor (closest available to desired font)
 [average character width (PSU)]
[ascender height (PSU)]
[x height (PSU)]
[descender height (PSU)]
[italic adjust]
[primary family ID]
 
| 0x0100 Family: ITCBenguiat |  | 0x0101 = Bellini | 0x0117 = Stratford |  | 0x0102 = Erasmus | 0x0118 = ITCTiffany |  | 0x0103 = HollandseMediaeval | 0x0119 = ITCBenguiat |  | 0x0104 = Pastonchi | 0x011A = Seagull |  | 0x0105 = Windsor | 0x011B = ITCSouvenir |  | 0x0106 = Kennerley | 0x011C = Vendome |  | 0x0107 = Raleigh | 0x011D = ItalianOldStyle |  | 0x0108 = SurreyOldStyle | 0x011E = ITCItalia |  | 0x0109 = Trajanus | 0x011F = JensonOldStyle |  | 0x010A = Verona | 0x0120 = Guardi |  | 0x010B = WorchesterRound | 0x0121 = Cantoria |  | 0x010C = DellaRobbia | 0x0122 = ITCBerkleyOldStyle |  | 0x010D = BauerText | 0x0123 = ITCGiovanni |  | 0x010E = Cloister | 0x0124 = Lavenham |  | 0x010F = Jenson | 0x0125 = ITCVeljovic |  | 0x0110 = SchneidlerOldStyle | 0x0126 = HampshireOldStyle |  | 0x0111 = Centaur | 0x0127 = ITCEsprit |  | 0x0112 = HorleyOldStyle | 0x0128 = Hadriano |  | 0x0113 = Deepdene | 0x0129 = ITCWeidemann |  | 0x0114 = Brighton | 0x012A = Minion |  | 0x0115 = ITCClearface | 0x012B = Seneca |  | 0x0116 = Lutetia | 0x012C = Carmina |  | 0x0900 Family: TimesRoman |  | 0x0901 = Bembo | 0x090E = ITCStoneSerif |  | 0x0902 = BernhardModern | 0x090F = Life |  | 0x0903 = GoudyOldStyle | 0x0910 = Minister |  | 0x0904 = Plantin | 0x0911 = TimesRoman |  | 0x0905 = Poliphilus | 0x0912 = Calisto |  | 0x0906 = Trajan | 0x0913 = Adroit |  | 0x0907 = Leamington | 0x0914 = ITCSlimbach |  | 0x0908 = Missal | 0x0915 = Administer |  | 0x0909 = TrumpMediaeval | 0x0916 = Caxton |  | 0x090A = Berling | 0x0917 = Eldorado |  | 0x090B = Hiroshige | 0x0918 = Symposia |  | 0x090C = Albertina | 0x0919 = Artcraft |  | 0x090D = Emerson | 0x091A = ZAntiqua |  | 0x1100 Family: ITCGaramond |  | 0x1101 = BinnyOldStyle | 0x1119 = QuadrigaAntiqua |  | 0x1102 = Bookman | 0x111A = Sabon |  | 0x1103 = Bulmer | 0x111B = Barbou |  | 0x1104 = Caslon540 | 0x111C = Fournier |  | 0x1105 = Amerigo | 0x111D = Garamond |  | 0x1106 = ChiswellOldFace | 0x111E = Spectrum |  | 0x1107 = Fontana | 0x111F = Weiss |  | 0x1108 = Granjon | 0x1120 = Concorde |  | 0x1109 = Imprint | 0x1121 = ITCCushing |  | 0x110A = Monticello | 0x1122 = Dante |  | 0x110B = OldStyleNo2 | 0x1123 = Gazette |  | 0x110C = GarthGraphic | 0x1124 = ITCIsbell |  | 0x110D = Scenario | 0x1125 = Romulus |  | 0x110E = Ehrhardt | 0x1126 = Rotation |  | 0x110F = Galliard | 0x1127 = VanDijck |  | 0x1110 = Aldus | 0x1128 = Janson |  | 0x1111 = Aster | 0x1129 = Roundfunk |  | 0x1112 = Baskerville | 0x112A = Charter |  | 0x1113 = RotisSerif | 0x112B = Criterion |  | 0x1114 = Congress | 0x112C = Ellington |  | 0x1115 = Lectura | 0x112D = HollandSeminar |  | 0x1116 = Palatino | 0x112E = ITCGamma |  | 0x1117 = PopplPontifex | 0x112F = ITCLeawood |  | 0x1118 = TimesEuropa | 0x1130 = Pasquale |  | 0x1900 Family: CenturySchoolbook |  | 0x1901 = Joanna | 0x1911 = Impressum |  | 0x1902 = Maximus | 0x1912 = Melior |  | 0x1903 = Breughel | 0x1913 = Dominante |  | 0x1904 = Excelsior | 0x1914 = Menhart |  | 0x1905 = Perpetua | 0x1915 = Paragon |  | 0x1906 = Primer | 0x1916 = Cochin |  | 0x1907 = Nofret | 0x1917 = Electra |  | 0x1908 = CenturySchoolBook | 0x1918 = Iridium |  | 0x1909 = Nimrod | 0x1919 = ITCZapfInternational |  | 0x190A = Cheltenham | 0x191A = Accolade |  | 0x190B = Comenius | 0x191B = Cardinal |  | 0x190C = Sorbonne | 0x191C = Claridge |  | 0x190D = Bramley | 0x191D = Else |  | 0x190E = GoudyModern | 0x191E = ITCJamille |  | 0x190F = Athenaeum | 0x191F = MonoTypeEngravers |  | 0x1910 = Diotima | 0x1920 = ITCStoneInformal |  | 0x2100 Family: Bodoni |  | 0x2101 = Auriga | 0x210A = Walbaum |  | 0x2102 = ITCZapfBook | 0x210B = ITCFenice |  | 0x2103 = BauerBodoni | 0x210C = Modern |  | 0x2104 = Corvinus | 0x210D = ScotchRoman |  | 0x2105 = Albion42 | 0x210E = Centennial |  | 0x2106 = Caledonia | 0x210F = Versailles |  | 0x2107 = Fairfield | 0x2110 = Wilke |  | 0x2108 = DeVinne | 0x2111 = Inflex |  | 0x2109 = Madison | 0x2112 = ITCDidi |  | 0x2900 Family: ITCLubalinGraph |  | 0x2901 = ASGallatin | 0x290C = AntiqueNo5 |  | 0x2902 = Beton | 0x290D = ITCPacella |  | 0x2903 = Calvert | 0x290E = SchadowAntiqua |  | 0x2904 = Candida | 0x290F = Aachen |  | 0x2905 = City | 0x2910 = PMNCaecilia |  | 0x2906 = Glypha | 0x2911 = available17 |  | 0x2907 = ITCLubalinGraph | 0x2912 = Clarendon |  | 0x2908 = Memphis | 0x2913 = EgyptienneF |  | 0x2909 = Rockwell | 0x2914 = Egizio |  | 0x290A = Serifa | 0x2915 = Fortune |  | 0x290B = Stymie | 0x2916 = ITCAmericanTypewriter |  | 0x3100 Family: Albertus |  | 0x3101 = Albertus | 0x310E = Biltmore |  | 0x3102 = Americana | 0x310F = ITCLSCBook |  | 0x3103 = Flange | 0x3110 = Meridien |  | 0x3104 = FrenchOldStyle | 0x3111 = ITCTiepolo |  | 0x3105 = ITCFrizQuadrata | 0x3112 = RotisSemiserif |  | 0x3106 = Icone | 0x3113 = ITCSerifGothic |  | 0x3107 = ITCKorinna | 0x3114 = available20 |  | 0x3108 = ITCNewText | 0x3115 = available21 |  | 0x3109 = ITCNovarese | 0x3116 = available22 |  | 0x310A = PopplLaudatio | 0x3117 = Footlight |  | 0x310B = ITCQuorum | 0x3118 = ITCElan |  | 0x310C = Romana | 0x3119 = ITCUsherwood |  | 0x310D = ITCBarcelona | 0x311A = Copperplate |  | 0x3900 Family: Courier |  | 0x3901 = Courier | 0x3902 = PrestigeElite |  | 0x4100 Family: Helvetica |  | 0x4101 = Abadi | 0x4116 = Helvetica |  | 0x4102 = AkzidenzGrotesk | 0x4117 = HollandTitle |  | 0x4103 = AlpinGothic | 0x4118 = Imago |  | 0x4104 = AntiqueOlive | 0x4119 = Impact |  | 0x4105 = Avenir | 0x411A = Insignia |  | 0x4106 = CGSymphony | 0x411B = ITCAvantGardeGothic |  | 0x4107 = DINSchriften | 0x411C = ITCKabel |  | 0x4108 = DirectoryGothic | 0x411D = ITCMixage |  | 0x4109 = Flyer | 0x411E = Ambassador |  | 0x410A = Folio | 0x411F = ITCStoneSans |  | 0x410B = Formata | 0x4120 = TradeGothic |  | 0x410C = FranklinGothic | 0x4121 = Metro |  | 0x410D = Frontiera | 0x4122 = NeuzeitS |  | 0x410E = Frutiger | 0x4123 = NewsGothic |  | 0x410F = Futura | 0x4124 = Placard |  | 0x4110 = GillSans | 0x4125 = VAGRounded |  | 0x4111 = Gothic | 0x4126 = RotisSansSerif |  | 0x4112 = Grotesque | 0x4127 = Sans |  | 0x4113 = CenturyGothic | 0x4128 = SassoonPrimary |  | 0x4114 = Harry | 0x4129 = Syntax |  | 0x4115 = Headline | 0x412A = Uncia |  | 0x4900 Family: ITCRonda |  | 0x4901 = ITCBauhaus | 0x4904 = ITCRonda |  | 0x4902 = BlippoBlack | 0x4905 = Wexford |  | 0x4903 = Churchward70 | 0x4906 = ITCBusorama |  | 0x5100 Family: Microstyle |  | 0x5101 = Doric | 0x5106 = MagnumGothic |  | 0x5102 = Heldustry | 0x5107 = Microstyle |  | 0x5103 = ITCBolt | 0x5108 = Neographik |  | 0x5104 = ITCEras | 0x5109 = RussellSquare |  | 0x5105 = available5 | 0x510A = Serpentine |  | 0x5900 Family: Optima |  | 0x5901 = BakerSignet | 0x5908 = Optima |  | 0x5902 = BlueJack | 0x5909 = Lisbon |  | 0x5903 = Chelmsford | 0x590A = RotisSemisans |  | 0x5904 = Peignot | 0x590B = Shannon |  | 0x5905 = ITCPanache | 0x590C = Triplett |  | 0x5906 = ITCSymbol | 0x590D = Video |  | 0x5907 = Omega |  |  | 0x6100 Family: LetterGothic |  | 0x6101 = available1 | 0x6105 = OCRB |  | 0x6102 = LetterGothic | 0x6106 = Orator |  | 0x6103 = LinePrinter | 0x6107 = Presentation |  | 0x6104 = OCRA |  |  | 0x6900 Family: Brush |  | 0x6901 = AshleyScript | 0x6908 = FreeStyleScript |  | 0x6902 = BiffoScript | 0x6909 = Kaufmann |  | 0x6903 = BrophyScript | 0x690A = MonoLineScript |  | 0x6904 = BrushScript | 0x690B = BickleyScript |  | 0x6905 = CascadeScript | 0x690C = PresentScript |  | 0x6906 = Chaplin | 0x690D = Swing |  | 0x6907 = Charme | 0x690E = Bronx |  | 0x7100 Family: ParkAvenue |  | 0x7101 = AristonLightScript | 0x710D = ITCIsadora |  | 0x7102 = Basilica | 0x710E = ITCZapfChancery |  | 0x7103 = Bellevue | 0x710F = Jasper |  | 0x7104 = BertholdScript | 0x7110 = Liberty |  | 0x7105 = Boulevard | 0x7111 = LisbonCursive |  | 0x7106 = Amazone | 0x7112 = MediciScript |  | 0x7107 = CarmineTango | 0x7113 = MurrayHill |  | 0x7108 = CommercialScript | 0x7114 = ParkAvenue |  | 0x7109 = Coronet | 0x7115 = Stuyvesant |  | 0x710A = Corsiva | 0x7116 = UniversityRoman |  | 0x710B = Diskus | 0x7117 = Musketeer |  | 0x710C = FloridianScript | 0x7118 = TypoUpright |  | 0x7900 Family: SignetRoundhand |  | 0x7901 = AbelCursive | 0x790D = NuptialScript |  | 0x7902 = Aristocrat | 0x790E = OldFashionScript |  | 0x7903 = CitadelScript | 0x790F = OriginalScript |  | 0x7904 = DorchesterScript | 0x7910 = PalaceScript |  | 0x7905 = FlemishScript | 0x7911 = PopplResidenz |  | 0x7906 = FlorentineScript | 0x7912 = Balmoral |  | 0x7907 = FrenchScript | 0x7913 = ShelleyAllegroScript |  | 0x7908 = Isabella | 0x7914 = ShelleyAndanteScript |  | 0x7909 = KunstlerScript | 0x7915 = SignetRoundhand |  | 0x790A = LinoScript | 0x7916 = VenitianScript |  | 0x790B = LuciaScript | 0x7917 = Vivaldi |  | 0x790C = MahoganyScript |  |  | 0x8100 Family: Tekton |  | 0x8101 = Banco | 0x810B = Matura |  | 0x8102 = Bison | 0x810C = Mercurius |  | 0x8103 = ITCGrizzly | 0x810D = NewBerolina |  | 0x8104 = DomCasual | 0x810E = Mistral |  | 0x8105 = Hebrastyle | 0x810F = Pepita |  | 0x8106 = Herculanum | 0x8110 = Reporter |  | 0x8107 = ITCFlora | 0x8111 = Tekton |  | 0x8108 = Forte | 0x8112 = Jiffy |  | 0x8109 = Klang | 0x8113 = Visigoth |  | 0x810A = Lithos |  |  | 0x8900 Family: Uncial |  | 0x8901 = AbbottOldStyle | 0x890A = available10 |  | 0x8902 = Amigo | 0x890B = available11 |  | 0x8903 = Auriol | 0x890C = Libra |  | 0x8904 = Camelot | 0x890D = available13 |  | 0x8905 = Carolina | 0x890E = Omnia |  | 0x8906 = Clairvaux | 0x890F = Ondine |  | 0x8907 = AuraScript | 0x8910 = available16 |  | 0x8908 = Euclid | 0x8911 = PostAntiqua |  | 0x8909 = Feinen | 0x8912 = Uncial |  | 0x9100 Family: OldEnglish |  | 0x9101 = Basque | 0x910A = BlackMoor |  | 0x9102 = CloisterBlack | 0x910B = OldEnglish |  | 0x9103 = DucDeBerry | 0x910C = Agincourt |  | 0x9104 = EngraversText | 0x910D = SanMarco |  | 0x9105 = FetteFraktur | 0x910E = WeddingText |  | 0x9106 = GoudyText | 0x910F = WilhelmKlingsporGotisch |  | 0x9107 = AmericanText | 0x9110 = YorkShire |  | 0x9108 = LinoText | 0x9111 = AlteSchwabacher |  | 0x9109 = LondonText |  |  | 0x9900 Family: ITCZapfDingbats |  | 0x9901 = BorderPi | 0x990B = Sonata |  | 0x9902 = BundesbahnPi | 0x990C = StarTrekPi |  | 0x9903 = Carta | 0x990D = Symbol |  | 0x9904 = Cheq | 0x990E = WoodTypeOrnaments |  | 0x9905 = EuropeanPi | 0x990F = LineDraw |  | 0x9906 = HelveticaFractions | 0x9910 = BarCodes |  | 0x9907 = ITCZapfDingbats | 0x9911 = KeyCaps |  | 0x9908 = LinoTypeDecorationPi | 0x9912 = MonoTypeSorts |  | 0x9909 = LinoTypeGamePi | 0x9913 = MTExtra |  | 0x990A = LinoTypeHolidayPi | 0x9914 = Fences |  | 0xA100 Family: Broadway |  | 0xA101 = Braggadocio | 0xA10A = ITCLSCManhattan |  | 0xA102 = Brittanic | 0xA10B = ITCTomsRoman |  | 0xA103 = Broadway | 0xA10C = McCollough |  | 0xA104 = Falstaff | 0xA10D = Binner |  | 0xA105 = Annlie | 0xA10E = Normande |  | 0xA106 = GlobeGothic | 0xA10F = Parisian |  | 0xA107 = ITCBernase | 0xA110 = Stencil |  | 0xA108 = ITCFatFace | 0xA111 = Trooper |  | 0xA109 = ITCFirenze | 0xA112 = Bremen |  | 0xA900 Family: Computer |  | 0xA901 = Computer | 0xA907 = PrinterNo1 |  | 0xA902 = Countdown | 0xA908 = PrinterNo2 |  | 0xA903 = Data70 | 0xA909 = Zeitgeist |  | 0xA904 = Digital | 0xA90A = LCD |  | 0xA905 = ITCMachine | 0xA90B = OrbitB |  | 0xA906 = Amelia |  |  | 0xB100 Family: PTBarnum |  | 0xB101 = Playbill | 0xB105 = Figaro |  | 0xB102 = BrandingIron | 0xB106 = Hidalgo |  | 0xB103 = available3 | 0xB107 = PTBarnum |  | 0xB104 = available4 |  |  | 0xB900 Family: Ponderosa |  | 0xB901 = AldousVertical | 0xB90A = Lafayette |  | 0xB902 = Arcadia | 0xB90B = LatinExtraCondensed |  | 0xB903 = Birch | 0xB90C = Mesquite |  | 0xB904 = Compacta | 0xB90D = Onyx |  | 0xB905 = Eccentric | 0xB90E = Ponderosa |  | 0xB906 = Industria | 0xB90F = Runic |  | 0xB907 = Ironwood | 0xB910 = TipTop |  | 0xB908 = ITCLSCCondensed | 0xB911 = Willow |  | 0xB909 = Juniper |  |  | 0xC100 Family: Madrone |  | 0xC101 = BlackOak | 0xC103 = Poplar |  | 0xC102 = Madrone | 0xC104 = Thunderbird |  | 0xC900 Family: Hobo |  | 0xC901 = AntikvaMargaret | 0xC911 = KochAntiqua |  | 0xC902 = ArnoldBocklin | 0xC912 = Milton |  | 0xC903 = Belwe | 0xC913 = Neptune |  | 0xC904 = BlackfriarsRoman | 0xC914 = Packard |  | 0xC905 = BrynMawr | 0xC915 = Pretorian |  | 0xC906 = Charleston | 0xC916 = Raphael |  | 0xC907 = Columbus | 0xC917 = Richmond |  | 0xC908 = CooperBlack | 0xC918 = Skyjald |  | 0xC909 = Cottonwood | 0xC919 = Tango |  | 0xC90A = Croydon | 0xC91A = Thalia |  | 0xC90B = Eckmann | 0xC91B = Belshaw |  | 0xC90C = Hobo | 0xC91C = LoType |  | 0xC90D = Hogarth | 0xC91D = Parsons |  | 0xC90E = ITCGorilla | 0xC91E = Romic |  | 0xC90F = ITCGrouch | 0xC91F = BitstreamArrus |  | 0xC910 = ITCHonda |  |  | 0xD100 Family: Revue |  | 0xD101 = AdLib | 0xD108 = Pump |  | 0xD102 = Becket | 0xD109 = Revue |  | 0xD103 = Kino | 0xD10A = Sintex1 |  | 0xD104 = MotterTektura | 0xD10B = Stop |  | 0xD105 = Neuland | 0xD10C = Tabasco |  | 0xD106 = Octopuss | 0xD10D = Balloon |  | 0xD107 = Othello |  |  | 0xD900 Family: AestheticOrnamented |  | 0xD901 = Abramesque | 0xD919 = RaffiaInitials |  | 0xD902 = AestheticOrnamented | 0xD91A = RayShaded |  | 0xD903 = BedRock | 0xD91B = RomantiquesNo5 |  | 0xD904 = BlockUp | 0xD91C = Sapphire |  | 0xD905 = Chevalier | 0xD91D = Sinaloa |  | 0xD906 = Fatima | 0xD91E = SnowCap |  | 0xD907 = Flintstones | 0xD91F = TalbotsRockyMountian |  | 0xD908 = Flirt | 0xD920 = Tonal |  | 0xD909 = Florist | 0xD921 = Trocadero |  | 0xD90A = Fontanesi | 0xD922 = UncleSam |  | 0xD90B = FrysOrnamented | 0xD923 = ViaFaceDonBlack |  | 0xD90C = Gallia | 0xD924 = Zip |  | 0xD90D = GoodVibrations | 0xD925 = Shadows |  | 0xD90E = ITCNeon | 0xD926 = Cameos |  | 0xD90F = Karnak | 0xD927 = StripedPatterns |  | 0xD910 = Kismet | 0xD928 = HatchPatterns |  | 0xD911 = LettresOrnees | 0xD929 = Engraved |  | 0xD912 = Lexington | 0xD92A = Outlines |  | 0xD913 = Lilith | 0xD92B = BabyTeeth |  | 0xD914 = Nymphic | 0xD92C = Bottleneck |  | 0xD915 = OldGlory | 0xD92D = Davida |  | 0xD916 = Picadilly | 0xD92E = OldDreadfulNo7 |  | 0xD917 = Pinball | 0xD92F = Shotgun |  | 0xD918 = Quentin |  |  
 <scripting system>
  1 = European classification
<primary character set>  character set numbers 0-15
<width (aspect ratio)>
  0 = don't know
  16-31 = ultra condensed
  32-47 = extra compressed
  48-63 = compressed
  64-79 = extra condensed
  80-95 = condensed (compact)
  96-111 = semi condensed (narrow)
  112-127 = normal
  128-143 = semi expanded
  144-159 = expanded (extended)
  160-175 = extra expanded
  176-191 = ultra expanded
  192-223 = double wide
  224-254 = triple wide
  255 = reserved
<weight>
  0 = don't know
  1-7 = ultra thin
  8-15 = ultra light
  16-23 = extra thin
  24-31 = thin
  32-47 = extra light
  48-63 = light
  64-79 = demi light
  80-87 = semi light
  88-95 = book
  96-103 = regular (plain)
  104-111 = Roman
  112-127 = medium
  128-135 = demi bold
  136-143 = semi bold
  144-159 = bold
  160-175 = extra bold
  176-191 = heavy
  192-207 = extra heavy
  208-223 = black
  224-239 = extra black
  240-247 = ultra heavy
  248-254 = ultra black
  254 = max weight
  255 = reserved
<attributes>
  bit 0: 1 = italic
  bit 1: 1 = outline
  bit 2: 1 = shadow
  bit 3: 1 = small caps
<general characteristics>
  bits 0-1: usage category
    0 = don't know
    1 = text
    2 = display
    3 = both
  bits 2-3: general serif
    0 = don't know
    1 = sans serif
    2 = serif
    3 = script
  bits 4-5: spacing
    0 = don't know
    1 = proportional
    2 = monospace
<classification>
  bits 0-3: serif type
    0 = don't know
    1 = bracket
    2 = cupped
    3 = round bracket
    4 = line
    5 = slab
    6 = wedge
    7 = half
    8 = sans square
    9 = sans round
    10 = sans flare
    11 = nonconnect
    12 = joining
    13 = black serif
    14 = swash
<fill byte = 0>
<font type>
  In .PRS file:
    0 = built in
    1 = cartridge slot
    2 = memory (quantity units are in kilobytes)
    3 = memory (quantity units are in font slots)
    4 = print wheel
  In .DRS file:
    128 (0x80) = wp greeked font
    129 (0x81) = wp menu
    130 (0x82) = wp vector
    131 (0x83) = wp outline
    132 (0x84) = reserved
    133 (0x85) = reserved
    134 (0x86) = Speedo
    135 (0x87) = bullet (not yet internal)
    138 (0x8A) = ATM
    139 (0x8B) = TrueType
    140 (0x8C) = reserved
    141 (0x8D) = TrueType
    142 (0x8E) = reserved
    143 (0x8F) = reserved
    255 (0xFF) = no soft font driver loaded
<font source file type>
  16 (0x10) = .PRS file type
  20 (0x14) = .DRS file type
[typeface name length in bytes]
[typeface name] x 58? (word-string; max size = 116 bytes)
  The typeface name is made up for four separate null word-terminated
strings:
    1st string = typeface family (such as Times or Swiss)
    2nd string = attributes (such as Bold, Italic, or Bold Italic)
    3rd string = name prefix (group abbreviation, used for sorting in
fonts and cartridge menus [such as CG])
    4th string = name extension.  This is a symset string, an
orientation string, or a string to simply distinguish this font from
other fonts (such as scalable).
 
 
 
Packet Type 33 (0x21)Font PS Table
 One document file packet is used for each PS (proportional space) table.
 
 In a SET file, this packet contains the font PS table for the default initial font.
 
 <PS status flag>
  0 = byte characters
  1 = word characters
<PS type flag>
  0 = PS table
  1 = monospaced bitmap
[pointers to the 16 character sets] x 16
[character widths/bitmap] x ?  variable length
 If the type is PS table, the following block of data will exist for
each character set from 1 through 16.
 
 <count of characters in this set (starting at 0)> same as the number
of the last character in the set
[width of nth character] x count+1  (n = 0 to count)
 
 
 If the type is monospaced bitmap, the following block of data will exist for each character set
from 1 through 16.
 
 <count of characters in this set (starting at 0)> same as the number
of the last character in the set
<bitmap of character set> x (count/8)+1  The bits in the bitmap in
physical order indicate the existence (1) or absence (0) of the
corresponding character in the character set.  For example, if the
high bit of first byte is 1 then character 0 exists. If the low bit of
the first bit is 0, then character 7 is omitted.
 
 The actual spacing used by a monospaced font may be calculated by the formula:
 nominal character width = (average character width * current
point size) / 300
 
 
 The current point size is found in the Font Face Change function code (function 0xD4,
subfunction 0x1A) in units of 3600ths and must be converted into 1200ths before it is used in the
formula.  The average character width is found in the Font Typeface Descriptor Pool packet
(packet type 0x20) in units of 1200ths.  The nominal character width is the spacing used by a
monospaced font and is also in units of 1200ths.
 
 
Packet Type 34 (0x22)Font List
 In a SET File, this packet contains the default initial font.
 
 [font ID (instance pointer)]
[cache ID of PS table (-1 = no PS table)]
[top shoulder height (WPU)]
[bottom shoulder height (WPU)]
[printed character width (WPU)]
[optimal space width (WPU)]
[normal space width (WPU)]
[horizontal motion units]
[numerator for fractional units of horizontal motion]
[vertical motion units]
[numerator for fractional units of vertical motion]
[pointer in pool of typeface descriptor (packet type 20)]
<flags >
  01 = scalable font
  02 = faked small cap font
[point size (3600ths)]
[nominal width (WPU)]
[hash word of descriptor]
[afc list (entry numbers, -1 = none)] x 16
[character afc list] x 16
[orientation afc list] x 4
[language afc list] x 4
[substitute font list] x 6  (entry number, -1 = none, -2 = on disk)
 
 
Packet Type 35 (0x23)Printer Selection
 [long .PRS file] x 37  null terminated, padded to 74 bytes
<actual .PRS file name> x 13  null terminated, padded to 13 bytes
[minimum top margin (WPU)]
[minimum bottom margin (WPU)]
[minimum left margin (WPU)]
[minimum right margin (WPU)]
[minimum top margin (landscape) (WPU)]
[minimum bottom margin (landscape) (WPU)]
[minimum left margin (landscape) (WPU)]
[minimum right margin (landscape) (WPU)]
<flags>
  bit 0: available
  bit 1: initialize printer when WP starts
  bit 3: right hyphenation zone disabled
  bits 4-7: orientations supported
    16 (0x10) = portrait
    32 (0x20) = landscape
    64 (0x40) = reverse portrait
    128 (0x80) = reverse landscape
<port number>
  0 = lpt1
  1 = lpt2
  2 = lpt3
  4 = com1
  5 = com2
  6 = com3
  7 = com4
  -1 = filename or device
<byte to initialize serial port>
  length (bit 0):
    0 = 7
    1 = 8
  stop bit (bit 1):
    0 = 1 stop bit
    1 = 2 stop bits
  extended baud rate (bit 2):
    0 = no
    1 = yes (19200)
  parity (bits 3-4):
    0 = none
    1 = odd, 3 = even
  baud rate (bits 5-7):
    0 = 110
    1 = 150
    2 = 300
    3 = 600
    4 = 1200
    5 = 2400
    6 = 4800
    7 = 9600
<network printer flag>
  1 (0x01) network printer
  2 (0x02) suppress top of form
  4 (0x04) reserved
  8 (0x08) reserved
  16 (0x10) reserved
  32 (0x20) reserved
  64 (0x40) reserved
  128 (0x80) reserved
<network form number>
<full pathname for non-port device> x 80
  If port number is 0-7, bytes 1-6 (0 based) of this field are used
for hardware printing information.
<pathname only - for auxiliary printer files> x 67
<additional flags>
  1 (0x01) = prompt for file name
  2 (0x02) = Xon/Xoff instead of DTR
  4 (0x04) = check initial printer status
  8 (0x08) = printer added to list by setup
  16 (0x10) = configured for color
  32 (0x20) = color-capable printer
  64 (0x40) = extended checking
  128 (0x80) = available
<output tray flags>
  1 (0x01) = sorting supported
  2 (0x02) = grouping supported
  4 (0x04) = offset jogger supported
  8 (0x08) = offset jogger on
  16 (0x10) = output bin on
  32 (0x20) = output bin supported
  64 (0x40) = no output option
  128 (0x80) = printer supports output options
[bin numbers] x 2  Up to 32 total bin numbers.  Each bit is a bin
number.  When a bit is set, the corresponding bin is active.
  bit 0 = output bin 1
  bit 1 = output bin 2
  bit 2 = output bin 3
  bit 3 = output bin 4
  bit 4 = output bin 5
  bit 5 = output bin 6
  bit 6 = output bin 7
  bit 7 = output bin 8
  bit 8 = output bin 9
  bit 9 = output bin 10
  bit 10 = output bin 11
  bit 11 = output bin 12
  bit 12 = output bin 13
  bit 13 = output bin 14
  bit 14 = output bin 15
  bit 15 = output bin 16
  bit 16 = output bin 17
  bit 17 = output bin 18
  bit 18 = output bin 19
  bit 19 = output bin 20
  bit 20 = output bin 21
  bit 21 = output bin 22
  bit 22 = output bin 23
  bit 23 = output bin 24
  bit 24 = output bin 25
  bit 25 = output bin 26
  bit 26 = output bin 27
  bit 27 = output bin 28
  bit 28 = output bin 29
  bit 29 = output bin 30
  bit 30 = output bin 31
  bit 31 = output bin 32
[date of .PRS file]
  bits 15-9 = year + 80
  bits 8-5 = month
  bits 4-0 = day (starting at 1)
[time of .PRS file]
  bits 15-11 = hour (24 hour starting at 0)
  bits 10-5 = minutes
  bits 4-0 = seconds/2 (may not be completely accurate)
 
Packet Type 36 (0x24)Embedded Printer Command
 <embedded printer command> x ?  native byte string, null terminated
 
 
Packet Type 37 (0x25)Default Initial Font
 [number of prefix IDs = 1]
[initial font descriptor PID (type=0x55)]
[point size (3600ths)]
 
 
Packet Type 38 (0x26)Print Information for Q-codes
 No documentation will be provided for this packet.
 
 
Packet Type 39 (0x27)Output Device Type or Port for Q-codes
 No documentation will be provided for this packet.
 
 
Packet Type 40 (0x28)Machine Dependent Information
 No documentation will be provided for this packet.
 
 
Packet Type 41 (0x29)PS Table Prefix Packet IDs
 This packet contains the prefix packet IDs of each font's PS table.  There should be one PS
table
entry for each font in the font list.  The format is:
 
 [number of child PS table IDs]
[ID 0] index 0 PS table ID (type=0x21)
[ID 1] index 1 PS table ID
..  ..
[ID n] index n PS table ID
 
 
Packet Type 42 (0x2A) - Added for WP 7.0Third-Party Data
 This packet is always used in conjunction with the Third Party function (0xE10B).  The
format of
this packet is defined by the third-party company.
 
 
 
Packet Type 43 (0x2B)Form Paper Size/Type Name
 No documentation will be provided for this packet.
 
 
Packet Type 44 (0x2C)Subdocument Summary
 This is the same format as the extended document summary packet, packet type 18
(0x12).
 
 
Packet Type 45 (0x2D)Subdocument Password
 No documentation will be provided for this packet.
 
 
Packet Type 46 (0x2E)Deletable Packet
 No documentation will be provided for this packet.
 
 
Packet Type 47 (0x2F) - Added for WP 7.0Routing Annotation
 <flags>
  bit 0: set means this document came from the routing system
  bits 1-7: reserved
<user count> the number of users listed in this packet
{user IDs size} the size, in bytes, of the user IDs data area
{work flow ID offset}  offset into packet of work flow ID
{work flow filename offset} offset into packet of routed filename
<user data> x ? the following five bytes per user, ordered to match
the user IDs
<user display color (RGBS)> x 4
<flag byte>
  bit 0: set means the user has completed his review of the document
  bits 1-7: reserved
[users IDs index] x ? two bytes per user containing the offset of his
mail system user ID relative to the beginning of user IDs data (user
IDs are stored in route order)
<user IDs data> x ? the user IDs stored as packed strings of 8-bit
ANSI characters
[user names index] x ? two bytes per user containing the offset of his
long name relative to the beginning of user names data (ordered to
match the user IDs)
<user names data> x ? the user long names stored as packed strings of
8-bit ANSI characters (ordered to match the user IDs)
<work flow ID> x ? Ensemble Lite work flow ID passed to WP on the
command line (a null-terminated string)
<work flow document name> x ? Ensemble Lite routed document name as
returned from the routing system (a null-terminated string)
 
 
 
 
Packet Type 48 (0x30)Normal Style
 [number of prefix IDs]
[PID of style to link to (type=0x30)] If this is null, look at the
Enter flag.  If this ID exists, it means that when this style is ended
(or when Enter is pressed), the style ID that is linked to begins.
[number of text blocks = 4]
{relative offset of 1st text block}
{paragraph text size}
{beginning style text size}
{end style text size}
{extra style text size}
<style type>
  1 = open style
  2 = paired style
  3 = paragraph style
  4 = deleted "including codes"
  5 = deleted "leaving codes"
<style flag>
  1 (0x01) = library style (otherwise local only)
  2 (0x02) = system style
  4 (0x04) = Enter turns style off (ignored if link ID is valid)
  8 (0x08) = Enter turns style back on again (ignored if link ID is
valid)
  16 (0x10) = reserved (always set to null when creating a style code)
  32 (0x20) = style includes other style(s)
  64 (0x40) = reserved
  128 (0x80) = reserved
[style hash]
[offset from beginning of packet to description]
[style name] x 12(max)  null terminated
[style description] x ?  null terminated
The following data is the text block part of the style.
<paragraph-oriented begin information> x paragraph text size
<other begin information> x beginning style text size
<end information> x ending style text size
<extra information> x extra style text size
 
Packet Type 49 (0x31)Outline Style
 Null level IDs indicate that the default outline is used for that level.
 
 [child ID cnt = 8]
[level 1 ID (type=0x30)]
[level 2 ID (type=0x30)]
[level 3 ID (type=0x30)]
[level 4 ID (type=0x30)]
[level 5 ID (type=0x30)]
[level 6 ID (type=0x30)]
[level 7 ID (type=0x30)]
[level 8 ID (type=0x30)]
<style flags>
  low nibble values:
    0x01 = library style
    0x02 = system style
    0x04 = outline does not use paragraph styles
    0x08 = reserved
  high nibble values:
    0x00 = heading paragraph styles
    0x10 = reserved
    0x20 = normal paragraph styles
    0x40 = use legal (non-indented) paragraph styles
    0x60 = reserved
    0x80 = reserved
    0xA0 = reserved
    0xC0 = reserved
    0xE0 = this style has been deleted
[hash of IDs, name, flags] (set to null when creating the style)
<numbering methods for printing> x 8
  one byte for each level
    0 = Arabic numbers
    1 = lowercase letters (a-z)
    2 = uppercase letters (A-Z)
    3 = lowercase Roman
    4 = uppercase Roman
    5 = character string (only valid for footnotes and endnotes)
    6 = leading-zero Arabic numbers
  For Asia: (2-byte character required; uses two character cells to
PRN)
    0x40 = 2-byte Arabic
    0x41 = 2-byte lowercase letters (a-z)
    0x42 = 2-byte uppercase letters (A-Z)
    0x43 = 2-byte lowercase Roman
    0x44 = 2-byte uppercase Roman
    0x45 = 2-byte character string (only valid for footnotes and
endnotes)
    0x46 = 2-byte leading-zero Arabic numbers
    0x80 = kanji
    0x81 = 1-byte katakana (aiueo)
    0x82 = 2-byte katakana (aiueo)
    0x83 = 1-byte katakana (iroha)
    0x84 = 2-byte katakana (iroha)
    0x85 = available
    0x86 = standard kanji with leading-zero
    0xC0 = kanji 2 (ten = juu)
If the numbering method is character string, the following information
exists:
[character string length]
[character string] x length in bytes
[pointer to description]
[8 pointers to number strings] x 8
[outline style name] x 13(max)  null terminated
[description] x ?  null terminated
[level 1 num string] x 21(max)  WP word string null terminated
[level 2 num string] x 21(max)  WP word string null terminated
[level 3 num string] x 21(max)  WP word string null terminated
[level 4 num string] x 21(max)  WP word string null terminated
[level 5 num string] x 21(max)  WP word string null terminated
[level 6 num string] x 21(max)  WP word string null terminated
[level 7 num string] x 21(max)  WP word string null terminated
[level 8 num string] x 21(max)  WP word string null terminated
 
Packet Type 50 (0x32)Personal Style Library Filename
 [personal style library filename] x ?  null terminated
 
 If this packet ever has child IDs, the format will be that of the Native Filename packet type
0x07.
 
 
Packet Type 51 (0x33)Shared Style Library Filename
 [shared style library filename] x ?  null terminated
 
 If this packet ever has child IDs, the format will be that of the Native Filename packet type
0x07.
 
 
Packet Type 52 (0x34)Personal and Shared Library File Date/Time
 <date structure for personal style library file> x 10
<date structure for shared style library file> x 10
 
 10-Byte Date Structure
 [year]
<month>
<day>
<hour>
<minute>
<second> (unused = 0)
<day of week> (unused = 0)
<time zone> (unused = 0)
<unused> (= 0)
 
 
Packet Type 53 (0x35)  - Added for WP 7.0Default Native Fonts
 Mideast default font and size for dual or multiple fonts.
 
 [number of child prefix IDs = 1]
[PID of desired font]
<point size of font> in 3600ths
<language set of the initial native font>
  9 = Hebrew
  13 = Arabic
 
 Packet Type 54 (0x36) - Added for WP 7.0English AFC (Fareast)
 Use English AFC for Asian fonts.
 
 <use English AFC flag> 1 = use English AFC for double byte fonts
 
 
Packet Type 55 (0x37)  -  63 (0x3F)Reserved
 
 
 
 
Packet Type 64 (0x40)Graphics Filename
 If this packet does not have any children, the format is:
 
 [graphics filename] x ?  null terminated
 
 If this packet does have children, the format is the following:
 
 [number of child IDs]
  [ID 1 (type=0x6F, 0x70, or 0x71)] ID of child packet containing
graphics data
  [ID 2 (type=0x6F, 0x70, or 0x71)] ID of child packet containing
graphics data
.. ..
  [ID n (type=0x6F, 0x70, or 0x71)] ID of last child containing
graphics data
  [tag 1] tag flag for first child packet
  [tag 2] tag flag for second child packet
  .. ..
  [tag n] last tag flag for last child packet
[graphics filename] x ?  null terminated
 
 Format for tag flags
 0x0001 = data being kept internal
0x0010 = data being kept internal (hot link)
0x0011 = data being kept internal (warm link)
0x0012 = data being kept internal (cold link)
 
    |