@thermal-label/brother-ql-node
v0.6.1
Published
Node.js USB and TCP driver for Brother QL label printers
Maintainers
Readme
@thermal-label/brother-ql-node
Node.js USB and TCP driver for Brother QL label printers.
Install
pnpm add @thermal-label/brother-ql-nodeFor image file support (PNG/JPEG), also install:
pnpm add @napi-rs/canvasQuick Start
import { openPrinter, MEDIA } from '@thermal-label/brother-ql-node';
const printer = await openPrinter();
await printer.printText('Hello QL', MEDIA[259]!);
await printer.close();Discover Printers
import { listPrinters } from '@thermal-label/brother-ql-node';
const printers = listPrinters();
console.log(printers);Print an Image
await printer.printImage('/path/to/image.png', MEDIA[259]!);Two-Color Printing (QL-800 series)
import { openPrinter, MEDIA, renderText } from '@thermal-label/brother-ql-node';
import { createBitmap } from '@mbtech-nl/bitmap';
const printer = await openPrinter();
const media = MEDIA[259]!;
const black = renderText('Hello', { scaleX: 2, scaleY: 2 });
const red = renderText('World', { scaleX: 2, scaleY: 2 });
await printer.printTwoColor(black, red, media);
await printer.close();TCP/Network Printing
import { openPrinterTcp, MEDIA } from '@thermal-label/brother-ql-node';
const printer = await openPrinterTcp('192.168.1.100');
await printer.printText('Hello Network', MEDIA[259]!);
await printer.close();Requirements
- Node.js
>=20.9.0(Node 24 LTS recommended) - Linux: add a udev rule for raw USB access without
sudo:SUBSYSTEM=="usb", ATTRS{idVendor}=="04f9", MODE="0666" @napi-rs/canvasis optional — required only for image file decoding
Supported hardware
24 devices — 3 verified · 0 partial · 15 expected · 0 unsupported · 6 unverified
| Model | Key | USB PID | Transports | Status |
| ---------------------------------------------------------------------------- | ------------ | ------- | ---------------- | ------------- |
| PT-E550W | PT_E550W | 0x2060 | USB, TCP | ⏳ unverified |
| PT-P750W | PT_P750W | 0x2062 | USB, TCP | ⏳ unverified |
| PT-P900 | PT_P900 | 0x2083 | USB | ⏳ unverified |
| PT-P900W | PT_P900W | 0x2085 | USB, TCP | ⏳ unverified |
| PT-P910BT | PT_P910BT | 0x20c7 | USB, BT SPP | ⏳ unverified |
| PT-P950NW | PT_P950NW | 0x2086 | USB, TCP | ⏳ unverified |
| QL-500 | QL_500 | 0x2013 | USB | 🔄 expected |
| QL-550 | QL_550 | 0x2016 | USB | 🔄 expected |
| QL-560 | QL_560 | 0x2018 | USB | 🔄 expected |
| QL-570 | QL_570 | 0x2019 | USB | 🔄 expected |
| QL-580N | QL_580N | 0x201b | USB, TCP | 🔄 expected |
| QL-600 | QL_600 | 0x2100 | USB | 🔄 expected |
| QL-650TD | QL_650TD | 0x201c | USB | 🔄 expected |
| QL-700 | QL_700 | 0x2042 | USB | ✅ verified |
| QL-710W | QL_710W | 0x2044 | USB, TCP | 🔄 expected |
| QL-720NW | QL_720NW | 0x2045 | USB, TCP | 🔄 expected |
| QL-800 | QL_800 | 0x209b | USB | ✅ verified |
| QL-810W | QL_810W | 0x209c | USB, TCP | 🔄 expected |
| QL-820NWBc | QL_820NWBc | 0x209d | USB, TCP, BT SPP | ✅ verified |
| QL-1050 | QL_1050 | 0x2027 | USB | 🔄 expected |
| QL-1060N | QL_1060N | 0x2028 | USB, TCP | 🔄 expected |
| QL-1100 | QL_1100 | 0x20a7 | USB | 🔄 expected |
| QL-1110NWB | QL_1110NWB | 0x20a8 | USB, TCP | 🔄 expected |
| QL-1115NWB | QL_1115NWB | 0x20ab | USB, TCP | 🔄 expected |
Click any model to open its detail page on the docs site, where engines, supported media, and verification reports live. The same data backs the interactive cross-driver table.
License
MIT © Mannes Brak
