Общие сведения о библиотеках DLL графики принтера
Внимание
Современная платформа печати — это предпочтительный способ взаимодействия с принтерами Windows. Рекомендуется использовать драйвер класса "Входящие" Microsoft IPP вместе с приложениями поддержки печати (PSA), чтобы настроить возможности печати в Windows 10 и 11 для разработки устройств принтера.
Дополнительные сведения см. в статье "Современная платформа печати" и руководство по проектированию приложений поддержки печати.
Графические библиотеки DLL принтера реализуют функции DDI с префиксом drv, описанные в разделе "Использование DDI графики". Эти библиотеки DLL имеют следующие две обязанности:
Помогите GDI отрисовывать задание печати.
Библиотека DLL графики принтера может предоставлять функции рисования DDI графики для обработки операций рисования, которые должны выполняться определенным образом устройства и поэтому не могут обрабатываться исключительно обработчиком отрисовки GDI.
Доставите отрисованный поток данных в spooler.
Графические библиотеки DLL принтера обычно создают выходной поток в типе данных RAW (включая последовательности команд), который spooler может отправлять на оборудование принтера через мониторы печати.
Объем помощи отрисовки, которую должен предоставлять библиотека DLL графики принтера, зависит от типов принтера в зависимости от возможностей рисования оборудования и включает в себя следующие сценарии:
Модуль отрисовки GDI выполняет все отрисовки с помощью управляемой GDI поверхности. Библиотека DLL графики не предоставляет функции рисования DDI.
Библиотека DLL графики предоставляет некоторые функции рисования DDI графики для работы в сочетании с обработчиком отрисовки GDI с помощью управляемой GDI поверхности. Функции рисования графических DDI, предоставляемые библиотекой DLL графики, могут при необходимости вернуться к службам поддержки GDI обработчика отрисовки GDI GDI.
Библиотека DLL для графики выполняет отрисовку, предоставляя функции рисования DDI графики и используя управляемое устройством поверхность.
Например, драйвер универсального принтера Майкрософт (Unidrv) использует управляемую GDI поверхность и предоставляет некоторые функции рисования DDI графики, а драйвер принтера Microsoft PostScript использует управляемую устройством поверхность.
Дополнительные сведения о поддержке отрисовки в графических драйверах см. в разделе "Типы surface" и "Использование DDI графики".
На следующих двух рисунках показан поток данных, возникающий при создании задания печати с помощью GDI. Запись и воспроизведение EMF объединяются в эти цифры.
На первой схеме показана библиотека DLL графического принтера в пользовательском режиме.
Примечание. Графические библиотеки DLL принтера Windows Vista могут выполняться только в пользовательском режиме. Дополнительные сведения см. в разделе "Выбор пользовательского режима" или "Режим ядра".
На второй схеме показана библиотека DLL графического принтера в режиме ядра.
Обратите внимание на эти схемы, что если формат выходных данных из GDI является расширенным метафайлом (EMF), библиотека DLL графики принтера не получает задание, пока обработчик печати EMF не воспроизводит записи EMF. Обратите внимание, что обработчик печати EMF изменяет формат выходных данных, отличный от EMF.
На схемах показана полностью локальная среда. Если принтер подключен к серверу, записи EMF обычно создаются копией клиента подсистемы отрисовки GDI, а затем копируются в локальный файл, который отправляется на сервер. Копия spooler сервера считывает файл и отправляет записи на обработчик печати EMF сервера, а копия сервера gre вызывает библиотеку DLL принтера сервера.