Открыть сервис

RAW-спулинг

RAW-спулинг (от англ. RAW — «сырой», «необработанный» и spooling — «загрузка на катушку», «буферизация») — это механизм в операционных системах, обеспечивающий передачу данных от прикладной программы к устройству вывода (например, принтеру) в обход стандартных драйверов и системных очередей печати. В отличие от обычного спулинга, при котором данные обрабатываются драйвером устройства и преобразуются в команды, понятные конкретной модели оборудования, RAW-спулинг передаёт данные в исходном, неинтерпретированном виде, полностью возлагая задачу форматирования и управления на прикладное программное обеспечение.

История и предпосылки возникновения

Концепция спулинга (Simultaneous Peripheral Operations On-Line) возникла в 1950-х годах в связи с необходимостью эффективного использования медленных периферийных устройств (перфораторов, принтеров) в многозадачных вычислительных системах. Традиционный спулинг предполагал, что операционная система принимает данные от программы, помещает их в очередь (спул-файл или буфер) и затем, по мере готовности устройства, передаёт их драйверу, который преобразует данные в команды для конкретного оборудования.

С развитием графических интерфейсов и сложных издательских систем в 1980-х — 1990-х годах возникла потребность в более гибком управлении процессом печати. Прикладные программы (Adobe Photoshop, CorelDRAW, AutoCAD) начали самостоятельно генерировать готовые к печати потоки данных, часто в форматах, специфичных для конкретных моделей принтеров (например, PostScript, PCL, HP-GL). В таких случаях стандартная обработка драйвера была избыточной или даже вредной, так как могла исказить уже подготовленный файл. Это привело к появлению RAW-спулинга как опции в настройках печати операционных систем.

Принцип работы

При использовании RAW-спулинга процесс передачи данных выглядит следующим образом:

  1. Прикладная программа (например, графический редактор) формирует полностью готовый для печати файл, включающий все команды управления устройством (разрешение, цветовой профиль, тип бумаги, команды подачи листа).
  2. Программа отправляет этот файл в подсистему печати операционной системы, указывая режим RAW.
  3. Операционная система не вызывает драйвер устройства для преобразования данных. Вместо этого она помещает полученный файл в очередь печати (спул-файл) в неизменном виде.
  4. Когда устройство освобождается, данные из спул-файла передаются непосредственно на принтер через порт (USB, LPT, сетевой интерфейс) без какой-либо дополнительной обработки.
  5. Принтер получает команды, уже сгенерированные прикладной программой, и выполняет их.

Ключевое отличие от обычного спулинга (EMF-спулинга в Windows) заключается в том, что при стандартном режиме операционная система сначала обрабатывает данные с помощью драйвера, создавая промежуточный формат (например, Enhanced Metafile — EMF), и только затем передаёт их на устройство. RAW-спулинг исключает этот промежуточный этап.

Реализация в различных операционных системах

Microsoft Windows

В операционных системах семейства Windows RAW-спулинг реализован как одна из опций в свойствах принтера. Пользователь может выбрать режим передачи данных в настройках порта или драйвера. В Windows 9x/Me RAW-спулинг был доступен через настройки «Свойства принтера» → «Подробнее» → «Настройка порта». В Windows NT/2000/XP и более новых версиях (Windows 7, 10, 11) опция находится в разделе «Свойства принтера» → «Дополнительно» → «Обработка заданий» или через «Свойства порта». При активации RAW-спулинга система перестаёт использовать стандартный процессор печати (WinPrint) и передаёт данные напрямую.

Unix-подобные системы (Linux, macOS)

В системах на базе Unix и Linux RAW-спулинг реализован через систему печати CUPS (Common Unix Printing System). В CUPS RAW-режим используется по умолчанию для некоторых типов устройств (например, PostScript-принтеров) или может быть явно задан в конфигурационном файле /etc/cups/printers.conf. В macOS, основанной на Darwin и использующей CUPS, RAW-спулинг также доступен, но обычно применяется только для специализированного программного обеспечения (например, профессиональных RIP-систем).

Преимущества и недостатки

Преимущества

  • Сохранение точности данных: Прикладная программа может передать на принтер данные в точности такими, какими они были созданы, без риска перекодирования или потери информации драйвером.
  • Ускорение передачи: Исключается этап обработки драйвером, что может сократить время подготовки задания к печати, особенно при работе с большими файлами.
  • Поддержка нестандартных форматов: RAW-спулинг позволяет использовать принтеры с проприетарными языками описания страниц, которые не поддерживаются стандартными драйверами ОС.
  • Совместимость с RIP-системами: В профессиональной полиграфии RAW-спулинг необходим для работы с растровыми процессорами (RIP), которые берут на себя управление печатью.

Недостатки

  • Потеря универсальности: Задание, подготовленное для одной модели принтера, не может быть напечатано на другой без повторной обработки.
  • Отсутствие контроля со стороны ОС: Операционная система не может вмешаться в процесс печати (например, изменить ориентацию страницы, масштаб или количество копий) после отправки задания.
  • Зависимость от прикладного ПО: Качество печати полностью определяется возможностями программы-отправителя; ошибки в генерации данных (неправильный цветовой профиль, неверные команды) приводят к браку.
  • Сложность диагностики: При возникновении проблем с печатью в RAW-режиме стандартные средства диагностики ОС часто неэффективны, так как не «понимают» формат данных.

Применение

RAW-спулинг широко используется в следующих областях:

  • Профессиональная полиграфия и типографии: При печати на высокоточных устройствах (например, HP Indigo, Xerox iGen, Heidelberg) с использованием специализированных RIP-систем. Программы верстки (Adobe InDesign, QuarkXPress) генерируют готовые PostScript- или PDF-файлы, которые передаются на RIP через RAW-спулинг.
  • Фотопечать и широкоформатная печать: В системах управления цветом (Color Management) RAW-спулинг позволяет передавать на принтер данные с точными ICC-профилями, минуя системные драйверы, которые могут исказить цветопередачу.
  • Промышленная маркировка и этикетирование: Специализированные принтеры для печати штрихкодов, этикеток и упаковки (Zebra, Sato, Datamax) часто используют собственные языки команд (ZPL, EPL, SATO). Прикладное ПО генерирует команды на этих языках, и RAW-спулинг обеспечивает их прямую передачу.
  • Работа с устаревшим оборудованием: Для старых принтеров (например, матричных или лазерных, выпущенных до массового внедрения универсальных драйверов), которые требуют строго определённых управляющих последовательностей, RAW-спулинг часто является единственным рабочим способом печати.

Критика и ограничения

Специалисты отмечают, что RAW-спулинг снижает уровень абстракции, который обеспечивает операционная система. В корпоративных сетях это может создавать проблемы с централизованным управлением печатью (например, невозможность применения политик безопасности, ограничения на количество страниц или ведение журнала заданий). Кроме того, RAW-спулинг менее устойчив к сбоям: если принтер не поддерживает переданный формат данных, задание может быть полностью потеряно без возможности автоматического восстановления.

В современных операционных системах (Windows 10/11, macOS Ventura и новее) использование RAW-спулинга по умолчанию ограничено. Разработчики Microsoft и Apple рекомендуют применять его только в случаях, когда это явно требуется прикладным программным обеспечением, и предупреждают о возможных проблемах с совместимостью при обновлении драйверов.

Источники

  • Microsoft Docs. «Printer Spooling and RAW Data». Windows Hardware Developer Documentation.
  • CUPS Software Manual. «Raw Printing». OpenPrinting.org.
  • Adobe Systems. «PostScript Language Reference Manual». 3rd Edition, 1999.
  • HP Developer Resources. «PCL 5 Printer Language Technical Reference Manual».
  • ГОСТ Р ИСО/МЭК 10175-2001. «Информационная технология. Обработка текста. Спулинг документов».

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →