@thermal-label/labelwriter-web
v0.6.4
Published
WebUSB browser driver for Dymo LabelWriter printers
Maintainers
Readme
@thermal-label/labelwriter-web
WebUSB browser driver for Dymo LabelWriter printers.
Browser support
| Browser | Support | | ------------- | ------------------------- | | Chrome / Edge | ✅ | | Firefox | ❌ (WebUSB not supported) | | Safari | ❌ (WebUSB not supported) |
Requires a secure context (HTTPS or localhost).
Install
npm install @thermal-label/labelwriter-webQuick start
import { requestPrinter } from '@thermal-label/labelwriter-web';
const printer = await requestPrinter();
await printer.printText('Hello, world!');
await printer.disconnect();NFC label lock (550 series)
The LabelWriter 550 series enforces NFC chip validation on Dymo-branded labels at the hardware level. This cannot be bypassed in software. Use compatible labels to avoid paper-out errors.
API
requestPrinter()
Opens a browser USB device picker filtered to known LabelWriter PIDs, then returns a WebLabelWriterPrinter.
fromUSBDevice(device)
Wraps an already-obtained USBDevice in a WebLabelWriterPrinter.
WebLabelWriterPrinter
| Method | Description |
| --------------------------------- | ------------------------------------------------ |
| getStatus() | Read printer status (1 byte for 450, 32 for 550) |
| print(bitmap, options?) | Print a raw bitmap |
| printText(text, options?) | Render text and print |
| printImage(imageData, options?) | Print from ImageData |
| printImageURL(url, options?) | Load image URL and print |
| recover() | Send error recovery sequence |
| isConnected() | Check USB connection state |
| disconnect() | Close USB connection |
Supported hardware
22 devices — 4 verified · 0 partial · 13 expected · 0 unsupported · 5 unverified
| Model | Key | USB PID | Transports | Status |
| --- | --- | --- | --- | --- |
| LabelWriter 4XL | LW_4XL | 0x001f | USB | 🔄 expected |
| LabelWriter 5XL | LW_5XL | 0x002a | USB, TCP | 🔄 expected |
| LabelWriter 300 | LW_300 | 0x0009 | USB, Serial | 🔄 expected |
| LabelWriter 310 | LW_310 | 0x0009 | USB, Serial | 🔄 expected |
| LabelWriter 330 | LW_330 | 0x0007 | USB, Serial | 🔄 expected |
| LabelWriter 330 Turbo | LW_330_TURBO | 0x0008 | USB, Serial | ✅ verified |
| LabelWriter 400 | LW_400 | 0x0019 | USB | ✅ verified |
| LabelWriter 400 Turbo | LW_400_TURBO | 0x001a | USB | 🔄 expected |
| LabelWriter 450 | LW_450 | 0x0020 | USB | 🔄 expected |
| LabelWriter 450 Duo | LW_450_DUO | 0x0023 | USB | 🔄 expected |
| LabelWriter 450 Turbo | LW_450_TURBO | 0x0021 | USB | 🔄 expected |
| LabelWriter 450 Twin Turbo | LW_450_TWIN_TURBO | 0x0022 | USB | ⏳ unverified |
| LabelWriter 550 | LW_550 | 0x0028 | USB | ✅ verified |
| LabelWriter 550 Turbo | LW_550_TURBO | 0x0029 | USB, TCP | 🔄 expected |
| LabelWriter Duo - 96 | LW_DUO_96 | 0x0017 | USB | 🔄 expected |
| LabelWriter Duo - 128 | LW_DUO_128 | 0x001d | USB | ✅ verified |
| LabelWriter EL40 | LW_EL40 | — | Serial | ⏳ unverified |
| LabelWriter EL60 | LW_EL60 | — | Serial | ⏳ unverified |
| LabelWriter SE450 | LW_SE450 | 0x0400 | USB, Serial | 🔄 expected |
| LabelWriter Turbo | LW_TURBO | — | Serial | ⏳ unverified |
| LabelWriter Twin Turbo | LW_TWIN_TURBO | 0x0018 | USB | ⏳ unverified |
| LabelWriter Wireless | LW_WIRELESS | 0x0031 | 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
