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


Поддержка API Win32 для возможностей печати

Внимание

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

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

Подсистема печати Windows Vista обеспечивает поддержку совместимости, которая позволяет приложениям Windows Presentation Foundation (WPF) использовать драйверы печати на основе GDI и позволяет приложениям на основе Microsoft Win32 использовать драйверы печати XPSDrv. Эта совместимость обеспечивается с помощью слоя программных шима. Шимы — это программные модули, выполняющие операции преобразования данных, чтобы в противном случае несовместимое программное обеспечение иначе может взаимодействовать. На следующем рисунке показаны пути к данным этой реализации для возможностей печати.

diagram illustrating print capabilities data flows.схема, иллюстрирующая возможности печати потоков данных.

Драйверы печати XPSDrv и драйверы на основе GDI версии 3 поддерживают функцию DrvDeviceCapabilities. Когда приложение Win32 вызывает DrvDeviceCapabilities или функцию GetDevCap, подсистема печати вызовет DrvDeviceCapabilities для сбора сведений о возможностях устройства из драйвера печати.

Когда приложение WPF запрашивает документ PrintCapabilities из драйвера печати, подсистема печати выполняет одно из следующих действий:

  • Если драйвер печати поддерживает интерфейс IPrintTicketProvider, подсистема печати запрашивает драйвер печати для документа PrintCapabilities с помощью метода IPrintTicketProvider::GetPrintCapabilities.

  • Если драйвер печати не поддерживает интерфейс IPrintTicketProvider, диспетчер билетов print запрашивает функцию DrvDeviceCapabilities драйвера печати и использует возвращенную информацию для создания документа PrintTicket, возвращаемого приложению.

Дополнительные сведения о том, как интерфейс IPrintTicketProvider поддерживается драйверами печати Майкрософт, см. в статье "Драйвер принтера" и "Подключаемый интерфейс" в Windows Vista.