Архитектура драйвера принтера
Внимание
Современная платформа печати — это предпочтительный способ взаимодействия с принтерами Windows. Рекомендуется использовать драйвер класса "Входящие" Microsoft IPP вместе с приложениями поддержки печати (PSA), чтобы настроить возможности печати в Windows 10 и 11 для разработки устройств принтера.
Дополнительные сведения см. в статье "Современная платформа печати" и руководство по проектированию приложений поддержки печати.
Задания печати создаются приложениями с помощью вызовов Microsoft Win32 GDI или в Windows Vista, Windows Presentation Foundation (WPF). Данные приложения Win32 функции spool в виде записей EMF для последующего воспроизведения обработчиком печати EMF или могут немедленно отобразить печатный образ для каждой страницы документа. Данные приложения WPF функции spool в виде файла spool XPS.
До Windows Vista приложения обменялись параметрами принтера с принтером с помощью структуры DEVMODEW . В Windows Vista технологии параметров печати и печати передают параметры принтера, чтобы параметры принтера были более совместимыми с принтерами и приложениями.
Отрисовка изображений, выполняемая немедленно или во время печати, выполняется в драйвере печати:
Драйвер принтера на основе GDI выполняет отрисовку изображений во время воспроизведения записей EMF из файла спула и управляется обработчиком отрисовки GDI. Во время отрисовки подсистема отрисовки GDI вызывает соответствующий драйвер принтера Windows 2000 и более поздних версий для помощи.
Драйверы печати XPSDrv используют ряд фильтров обработки для обработки содержимого файла SPOL XPS для вывода на принтер.
Драйверы принтера на основе GDI для Windows 2000 и более поздних версий должны:
Помогите GDI в заданиях печати отрисовки, предоставляя возможности рисования для конкретного принтера, которые не поддерживают GDI.
Отправьте поток данных отрисованного изображения в средство spooler печати.
Предоставьте пользовательский интерфейс для изменяемых параметров конфигурации, связанных с принтерами и документами печати, например выбранные входные и выходные области, количество копий, разрешение изображения и ориентация и т. д.
Драйверы принтера XPSDrv несут ту же ответственность за пользовательский интерфейс, что и драйверы на основе GDI, а также отвечают за обработку данных задания печати и отправку данных на принтер. Однако драйверы принтера XPSDrv не нужно использовать GDI для отрисовки изображений страниц для принтера.
Драйверы принтера Windows 2000 и более поздних версий состоят из набора компонентов драйвера принтера, разделяющих операции рисования и пользовательского интерфейса драйвера на отдельные библиотеки DLL. Драйверы принтера XPSDrv также состоят из компонентов, разделяющих конфигурацию и функции рисования и отрисовки на отдельные объекты.
Этот раздел предназначен для понимания различных типов драйверов принтера, которые поддерживают операционные системы Windows 2000 и более поздних версий, но также следует помнить, что следующие три драйвера принтера поставляются с операционной системой:
Драйвер универсального принтера Майкрософт
Драйвер принтера Microsoft PostScript
Эти три драйвера поддерживают большинство устройств печати, которые пользователи могут приобрести сегодня. Необходимо написать драйвер принтера только в том случае, если устройство печати несовместимо с соответствующим драйвером, предоставленным корпорацией Майкрософт. Вы можете поддерживать большинство новых принтеров, просто добавив файл данных принтера в один из предоставленных Корпорацией Майкрософт драйверов. Устройства, для которых может потребоваться новый драйвер, включают те, которые содержат акселераторы рисования оборудования, контролируемые собственной последовательностью команд.
В этом разделе содержатся следующие разделы, описывающие архитектуру печати Windows.