Веб-терминал для печати на портативных Bluetooth-термопринтерах (MXW01, Lefuxin, ESC/POS).
Поддерживает Markdown, QR-коды, вставку изображений, настройку яркости/контраста и дизеринг.
- MXW01 / Lefuxin (родной протокол)
- ESC/POS (экспериментально)
- Универсальный режим автоопределения
- Редактор с Markdown (# заголовок, жирный, [C] центрирование, [M] моноширинный шрифт)
- QR-коды через [QR:текст]
- Загрузка изображений (файл, URL, буфер обмена)
- Перетаскивание картинок на превью
- Печать через Web Bluetooth (Chrome, Edge, Opera)
- Локальный сервер для разработки (Node.js)
git clone https://github.com/fjk-dev/print-server.git
cd print-server
npm init -y
npm install express http-proxy-middleware
node server.js
http://localhost:3000
Сервер нужен для удобной разработки и работы загрузки изображений по URL (прокси для обхода CORS).
Можно открывать index.html напрямую, но тогда изображения по URL будут работать только при наличии loadimg.php.
- Выберите тип драйвера (MXW01, ESC/POS или Авто).
- Нажмите ПОДКЛЮЧИТЬ – браузер запросит разрешение на Bluetooth.
- Выберите ваш принтер из списка.
- 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