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


Архитектура драйвера принтера

Внимание

Современная платформа печати — это предпочтительный способ взаимодействия с принтерами 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

Драйвер Microsoft Plotter

Эти три драйвера поддерживают большинство устройств печати, которые пользователи могут приобрести сегодня. Необходимо написать драйвер принтера только в том случае, если устройство печати несовместимо с соответствующим драйвером, предоставленным корпорацией Майкрософт. Вы можете поддерживать большинство новых принтеров, просто добавив файл данных принтера в один из предоставленных Корпорацией Майкрософт драйверов. Устройства, для которых может потребоваться новый драйвер, включают те, которые содержат акселераторы рисования оборудования, контролируемые собственной последовательностью команд.

В этом разделе содержатся следующие разделы, описывающие архитектуру печати Windows.

Драйверы принтера XPSDrv

Драйверы принтера GDI

Технологии печати билетов и печати

Написание 64-разрядных драйверов принтера