The installer's PFM generator derives the PFM file from the data in the downloadable font file. The following sections list where the data comes from for each member in the PFM file structures.
The installer derives the PFM header from the downloaded file as follows.
dfVersion |
256. |
dfSize |
Size of file. |
dfType |
128. |
dfPoints |
Height of the font in points (height from header * 72/1200). |
dfVertRes |
300. |
dfHorizRes |
300. |
dfAscent |
Baseline position from font header. |
dfInternalLeading |
(Cell height height + 2)/4 from font header. |
dfExternalLeading |
(height/4) baseline from font header. |
dfItalic |
Set if the style byte in the header = 1. |
dfUnderline |
0. |
dfStrikeOut |
0. |
dfWeight |
Derived from stroke weight. |
dfCharSet |
Based upon HP symbol set. |
dfPixWidth |
If variable width. |
dfPixHeight |
Cell height from the font header. |
dfPitchAndFamily |
Pitch bit is set if fixed pitch. |
dfAvgWidth |
Average of all the character widths (cursor move). |
dfMaxWidth |
Maximum of all the character widths (cursor move). |
dfFirstChar |
First character in the font file. |
dfLastChar |
Last character in the font file. |
dfDefaultChar |
127 first character. |
dfBreakChar |
32 first character. |
dfWidthBytes |
0. |
dfDevice |
Offset from beginning of file to device string PCL/HP LaserJet. |
dfFace |
Offset from beginning of file to font name. |
dfBitsPointer |
0. |
dfBitsOffset |
0. |
dfCharOffset |
If variable pitch. |
dfSizeFields |
Size of this part of the PFM structure. |
dfExtMetricsOffset |
Offset from beginning of file to EXTTEXTMETRIC structure. |
dfExtentTable |
0. |
dfOriginTable |
0. |
dfPairKernTable |
0. |
dfTrackKernTable |
0. |
dfDriverInfo |
Offset from beginning of file to DRIVERINFO (driver-specific) structure. |
dfReserved |
0. |
The installer derives the Windows weight value from the weight value in the font file header as follows.
For the generic case, the installer checks the font type byte in the font header. If
it is nonzero, the font uses an 8-bit pass through; if the type is zero, the font uses
a 7-bit pass through.
The installer derives extended text metrics from the download header file as follows.
etmCapHeight |
Baseline from header dfInternalLeading. |
etmDoubleLowerUnderlineOffset |
The etmUnderlineOffset member. |
etmDoubleLowerUnderlineWidth |
The etmDoubleUpperUnderlineWidth member. |
etmDoubleUpperUnderlineOffset |
etmUnderlineOffset + etmUnderlineWidth * 2. |
etmDoubleUpperUnderlineWidth |
The etmUnderlineWidth member. |
etmKernPairs |
0. |
etmKernTracks |
0. |
etmLowerCaseAscent |
Top offset from character record for 'd'; left offset if landscape font. |
etmLowerCaseDescent |
Character width left offset from character record for 'p'; height top if landscape font. |
etmMasterHeight |
Cell height from font file header. |
etmMasterUnits |
The etmMasterHeight member. |
etmMaxScale |
The etmMasterHeight member. |
etmMinScale |
The etmMasterHeight member. |
etmOrientation |
2 if orientation byte set in header; 1 if not. |
etmPointSize |
Cell height *1440 / 300 from font file header. |
etmSize |
Size of the EXTTEXTMETRIC structure. |
etmSlant |
0. |
etmStrikeOutOffset |
Left offset etmStrikeOutWidth from character record for '-'; top offset etmStrikeOutWidth if landscape font. |
etmStrikeOutWidth |
Character width from record for '-'; character height if landscape font. |
etmSubScript |
Cell height from header. |
etmSubScriptSize |
Cell height from header. |
etmSuperScript |
etmCapHeight etmXHeight. |
etmSuperScriptSize |
Cell height from header. |
etmUnderlineOffset |
Top offset from character record for '_'; left offset if landscape font. |
etmUnderlineWidth |
Character width from character record for '_'; character height if landscape font. |
etmXHeight |
Top offset from character record for 'x'; left offset if landscape font. |
The generator derives driver-specific information from the download width tables and symbol set as follows.