1.0.0 • Published 8 months ago

@kortoaus/serial-zpl v1.0.0

Weekly downloads
-
License
MIT
Repository
-
Last release
8 months ago

@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-zpl

Requires 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