Skip to content

fjk-dev/print-server

Repository files navigation

MXW01 Web Terminal — печать на термопринтере из браузера

Веб-терминал для печати на портативных Bluetooth-термопринтерах (MXW01, Lefuxin, ESC/POS).
Поддерживает Markdown, QR-коды, вставку изображений, настройку яркости/контраста и дизеринг.

Поддерживаемые принтеры

  • MXW01 / Lefuxin (родной протокол)
  • ESC/POS (экспериментально)
  • Универсальный режим автоопределения

Возможности

  • Редактор с Markdown (# заголовок, жирный, [C] центрирование, [M] моноширинный шрифт)
  • QR-коды через [QR:текст]
  • Загрузка изображений (файл, URL, буфер обмена)
  • Перетаскивание картинок на превью
  • Печать через Web Bluetooth (Chrome, Edge, Opera)
  • Локальный сервер для разработки (Node.js)

Установка и запуск

1. Клонируйте репозиторий

git clone https://github.com/fjk-dev/print-server.git cd print-server

2. Установите зависимости сервера

npm init -y npm install express http-proxy-middleware

3. Запустите сервер

node server.js

4. Откройте в браузере

http://localhost:3000

Сервер нужен для удобной разработки и работы загрузки изображений по URL (прокси для обхода CORS).
Можно открывать index.html напрямую, но тогда изображения по URL будут работать только при наличии loadimg.php.

Использование

Подключение принтера

  1. Выберите тип драйвера (MXW01, ESC/POS или Авто).
  2. Нажмите ПОДКЛЮЧИТЬ – браузер запросит разрешение на Bluetooth.
  3. Выберите ваш принтер из списка.

Редактирование чека

  • Markdown: # Заголовок, ## Подзаголовок, жирный, курсив, * пункт, > цитата.
  • Центрирование: [C] в начале строки.
  • Моноширинный шрифт: [M].
  • Горизонтальные линии: ---, ===, ~~~.
  • Блоки: [BOX] ... [/BOX] (опционально [BOX:dots] для пунктира).
  • QR-код: [QR:текст].
  • Изображение: [IMG:id|режим|x|y|поворот|масштаб] (режим: 0 – в потоке, 1 – свободное перемещение).

Работа с изображениями

  • Загрузите файл через кнопку или вставьте из буфера (Ctrl+V) – картинка появится в галерее.
  • Кликните на миниатюру в галерее, чтобы выделить изображение.
  • На панели справа настройте яркость, контрастность и метод дизеринга – превью обновится автоматически.
  • Для свободного перемещения снимите галочку «В потоке» и перетащите картинку мышью.

Печать

  • После подключения принтера нажмите ПЕЧАТЬ.

Технические детали

  • Ширина печати: 384 пикселя (стандарт для 58-мм термопринтеров).
  • Формат данных: монохромный растр (1 бит/пиксель), упакованный в байты.
  • Дизеринг: Ordered (по умолчанию), Floyd-Steinberg, простой порог.
  • Web Bluetooth: требует HTTPS или localhost (Chrome, Edge, Opera).

Известные ограничения

  • На iOS (Safari) Web Bluetooth не работает – используйте браузер Bluefy.
  • Для загрузки изображений по URL сервер должен иметь доступ к интернету (прокси /loadimg).

Лицензия

MIT

About

Локальный сервер Node.js для печати на термопринтере MXW01 через веб-интерфейс.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors