为 Unidrv 自定义的字体安装程序

重要

新式打印平台是 Windows 与打印机通信的首选方式。 建议使用 Microsoft 的 IPP 收件箱类驱动程序以及打印支持应用 (PSA) 来自定义 Windows 10 和 11 中的打印体验,以便进行打印机设备开发。

有关详细信息,请参阅新式打印平台打印支持应用设计指南

对于打印机 GPD 文件中字体墨盒条目未描述的墨盒字体,需要使用供应商提供的字体安装软件。 这些字体必须使用 Unidrv 字体格式文件(.uff 文件)来描述。 创建 .uff 文件由供应商提供的字体安装程序负责。

供应商提供的字体安装程序还应支持可下载的 PCL 软字体。

创建自定义字体安装程序的两种方法如下:

  • 提供用户界面插件

    此插件必须实现以下 COM 接口方法:

    IPrintOemUI::FontInstallerDlgProc

    IPrintOemUI::UpdateExternalFonts

  • 提供单独的可执行文件

    在字体安装过程中,可执行文件必须调用 SetPrinterData(在 Windows SDK 文档中进行介绍)并为“FontInstaller”键指定一个值,从而在注册表中存储其名称。

Unidrv 使用以下算法来查找字体安装程序:

  1. 如果字体安装程序可执行文件的名称存储在注册表中,则 Unidrv 不允许系统管理员从打印机的属性表中选择字体安装操作。 相反,管理员必须运行提供的可执行文件。

  2. 如果没有安装程序可执行文件,Unidrv 可以从打印机的属性表中选择字体安装操作。 Unidrv 可确定是否已安装用户界面插件。 如果已安装,则会调用其字体安装方法。 如果用户界面插件尚未安装,或其字体安装方法返回 E_NOTIMPL,则驱动程序会使用自己的故障安装程序。