Printer Font Metric Structure

The following structure is used by all Printer Font Metrics (PFM) files used by drivers supported by the Microsoft Windows Universal Driver.

typedef struct

{

    short   sSize;

    short   iVersion;

    WORD    fCaps;

    short   iFontID;

    short   sYAdjust;

    short   sYMoved;

    short   iTransTab;

    short   sUnderlinePos;

    short   sDoubleUnderlinePos;

    short   sStrikeThruPos;

    LOCD    locdSelect;

    LOCD    locdUnSelect;

    WORD    wPrivateData;

    short   sShift;

} DRIVERINFO;

 

Members

sSize

Size, in bytes, of the structure.

iVersion

Version number of the structure. This documentation describes version 0x0301 (implied decimal for version 3.01).

fCaps

Bit flags describing capabilities. Currently, cCaps can only be DF_BKSP_OK to indicate that this fonts uses a CTT_WTYPE_PAIRED character-translation table to determine how to overstrike characters. If it is set, it is assumed that a single backspace character can be used to move the cursor to the start of the bounding box of the previous character prior to overstriking. If it is not set, it is assumed that explicit x-movement commands are required to position the cursor for an overstrike. If the font does not use a CTT_WTYPE_PAIRED translation table, this flag is ignored.

iFontID

Reserved; do not use.

sYAdjust

Distance to move the current y position, as expressed in master units, before printing characters in this font and size. This member is primarily used for double-height characters, and the specified distance to align the baseline accurately.

sYMoved

Distance to move the y position, as expressed in master units, after printing with this font and size. This member is also used to compensate for fonts that do not restore the cursor to the correct y position. It is primarily used for double-height characters.

iTransTab

Index of character-translation table resource for this font. This may zero, a positive, or negative number. If this is zero, use the character-translation table referred to in the ModelData dialog box for this model. If this is a negative number, the Universal Printer Driver will take the absolute value and use its own character-translation table resource with this identifier. If this is a positive value, the Universal Printer Driver will use the driver-defined character-translation table resource with this identifier value.

sUnderlinePos

Position of the hardware underline created by FS_OCD_ST_UNDERLINE_ON from the bottom of the character-bounding box. This member is measured in master units.

sDoubleUnderlinePos

Position of the hardware double underline created by FS_OCD_ST_DOUBLEUNDERLINE_ON from the bottom of the character-bounding box. This member is measured in master units.

sStrikeThruPos

Position of the hardware strikethrough created by FS_OCD_ST_STRIKETHRU from the bottom of the character-bounding box. This member is measured in master units.

locdSelect

Offset to the command descriptor to select this font.

locdUnSelect

Offset to the command descriptor to cancel the selection of this font. This member is NOOCD if not used.

wPrivateData

Private data to be used by the minidriver.

sShift

Number of pixels to shift each character to the left or right. Negative numbers shift to the right; positive numbers shift to the left.