Customized font installers for Unidrv

Important

We recommend that you use Microsoft's IPP inbox class driver, along with Print Support Apps (PSA), to customize the print experience in Windows 10 and 11 for printer device development.

For more information, see the Print support app design guide.

Vendor-supplied font installation software is required for cartridge fonts that aren't described by font cartridge entries in a printer's GPD file. These fonts must be described using Unidrv font format files (.uff files). Creating .uff files is the responsibility of vendor-supplied font installers.

Vendor-supplied font installers should also provide support for downloadable PCL soft fonts.

The two techniques to create a customized font installer are as follows:

  • Supply a user interface plug-in

    This plug-in must implement the following COM interface methods:

    IPrintOemUI::FontInstallerDlgProc

    IPrintOemUI::UpdateExternalFonts

  • Supply a separate executable file

    During font installation, the executable file must store its name in the registry by calling SetPrinterData (described in the Windows SDK documentation) and specifying a value for the "FontInstaller" key.

Unidrv uses the following algorithm for locating a font installer:

  1. If the name of a font installer executable file is stored in the registry, Unidrv doesn't allow the system administrator to select font installation operations from the printer's property sheet. Instead, the administrator must run the supplied executable file.

  2. If an installer executable file isn't available, Unidrv enables selection of font installation operations from the printer's property sheet. Unidrv determines if a user interface plug-in has been installed. If so, its font installation methods are called. If a user interface plug-in hasn't been installed, or if its font installation methods return E_NOTIMPL, the driver uses its own fault installer.