Download / Erste Schritte
In fünf Minuten startklar
zplCore gibt es als NuGet-Pakete für .NET 10 und als Container auf Docker Hub. Beides läuft sofort ohne Schlüssel – die Ausgaben tragen dann ein Wasserzeichen. Für Tests ohne Wasserzeichen fordern Sie einen kostenlosen Testschlüssel an.
NuGet (.NET 10)
dotnet add package ZplCore
Alle Pakete auf nuget.org/profiles/zplcore: ZplCore (die Engine), ZplCore.Designer, ZplCore.Testing, die Werkzeuge ZplCore.Cli und ZplCore.Mcp und weitere.
Docker Hub
docker pull zplcore/server:1.0.0 docker pull zplcore/designer:1.0.0
zplcore/server – Etiketten als Dienst (NativeAOT, dazu -full), und zplcore/designer – der Etiketteneditor mit Render-API. linux/amd64 und linux/arm64, signiert, mit SBOM.
.NET · Docker · Testlizenz · zplCore Capture · Beispiele auf GitHub
.NET
Vorlage und Daten rein, ZPL, PNG und PDF raus
1. Projekt anlegen
dotnet new console -o hello cd hello dotnet add package ZplCore
2. Eine Vorlage und Daten
# hello.json ist die Etikettenvorlage, data.json die Datensätze
echo '{"unit":"Mm","width":50.8,"height":25.4,"items":[{"type":"text","name":"title","x":3,"y":4,"width":44,"height":6,"fontSize":10,"dataField":"name"}]}' > hello.json
echo '[{"name":"Hello"},{"name":"zplCore"}]' > data.json3. Program.cs
using System.Text.Json;
using ZplCore;
using ZplCore.Labels;
var label = Label.FromJson(File.ReadAllText("hello.json"), strict: true);
var data = JsonSerializer.Deserialize<List<JsonElement>>(File.ReadAllText("data.json"))!;
string zpl = label.For<JsonElement>().ToZpl(data, dpi: 203); // one label per record
File.WriteAllText("labels.zpl", zpl);
var renderer = new ZplRenderer(new ZplRenderSettings { Dpi = 203 }.WithLabelSizeMm(50.8, 25.4));
File.WriteAllBytes("label.png", renderer.ProcessCommands(zpl)[0]); // first label as PNG
renderer.Settings.OutputFormat = ZplOutputFormat.Pdf;
File.WriteAllBytes("labels.pdf", renderer.ProcessCommands(zpl)[0]); // all labels, one page each4. Starten
dotnet run
# schreibt labels.zpl, label.png und labels.pdf (zwei Etiketten, je eine Seite)Weiter: Dokumentation (Label-Modell, Datenbindung, Barcodes, Drucken) · API-Referenz
Mehr .NET-Beispiele: je Aufgabe ein Konsolenprogramm auf GitHub
Beispiele auf GitHub
Mehr Code-Beispiele: github.com/zplcore/samples
Je Aufgabe ein kurzes Konsolenprogramm – ZPL nach PNG, PDF, SVG und JPG rendern, prüfen, formatieren, vergleichen und zwischen 203, 300 und 600 dpi umrechnen, Compliance- und Scanprüfung, RFID, GS1 und Barcodes, Bilder, SVG und PDF nach ZPL, EPL2 – dazu docker compose, Kubernetes, Helm, AWS ECS/Fargate, Azure Container Apps und Google Cloud Run. Jeweils mit README und Screenshots, MIT-lizenziert (Beispiele auf Englisch).
Docker
Server und Designer mit docker compose
docker compose: Server und Designer
# compose.yaml services: server: image: zplcore/server:1.0.0 ports: ["8080:8080"] volumes: ["./templates:/templates:ro"] environment: # none = ohne Anmeldung, nur für einen lokalen Test; im Betrieb apikey oder jwt: # https://zplcore.com/de/docs/server/#auth ZPLCORE__AUTH__MODE: none read_only: true tmpfs: [/tmp] designer: image: zplcore/designer:1.0.0 ports: ["8081:8080"] volumes: ["./templates:/templates:ro"] environment: # none = ohne Anmeldung, nur für einen lokalen Test; im Betrieb apikey oder jwt: # https://zplcore.com/de/docs/designer/#quickstart-docker ZPLCORE_DESIGNER__AUTH__MODE: none read_only: true tmpfs: [/tmp]
Testen: curl und der Designer
# 1. eine erste Vorlage mkdir templates echo '{"unit":"Mm","width":50.8,"height":25.4,"items":[{"type":"text","name":"title","x":3,"y":4,"width":44,"height":6,"fontSize":10,"dataField":"name"}]}' > templates/hello.json # 2. Server und Designer starten docker compose up -d # 3. Daten rein, ZPL raus – und dasselbe Etikett als PNG curl -X POST localhost:8080/v1/labels/hello \ -H 'Content-Type: application/json' \ -d '{"name":"Hallo zplCore"}' curl -X POST localhost:8080/v1/labels/hello \ -H 'Content-Type: application/json' \ -H 'Accept: image/png' -d '{"name":"Hallo zplCore"}' -o hallo.png # 4. Designer im Browser öffnen # http://localhost:8081/designer/ # API-Doku des Servers: http://localhost:8080/docs
Das Beispiel läuft ohne Anmeldung (none) – nur für einen lokalen Test. Im Betrieb API-Schlüssel oder JWT verwenden: Authentifizierung des Servers · Designer.
Alles zu Vorlagen, Datenquellen, Drucken und Betrieb: Server-Dokumentation · Designer-Dokumentation
Kubernetes, Helm, AWS, Azure und Google Cloud Run: Deployment-Beispiele auf GitHub
Testlizenz
Ohne Wasserzeichen testen
Ohne Schlüssel trägt jede Ausgabe das Wasserzeichen „zplCore.com TRIAL“: Es stört Barcode-Prüfungen und Exporte und kostet Renderzeit. Ein kostenloser Testschlüssel entfernt es für 14 Tage – volle Geschwindigkeit, Barcodes, PDFs und Druckdaten genau wie im Echtbetrieb. Derselbe Schlüssel gilt für SDK, Designer, Server, Kommandozeile und zplCore Capture.
zplCore Capture
Etiketten aus anderen Programmen übernehmen
Die Windows-App übernimmt Etiketten aus NiceLabel, BarTender, TEKLYNX und anderen Etikettenprogrammen als zplCore-Vorlagen. zplCore Capture gibt es nicht zum öffentlichen Download: Fordern Sie es im selben Formular an (zplCore Capture ist schon angehakt) – Sie bekommen den Testschlüssel und einen persönlichen Download-Link.

