QZ Tray Alternative

A lighter way to print from browser web apps.

If you're evaluating QZ Tray for browser-to-printer communication, the BrioLabel Desktop Agent solves the same core problem — letting a web app print to local label and receipt printers — without a Java runtime, without paid certificates, and without a warning dialog on every print.

BrioLabel Desktop Agent vs. QZ Tray

A side-by-side look at the two approaches to browser printing.

Aspect QZ Tray BrioLabel Desktop Agent
Runtime Bundles a full Java runtime (JRE) Native app — no Java, no bundled runtime
Install size Well over 100 MB, due to the bundled JRE Around 3 MB
Idle memory use Typically well over 100 MB, JVM overhead Single-digit MB
Silent printing Requires a paid certificate from QZ Industries Free, no certificate purchase required
Pairing & trust Requests are cryptographically signed; the Agent asks for manual approval the first time a site connects, and you can view paired clients and revoke access anytime
Print format Raw, printer-specific commands (ZPL, ESC/P) sent by your app BLPD — one open, printer-independent document format
What your app builds Printer-specific command strings, by hand A single BLPD document — the Agent handles translation to ZPL, TSPL or Brother Raster
License Free tier available; paid tiers for certificates and support Free, always

Why teams look for a QZ Tray alternative

  • QZ Tray runs on a bundled Java Virtual Machine, which means a heavier install and more background memory use than a small native app needs.
  • Silent, prompt-free printing requires purchasing and installing a signing certificate from QZ Industries.
  • Without that certificate, browsers show a permission dialog on every single print — a rough experience at a checkout counter or a busy warehouse pack station.
  • QZ Tray sends raw, printer-specific commands — your application still has to generate correct ZPL, TSPL, or ESC/P for every printer model you support.
  • Antivirus software sometimes flags or contains the bundled Java runtime, adding IT overhead for teams deploying to many machines.

The format underneath

BLPD: one document, any printer.

The BrioLabel Desktop Agent doesn't invent a new proprietary protocol. It renders BLPD (BrioLabel Print Document) — an open, printer-independent specification. Your application generates one fully-resolved BLPD document; the Agent translates it to ZPL, TSPL, or Brother Raster depending on the target printer.

  • Fully resolved — the generator has already measured, wrapped, and positioned everything. The Agent never makes layout decisions, it only prints.
  • Printer-independent — the same document prints correctly on a Zebra, a TSC, or a Brother printer.
  • Open — the specification is public. Other renderers besides the BrioLabel Desktop Agent are welcome to implement it.

What sending a print job looks like

A minimal example: connect to the local Agent over WebSocket and send a BLPD document.

JavaScript — browser to Agentconst socket = new WebSocket("wss://localhost:9443/agent"); socket.onopen = () => { socket.send(JSON.stringify({ printerId: "printer-001", copies: 1, document: blpdDocument // a fully-resolved BLPD document })); }; socket.onmessage = (event) => { const result = JSON.parse(event.data); console.log("Print job status:", result.status); };
BLPD — the document being sent{ "specVersion": "1.0", "document": { "unit": "mm", "pages": [ { "width": 101.6, "height": 152.4, "layers": [ { "id": "default", "nodes": [ { "type": "text", "frame": { "x": 10, "y": 10, "width": 80, "height": 10 }, "text": "John Doe", "style": { "font": { "family": "Arial", "size": 12 }, "color": "#000000" } }, { "type": "barcode", "frame": { "x": 10, "y": 30, "width": 80, "height": 20 }, "data": "123456789", "symbology": "code128" } ] } ] } ] } }

Download the Agent

If you're evaluating QZ Tray for browser-to-printer communication, the BrioLabel Desktop Agent solves the same core problem — letting a web app print to local label and receipt printers — without a Java runtime, without paid certificates, and without a warning dialog on every print.

Download the Agent