14. Архитектура системы печати
Интерфейс Win32 GDI API задумывался как аппаратно-независимый API, способный выводить прямые, кривые, растровые изображения и текст на любом графическом устройстве, для которого имеется соответствующий драйвер. Однако принтеры составляют особый класс графических устройств и заслуживают особого внимания. Ниже перечислены важнейшие отличия принтеров от других графических устройств.
Пользователи обычно печатают не одну страницу, а целый документ, задавая при этом специальные параметры — качество печати, размер бумаги, режим двусторонней печати, количество копий и т. д. GDI содержит специальный принтерный API для постраничной печати, а также структуру DEVMODE для определения всех параметров печати. Такие аспекты, как разбиение документа на страницы и выбор размеров полей, находятся под контролем приложения.
Принтер обычно обладает гораздо большим разрешением (от 300 до 2400 dpi), чем экран монитора (от 75 до 120 dpi). Это приводит к увеличению объема обрабатываемых данных и возможной нехватке памяти для одновременного воспроизведения всей страницы. Механизм GDI позволяет драйверу принтера принимать данные небольшими частями (полосами) посредством спулинга EMF (расширенных метафайлов).
Принтер обычно работает медленно, совместно используется несколькими участниками рабочей группы и не всегда подключается к локальному компьютеру. Спулер системы Windows следит за тем, чтобы приложения как можно раньше завершали свою часть вывода, чтобы принтер мог обслуживать несколько заданий печати и чтобы группы пользователей совместно работали с принтером в локальном окружении, по сети и даже по адресу URL.
Принтеры «говорят» на разных языках — PCL (принтеры HP), ESC/P (принтеры Epson), PostScript (принтеры с поддержкой PostScript) и HPGL (плоттеры). В этом отношении они принципиально отличаются от видеоадаптеров, работающих с растровыми изображениями. Microsoft предоставляет несколько «универсальных» драйверов, которые могут настраиваться производителями оборудования в соответствии со специфическими требованиями их устройств.
В архитектуре печати Windows NT/2000 центральное место занимает спулер печати, поддерживаемый GDI и драйвером принтера. Чтобы создать новое задание печати, пользовательское приложение обращается к точкам входа API, экспортируемым GDI и DLL клиента спулера. GDI и спулер (с помощью драйвера принтера) обрабатывают задание печати и посылают данные на устройство создания жестких копий, будь то лазерный или струйный принтер, плоттер или факс.
Графические команды передаются GDI в виде вызовов GDI API, которые обычно сохраняются в расширенном метафайле (EMF). EMF и другой файл с текущими параметрами печати передаются системному процессу службы спулера (spools.exe). На этой стадии печать документа на уровне приложения завершается. Пользователь может продолжить работу с приложением, а дальнейшая печать документа будет осуществляться спулером. Сначала спулер направляет задание провайдеру печати, который обслуживает конкретный принтер. Локальные принтеры обслуживаются локальным провайдером печати (localspl.dll), а сетевые принтеры обслуживаются провайдером печати сетей Windows (win32spl.dll). Если принтер подключен к удаленному компьютеру, то файлы спулера пересылаются на удаленный компьютер сетевыми службами ОС, где они поступают к спулеру в виде задания для локального компьютера.
- «Компьютерная графика»
- 1. Графический процессор. Структура графического процессора g80
- 2. Цифровой сигнальный процессор
- 3. Особенности архитектуры
- 4. Устройство цсп
- 5. Классификация цсп по архитектуре
- 6. Кластеры процессоров цифровой обработки
- 7. Аппаратно-программный комплекс vliw
- 9. Компоненты графической системы Windows
- 10. Компоненты режима ядра
- 11. Архитектура графической системы Windows (gdi)
- 12. Архитектура directx
- 13. Архитектура directdraw
- 14. Архитектура системы печати
- 15. Ве́кторная гра́фика
- 16. Растровое изображение
- 17. Цветовая модель rgb
- 18. Цветовая модель cmyk
- 19. Цветовая модель hsv и hsl
- 20. Цифровая обработка сигналов
- 21. Преобразования Фурье
- 22. Основы opengl
- 23. Графический конвейер OpenGl
- 24. Организация OpenGl. Сопутствующие api
- 25. Архитектура Windows Presentation Foundation
- 26. Организация шейдеров
- 27. Игровой движок
- 28. Графический движок
- 29. Воксел. Доксел
- 30. Спрайт
- 32. Графический ускоритель Intel gma
- 33. Графическое ядро Core i5
- 34. Целочисленный алгоритм Брезенхема
- 35. Алгоритм Брезенхема для генерации окружности
- 36. Буферы кадра
- 37. Точки и линии. Преобразование точек и линий
- 38. Полярная и декартовая система координат
- 39. Трехмерные преобразования
- 40. Трехмерный сдвиг. Трехмерные вращения.
- 41. Закраска Гуро
- 42. Закраска Фонга