1.0.0 • Published 8 months ago
@kortoaus/serial-zpl v1.0.0
@kortoaus/serial-zpl
🚀 A lightweight TypeScript library for sending ZPL (Zebra Programming Language) data via serial ports or network sockets. Built for speed and simplicity.
✨ Features
- 🖨️ Send ZPL to USB/Serial printers (Zebra, Bixolon, etc.)
- 🌐 Send ZPL to network printers (TCP/IP, port 9100)
- 🧠 Smart port filtering by manufacturer
- ⚡ Lightweight, no native build dependencies
- 🔧 Fully written in TypeScript
📦 Installation
npm install @kortoaus/serial-zplRequires Node.js 16 or later
🚀 Usage
List available serial ports
import { listSerialPorts } from "@kortoaus/serial-zpl";
const ports = await listSerialPorts();
console.log(ports);
// [{ path: "/dev/ttyUSB0", manufacturer: "FTDI", ... }]Send ZPL over serial (USB/RS232)
import { sendZplBySerial } from "@kortoaus/serial-zpl";
await sendZplBySerial("/dev/ttyUSB0", "^XA^FO50,50^FDHello via Serial^FS^XZ");Send ZPL over network (TCP)
import { sendZplByNetwork } from "@kortoaus/serial-zpl";
await sendZplByNetwork(
"192.168.0.123",
"^XA^FO50,50^FDHello via Network^FS^XZ"
);
// Optional third argument: port (default is 9100)📁 API
listSerialPorts(): Promise<PortInfo[]>
Returns a list of available serial ports, filtered by known USB-to-Serial manufacturers (FTDI, WCH, Prolific, etc.).
sendZplBySerial(portPath: string, zpl: string): Promise<void>
Sends ZPL string to a serial port.
Auto-handles opening and closing the port.
sendZplByNetwork(address: string, zpl: string, port = 9100): Promise<void>
Sends ZPL string over TCP to the printer at the given IP and port.
🧱 Supported Environments
- ✅ macOS
- ✅ Windows
- ✅ Linux
🔐 License
MIT © kortoaus
💬 Feedback & Contributions
Issues and PRs welcome at github.com/kortoaus/serial-zpl
1.0.0
8 months ago