Was ist QZ Tray Lite?

QZ Tray Lite ist ein lokaler Druckserver, der das QZ-Tray-Protokoll vollständig emuliert, jedoch ohne seine umfangreiche Infrastruktur. Es ermöglicht das Drucken von Quittungen auf Thermodruckern direkt von Ihrem Browser aus qz-tray.js – und Ihr Frontend-Code erfordert Null Änderungen.

Wenn Sie jemals das Original-QZ-Tray für stilles Drucken konfiguriert haben, kennen Sie die Schmerzen: Schlüsselpaare generieren, Zertifikate verteilen, einen Backend-Signatur-Endpunkt einrichten, sammeln {Aufruf, Parameter, Zeitstempel}, berechnen Sie den SHA-256-Hex, signieren Sie ihn mit dem privaten RSA-Schlüssel, geben Sie base64 an den Browser zurück und beten Sie. Irgendein Fehler – und statt einer Quittung sieht Ihr Benutzer ein „Zulassen?“ Dialog.

QZ Tray Lite beseitigt all dies.

  • Der Unterschrift Und signAlgorithmus Felder sind ignoriert. Ihr Client sendet wie gewohnt Signaturen und erhält erfolgreiche Antworten – er weiß nie, dass es sich um eine andere Implementierung handelt.

  • Kein Backend-Signaturendpunkt erforderlich. Die Vertrauenskette reduziert sich auf nur zwei Parteien: Browser ↔ lokaler Prozess.

  • Verwendet vorhandene Zertifikate wieder – zum Beispiel von einem installierten QZ-Tray (Windows vertraut bereits). CN=localhost), oder Sie können Ihr eigenes PKCS#12 bereitstellen.


Hauptvorteile

Besonderheit Originales QZ-Tablett QZ Tray Lite
Installationsgröße 164 MB, 232 Dateien (einschließlich JRE) 90 KB, 15 .py Dateien
Laufzeit Eingebettetes Java Python 3.12+ (bereits auf Ihrem System)
Anforderungen an geräuschloses Drucken Zertifikat + Signatur-Backend + Dialogkonfiguration Nichts Besonderes
Frontend-Änderungen Keinerqz-tray.js Funktioniert wie es ist
Lesbarkeit des Codes 40 MB Bytecode 2.600 Zeilen mit Kommentaren
Automatisches Port-Failover Ja Ja

Wie es funktioniert

Browser verbindet sich über WebSocket mit localhost (wss://8181 oder ws://8182). QZ Tray Lite reagiert auf die gleichen Anrufe wie das Original:

  • getVersion — Berichte 2.2.6 (kompatibel mit modernen qz-tray.js);

  • Zertifikat – akzeptiert das Client-Zertifikat und bestätigt;

  • Drucker.find / Printers.getDefault – listet Systemdrucker auf über win32print;

  • drucken – Stellt Aufträge zum Drucken in die Warteschlange.

A sequentielle Warteschlange pro Drucker stellt sicher, dass sich Kopien nicht überlappen und lange Jobs den WebSocket nicht blockieren.


Unterstützte Druckmodi

1. Rohes ESC/POS

  • Text mit Kodierungsauswahl (CP1250–CP1258, IBM8xx, ISO-8859-x, GBK, Big5, Shift_JIS, UTF-8).

  • Kyrillisch: CP1251 + ESC t Befehl in der Quittung (Seitenzahl abhängig von der Firmware).

  • Bilder: volle Unterstützung für ESC * (Einzel/Doppel/Dreifach, einschließlich Legacy) und GS v 0. Quantisierung: luma, Alpha, Schwarz.

  • Aktiviert über Typ: „roh“ mit Optionen.Sprache: „escpos“.

2. Pixeldruck (GDI).

  • Rasterdruck über Druckertreiber mit ScaleContent, Ränder, Einheiten (Zoll oder mm).

  • NEIN Optionen.Sprache erforderlich – ideal für Logos, Barcodes, Etiketten.

  • Aktiviert über Typ: „Pixel“.


Sicherheitsüberlegungen

Wichtig: QZ Tray Lite ist für konzipiert vertrauenswürdige Kassenarbeitsplätze in lokalen Netzwerken. Das tut es bewusst nicht bestätigen:

  • Unterschriften anfordern (Unterschrift, signAlgorithmus);

  • Client-Zertifikate und Vertrauensketten;

  • Zeitstempel (±15-Minuten-Fenster im Original);

  • erlaubt.dat / blockiert.dat Zugangskontrolle.

Praktische Implikation: Jede im Browser auf diesem Gerät geöffnete Seite kann gedruckt werden. Dies ist ein akzeptabler Kompromiss für einen dedizierten POS-Computer. Jedoch, nicht Stellen Sie den Server bereit 0.0.0.0 oder verwenden Sie es auf Computern, auf denen Benutzer beliebige Websites durchsuchen.

Alle Aktionen werden protokolliert – jede Anfrage, jedes Byte, jede über geladene URL Format: „Bild“ ohne explizit Geschmack.


Installation und Schnellstart

Anforderungen: Windows 10/11, Python 3.12+

Powershell
Git-Klon <Repository>
cd qz-tray-lite
Python -m pip install -r Anforderungen.txt

Laufen:

Powershell
Python-Haupt.py

Der Server automatisch:

  • findet einen freien Port (wenn 8181 belegt ist, versucht es 8282 usw.);

  • Verwendet das Zertifikat des Original-QZ-Trays, sofern installiert, oder ermöglicht benutzerdefinierte Einstellungen --keystore / --storepass;

  • Startet aus Kompatibilitätsgründen sowohl WSS- als auch WS-Listener.

Hintergrundbetrieb: enthalten tools/service.ps1 installiert QZ Tray Lite als Windows-Dienst oder geplante Aufgabe (automatische Auswahl basierend auf der Umgebung). Unterstützt Protokollrotation, Gesundheitsüberwachung und Neustartrichtlinien.


Was NICHT implementiert ist

Wir haben bewusst auf Funktionen verzichtet, die in POS-Szenarien selten verwendet werden:

  • seriell, USB, versteckt, Datei, Vernetzung;

  • Druckerdetails, startListening / getStatus;

  • Pixeldruck von pdf Und html;

  • Bildkodierung: GS_L, Quantisierung: Dither, Drehung / Orientierung.

Aufrufe an diese geben eindeutige Fehler zurück, anstatt stillschweigend fehlzuschlagen.


Testen und Debuggen

Der tools/probe.py Dienstprogramm:

  • führt einen QZ-Tray-Handshake durch;

  • sendet Testdruckaufträge (Schachbrettlogo erkennt Bitverschiebungen, Rahmen erkennt Kantenbeschneidung);

  • zeigt, dass Signaturen nicht validiert werden – selbst ungültige Signaturen werden bestanden.

Powershell
Python-Tools/Sonde.py --XP-58 drucken          # Testbeleg
Python-Tools/Sonde.py --XP-58 drucken --Pixel  # Pixelmodus

65 Unit-Tests für ESC/POS-Bildkonverter (831 Zeilen) – erwartete Bytes manuell anhand der Epson-Spezifikation berechnet.


Für wen ist das?

  • Entwickler von POS-Systemen die auf das sperrige QZ-Tray verzichten und die Bereitstellung auf Hunderten von Workstations vereinfachen möchten.

  • Integratoren Sie sind es leid, für jedes Geschäft Zertifikate zu konfigurieren und Backends zu signieren.

  • Unternehmer Wer hat eine Seite mit qz-tray.js benötigen aber einen stabilen, schnellen lokalen Druckserver für 58-mm-Thermobelege.

  • Hobbyisten die Wert auf transparenten Code legen und genau sehen wollen, was an den Drucker gesendet wird (Protokolle zeigen jedes Byte und jeden Konvertierungsparameter).


Lizenz

MIT-Lizenz © 2026 IDNK Soft

Kostenlos für kommerzielle Nutzung, Änderung und Einbettung – behalten Sie einfach den Lizenztext und den Copyright-Hinweis bei.

Die Kompatibilität des QZ-Tray-Protokolls basiert auf dem Original qzind/tray Projekt (LGPL-2.1). QZ Tray Lite ist eine unabhängige Python-Implementierung des serverseitigen Protokolls.


Wählen QZ Tray Lite – die leichte Alternative, die genau das tut, was Ihr POS braucht, und nicht mehr.

  • Marke
  • Auf Lager
    100 Artikel

Lokaler stiller Server für Belegdruck, kompatibel mit dem QZ-Tray-Protokoll, das dasselbe WebSocket-Protokoll verwendet

Regulärer Preis: 10 € (50% sparen)
Preis: 5 €

Leichter, lautloser Belegdruckserver für POS-Terminals. Vollständig QZ-Tray-kompatibel – keine Codeänderungen erforderlich. Druckt auf 58-mm-Thermodruckern mit Text, Bildern und kyrillischer Unterstützung. Keine Backend-Signierung, keine Zertifikate, keine Dialoge. Nur 90 KB, Python-basiert. Automatische Porterkennung.

Teilen

Kommentare (0)

Aktuell keine Kunden-Kommentare
Loading...
Zum Seitenanfang