zplCloud Blog

Die zplCore.com-Engine ist da: der Motor von zplCloud als .NET-SDK

Die Engine hinter jeder zplCloud-Vorschau gibt es jetzt für deine eigenen Anwendungen: ZPL-II- und EPL2-Rendering, gemessen an druckergenauen Referenzen, 144 Symbologien, Compliance-Vorabprüfung, Scan-Proof, Printer Twin, Etikettentests in der CI und ein MCP-Server für Coding-Agenten.

15 Min. Lesezeit zplCloud Team

Die Engine hinter zplCloud gibt es jetzt als SDK

Banner „zplCore.com. The engine, as an SDK.“ mit einem echten, von zplCore gerenderten Versandetikett, daneben das Scan-Proof-Ergebnis derselben Datei: Code 128, Data Matrix und PDF417 mit Note A, der GS1-128-SSCC mit Note D

Jede Vorschau und jedes PDF auf zplCloud rendert eine Engine: zplCore.com. Ab heute gibt es sie als .NET-10-SDK für deine eigenen Anwendungen, mit allen Funktionen, die zplCloud nutzt: ZPL II und EPL2 als PNG, PDF und SVG rendern, Etiketten aus Daten erzeugen, gegen GS1- und Carrier-Regeln prüfen, jeden Barcode zurücklesen, Drucker samt Fehlern simulieren und drucken. Sie läuft unter Windows, Linux und macOS, in Docker und Kubernetes, ohne Druckertreiber.

Kurz gesagt: zplCore.com ist eine .NET-Bibliothek mit Kommandozeilen-Tool, Test-Paket und MCP-Server. Sie rendert wie ein virtueller Zebra-Drucker und wird gegen druckergenaue Referenzen gemessen. Über das Rendern hinaus prüft und simuliert sie: Compliance-Vorabprüfung, Scan-Proof, Printer Twin, Chaos-Drucker, Etikettentests in der CI. Eine Testversion gibt es auf Anfrage über zplcore.com.

Warum zplCloud eine eigene Engine gebaut hat

Bis Oktober 2026 nutzte zplCloud für Vorschauen und für die Umwandlung von Designs in ZPL die SDKs ThermalLabel und ZPLPrinter von Neodynamic. Heute ist zplCore.com die einzige Engine in zplCloud: Der Designer erzeugt ZPL, und die PNG-, SVG- und PDF-Vorschauen rendern genau dieses ZPL. Was du in der Vorschau siehst, geht so an den Drucker. Einen zweiten Bildweg gibt es nicht mehr.

Dafür gab es drei Gründe:

  • Der Maßstab ist der Drucker. zplCore wird Pixel für Pixel, mit 2 Dots Toleranz, mit druckergenauen Referenzrenderings von Labelary verglichen: im Mittel 0,986 über 169 Testfälle, davon 131 mit 0,99 oder besser und 85 pixelgleich. Automatische Tests halten jeden Fall mindestens auf seinem aktuellen Wert.
  • Rendern allein reicht nicht. Ein Etikett kann richtig aussehen und trotzdem scheitern: ein Barcode in der Ruhezone, ein Feld außerhalb des Druckkopfs, eine SSCC mit falscher X-Dimension. Wir wollten eine Engine, die diese Fragen selbst beantwortet, offline und im Build.
  • Eine Codebasis für die Cloud und für deine eigenen Server. Die Funktionen hinter den kostenlosen zplCloud-Tools sind dieselben, die du im SDK bekommst.

zplCore.com ist eine unabhängige Implementierung auf Basis der öffentlichen ZPL-II-Spezifikation und der Symbologie-Standards. Sie enthält keinen Code anderer kommerzieller Anbieter; die verwendeten Open-Source-Komponenten sind in den Drittanbieter-Hinweisen aufgeführt.

Was zplCore.com ist

BereichInhalt
Plattform.NET 10; getestet unter Windows 11, macOS, Debian und Azure Linux 3.0 (auch Distroless); Dockerfile und Helm-Chart im Lieferumfang; NativeAOT-kompatibel
EingabeZPL II und EPL2; EPL-Formulare lassen sich nach ZPL umwandeln
AusgabePNG, JPEG, WebP, BMP, GIF, PDF und SVG (beide als Vektor), TIFF, PCX, PCL, GRF, EPS, HTML, dazu EPL, Fingerprint und ESC/POS
Barcodes144 Symbologien, von Code 128 über GS1 DataBar und QR bis MaxiCode, DotCode und Han Xin; GS1-Parser und -Validator mit 534 Application Identifiers
Etiketten aus DatenLabel-Modell in mm oder Zoll, JSON-Vorlagen, Datenbindung an C#-Objekte, EF Core, LiteDB, MongoDB und JSON, Streaming mit konstantem Speicher
DruckenTCP 9100, seriell, USB, Windows-Spooler, CUPS; Status über ~HS/~HQES; virtueller Drucker auf TCP 9100
SchriftenHarfBuzz-Shaping und Bidi für Arabisch, Hebräisch, Thai, indische Schriften und CJK

Wenige Zeilen C# bis zur Vorschau:

using ZplCore;

var renderer = new ZplRenderer(new ZplRenderSettings { Dpi = 203 }.WithLabelSizeMm(100, 150));
List<byte[]> pngs = renderer.ProcessFile("labels.zpl");          // one PNG per label

renderer.Settings.OutputFormat = ZplOutputFormat.Pdf;             // one PDF, one page per label
File.WriteAllBytes("preview.pdf", renderer.ProcessFile("labels.zpl")[0]);

Was „druckergenau“ im Detail heißt:

  • QR-Codes (^BQ, Modell 2) sind modulgleich mit dem Zebra-Druckbild: Moduswahl, Version, Fehlerkorrektur und Maske, geprüft an über 3.600 Labelary-Referenzsymbolen.
  • PDF417 (^B7) und MicroPDF417 (^BF) sind codewortgleich mit Labelary, mit der Kompaktierung wie bei Zebra.
  • Zeichensätze (^CI) und ^FH verhalten sich wie am Drucker: Ohne ^CI gilt Code Page 850, ^CI0 bis ^CI12 ersetzen die nationalen Zeichen, die Windows-Codepages folgen dem ZPL-Handbuch, und unter ^CI28 tragen die 2D-Codes dieselben Bytes, die der Drucker kodiert.
  • Zebra-Verhalten nachgebildet: Zeichenbreiten von Font 0, der QR-Versatz um die ^BY-Höhe, Code 128 im Modus N bleibt in Subset B, breite Balken als floor(Verhältnis × Modul).

Schnell ist sie auch. Im Release-Build auf einem Apple M3 Max erzeugte zplCore bis zu 199.000 Etiketten pro Sekunde als ZPL (gespeichertes Format, 100.000 Etiketten in einem Auftrag) und mit 10 Threads mehr als 5.000 PNG-Vorschauen pro Sekunde. Jede Messung lässt sich mit einem einzigen Befehl wiederholen.

Rundgang durch die Funktionen

Alle Bilder und Ausgaben in diesem Abschnitt stammen aus der Engine selbst: aus der zplCore-Dokumentation, der zplCore-Kommandozeile oder den kostenlosen zplCloud-Tools.

Compliance-Vorabprüfung

Untere Hälfte eines SSCC-Palettenetiketts, von zplCore markiert: beide GS1-128-Barcodes sind rot umrandet, mit den Regeln ZPL3104, ZPL3105, ZPL3106 und ZPL3110

ZplCompliance.Check prüft ein Etikett gegen 84 Regeln in 8 Paketen: GS1-Logistiketikett, Sunrise 2027 mit GS1 Digital Link, Amazon FBA, UPS MaxiCode, Grundregeln von FedEx und DHL Paket, UDI sowie RFID/EPC. Gemessen wird am gerenderten Etikett statt am Text: X-Dimension in mm, Balkenhöhe, Ruhezonen, Klarschriftgröße, AI-Formate und Prüfziffern. Jeder Befund nennt Regel-ID, Zeile, Position und Quelle, als Text, JSON, SARIF 2.1.0 oder markiertes PNG wie oben. Hier das Beispiel aus unserem kostenlosen Label-Compliance-Check:

$ zplcore comply pallet.zpl --pack gs1-logistic --dpi 203
pallet.zpl:13:1: error ZPL3104: label 1 ^BC: X-dimension 0.25 mm (2 dot(s) at 203 dpi) is below the minimum 0.495 mm for logistic units (0.250 mm only if the unit is physically too small). [GS1 General Specifications 26.0 §5.12.3.5 Table 5-51]
    fix: Use ^BY4 or wider at 203 dpi.
pallet.zpl:15:1: error ZPL3106: label 1 ^BC: GS1-128 needs 10X quiet zones: the left quiet zone (30 dots = 3.754 mm) runs 20 dot(s) past the label edge. [GS1 General Specifications 26.0 §5.4.4.2, §5.4.6.3, Table 5-51]
    fix: Move the barcode or the neighbouring field, or reduce ^BY.
1 label(s) at 203 dpi, packs gs1-logistic GenSpecs 26.0 / LLG 1.3: 6 error(s), 0 warning(s), 2 info(s). Pre-check only, not a certification.

Die Ausgabe ist auf zwei der sechs Fehler gekürzt. Das Paket Sunrise 2027 prüft 2D-Codes für die Kasse im Handel; unser Beitrag GS1 Sunrise 2027: 2D-Codes an der Kasse zeigt es im Detail. Wichtig: Das ist eine Vorabprüfung, keine Zertifizierung. Sie ersetzt weder die Freigabe durch Carrier oder Behörden noch ein Prüfgerät am gedruckten Etikett. Dokumentation

Scan-Proof

Regaletikett mit Scan-Proof-Markierungen von zplCore: der EAN-13 am linken Rand rot mit Note F, der QR-Code rot mit Note D, Code 39 und Data Matrix grün mit Note A

ZplScanProof.Verify liest jeden Barcode mit zwei unabhängigen Decodern (zxing-cpp und ZXing.Net) aus dem gerenderten Bild zurück und vergleicht das Ergebnis mit den Felddaten. Dazu misst es X-Dimension, Ruhezonen, Balkenhöhe, Abschneiden und Überlappungen und vergibt eine Note von A bis F: eine digitale Vorabprüfung nach dem Modell von ISO/IEC 15415/15416, berechnet in Druckerauflösung. Im Beispiel aus unserem kostenlosen Barcode-Scan-Proof lassen sich alle vier Barcodes lesen, zwei würden trotzdem Ärger machen (Ausgabe gekürzt):

$ zplcore verify shelf.zpl --dpi 203
[0.0] ^BE EAN-13 line 7 at 8,80 (285×120 dots, 0°)
  status: Match   digital grade: F (0.0)
  SP1101 error: Quiet zone left: 2.7X, 11X required (ISO/IEC 15420 / GS1); limited by the label edge.
  SP1102 error: The symbol is cut off by the label edge (129 pixels of its ink lie outside ^PW/^LL).
[0.1] ^BQ QR Code line 8 at 600,10 (125×245 dots, 0°)
  status: Match   digital grade: D (1.0)
  SP1101 warning: Quiet zone bottom: 3X, 4X required (ISO/IEC 18004); limited by other ink.

Der Code 39 bekommt ein A, aber eine Warnung: Der Text „ART-4712“ daneben sieht aus wie seine Klarschrift, weicht aber vom kodierten „ART-4711“ ab. Die Note ersetzt kein kalibriertes Prüfgerät am gedruckten Etikett. Dokumentation

ZPL als editierbares Etikettenmodell

Label.FromZpl macht aus bestehendem ZPL eine editierbare, datengebundene Vorlage: Text, Barcodes, Formen, Bilder und RFID werden zu typisierten Elementen, ^FN-Felder zu Datenfeldern und ^DF-Formate zu Vorlagen. Jedes Element wird pixelweise gegen das Original geprüft; alle 318 Dateien des Testkorpus kommen pixelgleich zurück. Zum Beispiel das Versandetikett aus dem Banner:

$ zplcore import hero-label.zpl -o label.json --report
1 label(s), 203 dpi (LabelSize), fidelity 1,0000
  label 1: fidelity 1.0000 pixel-exact, 38 typed, 0 raw item(s)
  Info: Resolution detected as 203 dpi from the label width

Genau das nutzt zplCloud für den ZPL-Import in den Designer (mehr dazu unten). Dokumentation

Etiketten verstehen und DSGVO-Schwärzung

Zwei von zplCore gerenderte Versandetiketten: links das Original mit Absender, Empfänger, Sendungsnummer und 2D-Codes, rechts die geschwärzte Fassung, in der Namen, Adressen, Sendungsnummer und Barcode-Inhalte im gleichen Layout durch Platzhalter ersetzt sind

ZplExtract liest Empfänger, Absender, Sendungsnummern mit Prüfziffer, SSCC, GTIN, Daten und Gewichte aus dem ZPL, jeweils mit Fundstelle und Konfidenz. Beim Etikett oben findet es die Empfängeradresse mit Konfidenz 0,95, die SSCC 340123450000000017 aus GS1-AI (00) mit gültiger Prüfziffer, das Gewicht und das Datum. ZplRedact ersetzt personenbezogene Daten im gleichen Layout, auch in ^FX-Kommentaren, ^DF/^XF-Daten und Inhalten von 2D-Codes, setzt gültige Platzhalter-Barcodes ein und sucht danach erneut: bei diesem Etikett 28 Aktionen, 29 gesuchte Werte, 0 übrig. Das Verfahren ist regelbasiert und arbeitet ohne Netzwerk. Prüfe das Ergebnis bitte vor der Weitergabe; Text in Bildern wird nicht gelesen. Dokumentation

GS1 Digital Link und Sunrise-2027-Migration

Lebensmitteletikett, von zplCore gerendert, vor und nach der Migration: rechts ist neben dem EAN-13 ein QR-Code mit GS1 Digital Link ergänzt, grün gestrichelt umrandet

ZplGs1Migration.Migrate findet die GTIN in EAN/UPC, GS1-128, ITF-14 oder GS1 DataBar und ergänzt im freien Platz einen QR-Code mit GS1-Digital-Link-URI oder einen GS1 DataMatrix, mit Ruhezone und Sunrise-Vorabprüfung des Ergebnisses. Charge und Mindesthaltbarkeitsdatum übernimmt es bei diesem Etikett aus dem GS1-128 (Ausgabe gekürzt):

$ zplcore gs1 migrate cheese.zpl -o cheese-2d.zpl
label 1: migrated – added a QR Code with GS1 Digital Link URI with GTIN 09506000134352 right of the EAN-13 (^BE, line 9), top-aligned with the bars
  uri: https://id.gs1.org/01/09506000134352/10/L2604?15=270331
sunrise pre-check of the migrated ZPL: 0 error(s), 0 warning(s), 0 info(s)

In zplCloud erledigt das kostenlose Tool Sunrise-2027-Migration dasselbe im Browser. Ein Migrationsassistent, keine Zertifizierung. Dokumentation

RFID Studio

Von zplCore gerendertes Kartonetikett mit GS1-128-SSCC-Barcode und dem grauen RFID-Symbol, das Vorschauen bei Etiketten mit RFID-Schreibbefehl zeigen

ZplRfid kodiert und dekodiert EPCs nach dem GS1 EPC Tag Data Standard 2.3 (SGTIN, SSCC, SGLN, GRAI, GIAI und die Plus-Schemata aus TDS 2.0) und erzeugt die passenden ^RF-Befehle. Die Konsistenzprüfung vergleicht den Tag mit dem gedruckten Etikett. In diesem Beispiel bekäme der Tag eine andere SSCC, als der Barcode zeigt:

$ zplcore rfid check carton.zpl
carton.zpl:6:1: error ZPL3904: label 1 ^RF: The SSCC-96 EPC encodes SSCC (00) 340123450000000024, but ^BC prints 340123450000000017. [GS1 EPC Tag Data Standard 2.3 §7 (correspondence of EPC and GS1 keys); GS1 General Specifications 26.0 §4.13]
    fix: Encode the printed key, e.g. ZplRfid.EncodeEpc("(00)340123450000000017…") or 'zplcore rfid encode'.

zplcore rfid simulate führt die RFID-Befehle eines Etiketts wie ein RFID-Drucker gegen einen simulierten Gen2-Tag aus. Dokumentation

Printer Twin

Dasselbe 4 × 6 Zoll große Versandetikett zweimal: links von zplCore für einen ZQ510 mit 72 mm Druckkopf markiert, der rechte Teil rot schraffiert; rechts so, wie der ZQ510 es drucken würde, bei 72 mm abgeschnitten

Druckt dieses Etikett auf diesem Modell? ZplPrinterTwin.Check vergleicht ein Etikett mit einem von 24 Profilen (darunter ZD421, ZD621, ZT411, ZT610, ZQ630 und drei generische Profile) und meldet Felder außerhalb der Druckkopfbreite, fehlende Optionen wie Cutter oder RFID, Firmware-Grenzen, Fonts und Speicher, dazu eine Schätzung der Druckzeit. Jede Profilangabe ist mit Quelle belegt oder als unbekannt markiert. Das 4 × 6 Zoll große Etikett von oben auf einem Drucker mit 72 mm Druckkopf (einer von 21 Befunden):

$ zplcore twin check hero-label.zpl --profile ZQ510-203
  ZPL5102 error (53:1): Label 1: ^BC ">;>800340123450000000017" at x=280 is 16 dots (2 mm) wider than the printhead of ZQ510-203 (576 dots = 72 mm): the right part is cut off; a clipped barcode does not scan.
ZQ510-203: 13 error(s), 8 warning(s), 0 info

Dokumentation

Chaos-Drucker und Cutter-Vorschau

Sechs von zplCore gerenderte Kartonetiketten in zwei Spalten; unter Etikett 3 und 6 eine rote gestrichelte Schnittlinie mit Schere und Pausensymbol

ZplVirtualPrinter lauscht auf TCP 9100, rendert eingehende Druckaufträge und antwortet auf ~HS und ~HQES wie ein Drucker. Auf Wunsch fällt er aus: Papier oder Farbband leer, Kopf offen, Puffer voll, Cutter-Stau, RFID-Fehldruck, Verbindungsabbruch, Timeout, per Skript und reproduzierbar:

printer.Faults.Schedule(ZplFaultKind.PaperOut, ZplFaultTrigger.AfterLabels(3)); // label 4 waits
printer.Faults.Seed = 42;                                                       // deterministic random triggers

Die Cutter-Simulation zeigt, wo ein Drucker mit Cutter schneidet (^MM, ^PQ, ^CN, ~JK und weitere), und zeichnet die Schnitte in PNG-, SVG- und PDF-Vorschauen ein, wie oben: ^MMC mit ^PQ6,3 schneidet nach Etikett 3 und 6. Chaos-Drucker · Cutter

Testing+ und GitHub Action

SSCC-Barcode eines Palettenetiketts dreimal: vor der Änderung, nach der Änderung mit schmaleren Balken und anderer SSCC, und als rot-grünes Differenzbild

Etiketten sind Code, also teste sie wie Code. Das Paket ZplCore.Testing arbeitet mit xUnit, NUnit und MSTest:

ZplAssert.Label(zpl)
    .NoOverlaps()
    .Complies(CompliancePacks.Gs1LogisticLabel)
    .Barcode("SSCC").Decodes("(00)376104250021234569").HasGrade(atLeast: 'B')
    .And.MatchesSnapshot("pallet");

Ein Fehlschlag nennt Element, Position und ZPL-Zeile und verlinkt ein Bild mit dem markierten Element. zplcore check führt dieselben Prüfungen über viele Dateien aus und schreibt JUnit-XML, SARIF und Markdown. Die GitHub Action aus dem SDK kommentiert Pull Requests mit Vorher-, Nachher- und Differenzbildern und listet auf, was sich geändert hat. Die Bilder oben stammen aus so einem Lauf: Eine Änderung hat den SSCC-Barcode von ^BY4 auf ^BY3 verschmälert und seine Daten geändert (Ausgabe gekürzt):

$ zplcore check labels/pallet.zpl --pack gs1-logistic --verify --baseline ../base
FAIL labels/pallet.zpl (1 label(s), 0.25 s) · changed vs baseline (3 element change(s))
  FAIL comply gs1-logistic
    labels/pallet.zpl:12:1: error ZPL3104: Label 1: X-dimension 0.375 mm (3 dot(s) at 203 dpi) is below the minimum 0.495 mm for logistic units (0.250 mm only if the unit is physically too small).
    labels/pallet.zpl:12:1: note ZT3001: Label 1: barcode ^BC Code128 at x=86 y=820: data "(00)376104250021234569" → "(00)376104250021234576"
FAILED (fail-on error)

Dokumentation

MCP-Server für Coding-Agenten

zplcore-mcp gibt Claude Code, Claude Desktop, VS Code mit GitHub Copilot und Cursor über das Model Context Protocol 26 Werkzeuge, unter anderem Rendern, Linten, Formatieren, Vergleichen, Compliance, Scan-Proof, Schwärzen, Printer Twin, GS1 und RFID. Ein Agent schreibt ZPL, sieht sich das PNG an, liest die Diagnosen und verbessert das Etikett in einer Schleife.

claude mcp add zplcore -- zplcore-mcp

Der Server ist für nicht vertrauenswürdige Eingaben gebaut. Er spricht nur stdio und öffnet keinen Netzwerk-Port. Jeder Aufruf läuft in einem eigenen Worker-Prozess mit Zeit- und Speicherlimit und leerer Umgebung, ohne Zugriff auf Dateien, Netzwerk, Drucker oder Umgebungsvariablen; unter macOS kommt eine Betriebssystem-Sandbox dazu. Adversariale Tests, Fuzzing und ein IL-Audit der Assembly prüfen diese Regeln. Dokumentation

PDF und SVG zu nativem ZPL (Vector-Lift)

Links ein SVG-Etikett mit Überschrift, Lagerplatz, Linie, Code 128, Seriennummer und QC-Stempel; rechts dasselbe Etikett aus nativem ZPL gerendert, mit Text in Font 0, Code 128 als ^BC sowie Rahmen, Linie und Kreis als ZPL-Formen

Vector-Lift macht aus Carrier- und ERP-PDFs oder SVGs echtes ZPL statt eines einzigen ^GF-Rasterbilds: Text als ^A0-Felder, Barcodes dekodiert, als native ^B-Befehle neu erzeugt und gegengelesen, Linien und Rahmen als ^GB, ^GC und ^GE. Zu jedem Etikett gibt es die gemessene Übereinstimmung:

$ zplcore lift lift-label.svg -o lift.zpl --report
799x400 dots @ 203 dpi (default), fidelity 0.9785 (exact 0.9114), native ink 97.8 %, 370 bytes vs 4,140 bytes ^GF raster (8.9%)
4 native, 5 approximated, 0 raster, 1 dropped, barcodes match

Text wird in Font 0 statt in der Originalschrift gesetzt, und Text, der im PDF nur als Umriss vorliegt, bleibt Grafik (keine Texterkennung). In zplCloud nutzt das kostenlose Tool PDF zu nativem ZPL diese Funktion. Dokumentation

NativeAOT

SDK, Test-Paket, Kommandozeilen-Tool und MCP-Server bauen ohne Trim- und AOT-Warnungen. Kommandozeilen-Tool und MCP-Server lassen sich als native Programme veröffentlichen, die ohne installierte .NET-Laufzeit starten; ein Smoke-Test vergleicht ihre Ausgaben byte- und pixelgenau mit der JIT-Version. Dokumentation

Was das für zplCloud-Nutzer bedeutet

Du musst nichts installieren; zplCloud läuft bereits auf zplCore.com:

  • Vier neue kostenlose Tools: Label-Compliance-Check, Barcode-Scan-Proof, Sunrise-2027-Migration und PDF zu nativem ZPL. Alle vier gibt es auch über die zplCloud-API unter /v1/tools/….
  • Vorschau gleich Druck: PNG-, SVG- und PDF-Vorschauen rendern dasselbe ZPL, das an den Drucker geht.
  • Besserer Import in den Designer: Der ZPL-Import läuft jetzt über Label.FromZpl. Bei der Rundreise ZPL → Design → ZPL aller 96 Vorlagen in 10 Sprachen stieg der mittlere Wert von 0,7707 auf 0,9998 und die Zahl der pixelgenauen Vorlagen von 26 auf 911 von 960.
  • Die bekannten Tools wie ZPL-Linter, ZPL-Formatter, ZPL-Diff und Barcode prüfen arbeiten mit derselben Engine.

Demnächst: zplCore Server (Docker)

Als Nächstes bringen wir die Engine als fertigen Container mit REST-API: ZPL hinein, PNG, PDF oder Prüfbericht heraus. Geplant sind ein Multi-Arch-Image für linux/amd64 und linux/arm64, Distroless, ohne Root-Rechte und mit schreibgeschütztem Dateisystem, die Endpunkte /health, /ready und /metrics (Prometheus), eine OpenAPI-Beschreibung sowie signierte Images mit SBOM. In unserem NativeAOT-Test auf linux/arm64 startete der Server in etwa 4 ms, renderte das erste Etikett in etwa 11 ms, und das Image war etwa 100 MB groß. Der Funktionsumfang ist geplant; auf zplcore.com kannst du dich benachrichtigen lassen, sobald die erste Version bereitsteht.

Ausprobieren

  • Live-Demo: zplcore.com/demo rendert ZPL und führt Compliance-Vorabprüfung, Scan-Proof, GS1-Migration, Extraktion mit Schwärzung und Printer Twin im Browser aus.
  • Dokumentation: zplcore.com/docs mit API, Kommandozeile, Beispielen, Genauigkeit und bekannten Grenzen.
  • Testversion: über das Kontaktformular auf zplcore.com anfragen. Das Entwicklerteam antwortet direkt und prüft gern auch deine eigenen ZPL- und EPL-Dateien. Lizenzen gibt es für gewerbliche Kunden (B2B).
  • Ohne Code: Die kostenlosen zplCloud-Tools laufen auf derselben Engine.

Häufige Fragen

Ist zplCore.com dieselbe Engine, die zplCloud nutzt?

Ja. zplCloud rendert Vorschauen, PDFs und Tool-Ergebnisse mit zplCore.com, und die neuen Tools rufen dieselben Funktionen auf, die du im SDK bekommst.

Braucht zplCore.com eine Internetverbindung oder einen Druckertreiber?

Nein. Die Bibliothek läuft offline in deinem eigenen Prozess, unter Windows, Linux und macOS. Gedruckt wird direkt über TCP 9100, seriell, USB, den Windows-Spooler oder CUPS.

Sind Compliance-Vorabprüfung und Scan-Note Zertifizierungen?

Nein. Die Compliance-Vorabprüfung testet gegen veröffentlichte Regeln, die Scan-Note ist eine digitale Vorabprüfung nach dem Modell von ISO/IEC 15415/15416. Beides ersetzt weder die Freigabe durch Carrier, Behörden oder deine GS1-Länderorganisation noch ein kalibriertes Prüfgerät am gedruckten Etikett.

Was kann zplCore.com noch nicht?

Pharmacode 2D, Response Plus PostMatrix und HIBC nach ISO/IEC 15434 sind nicht umgesetzt, weil es keine öffentliche Spezifikation gibt. Deutsche Post BZL und JAB Code sind experimentell. Zebras residente Schriften sind proprietär und werden durch kalibrierte Ersatzschriften ersetzt; wer identische Glyphen braucht, registriert die Original-TTF. Die vollständige Liste steht unter bekannte Grenzen.

Muss ich in zplCloud etwas ändern?

Nein. Designs, Vorlagen, Drucker und API-Aufrufe bleiben, wie sie sind.

Zebra und ZPL sind Marken der Zebra Technologies Corporation, GS1 und GS1 Digital Link Marken der GS1 AISBL, Neodynamic, ThermalLabel und ZPLPrinter Marken ihrer Inhaber. Sie werden hier nur beschreibend verwendet.

Weitere Artikel