thermal-label/labelwriter
GitHub: thermal-label/labelwriter
这是一个TypeScript驱动套件,用于在Node.js、浏览器和CLI环境中控制DYMO LabelWriter打印机进行标签打印。
Stars: 0 | Forks: 0
# @热敏标签/标签打印机
[](https://github.com/thermal-label/labelwriter/actions/workflows/ci.yml)
[](https://codecov.io/gh/thermal-label/labelwriter)
[](https://npmjs.com/package/@thermal-label/labelwriter-core)
[](https://npmjs.com/package/@thermal-label/labelwriter-node)
[](https://npmjs.com/package/@thermal-label/labelwriter-web)
[](LICENSE)
## 安装
```
pnpm add @thermal-label/labelwriter-node # Node USB/TCP
pnpm add @thermal-label/labelwriter-web # Browser WebUSB
```
如需从终端临时打印,请安装 [`thermal-label-cli`](https://www.npmjs.com/package/thermal-label-cli) —— 它能自动检测所有已安装的驱动程序,无需为每个驱动程序单独使用CLI。
## 快速示例(Node)
```
import { discovery } from '@thermal-label/labelwriter-node';
import { MEDIA } from '@thermal-label/labelwriter-core';
const printer = await discovery.openPrinter();
try {
// image is RawImageData — { width, height, data } where data is RGBA bytes.
await printer.print(image, MEDIA.ADDRESS_STANDARD);
} finally {
await printer.close();
}
```
## 快速示例(浏览器)
```
import { requestPrinter } from '@thermal-label/labelwriter-web';
import { MEDIA } from '@thermal-label/labelwriter-core';
const printer = await requestPrinter(); // call from a user gesture
try {
await printer.print(image, MEDIA.ADDRESS_STANDARD);
} finally {
await printer.close();
}
```
## 支持的硬件
**22 种设备** — 1 已验证 · 0 部分支持 · 0 故障 · 21 未测试
| 型号 | 关键字 | USB PID | 传输协议 | 状态 |
| --- | --- | --- | --- | --- |
| [LabelWriter 4XL](https://thermal-label.github.io/hardware/labelwriter/lw-4xl) | `LW_4XL` | 0x001f | USB | ⏳ 未测试 |
| [LabelWriter 5XL](https://thermal-label.github.io/hardware/labelwriter/lw-5xl) | `LW_5XL` | 0x002a | USB, TCP | ⏳ 未测试 |
| [LabelWriter 300](https://thermal-label.github.io/hardware/labelwriter/lw-300) | `LW_300` | 0x0009 | USB, Serial | ⏳ 未测试 |
| [LabelWriter 310](https://thermal-label.github.io/hardware/labelwriter/lw-310) | `LW_310` | 0x0009 | USB, Serial | ⏳ 未测试 |
| [LabelWriter 330](https://thermal-label.github.io/hardware/labelwriter/lw-330) | `LW_330` | 0x0007 | USB, Serial | ⏳ 未测试 |
| [LabelWriter 330 Turbo](https://thermal-label.github.io/hardware/labelwriter/lw-330-turbo) | `LW_330_TURBO` | 0x0008 | USB, Serial | ✅ 已验证 |
| [LabelWriter 400](https://thermal-label.github.io/hardware/labelwriter/lw-400) | `LW_400` | 0x0019 | USB | ⏳ 未测试 |
| [LabelWriter 400 Turbo](https://thermal-label.github.io/hardware/labelwriter/lw-400-turbo) | `LW_400_TURBO` | 0x001a | USB | ⏳ 未测试 |
| [LabelWriter 450](https://thermal-label.github.io/hardware/labelwriter/lw-450) | `LW_450` | 0x0020 | USB | ⏳ 未测试 |
| [LabelWriter 450 Duo](https://thermal-label.github.io/hardware/labelwriter/lw-450-duo) | `LW_450_DUO` | 0x0023 | USB | ⏳ 未测试 |
| [LabelWriter 450 Turbo](https://thermal-label.github.io/hardware/labelwriter/lw-450-turbo) | `LW_450_TURBO` | 0x0021 | USB | ⏳ 未测试 |
| [LabelWriter 450 Twin Turbo](https://thermal-label.github.io/hardware/labelwriter/lw-450-twin-turbo) | `LW_450_TWIN_TURBO` | 0x0022 | USB | ⏳ 未测试 |
| [LabelWriter 550](https://thermal-label.github.io/hardware/labelwriter/lw-550) | `LW_550` | 0x0028 | USB | ⏳ 未测试 |
| [LabelWriter 550 Turbo](https://thermal-label.github.io/hardware/labelwriter/lw-550-turbo) | `LW_550_TURBO` | 0x0029 | USB, TCP | ⏳ 未测试 |
| [LabelWriter Duo - 96](https://thermal-label.github.io/hardware/labelwriter/lw-duo-96) | `LW_DUO_96` | 0x0017 | USB | ⏳ 未测试 |
| [LabelWriter Duo - 128](https://thermal-label.github.io/hardware/labelwriter/lw-duo-128) | `LW_DUO_128` | 0x001d | USB | ⏳ 未测试 |
| [LabelWriter EL40](https://thermal-label.github.io/hardware/labelwriter/lw-el40) | `LW_EL40` | — | Serial | ⏳ 未测试 |
| [LabelWriter EL60](https://thermal-label.github.io/hardware/labelwriter/lw-el60) | `LW_EL60` | — | Serial | ⏳ 未测试 |
| [LabelWriter SE450](https://thermal-label.github.io/hardware/labelwriter/lw-se450) | `LW_SE450` | 0x0400 | USB, Serial | ⏳ 未测试 |
| [LabelWriter Turbo](https://thermal-label.github.io/hardware/labelwriter/lw-turbo) | `LW_TURBO` | — | Serial | ⏳ 未测试 |
| [LabelWriter Twin Turbo](https://thermal-label.github.io/hardware/labelwriter/lw-twin-turbo) | `LW_TWIN_TURBO` | 0x0018 | USB | ⏳ 未测试 |
| [LabelWriter Wireless](https://thermal-label.github.io/hardware/labelwriter/lw-wireless) | `LW_WIRELESS` | 0x0031 | USB, TCP | ⏳ 未测试 |
点击任意型号可在文档站点打开其详细页面,其中包含引擎、支持的介质和验证报告。相同数据支撑着[交互式跨驱动程序表格](https://thermal-label.github.io/hardware/)。
## 文档
完整文档请访问 ** **。
- [快速入门](https://thermal-label.github.io/labelwriter/getting-started)
- [硬件列表](https://thermal-label.github.io/labelwriter/hardware)(含 NFC 锁定型号列表)
- [线协议](https://thermal-label.github.io/labelwriter/protocol/) — [LW 光栅](https://thermal-label.github.io/labelwriter/protocol/lw-raster) · [LW5 光栅](https://thermal-label.github.io/labelwriter/protocol/lw5-raster) · [Duo 胶带](https://thermal-label.github.io/labelwriter/protocol/duo-tape)
- [Node 指南](https://thermal-label.github.io/labelwriter/node)
- [Web 指南](https://thermal-label.github.io/labelwriter/web)
- [API 参考](https://thermal-label.github.io/labelwriter/api/)
- [实时演示](https://thermal-label.github.io/demo/labelwriter)
## 软件包
| 软件包 | 角色 |
|---|---|
| `@thermal-label/labelwriter-core` | 协议编码、设备与介质注册表。浏览器 + Node 环境。 |
| `@thermal-label/labelwriter-node` | Node USB (libusb) 和 TCP 传输。 |
| `@thermal-label/labelwriter-web` | 浏览器 WebUSB 传输。 |
每个驱动程序单独的 `*-cli` 包已停用 — 请使用统一的 [`thermal-label-cli`](https://www.npmjs.com/package/thermal-label-cli) 替代。
## 兼容性
| | |
|---|---|
| Node | ≥ 20.9(推荐 Node 24 LTS) |
| 浏览器 | Chrome / Edge 89+,安全上下文(`https://` 或 `localhost`) |
| Linux | 通常需要为 `0922:*` 设置 `udev` 规则以无需 `sudo` 访问 |
| 设备 | LabelWriter 450 系列(无 NFC),550 / 550 Turbo / 5XL(NFC 锁定) — 参见硬件列表 |
| 依赖项 | `@thermal-label/contracts`、`@thermal-label/transport`、`@mbtech-nl/bitmap` |
| 许可证 | MIT |
与 DYMO 无关联。商标归其所有者所有。
## 贡献
请参阅组织 `.github` 仓库中的 [`CONTRIBUTING/`](https://github.com/thermal-label/.github/tree/main/CONTRIBUTING)。
标签:DNS解析, DYMO打印机, GNU通用公共许可证, IoT设备控制, JSON 请求, MITM代理, Node.js, npm包, TCP通信, TypeScript, USB通信, WebUSB, 前端打印, 图像处理, 多平台支持, 安全插件, 开源项目, 打印机API, 打印机套件, 文档结构分析, 标签打印, 标签机驱动, 浏览器打印, 热敏打印机, 热敏标签, 硬件驱动, 自动化攻击, 设备发现, 跨平台开发