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


Динамически созданные команды принтера

Внимание

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

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

При каждом указании команды принтера в файле GPD для мини-driver Unidrv можно использовать один из следующих двух методов:

  • Поместите командную строку в файл GPD.

    При создании командной строки в GPD-файле Unidrv отправляет команду в средство spooler печати в соответствующее время. Эти строки команд могут включать стандартные переменные, которые Unidrv вычисляет перед отправкой команды.

  • Укажите функцию обратного вызова.

    Если вы предоставляете функцию обратного вызова, Unidrv вызывает функцию, когда время отправки команды, а функция отвечает за отправку команды в средство spooler печати. Это позволяет включить код, который динамически создает командную строку, а затем отправляет его на принтер.

Чтобы поместить строку команды в GPD-файл, необходимо включить атрибут *Cmd в запись команды *Command.

Чтобы предоставить код, динамически создающий командную строку, необходимо выполнить следующее:

  • Укажите подключаемый модуль отрисовки, реализующий метод IPrintOemUni::CommandCallback .

  • Включите атрибут команды *CallbackID и, при необходимости, атрибут *Params в записи команды *Command в файле GPD.

Когда Unidrv готов к выполнению команды принтера, она проверяет базу данных minidriver, чтобы определить, была ли указана команда атрибутом *Cmd или атрибутом *CallbackID. В предыдущем случае Unidrv отправляет командную строку в средство spooler печати. В последнем случае Unidrv вызывает метод IPrintOemUni::CommandCallback , передав значения *CallbackID и *Params в качестве входных аргументов.