thermal-label/labelwriter

GitHub: thermal-label/labelwriter

这是一个TypeScript驱动套件,用于在Node.js、浏览器和CLI环境中控制DYMO LabelWriter打印机进行标签打印。

Stars: 0 | Forks: 0

# @热敏标签/标签打印机 [![持续集成](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/51d6d209ff151403.svg)](https://github.com/thermal-label/labelwriter/actions/workflows/ci.yml) [![代码覆盖率](https://codecov.io/gh/thermal-label/labelwriter/branch/main/graph/badge.svg)](https://codecov.io/gh/thermal-label/labelwriter) [![npm 核心包](https://img.shields.io/npm/v/@thermal-label/labelwriter-core.svg?label=core)](https://npmjs.com/package/@thermal-label/labelwriter-core) [![npm Node 包](https://img.shields.io/npm/v/@thermal-label/labelwriter-node.svg?label=node)](https://npmjs.com/package/@thermal-label/labelwriter-node) [![npm Web 包](https://img.shields.io/npm/v/@thermal-label/labelwriter-web.svg?label=web)](https://npmjs.com/package/@thermal-label/labelwriter-web) [![许可证: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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, 打印机套件, 文档结构分析, 标签打印, 标签机驱动, 浏览器打印, 热敏打印机, 热敏标签, 硬件驱动, 自动化攻击, 设备发现, 跨平台开发