(v13) PFIN fonts
This page applies to Harlequin v13.1r0 and later; both Harlequin Core and Harlequin MultiRIP
Modules that support new font formats may declare fonts that are built into ROM, installed on permanent storage, or inserted on removable storage. These fonts can be declared at three different opportunities: start, configure, and find. Fonts that are always available, that is those which are built into ROM or installed into permanent storage, are best defined during start. Fonts that are only available subject to configuration should be declared (and possibly subsequently undeclared), during configure.
There is also a last-minute hook, find, which allows the use of dynamically-discoverable fonts such as fonts on removable storage, fonts supplied by a host mechanism with a costly scanning overhead, or fonts from such a large font set that defining all of them at start would have an undesirable overhead for the application.
find is called when findresource
has failed to find a Font or CIDFont, but before they return failure. This allows a module to define a font on demand. It is also called with no font name by resourceforall
to allow the module to define all such fonts should that be desired. PFIN fonts are implemented as two new font types, for Fonts
and CIDFonts
, whose directories contain the following:
/PFINFont <<
/FontType <PFINFontType>
/FontName <supplied by module>
/FontMatrix [1 0 0 1 0 0]
/PFIN <module name>
/PFID <supplied by module>
/Encoding <supplied by module>
/UniqueID <PFIN allocated>
/CharStrings <</.notdef 0>>
>>
NOTE: There is no FontBBox.
Or:
/PFINCIDFont <<
/CIDFontType <PFINCIDFontType>
/FontType <PFINFontType>
/CIDFontName <supplied by module>
/FontMatrix [1 0 0 1 0 0]
/PFIN <module name>
/PFID <supplied by module>
/CIDSystemInfo <<
/Registry <supplied by module>
/Ordering <supplied by module>
/Supplement <supplied by module>
>>
/Wmode 0
/UniqueID <PFIN allocated>
/CharStrings <</.notdef 0>>
>>
NOTE: There is no FontBBox.