zplCore.comzplCore.com

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

SVG-Etikett mit Titel, Lagerplatz, Linie, Code 128, Seriennummer und QC-Stempel

Erzeugtes ZPL, gerendert

Dasselbe Etikett aus nativem ZPL: Text in Schrift 0, Code 128 als ^BC, Rahmen, Linie und Kreis als ZPL-Formen

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.