The following descriptions of Deskjet softfont formats was condensed from the Deskjet Software Developer's Guide. It does not include complete information about the Deskjet softfont format; it merely provides enough information for a user to convert a Laserjet softfont to Deskjet format. There are two descriptor areas for each Deskjet softfont, just like the Laserjet softfonts. The Font Descriptor is a part of the )s#W escape sequence to create a font. The Character Descriptor follows the Laserjet escape sequence format (s#W and is used when downloading a character. The same escape sequences are used in a softfont file in the same order. The major differences are that the Deskjet requires that the softfonts be downloaded in ascending character order, and the descriptor formats are different. So, basically, if the descriptors are modified, a Laserjet softfont can be converted to Deskjet format. The following is a brief outline of both descriptors. Two-byte fields are in word format, one-byte fields in byte format. DESKJET FONT DESCRIPTOR FORMAT Bytes Field Description ------- -------------------- ------------------------------------------ 0-1 Descriptor Size Value always 64 for Deskjet (64 decimal) 2-3 Font Identification Similar to Laserjet symbol set ID. Number used is (symbol set field # x 256) + (ASCII value for terminator). Note this is slightly different than Laserjet. 4-5 Placement Level Should be 100 decimal 6-7 Font Spacing 0 = fixed 1 = proportional 8-9 Pitch value = ( CPI x 100 ) 10-11 Height value = ( height in points x 100 ) 12-13 Style 0 = upright 100 = Italic 14-15 Stroke Weight value = ( LJ stroke weight x 100 ) 16-17 Typeface value = ( LJ typeface x 100) 18-19 Quality 200 for Laserjet fonts 20 Font Type 0 = 7 bit (only chars 33-127) 1 = 8 bit (only chars 22-127 and 160-255) 2 = IBM (only chars 1-6, 16-26, 28-255) 21-22 Space Width Width of space char (in 1/3600 inch) 23 Unidirectional Flag 0 for Laserjet fonts 24 Aux Compressed Flag 0 for Laserjet fonts 25 Aux Hidden Chars Flag 0 for Laserjet fonts 26 Half Pitch Flag 1 for Laserjet fonts 27 Double Pitch Flag 1 for Laserjet fonts 28 Half Height Flag 1 for Laserjet fonts 29 Bold Flag 0 = allow algorithmic boldfacing 1 = disallow algorithmic boldfacing 30 Draft Flag 0 = allow algorithmic draft print 1 = disallow algorithmic draft print 31 Bold Method 0 = one dot column of bolding 1 = two dot columns of bolding 32 Dot Resolution 0 for Laserjet fonts 33 Orientation 0 = portrait 1 = landscape NOTE: Landscape is not same as Laserjet. If Landscape is selected, it will merely rotate characters. It is up to the application to correctly send characters to produce a true landscape orientation! 34-35 Baseline Offset value = ( LJ baseline offset x 100 ) 36-37 Tall Font Offset 0 for Laserjet fonts 38-39 Single Underline Mask 15 for Laserjet fonts 40-41 Double Underline Mask 3855 for Laserjet fonts 42-43 Page Hold Timer Time to hold page before it is ejected 44-59 Font Name ASCII name of font 60-61 Data Length Length of font tables and dot data 62-63 Reserved must be 0 DESKJET CHARACTER DESCRIPTOR FORMAT Bytes Field Description ------- -------------------- ------------------------------------------ 0 Character Format must be 5 1 Reserved must be 0 2 Descriptor Size must be 6 3 Character Type 0 for Laserjet fonts 4 Normal Width normal character width (in .06 inch) 5 Compressed Width compressed character width (in .06 inch) 6 Left Proportional Pad space at left of char (in .06 inch) 7 Right Proportional Pad space at right of char (in .06 inch)