← На главную
Подключение бюджетных чековых термопринтеров (таких как MPRINT G58 и аналогичных POS-58) к компьютеру через COM-порт или USB нередко преподносит неприятный сюрприз: встроенный аппаратный тест устройства печатается идеально четко и ярко, однако при выводе пробной страницы Windows или чека из «1С:Управление торговлей» текст оказывается едва заметным. Разберем физические и программные причины такого поведения, а также рассмотрим пошаговые способы исправления дефекта.
В чем причина разницы между самотестом и печатью из системы?
Проанализируем механику работы термопринтера. При печати аппаратного самотеста (Self-Test) принтер использует собственные встроенные шрифты из микросхемы ПЗУ. Термоголовка устройства активирует нагревательные элементы по жестко заданному в прошивке алгоритму: импульс нагрева имеет достаточную длительность, точки формируются со стопроцентным заполнением черным цветом.
Когда мы отправляем документ на печать стандартным способом через драйвер Windows или табличный документ ТабличныйДокумент в 1С, печать переходит в графический растровый режим. В этом режиме возникают следующие проблемы:
- Растеризация и полутоновое сглаживание (Dithering): Windows применяет алгоритмы экранного сглаживания текста (ClearType), передавая границы букв оттенками серого. Монохромный драйвер чекового принтера преобразует эти полутона в диффузную сетку микроточек. В результате края букв состоят из редких точек, которые термоголовка попросту не успевает прогреть на термобумаге при движении ленты.
- Повышенное энергопотребление в растровом режиме: печать сплошного графического полотна требует одновременного включения значительно большего числа термоэлементов, чем посимвольный вывод. Если блок питания принтера имеет просадку под нагрузкой, напряжения не хватает для полноценного нагрева.
- Приоритет прошивки над драйвером: у многих азиатских термопринтеров параметры плотности (Darkness) и скорости (Speed), выставленные в графическом драйвере Windows, игнорируются микропрограммой самого устройства.
Способ 1. Настройка параметров драйвера и отключение полутонов
Посмотрим на базовые настройки драйвера принтера в операционной системе. Наша задача — заставить систему отказаться от сглаживания и печатать чистым монохромом.
- Перейдем в системную панель управления в раздел Устройства и принтеры.
- Откроем свойства чекового принтера и перейдем во вкладку Параметры печати (или Printing Preferences).
- Найдем параметры управления графикой: режим передачи полутонов (параметр
Dithering) переключим со значений Halftone или Error Diffusion в положение None, Threshold (порог) либо выберем пункт «Печатать весь текст черным».
- В параметрах термоэлементов найдем регулировку насыщенности (
Darkness или Density) и установим ее на максимальное значение, а скорость протяжки (Print Speed) снизим до минимума, чтобы дать головке время на прогрев бумаги.
Способ 2. Корректировка макета чека в 1С
Если печать ведется через штатный механизм табличных документов 1С, оптимизируем печатную форму под особенности разрешения 203 dpi термопринтера:
- Откроем макет чека в конфигураторе или через редактирование внешней печатной формы.
- Выделим область ячеек с текстом и установим шрифт Полужирный (Bold). Плотный жирный шрифт компенсирует микроточечную растеризацию Windows.
- Заменим декоративные гарнитуры и шрифты с засечками (Times New Roman) на четкие рубленые шрифты без сглаживания (Arial, Tahoma). Кегль шрифта не должен быть слишком мелким.
Способ 3. Замена драйвера на совместимый
Родные драйверы с диска производителя для принтеров формата G58/POS-58 часто содержат ошибки в алгоритмах растеризации растра. На практике отличный результат показывает замена комплектного драйвера на сторонний универсальный драйвер термопечати:
- Удалим текущий проблемный драйвер из системы через Свойства сервера печати.
- Установим универсальный драйвер для POS-терминалов линейки POS-58 (например, специализированные универсальные драйверы термопечати от Seagull Scientific или универсальные сборки драйверов кассовых аппаратов).
- При установке укажем правильный порт подключения (в нашем случае COM-порт) и синхронизируем скорость передачи данных (Baud Rate, например 9600 или 19200).
Способ 4. Переход на текстовую печать (ESC/POS)
Если добиться качественной графической печати через COM-порт не удается, наиболее надежным и быстрым вариантом является перевод чекового принтера на аппаратный текстовый режим при помощи команд ESC/POS. В этом случае принтер будет печатать так же ярко и четко, как при самотесте.
Главная сложность текстового режима — правильная поддержка русских букв, так как по умолчанию принтер настроен на латиницу. Настроим аппаратную кодировку:
- С помощью сервисной утилиты производителя принтера (Configuration Utility) подключимся к устройству через соответствующий COM-порт.
- Установим в энергонезависимой памяти принтера русскую кодовую страницу (Code Page 866 или Windows-1251). В некоторых моделях кодовая страница переключается положением DIP-переключателей на нижней крышке корпуса.
- В операционной системе настроим принтер с помощью стандартного драйвера Generic / Text Only (Только текст).
- При формировании чека в 1С отправляем текстовые строки и ESC/POS-последовательности напрямую в порт или на текстовый принтер. Текст в кодировке CP866 выводится мгновенно и с максимальной заводской контрастностью.