Поделиться через


Настраиваемые установщики шрифтов для Unidrv

Внимание

Современная платформа печати — это предпочтительный способ взаимодействия с принтерами Windows. Рекомендуется использовать драйвер класса "Входящие" Microsoft IPP вместе с приложениями поддержки печати (PSA), чтобы настроить возможности печати в Windows 10 и 11 для разработки устройств принтера.

Дополнительные сведения см. в статье "Современная платформа печати" и руководство по проектированию приложений поддержки печати.

Предоставленное поставщиком программное обеспечение для установки шрифтов требуется для шрифтов, которые не описаны в записях GPD принтера. Эти шрифты должны быть описаны с помощью файлов форматирования шрифтов Unidrv (uff-файлы). Создание uff-файлов является ответственностью установщиков шрифтов, предоставленных поставщиком.

Установщики шрифтов, предоставляемые поставщиком, также должны обеспечить поддержку скачиваемых обратимых шрифтов PCL .

Ниже приведены два способа создания настраиваемого установщика шрифтов:

  • Предоставление подключаемого модуля пользовательского интерфейса

    Этот подключаемый модуль должен реализовать следующие методы COM-интерфейса:

    IPrintOemUI::FontInstallerDlgProc

    IPrintOemUI::UpdateExternalFonts

  • Укажите отдельный исполняемый файл

    Во время установки шрифта исполняемый файл должен хранить его имя в реестре путем вызова SetPrinterData (описанного в документации по пакету SDK для Windows) и указания значения для ключа FontInstaller.

Unidrv использует следующий алгоритм для поиска установщика шрифтов:

  1. Если имя исполняемого файла установщика шрифтов хранится в реестре, Unidrv не разрешает системным администраторам выбирать операции установки шрифтов на листе свойств принтера. Вместо этого администратор должен запустить предоставленный исполняемый файл.

  2. Если исполняемый файл установщика недоступен, Unidrv включает выбор операций установки шрифта на листе свойств принтера. Unidrv определяет, установлен ли подключаемый модуль пользовательского интерфейса. В этом случае вызываются методы установки шрифта. Если подключаемый модуль пользовательского интерфейса не установлен или его методы установки шрифтов возвращают E_NOTIMPL, драйвер использует собственный установщик сбоя.