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

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 →