25Vector-Lift: PDF/SVG → natives ZPL
Wandelt PDF-Seiten (Carrier- und ERP-Etiketten) und SVGs in natives ZPL statt in ein großes ^GF-Rasterbild: Text wird ^A0-Feld, Barcodes werden erkannt, dekodiert und als passender ^B-Befehl neu erzeugt, Linien, Rahmen, Kreise und Ellipsen werden ^GB/^GD/^GC/^GE; nur der Rest bleibt Grafik. Jede Umwandlung wird gemessen: Original und erzeugtes ZPL werden gerendert und Pixel für Pixel verglichen. Eigenes Paket ZplCore.VectorLift (PDFium), der Kern bleibt ohne PDF-Abhängigkeit.
Online ausprobieren auf zplCloud.com: PDF/SVG zu nativem ZPL
// using ZplCore.VectorLift;
var result = VectorLift.ConvertSvg(svg, new VectorLiftOptions { Dpi = 203 }); // oder Convert(pdfBytes, …)
File.WriteAllText("label.zpl", result.Zpl); // ^A0-Text, native ^BC/^BQ …, ^GB/^GC, ^GF nur für den Rest
Console.WriteLine(result.ToReport()); // ein Eintrag je Element + gemessene Treue + Größen
Console.WriteLine($"{result.Fidelity:P1} Treue, {result.ZplBytes} statt {result.RasterZplBytes} Bytes als ^GF");
var label = result.ToLabel(); // weiter als editierbares Label-Modell
zplcore lift label.pdf -o label.zpl --report [--page n|all] [--dpi 203] [--crop] [--diff diff.png] [--min-fidelity 0.95] zplcore lift label.svg -o label.zpl --json report.json 799x400 dots @ 203 dpi, fidelity 0.9785, native ink 97.8 %, 370 bytes vs 4,140 bytes ^GF raster (8.9%) Native Barcode @60,200 336x90 CODE_128 "SN20260815" score 1.000 data ok
SVG-Original

Erzeugtes ZPL, gerendert

Quelle: lift-label.svg · Ergebnis: lift-label.zpl
Grenzen: Text wird in Schrift 0 gedruckt, außer Sie übergeben eine TrueType-Schrift, deren Lizenz-Flags das Einbetten erlauben (~DU + ^A@); in PDFs eingebettete Schriften werden nie extrahiert. Text ohne Textebene (als Umrisse gezeichnet) bleibt Grafik – keine OCR. Clip-Pfade zählen als Rechteck; QR/Aztec-Masken und -Versionen wählt der Encoder (Daten identisch, Muster kann abweichen). Der SVG-Leser kennt keine CSS-Stylesheets, Filter, Masken, Verläufe, Skripte oder externen Ressourcen. PDFium ist nicht thread-sicher (Aufrufe werden serialisiert); typisch 1–4 s pro 4 × 6″-Etikett.

