zplCloud CLI

Eigenständiges Einzel-Binary für macOS, Linux, Raspberry Pi und Windows. Authentifiziert sich mit API-Key gegen api.zplcloud.com. Wendet Druckerprofile an, sendet Roh-ZPL und Druckaufträge anderer Druckersprachen (TCP 9100 / USB), provisioniert Weblink-Zertifikate, betreibt den ausgehenden Proxy-Agenten und den Ordner-Watch-Druck.

Funktionen

  • profiles apply - führt ein gespeichertes Druckerprofil (SGD-/ZPL-Befehlsfolge mit Variablen) über TCP 9100 oder USB auf einem Drucker aus.
  • send - sendet Roh-ZPL aus Argument oder Datei und Druckaufträge anderer Druckersprachen (TSPL, EPL2, DPL, SBPL, CPCL, ESC/POS, Brother-Raster, PCL, Easy Plug, TPCL, JScript) byte-genau - fertig oder mit --language aus ZPL umgewandelt.
  • weblink setup - erzeugt die Weblink-Zertifikate serverseitig, lädt sie hoch, setzt weblink.ip.conn2.location, startet den Drucker neu.
  • proxy - Remote-Agent: eine ausgehende SignalR-Verbindung zu api.zplcloud.com; Jobs aus dem Tab „Remote Printers“ werden an LAN-Drucker (TCP 9100) oder USB-Drucker weitergeleitet. Keine eingehenden Ports.
  • font - Schriften und Dateien im Druckerspeicher verwalten: auflisten, hochladen (~DY), löschen und den Plattform-Font ZPLCLOUD.TTF installieren - direkt am Drucker oder über einen Remote-Drucker.
  • remote-printers list - die Remote-Drucker des Kontos mit ID, Ziel und Agent-Status auflisten.
  • USB - unter Windows zwei Bordmittel-Kanäle (WinUSB und die USBPRINT-Schnittstelle von usbprint.sys, beide bidirektional und ohne Spooler), unter Linux/macOS libusb-Druckerklasse oder virtueller COM-Port.
  • Watch-Ordner - der Agent druckt jede neue .zpl-/.prn-Datei aus konfigurierten Ordnern, fertige Aufträge wie .tspl byte-genau und wandelt ZPL auf Wunsch für andere Drucker um (siehe unten).

Installation

Der Installer erkennt Betriebssystem und Architektur und lädt das Binary von https://zplcloud.com/downloads/.

macOS / Linux / Raspberry Pi

curl -fsSL https://zplcloud.com/install-cli.sh | sh
# oder: wget -qO- https://zplcloud.com/install-cli.sh | sh
zplcloud --version

Ziele: osx-x64, osx-arm64, linux-x64, linux-arm64 (64-Bit Pi OS), linux-arm (32-Bit Raspberry Pi).

Windows (PowerShell, ohne Admin)

irm https://zplcloud.com/install-cli-pshell | iex
zplcloud --version

Installiert nach %LOCALAPPDATA%\zplcloud\zplcloud.exe und ergänzt das Verzeichnis im Benutzer-PATH (neue Terminals). Ziele: win-x64, win-arm64.

Docker

Agent als Container für Raspberry Pi, Synology und jeden Docker-Host: CLI als Docker-Container.

API-Key

Wird in der Plattform unter API erstellt. Übergabe per Umgebungsvariable oder --api-key:

export ZPLCLOUD_API_KEY=sk_zplcloud_xxxx          # bash/zsh
$env:ZPLCLOUD_API_KEY='sk_zplcloud_xxxx'        # PowerShell
zplcloud profiles list --api-key sk_zplcloud_xxxx   # je Befehl

Befehle

zplcloud profiles list

Listet die Druckerprofile des Kontos (ID, Name, Zielkonfiguration).

zplcloud profiles list

zplcloud profiles apply

Führt alle Befehle eines Profils nacheinander auf einem Drucker aus; die Antwort jedes Befehls wird live ausgegeben.

zplcloud profiles apply 42 --target 10.0.0.5
zplcloud profiles apply "Factory Reset" --target printer01.local --vars-file vars.json
ParameterBedeutung
<id-or-name>Profil-ID (Zahl) oder Profilname (in Anführungszeichen).
--target <ip|hostname>TCP-Ziel des Druckers; Standardport 9100.
--port <n>TCP-Port (Standard 9100).
--usbÜber einen virtuellen USB-COM-Port statt TCP senden.
--serial-port <name>Expliziter serieller Port (COM3, /dev/cu.usbmodem1101, …); leer = Zebra-Drucker automatisch erkennen.
--var name=valueBefehlsvariable setzen (wiederholbar).
--vars-file file.jsonJSON-Objekt mit Variablenwerten.
--non-interactiveBei fehlenden Variablen abbrechen statt nachzufragen.
--timeout <ms>Verbindungs-/Lese-Timeout (Standard 5000).

zplcloud cookbook list

Listet die ZPL-Cookbook-Rezepte (Befehls-Snippets mit Variablen).

zplcloud cookbook list

zplcloud send

Sendet Roh-ZPL. Ein fehlender Zeilenabschluss wird ergänzt (\r\n), weil der SGD-Parser des Zebra-Druckers ein Kommando ohne CRLF nicht verarbeitet. Ausnahme sind Druckaufträge anderer Druckersprachen: sie gehen byte-genau raus, ohne Zeilenabschluss (siehe Andere Druckersprachen).

Die Antwort des Druckers wird automatisch gelesen, wenn das Kommando eine liefert: SGD-Abfragen (! U1 …), JSON-Config ({}{"allconfig":null}), Host-Status (~HS, ~HI, ~HQ…) und ZPL-Host-Befehle (^HW Verzeichnis, ^HH Konfiguration). Mit --read lässt sich das erzwingen. Bleibt ein dösender Drucker stumm, wird er mit ~HS geweckt und die Abfrage einmal wiederholt - nur Abfragen, ein setvar wird nie doppelt gesendet. Dieselbe Regel gilt für den Proxy-Agenten.

zplcloud send --target 10.0.0.5 --zpl "^XA^FO50,50^ADN,36,20^FDHello^FS^XZ"
zplcloud send --target 10.0.0.5 --file label.zpl
ParameterBedeutung
--target <ip|hostname>TCP-Ziel (Pflicht, außer bei --usb).
--port <n>TCP-Port (Standard 9100).
--zpl "<zpl>"ZPL inline (entweder --zpl oder --file). Für SGD-Befehle mit Anführungszeichen --file verwenden, um Shell-Escaping zu vermeiden.
--file <path>ZPL- oder SGD-Datei senden (als UTF-8-Text gelesen, fehlendes CRLF wird ergänzt). Dateien mit der Endung einer Druckersprache (.tspl, .bin …) gehen byte-genau raus. Firmware: zplcloud firmware.
--raw--file unabhängig von der Endung byte-genau senden: kein Text-Lesen, kein Zeilenabschluss, keine Antwort.
--language <id>ZPL über die API in eine andere Druckersprache umwandeln und den Auftrag byte-genau senden (API-Key nötig, siehe unten).
--remote-printer <id|name>Statt direkt über die Cloud an den Agenten im LAN des Druckers: ZPL über /v1/remote-printers/{id}/send, Druckaufträge über /v1/remote-printers/{id}/raw. API-Key nötig.
--usb / --serial-portÜber USB statt TCP senden (siehe profiles apply).

Andere Druckersprachen (TSPL, DPL, Brother …)

Die Werkzeuge ZPL → Druckersprache und POST /v1/tools/zpl-to-… machen aus einem ZPL-Etikett einen fertigen Auftrag für TSC-, Honeywell/Datamax-, SATO-, Brother-, Toshiba-, cab-, Avery-Dennison/Novexx-, Epson- oder HP-Drucker. Ein solcher Auftrag enthält binäre Bilddaten und muss unverändert beim Drucker ankommen. Die CLI schafft das auf drei Wegen:

WegBefehlBraucht
Fertiger Auftrag, direktzplcloud send --target 10.0.0.7 --file label.tspl
zplcloud send --usb --file label.bin
nichts - keinen API-Key
ZPL umwandeln, dann sendenzplcloud send --target 10.0.0.7 --file label.zpl --language tspl --dpi 300 --compressAPI-Key (zählt Renders wie das Werkzeug)
Über einen Remote-Druckerzplcloud send --remote-printer 4 --file label.dpl
zplcloud send --remote-printer Lager --file label.zpl --language brother --model td-4-300
API-Key; Agent ab v1.2.22 für TCP-Drucker, ab v1.2.26 für USB-Drucker

Dateien mit den Endungen .tspl .epl .dpl .sbpl .cpcl .escpos .bin .pcl .ezp .tpcl .jscript - so benennen die Werkzeuge ihre Downloads - gehen automatisch byte-genau raus; --raw macht dasselbe für jede andere Datei. Bis v1.2.25 las die CLI jede Datei als Text und hängte CRLF an, was binäre Aufträge zerstört - CLI und Agent auf v1.2.26 aktualisieren.

Option (mit --language)Bedeutung
--language <id>tspl, epl2, dpl, sbpl, cpcl, escpos, brother, pcl, easyplug, tpcl oder jscript.
--dpi <n>Auflösung des Zieldruckers (erlaubte Werte je Sprache wie im Werkzeug). Brother: ergibt sich aus --model.
--width-mm / --height-mmEtikettengröße; Standard aus ^PW/^LL, sonst 75 × 50 mm.
--compressKomprimiertes Bildformat, wo die Sprache eins hat (PCX, TIFF PackBits, TOPIX, #YIR).
--hexSBPL und CPCL: Bilddaten als Hex-Text.
--cut falseESC/POS und Brother: nach dem Auftrag nicht schneiden.
--paper a4|letterPCL: Papierformat.
--model <id> / --media continuous|diecutBrother: Modellfamilie (z. B. ql-820, td-4-300, pt-p900) und Medientyp.
--save <pfad>Den umgewandelten Auftrag zusätzlich als Datei behalten.

zplcloud font

Verwaltet Schriften und Dateien im Druckerspeicher - dieselbe Mechanik wie der Dialog „Fonts/Files“ in der Plattform: auflisten über ! U1 getvar "file.dir", löschen über ^ID, hochladen als ~DY{drive}:{name},B,T,{size},, mit den rohen Bytes. Nach dem Upload wird per file.dir geprüft, ob die Datei wirklich im Flash liegt (der Drucker braucht dafür einige Sekunden).

# direkt im lokalen LAN (kein API-Key)
zplcloud font list   --target 10.0.0.5
zplcloud font upload --target 10.0.0.5 --file meine.ttf --name MEINE.TTF --replace
zplcloud font delete --target 10.0.0.5 --name E:MEINE.TTF

# Plattform-Font installieren (Bytes kommen aus der Cloud, API-Key nötig)
zplcloud font install --target 10.0.0.5 --api-key sk_zplcloud_xxxx
zplcloud font install --target 10.0.0.5 --file /pfad/ZPLCLOUD.TTF   # ohne Cloud

# über einen Remote-Drucker: der Agent im LAN des Druckers überträgt
zplcloud remote-printers list
zplcloud font install --remote-printer 4
ParameterBedeutung
list | install | upload | deleteAuflisten, Plattform-Font installieren, beliebige TTF hochladen, Datei löschen.
--target <ip> / --usbDirekter Druckerzugriff (TCP 9100 bzw. USB).
--remote-printer <id|name>Über die Cloud an den Agenten im LAN des Druckers (/v1/remote-printers/{id}/file). Braucht einen API-Key und einen Agenten ab v1.2.22.
--drive <E|R>Ziel-Laufwerk: E: Flash (Standard, überlebt den Neustart), R: RAM.
--file <ttf>Lokale Datei. Bei install optional - sonst kommt der Font aus der Cloud.
--name <NAME>Name im Druckerspeicher (Standard: Dateiname bzw. ZPLCLOUD.TTF).
--replaceVorhandene gleichnamige Datei vorher löschen (install macht das immer).

ZPLCLOUD.TTF ist rund 10 MB - auf E: muss entsprechend Platz frei sein; die vorhandene Datei wird vorher gelöscht. Der Upload über einen Remote-Drucker läuft nur über TCP 9100, nicht über USB.

zplcloud remote-printers list

Listet die Remote-Drucker des Kontos mit ID, Ziel, zugeordnetem Agenten und dessen Status. Die IDs sind das, was font --remote-printer und send --remote-printer erwarten.

zplcloud remote-printers list --api-key sk_zplcloud_xxxx

zplcloud weblink setup

Erzeugt die drei NRD-Zertifikatsdateien serverseitig (API-Key erforderlich), lädt sie per ~DYE hoch, setzt weblink.ip.conn2.location und startet den Drucker neu. Liest die Seriennummer und registriert Besitzer + API-Key im Backend (auch für Ersatzgeräte).

zplcloud weblink setup --printer printer01 --endpoint https://weblink.zplcloud.com --target 10.0.0.5 --api-key sk_zplcloud_XXXX

# Test-Stage
zplcloud weblink setup --printer printer01 --endpoint https://weblink.test.zplcloud.com --target 10.0.0.5 \
  --api-base https://api.test.zplcloud.com --api-key <test-stage-key>
ParameterBedeutung
--printer <hostname>Druckername (Zertifikats-Scope / NRD-Ablage).
--endpoint <url>Weblink-URL: https://weblink.zplcloud.com (Prod) oder https://weblink.test.zplcloud.com (Test).
--target / --portTCP-Ziel + Port (Standard 9100).
--api-key / --api-baseAPI-Key (Pflicht). Test-Stage: Key + api-base des Test-Backends.

Ohne CLI: Weblink-Zertifikats-Deployment (servergenerierter PowerShell-/bash-Einzeiler).

zplcloud proxy

Startet den Remote-Agenten. Ausgehende SignalR-Verbindung zu api.zplcloud.com; Jobs aus dem Tab „Remote Printers“ werden an Drucker im lokalen LAN (TCP 9100) oder USB weitergeleitet.

zplcloud proxy --agent "Lager Berlin"
zplcloud proxy --agent "PI" --verbose --log --log-dir ./logs/zplcloud-logs
ParameterBedeutung
--agent <name>Anzeigename im Tab Remote Printers (Pflicht).
--timeout <ms>Verbindungs-/Lese-Timeout (Standard 5000).
--verbose | --debugSignalR-Negotiation-/Transport-/Handshake-Trace mit Zeitstempeln.
--logGesamte Konsolenausgabe nach zplcloud-<yyyy-MM-dd>.log schreiben.
--log-dir <dir>Log-Verzeichnis (Standard: aktuelles Verzeichnis).
--service-installAls Systemdienst installieren (systemd / launchd / geplante Aufgabe). Benötigt --agent + API-Key.
--service-uninstallDienst entfernen (kein API-Key nötig).

zplcloud proxy --service-install

Installiert den Agenten als Dienst, der beim Booten/Login startet und sich automatisch neu verbindet. API-Key, Agentname, API-Base und Timeout werden in die Dienstdefinition geschrieben.

zplcloud proxy --agent "Lager Berlin" --service-install --api-key sk_zplcloud_xxxx
SystemMechanismusStart
Linux / Raspberry Pisystemd-Unit zplcloud-agent.service (Restart=always, RestartSec=5)beim Booten (sudo nötig, wird automatisch erkannt)
macOSlaunchd LaunchAgent ~/Library/LaunchAgents/com.zplcloud.agent.plist (KeepAlive=true)beim Login, ohne Admin
Windowsgeplante Aufgabe zplcloud-agent (schtasks ONLOGON, /RL LIMITED)beim Login, ohne Admin
# Status
Linux/Pi : systemctl status zplcloud-agent   |  journalctl -u zplcloud-agent -f
macOS    : launchctl list | grep zplcloud
Windows  : schtasks /Query /TN zplcloud-agent

# Deinstallation
zplcloud proxy --service-uninstall

Optional: --timeout <ms>, --log-dir <dir> (Standard: Linux /var/log/zplcloud, macOS /tmp, Windows %LOCALAPPDATA%\zplcloud\logs). In Docker ersetzt restart: unless-stopped den Dienst (siehe CLI als Docker-Container).

zplcloud usb list

Listet serielle Ports und die Zebra-USB-Kanäle. Unter Windows gibt es zwei Bordmittel-Wege, beide bidirektional und ohne Spooler oder Fremdtreiber:

KanalWann er greift
WinUSBDer Drucker bietet WinUSB nativ an (ZD421: usb.device.mode = composite) und Windows hat die Schnittstelle registriert.
USBPRINTFallback über die Geräteschnittstelle von usbprint.sys, direkt per CreateFile geöffnet. Nötig, wenn Windows für den Drucker keine WinUSB-Schnittstelle registriert - das kommt vor, obwohl winusb.sys gebunden ist.

Das CLI versucht erst WinUSB, dann USBPRINT, dann den virtuellen COM-Port. Unter Linux/macOS läuft es über die libusb-Druckerklasse.

zplcloud usb list

zplcloud version / help

zplcloud version / --version zeigt die Version, zplcloud help / --help die vollständige Hilfe.

Datenquellen am Agenten

Der Agent kann zusätzlich zu Druckern auch Datenbanken anbinden. Die Abfrage läuft dann in Ihrem Netz, der Connection-String bleibt lokal und über die Leitung gehen nur die Ergebniszeilen. Jede Engine hat ihren eigenen Namensraum; alle drei Wege (Option, Umgebungsvariable, Datei) sind gleichwertig. Details, Abfrage-Regeln und der agentenlose Cloud-Weg stehen unter Konnektoren.

EngineOptionUmgebungsvariableDatei
SQL Server--sql NAME=…ZPLCLOUD_SQL_<NAME>_CONNECTIONsqlservers.json
MongoDB--mongo NAME=…ZPLCLOUD_MONGO_<NAME>_CONNECTIONmongoservers.json
PostgreSQL--postgres NAME=…ZPLCLOUD_PG_<NAME>_CONNECTIONpgservers.json
MySQL--mysql NAME=…ZPLCLOUD_MYSQL_<NAME>_CONNECTIONmysqlservers.json
MariaDB--mariadb NAME=…ZPLCLOUD_MARIADB_<NAME>_CONNECTIONmariadbservers.json
Kafka--kafka NAME=…ZPLCLOUD_KAFKA_<NAME>_CONNECTIONkafkabrokers.json
zplcloud proxy --agent "Lager" \
  --postgres WMS="Host=pg.internal.lan;Database=wms;Username=zplcloud;Password=..." \
  --mysql SHOP="Server=mysql.internal.lan;Database=shop;User ID=zplcloud;Password=..." \
  --mariadb ERP="Server=maria.internal.lan;Database=erp;User ID=zplcloud;Password=..."

Globale Optionen

OptionBedeutung
--api-key <key>API-Key.
--api-base <url>Backend-Basis-URL (Standard https://api.zplcloud.com).
--log / --log-dirLogging (siehe proxy).

Umgebungsvariablen

VariableBedeutung
ZPLCLOUD_API_KEYAPI-Key (Alternative zu --api-key).
ZPLCLOUD_API_BASEBasis-URL (Alternative zu --api-base).
ZPLCLOUD_AGENTAgentname (wie --agent; in Docker genutzt).
ZPLCLOUD_TIMEOUTVerbindungs-/Lese-Timeout in ms.

Ausgabe von --help

zplcloud v1.2.15
zplCloud.com CLI - provision Zebra printers from zplCloud.com printer profiles.

USAGE:
  zplcloud profiles list
  zplcloud profiles apply <id-or-name> --target <ip|hostname> [--port 9100] [--var name=value ...] [--vars-file file.json]
  zplcloud cookbook list
  zplcloud send --target <ip|hostname> [--port 9100] (--zpl "<zpl>" | --file <path>)
  zplcloud send --target <ip|hostname> --file label.tspl [--raw]
  zplcloud send --target <ip|hostname> --file label.zpl --language tspl [--dpi 203] [--compress]
  zplcloud send --remote-printer <id|name> (--zpl "<zpl>" | --file <path>) [--language <id>]
  zplcloud weblink setup --printer <hostname> --endpoint <url> --target <ip|hostname> [--port 9100]
  zplcloud proxy --agent <name> [--timeout <ms>] [--verbose|--debug] [--log [--log-dir <dir>]]
  zplcloud usb list
  zplcloud version
  zplcloud help

TRANSPORT (apply/send/weblink):
  --target <ip|hostname>   TCP target (default port 9100)
  --port <n>               TCP port (default: 9100)
  --usb                    Use a USB virtual COM port instead of TCP
  --serial-port <name>     Explicit serial port (COM3, /dev/cu.usbmodem1101, ...)
  --bluetooth              (not supported yet - reserved for future RFCOMM transport)
  --timeout <ms>           Connect/read timeout (default: 5000)

PROXY (indirect realtime sending, no inbound firewall ports):
  zplcloud proxy --agent "Warehouse Berlin" [--verbose|--debug]
  Connects OUTBOUND to api.zplcloud.com and forwards print commands from the
  'Remote Printers' tab to Zebra printers in the local LAN over TCP 9100.
  --verbose/--debug prints SignalR negotiation/transport/handshake trace
  (with timestamps) to diagnose connection problems.

VARIABLES (profiles apply):
  --var name=value         Set a command variable (repeatable)
  --vars-file file.json    JSON object with variable values
  --non-interactive        Fail instead of prompting for missing required variables

API:
  --api-key <key>          API key from the zplCloud API tab
  --api-base <url>         api.zplcloud.com base URL (default: https://api.zplcloud.com)
  Environment: ZPLCLOUD_API_KEY, ZPLCLOUD_API_BASE

LOGGING:
  --log                    Write all console output to zplcloud-<yyyy-MM-dd>.log
  --log-dir <dir>          Log directory (default: current directory)

VERSION:
  --version                Print the version and exit
  zplcloud version

Ordner-Watch-Druck

Der Agent überwacht konfigurierte Ordner und sendet jede neue .zpl-/.prn-Datei an einen LAN-Drucker (TCP 9100) oder USB. Regeln: älteste Datei zuerst, eine Datei nach der anderen je Ordner; gedruckt wird erst, wenn der letzte Schreibzugriff älter als stabilitySeconds ist; *.part/*.tmp werden übersprungen; nach Erfolg wird die Datei gelöscht (deleteAfterOk) oder behalten; Fehlerdateien wandern nach failedSubDir.

Konfiguration je Agent in der Online-Agent-Config (GET/PUT /api/remote-printers/agents/{agent}/config); Änderungen werden live gepusht (UpdateAgentConfig), kein Neustart.

{
  "modules": {
    "watchFolders": [
      {
        "name": "rawprint",
        "enabled": true,
        "folder": "/watch/rawprint",
        "pattern": "*.zpl;*.prn",
        "targetHost": "10.0.0.5",
        "targetPort": 9100,
        "targetUsb": false,
        "pollMs": 2000,
        "stabilitySeconds": 3,
        "deleteAfterOk": true,
        "failedSubDir": "failed"
      }
    ]
  }
}

Ordner-Ziele erscheinen in Druckerlisten als wf:<agent>:<folder> („Agent / 📁 Ordner“): die Plattform legt das ZPL als Datei in den Ordner, der Agent druckt es. Endpunkte: GET /api/remote-printers/agents/{agent}/folders, POST …/folders/send; Public API GET /v1/agents/folders, POST /v1/print/folder mit { "agent", "folder", "zpl" }.

Watch-Ordner für andere Druckersprachen

Ab Agent v1.2.26 bedient ein Watch-Ordner auch Drucker, die kein ZPL sprechen - auf zwei Arten:

  • Fertige Aufträge - Dateien mit den Endungen .tspl .epl .dpl .sbpl .cpcl .escpos .bin .pcl .ezp .tpcl .jscript gehen byte-genau raus. Die Endung in pattern aufnehmen, z. B. "*.zpl;*.tspl".
  • ZPL umwandeln - mit convert macht der Agent aus jeder ZPL-Datei vor dem Druck die Sprache des Druckers (POST /v1/tools/zpl-to-… mit dem API-Key des Agenten, zählt Renders wie das Werkzeug). ERP oder Versandsoftware schreiben weiter ZPL; ein TSC-, Honeywell- oder Brother-Drucker bekommt seine eigene Sprache. Optionen wie im Werkzeug: language, dpi, widthMm, heightMm, compress, hex, cut, paper, model, media.
{
  "modules": {
    "watchFolders": [
      {
        "name": "tsc-versand",
        "enabled": true,
        "folder": "/watch/tsc",
        "pattern": "*.zpl;*.tspl",
        "targetHost": "10.0.0.7",
        "targetPort": 9100,
        "convert": { "language": "tspl", "dpi": 300, "compress": true }
      }
    ]
  }
}

Auch die Public API legt Druckaufträge in so einen Ordner: POST /v1/print/folder mit { "agent", "folder", "zpl", "language": "tspl", "dpi": 300 } (die Cloud wandelt um) oder { "agent", "folder", "base64", "fileName": "label.tspl" } (fertiger Auftrag). Die Datei behält die Endung des Auftrags, das pattern des Ordners muss sie also enthalten - sonst antwortet der Agent mit einem Fehler, statt eine Datei abzulegen, die nie gedruckt würde.

Beispiele

zplcloud profiles list
zplcloud profiles apply 42 --target 10.0.0.5
zplcloud profiles apply "GTIN-Label" --target 10.0.0.5 --var gtin=4006381333930 --var charge=LOT-42
zplcloud profiles apply 42 --target 10.0.0.5 --vars-file vars.json
zplcloud send --target 10.0.0.5 --zpl "^XA^FO50,50^A0N,50^FDHello^FS^XZ"
zplcloud send --target 10.0.0.7 --file label.tspl
zplcloud send --target 10.0.0.7 --file label.zpl --language tspl --dpi 300 --compress
zplcloud send --remote-printer 4 --file label.zpl --language dpl
zplcloud proxy --agent "Lager Berlin"
zplcloud usb list
zplcloud profiles apply 42 --usb --serial-port /dev/ttyACM0