(v13) PFIN and unique identifiers
This page applies to Harlequin v13.1r0 and later; both Harlequin Core and Harlequin MultiRIP
PFIN modules provide support for various font specification formats. In current RIP products, they support various forms of PCL font, including RAM-based formats and font resources embedded in print jobs. PFIN modules have their own special handling for UniqueID
allocation.
The RIP is capable of allocating UniqueID
values for fonts defined through PFIN modules. These temporary UniqueID
values are intended to be unique within the lifetime of a RIP process. Temporary UniqueID
values are negative values < -1, and may participate in font caching across job boundaries. When suppressing UniqueID
values, these temporary UniqueID
values are also suppressed.
Currently no PFIN module supports a font format capable of specifying a UniqueID
value itself. The RIP is the only source of UniqueID
values for PFIN fonts.
However, other font formats supported by the RIP outside of PFIN modules do allow UniqueID
specification (PostScript obviously does allows this). Thus, it is possible for a non-PFIN module source of font resources to duplicate PFIN module assigned UniqueIDs
. Suppression of UniqueID
values has to apply to all types of UniqueID
, as the RIP cannot detect misuse. This work suppresses all types of UniqueID
handling under the control of the SuppressUniqueID
user parameter.
PFIN fonts are no different to any other font, with regard to the handling of UniqueID
values. If UniqueID
values are to be supported, the font resource instance in the RIP must be created in a context where UniqueIDs
are allowed. This work defines such a context, in the execution of HqnStart
during RIP bootup, and PFIN fonts requiring UniqueID
support would have to be preloaded in such a context just as is done for SW folder fonts that require UniqueID
support. The RIP user has to guarantee the correct use of UniqueID
values.
Suppression of UniqueID
for PFIN fonts created in a print job is unlikely to have a performance penalty of any significance for extant PFIN implementations. Each temporary UniqueID
value allocated by the RIP is used only for a single resource instance definition. Since none of the font formats currently supported via PFIN modules allow the specification of UniqueID
values in font data, distinct instances of PFIN fonts won't share UniqueID
values. For font caching to share glyphs related to PFIN fonts across job boundaries, the PFIN font instance must persist across job boundaries which could be done via the HqnStart
preload mechanism. No existing PFIN implementation can use UniqueID
values to link a font embedded in a print job to glyphs rendered outside of that containing job.