05EPL2
EplRenderer ist ein virtueller EPL2-Drucker: EPL wird nach ZPL übersetzt und durch denselben ZplRenderer gerendert – gleiche Schriften, Barcodes, Ausgabeformate und Einstellungen. ToZpl() liefert die Übersetzung direkt, also einen EPL→ZPL-Konverter für die Migration alter Formulare.
Online ausprobieren auf zplCloud.com: EPL2 zu ZPL
var epl = new EplRenderer(new ZplRenderSettings { Dpi = 203 }.WithLabelSizeInches(4, 3));
epl.Clock = () => new DateTime(2026, 10, 18, 14, 5, 9); // für TT/TD-Felder
epl.PrinterControl += (_, e) => Console.WriteLine($"EPL-Steuerbefehl: {e.Command.Name}");
List<byte[]> pngs = epl.ProcessFile("samples/zpl/sample.epl"); // ein PNG pro gedrucktem Etikett
File.WriteAllBytes("sample.png", pngs[0]);
// EPL → ZPL: dieselbe Übersetzung, die der Renderer intern nutzt
string zpl = epl.ToZpl(File.ReadAllText("samples/zpl/form.epl"));
File.WriteAllText("form.zpl", zpl); // drei ^XA…^XZ-Blöcke (P3)
epl.AddGraphic("LOGO", File.ReadAllBytes("logo.pcx")); // für GG x,y,"LOGO"
epl.Settings.OutputFormat = ZplOutputFormat.Pdf;
File.WriteAllBytes("form.pdf", epl.ProcessFile("samples/zpl/form.epl")[0]);
samples/zpl/sample.epl EPL → Bild

Übersetztes ZPL anzeigen (ToZpl)
Formulare, Variablen & Zähler
FS"name" … FE zeichnet ein Formular auf, FR"name" ruft es ab. V00–V99 sind Variablen, C0–C9 Zähler (mit Schrittweite und fester Länge); die Daten folgen nach ?, je eine Zeile. P3 druckt drei Etiketten und zählt C0 jeweils weiter. Das Formular bleibt wie am Drucker im Speicher.
Übersetztes ZPL
Unterstützte EPL2-Befehle
| Befehl | Bedeutung |
|---|---|
N | Bildpuffer löschen |
q / Q | Etikettenbreite / -höhe und Lücke |
R | Referenzpunkt (Ursprung verschieben) |
ZT / ZB | Druckrichtung oben / unten (ZB = 180°) |
A | Text: residente Schriften 1–5 (203/300 dpi), Rotation, Vergrößerung, N/R (invertiert) |
B | 1D-Barcodes: Code 128 (A/B/C/Auto), Code 39, Code 93, EAN/UPC, I2of5, Codabar, MSI, Plessey, POSTNET … |
b | 2D-Barcodes: QR (Q), Data Matrix (D), PDF417 (P), MaxiCode (M), Aztec (A) |
X | Rechteck (Kasten) |
LO / LW / LE | Linie schwarz / weiß / XOR |
LS | Diagonale |
GW | Grafik direkt (binär) |
GM / GG / GK | PCX-Grafik speichern / drucken / löschen |
FS … FE | Formular aufzeichnen |
FR / FK | Formular abrufen / löschen |
V | Formularvariable (Länge, Ausrichtung, Prompt) |
C | Zähler (Länge, Ausrichtung, Schrittweite ±) |
? | Variablendaten für V und C |
P | Drucken (Anzahl Sätze), erhöht Zähler |
TS / TT / TD | Uhr stellen, Zeit- und Datumsfelder |
S D I O U JF JB W … | Geschwindigkeit, Dichte, Zeichensatz, Optionen: über PrinterControl gemeldet |
Steuerbefehle ohne Einfluss auf das Bild (
S, D, I, O, U, JF …) löst EplRenderer.PrinterControl aus. TT/TD nutzen Clock, TS setzt einen Versatz. PCX-Grafiken für GG kommen per GM oder AddGraphic(name, pcx).
