ESC/P
ESC/P (Epson Standard Code for Printers) — это система команд, разработанная компанией Epson для управления матричными и струйными принтерами. ESC/P представляет собой проприетарный язык описания страниц, основанный на передаче управляющих последовательностей, начинающихся с символа Escape (ESC, код 27 в десятичной системе). Данный стандарт был введён в начале 1980-х годов и стал де-факто отраслевым стандартом для матричных принтеров, широко используемых в офисах, банках и на производстве до появления лазерных принтеров. ESC/P позволяет задавать такие параметры печати, как шрифт, размер символов, межстрочный интервал, форматирование текста, а также управлять движением бумаги и каретки. Впоследствии компания Epson разработала расширенную версию — ESC/P2, которая добавила поддержку растровой графики и более сложных шрифтов.
История
Разработка и внедрение
В конце 1970-х годов компания Epson (в то время — подразделение Seiko Group) выпустила первый в мире матричный принтер для персональных компьютеров — Epson MX-80. Для управления этим устройством был разработан простой набор команд, который впоследствии эволюционировал в ESC/P. Первая версия стандарта была представлена в 1981 году вместе с принтером Epson FX-80. Ключевой особенностью стала возможность управления принтером через последовательные коды, начинающиеся с Escape-символа, что позволяло программно задавать параметры печати без необходимости ручной настройки.
Распространение и конкуренция
В 1980-х и начале 1990-х годов ESC/P стал доминирующим стандартом для матричных принтеров. Многие производители, включая IBM, Panasonic, Citizen и Star Micronics, выпускали принтеры, совместимые с ESC/P, что способствовало его широкому распространению. В то же время конкурирующие компании, такие как Hewlett-Packard (HP) и Canon, разрабатывали собственные языки управления (например, PCL для HP). Однако ESC/P сохранял популярность благодаря простоте, низкой стоимости реализации и совместимости с большим количеством программного обеспечения, включая текстовые редакторы (WordStar, Lotus 1-2-3) и операционные системы (MS-DOS, Windows).
Переход к ESC/P2
В 1990 году Epson представила расширенную версию стандарта — ESC/P2. Она была разработана для поддержки струйных принтеров и более сложных задач, таких как печать растровых изображений, масштабируемых шрифтов (TrueType) и цветной печати. ESC/P2 сохранил обратную совместимость с оригинальным ESC/P, что позволяло использовать старые драйверы на новых устройствах. С появлением лазерных принтеров и стандарта PostScript в 1990-х годах значение ESC/P постепенно снизилось, однако он остаётся востребованным в специализированных областях, таких как печать чеков, этикеток и штрих-кодов.
Архитектура и принцип работы
Команды и управляющие последовательности
ESC/P основан на передаче байтовых последовательностей, где каждая команда начинается с символа Escape (ESC, код 27). После ESC следует один или несколько байтов, определяющих конкретное действие. Например:
- ESC @ — инициализация принтера (сброс настроек).
- ESC A n — установка межстрочного интервала (n — количество точек).
- ESC P — выбор шрифта (обычно Courier).
- ESC E — включение полужирного шрифта.
- ESC 4 — включение курсива.
Команды могут быть однобайтовыми (например, FF — перевод страницы) или многобайтовыми, включая параметры в виде чисел. Для управления графикой используются команды, такие как ESC K (печать растрового изображения в один проход) и ESC L (печать в два прохода).
Формат данных
Принтер интерпретирует все поступающие данные как поток байтов. Обычные символы (коды 32-126) печатаются как текст, а управляющие коды (0-31) и Escape-последовательности изменяют режимы работы. ESC/P поддерживает два основных режима: текстовый (для печати символов) и графический (для печати изображений). В текстовом режиме принтер использует встроенные шрифты, а в графическом — растровые данные, передаваемые по строкам.
Обработка ошибок
При получении некорректной команды или неподдерживаемого параметра принтер игнорирует её или переходит в состояние ошибки, что может быть индицировано светодиодами или звуковым сигналом. ESC/P не предусматривает механизма подтверждения получения команд, что делает его менее надёжным по сравнению с современными протоколами, но упрощает реализацию.
Версии и расширения
ESC/P (оригинальная версия)
Оригинальная версия поддерживала:
- Печать текста с использованием шрифтов Courier, Elite и пропорциональных шрифтов.
- Управление межстрочным интервалом (от 1/6 до 1/216 дюйма).
- Управление движением бумаги (подача строки, перевод страницы).
- Поддержка до 9 иголок в печатающей головке (для матричных принтеров).
- Базовую графику (печать растровых изображений с разрешением до 240 dpi).
ESC/P2
ESC/P2, представленный в 1990 году, добавил:
- Поддержку масштабируемых шрифтов (TrueType) и векторной графики.
- Печать цветных изображений (для струйных принтеров).
- Улучшенное разрешение (до 1440 dpi для струйных моделей).
- Команды для управления качеством печати (черновик, нормальное, высокое).
- Поддержка двусторонней печати (дуплекс).
Совместимость с другими стандартами
ESC/P стал основой для ряда других протоколов, включая:
- IBM ProPrinter — стандарт, используемый в принтерах IBM, совместимый с ESC/P на уровне базовых команд.
- Star Micronics — собственные расширения, совместимые с ESC/P для чековых принтеров.
- ESC/POS — специализированная версия для POS-терминалов (кассовых аппаратов), разработанная Epson в 1990-х годах. ESC/POS отличается поддержкой печати чеков, штрих-кодов и управления денежными ящиками.
Применение
Офисная и промышленная печать
ESC/P широко использовался в офисах для печати документов, отчётов и накладных. В промышленности матричные принтеры с ESC/P применялись для печати на многослойных бланках (например, авиабилеты, квитанции) и этикетках. Благодаря низкой стоимости расходных материалов (лента) и высокой надёжности, такие принтеры оставались популярными до середины 2000-х годов.
Специализированные области
В настоящее время ESC/P и ESC/P2 используются в основном в:
- Чековых принтерах — для печати чеков в магазинах и ресторанах (ESC/POS).
- Этикетировочных принтерах — для печати штрих-кодов и ценников.
- Медицинском оборудовании — для печати результатов анализов и кардиограмм.
- Промышленных принтерах — для маркировки продукции.
Эмуляция и программная поддержка
Современные операционные системы (Windows, Linux, macOS) включают драйверы для принтеров, поддерживающих ESC/P. Для эмуляции ESC/P на устройствах, не имеющих аппаратной поддержки, используются программные интерпретаторы, такие как Ghostscript (с фильтром escp) или специализированные библиотеки (например, python-escpos). Эмуляция позволяет использовать старые принтеры с новым программным обеспечением или подключать их через USB-адаптеры.
Критика и ограничения
Недостатки
- Проприетарность — ESC/P является собственностью Epson, что ограничивает его использование в открытых системах без лицензирования.
- Сложность для разработчиков — из-за большого количества команд и их вариаций (в зависимости от модели принтера) написание драйверов требует значительных усилий.
- Отсутствие стандартизации — разные производители реализовывали ESC/P с отклонениями, что приводило к несовместимости некоторых команд.
- Низкая производительность — для печати сложных изображений ESC/P требует передачи больших объёмов данных, что замедляет работу по сравнению с PostScript или PCL.
Альтернативы
Основными конкурентами ESC/P являются:
- PCL (Printer Command Language) — язык Hewlett-Packard, более мощный и гибкий, но требующий больших вычислительных ресурсов.
- PostScript — язык описания страниц, используемый в профессиональной полиграфии, поддерживающий векторную графику и масштабируемые шрифты.
- PDF — универсальный формат, который может быть напрямую отправлен на принтер с поддержкой PDF.
Интересные факты
- ESC/P был одним из первых языков управления принтерами, который позволял программно переключать шрифты без остановки печати.
- В 1980-х годах ESC/P использовался в принтерах Epson MX-80, которые стали одними из самых продаваемых матричных принтеров в истории.
- ESC/POS, ответвление ESC/P, до сих пор широко применяется в кассовых аппаратах и POS-терминалах по всему миру.
- В России и странах СНГ ESC/P остаётся популярным в бюджетных чековых принтерах, таких как модели Epson TM-T20 и TM-U220.
Источники
- Epson. «ESC/P Reference Manual». Epson Corporation, 1985.
- Epson. «ESC/P2 Command Reference». Epson Corporation, 1992.
- «Printer Command Languages: ESC/P, PCL, and PostScript». Journal of Computer Documentation, 1998.
- «История развития матричных принтеров». Журнал «КомпьютерПресс», № 3, 2005.
- «ESC/POS: стандарт для POS-печати». Технический обзор Epson, 2010.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →