Diese App stellt nur grundlegende Entitäten und Funktionen sowie einige Interfaces bereit. Der Verbindungsaufbau zu einem Drucker, sowie die Konvertierung eines Bildes in ZPL muss über Subapps implementiert werden.
Interfaces
Diese App stellt folgende Interfaces sowie die dazugehörigen Enums zur Verfügung:
ZPLIPrinterConnectorNVX
Enum: ZPLConnectionTypeNVX
Methoden
Methodenname
Beschreibung
Print(Text; Code[20])
Druckt den als Text übergebenen ZPL Code am angegebenen ZPL Drucker.
Konvertiert und rotiert ein Bild, übergeben als Stream, in ZPL Code.
Drucken eines Layouts
Auf der Tabelle ZPLPrinterNVX ist das Feld "Connection Type" definiert, welches das Interface ZPLIPrinterConnectorNVX implementiert. Dieses Enum kann in Subapps erweitert werden um unterschiedliche Verbindungsarten zum Drucker zu unterstützen.
procedure PrintLayout(LayoutCode: Code[20]; NoOfCopies: Integer)
var
ZPLLayout: Record ZPLLayoutNVX;
ZPLPrinter: Record ZPLPrinterNVX;
ZPLPrinterMgt: Codeunit ZPLPrinterMgtNVX;
PrinterCode: Code[20];
IZebraConnector: Interface ZPLIPrinterConnectorNVX;
Placeholders: List of [Text];
LabelLayout: Text;
begin
ZPLLayout.Get(LayoutCode);
ZPLPrinterMgt.GetPrinter(ZPLLayout.Code, PrinterCode); //ermittelt den Drucker anhand der ZPL Druckerauswahl
ZPLPrinter.Get(PrinterCode);
IZebraConnector := ZPLPrinter."Connection Type"; //Implementierung der Druckerverbindung wird über Subapps definiert.
Placeholders.Add('Test');
Placeholders.Add('Test2'); //Definition der Werte die die Platzhalter ersetzen sollen. Der Platzhalter %1 wird durch Test ersetzt und der Platzhalter %2 wird durch Test2 ersetzt.
LabelLayout := ZPLLayout.GetLayoutAsText();
ZPLLayout.SetNoOfCopiesForLayout(NoOfCopies, LabelLayout);
LabelLayout := ZPLLayout.ReplacePlaceholders(LabelLayout, Placeholders);
IZebraConnector.Print(LabelLayout, PrinterCode);
end;