XPS-спулинг
XPS-спулинг — это технология обработки заданий на печать в операционных системах семейства Microsoft Windows, при которой данные, подготовленные для вывода на печатающее устройство, временно сохраняются на жёстком диске (в спуле) в формате XPS (XML Paper Specification) перед отправкой на принтер. Данный механизм является альтернативой традиционному методу спулинга, основанному на использовании метафайлов Windows (EMF), и предназначен для повышения надёжности и точности вывода сложных документов, содержащих векторную графику, прозрачность и шрифты.
История и предпосылки появления
Технология XPS-спулинга была внедрена корпорацией Microsoft вместе с выходом операционной системы Windows Vista (2006 год). Её появление было тесно связано с разработкой формата XPS, который позиционировался как открытый, аппаратно-независимый формат документов, конкурирующий с PDF (Adobe). Основной целью было создание единого конвейера обработки документов — от приложения до принтера — без промежуточных преобразований, которые могли бы исказить внешний вид страницы.
До появления XPS-спулинга в Windows использовался преимущественно спулинг через EMF (Enhanced Metafile). При этом приложение передавало системе команды рисования в виде метафайла, который затем интерпретировался драйвером принтера. Этот подход имел ряд недостатков:
- Зависимость от качества драйвера: некорректная интерпретация метафайлов могла приводить к ошибкам печати.
- Проблемы с поддержкой сложной графики: прозрачность, градиенты и эффекты сглаживания часто искажались или не выводились вовсе.
- Отсутствие гарантии точного совпадения экранного и печатного отображения (WYSIWYG — «What You See Is What You Get»).
XPS-спулинг был призван решить эти проблемы, используя формат XPS как единый язык описания страниц на всех этапах — от создания документа в приложении до его вывода на принтер.
Принцип работы
Процесс XPS-спулинга включает несколько последовательных этапов:
- Формирование XPS-файла. Приложение (например, Microsoft Word или Internet Explorer) генерирует документ в формате XPS. Этот формат представляет собой ZIP-архив, содержащий XML-разметку страниц, векторную и растровую графику, шрифты и метаданные.
- Сохранение в спул. Сформированный XPS-файл помещается в очередь печати — специальную папку на жёстком диске (обычно
%SystemRoot%\System32\spool\PRINTERS\). Файл сохраняется целиком, без предварительной обработки драйвером. - Обработка драйвером. Драйвер принтера, поддерживающий XPS-спулинг, получает готовый XPS-файл. Он преобразует его в команды, понятные конкретному печатающему устройству (например, в PCL или PostScript). Поскольку XPS-файл уже содержит всю информацию о странице, драйверу не требуется самостоятельно интерпретировать команды рисования — он лишь транслирует готовые данные.
- Вывод на печать. После обработки драйвер отправляет сформированный поток данных на принтер.
Ключевое отличие от EMF-спулинга заключается в том, что при XPS-спулинге все сложные графические операции (прозрачность, градиенты, шрифты OpenType) уже разрешены на этапе создания XPS-файла. Драйвер получает окончательное описание страницы, что снижает риск ошибок.
Преимущества и недостатки
Преимущества
- Высокая точность вывода. Формат XPS обеспечивает точное совпадение экранного и печатного изображения благодаря встроенной поддержке векторной графики, прозрачности и цветовых профилей ICC.
- Надёжность. Снижение нагрузки на драйвер принтера уменьшает вероятность сбоев, вызванных некорректной интерпретацией команд.
- Поддержка современных графических возможностей. Эффекты, недоступные при EMF-спулинге (например, полупрозрачные объекты), корректно выводятся на печать.
- Упрощение разработки драйверов. Производителям принтеров достаточно реализовать поддержку XPS-фильтра, а не сложный интерпретатор метафайлов.
Недостатки
- Увеличение размера спул-файлов. XPS-файлы могут занимать значительно больше места на диске, чем EMF-метафайлы, особенно при печати документов с большим количеством растровых изображений.
- Требования к производительности. Генерация и обработка XPS-файлов требует больше вычислительных ресурсов (процессора и оперативной памяти), что может замедлить печать на старых компьютерах.
- Зависимость от поддержки драйвера. Технология эффективна только при наличии драйвера, специально разработанного для XPS-спулинга (XPSDrv). При использовании старого драйвера Windows автоматически переключается на EMF-спулинг, что нивелирует преимущества.
- Ограниченная совместимость. Некоторые приложения, особенно сторонние, могут не поддерживать генерацию XPS-файлов, что делает использование технологии невозможным.
Настройка и использование
В операционных системах Windows Vista, 7, 8, 10 и 11 пользователь может выбирать тип спулинга для каждого принтера. Настройка осуществляется через свойства принтера:
- Открыть «Панель управления» → «Устройства и принтеры».
- Выбрать нужный принтер, нажать правой кнопкой мыши → «Свойства принтера».
- Перейти на вкладку «Дополнительно».
- В разделе «Спулинг» выбрать один из вариантов:
- «Начать печать после завершения спулинга» — документ полностью сохраняется в спуле, затем отправляется на печать.
- «Начать печать немедленно» — печать начинается сразу после помещения первой страницы в спул (ускоряет процесс, но требует больше ресурсов).
- Для включения XPS-спулинга необходимо, чтобы драйвер принтера поддерживал эту технологию. Если драйвер не поддерживает XPS, соответствующий пункт в настройках будет отсутствовать.
В Windows 10 и 11 Microsoft постепенно отказывается от активного продвижения XPS-спулинга в пользу более современной технологии Print Support App (PSA), которая позволяет использовать универсальные драйверы на основе протокола IPP (Internet Printing Protocol). Однако XPS-спулинг остаётся доступным для обратной совместимости.
Сравнение с другими технологиями спулинга
| Характеристика | EMF-спулинг | XPS-спулинг | RAW-спулинг |
|---|---|---|---|
| Формат данных | Метафайл (EMF) | XML Paper Specification (XPS) | Команды принтера (PCL, PostScript) |
| Обработка графики | Интерпретация драйвером | Предварительно разрешена | Не требуется (данные готовы) |
| Размер спул-файла | Небольшой | Средний или большой | Зависит от сложности документа |
| Нагрузка на CPU | Низкая | Средняя | Минимальная |
| Точность вывода | Средняя | Высокая | Высокая (зависит от приложения) |
| Совместимость | Широкая | Требует XPS-драйвера | Узкая (только для конкретного принтера) |
RAW-спулинг, в отличие от XPS и EMF, не использует промежуточный формат — приложение сразу отправляет команды на языке принтера. Этот метод наиболее быстрый, но требует, чтобы приложение «знало» язык конкретного печатающего устройства.
Интересные факты
- Формат XPS был включён в стандарт ECMA-388 (Ecma International) в 2009 году, что сделало его открытым стандартом. Однако широкого распространения за пределами экосистемы Microsoft он не получил.
- В Windows 8 и более поздних версиях Microsoft встроила средство просмотра XPS-документов (XPS Viewer), которое позволяет открывать и печатать файлы XPS без установки дополнительного ПО.
- XPS-спулинг может быть отключён через групповые политики или реестр, если администратору требуется принудительно использовать EMF-спулинг для совместимости со старым оборудованием.
- Несмотря на то, что XPS-спулинг был разработан для повышения качества печати, многие пользователи и администраторы отмечают, что на практике разница между EMF и XPS-спулингом заметна только при печати документов со сложной графикой (например, презентаций PowerPoint с эффектами прозрачности).
Источники
- Документация Microsoft Windows по архитектуре печати (Print Architecture).
- Спецификация формата XML Paper Specification (XPS) — ECMA-388.
- Материалы TechNet по настройке спулинга печати в Windows.
- Статьи журнала «Windows IT Pro» (русскоязычное издание) о сравнении EMF и XPS-спулинга.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →