17Compliance-Pre-Check: Regelpakete als Code
Prüft Etiketten vor dem Druck gegen öffentliche Vorgaben: ZplCompliance.Check rendert das ZPL und misst die gedruckte Geometrie – X-Dimension in mm, Balkenhöhe, Ruhezonen, Klarschrift, Texthöhe, Überlappungen, abgeschnittene Symbole, GS1-AIs mit Prüfziffern und Kombinationsregeln, Digital-Link-Syntax, MaxiCode-Carrier-Nachricht. 72 Regeln in Paketen, jede mit stabiler ID, Schweregrad und Quellenangabe.
Online ausprobieren auf zplCloud.com: Label-Compliance-Check
Mehr dazu auf zplCloud.com: Guide: Warum Amazon Labels ablehnt · Vorlage: SSCC-Palettenlabel (GS1-128) · Vorlage: UDI-/HIBC-Gerätelabel
Paket (--pack) | Inhalt | Quellen |
|---|---|---|
gs1-logistic | SSCC in GS1-128, X-Dimension ≥ 0,495 mm, Balkenhöhe, Ruhezonen, Klarschrift ≥ 3 mm, AI-Formate und -Kombinationen | GS1 General Specifications 26.0, Logistic Label Guideline 1.3 |
sunrise | Sunrise 2027: GTIN in GS1 DataMatrix oder QR-Code mit GS1 Digital Link neben EAN/UPC, Modulgröße, URI-Syntax | GenSpecs 26.0, Digital Link URI Syntax 1.7.0 |
amazon-fba, ups, fedex, dhl-paket | Formate, Pflicht-Barcodes, Ruhezonen, MaxiCode-Carrier-Nachricht, 1Z-Prüfziffer | öffentliche Carrier-Dokumentation (teils als „advisory“ markiert) |
udi | UDI-DI (01), Produktionskennzeichen, Datumsregeln, zulässige Träger | 21 CFR 801, EU-MDR Anhang VI, GenSpecs 26.0 |
rfid | schreibt ^RF die EPC der gedruckten SSCC/GTIN? (siehe RFID Studio) | GS1 EPC TDS 2.3 |
// using ZplCore.Compliance;
var report = ZplCompliance.Check(zpl, CompliancePacks.Gs1LogisticLabel | CompliancePacks.Sunrise2027,
new ComplianceOptions { Dpi = 203 }); // ZPL kennt keine Auflösung: dpi des Druckers angeben
foreach (var f in report.Findings)
Console.WriteLine(f); // label 1: ZPL3104 error (16:1): ^BC: X-dimension 0.25 mm … below the minimum 0.495 mm
File.WriteAllText("labels.sarif", report.ToSarif("labels/pallet.zpl")); // GitHub Code Scanning
string json = report.ToJson();
List<byte[]> pngs = ZplCompliance.RenderAnnotated(zpl, report); // Rahmen + Regel-IDs auf dem Etikett
zplcore comply pallet.zpl --pack gs1-logistic,sunrise --dpi 203 [--format text|json|sarif] [--annotate out.png]
zplcore comply --list-rules --pack all # alle Regeln mit ID, Schweregrad und Quelle
pallet.zpl:16: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 … [GS1 General Specifications 26.0 §5.12.3.5 Table 5-51]
fix: Use ^BY4 or wider at 203 dpi.
1 label(s) at 203 dpi, packs gs1-logistic GenSpecs 26.0 / LLG 1.3: 4 error(s), 0 warning(s), 0 info(s).
Pre-check only, not a certification.
Annotiertes Etikett

Dasselbe Palettenetikett wie samples/compliance/gs1-logistic-sscc.zpl, aber mit ^BY2: beide GS1-128 sind zu schmal, die Klarschrift zu klein.
Ausgaben & eigene Regeln
- Befunde mit Regel-ID, Paket, Schweregrad, Befehl, Zeile/Spalte, Bounding-Box in Dots, Quelle und Korrekturvorschlag
- JSON, Text und SARIF 2.1.0 für GitHub Code Scanning (Regeln mit
helpUri) RenderAnnotated: Rahmen und Regel-IDs direkt auf dem Etikett- Eigene Regeln mit
ComplianceRule.Create(…), eigene Pakete mitComplianceRulePack; eingebaute Pakete mit.With(rule)/.Without("ZPL3117")anpassen ComplianceOptions:Dpi, Etikettengröße ohne^PW/^LL,FieldValues,DisabledRules,SeverityOverrides,MinimumSeverity
Grenzen: ZPL kennt keine Auflösung – alle mm-Regeln gelten für die angegebene Dpi. Nicht abgedeckt sind Druckqualitätsnoten (Kontrast, Defekte), die Position des Etiketts auf der Einheit, HIBCC-/ICCBBA-UDIs, DHL Express und die FedEx-Etikettenzertifizierung. Werte aus nicht öffentlichen Quellen sind als „advisory“ markiert.

