public int OnExecute(IConsole console) { var bpac = new BpacDocument(); bpac.Open(Template); var mediaId = bpac.GetPrinterMediaId(); bpac.SetMediaId(mediaId); for (var i = 0; i < RemainingArguments.Length; i += 2) { var key = RemainingArguments[i]; var value = RemainingArguments[i + 1]; bpac.GetObject(key).Text = value; } bpac.SaveAs(Destination); console.WriteLine($"Label was written to file '{Destination}'"); bpac.Close(); return(0); }
public async Task <int> OnExecuteAsync(IConsole console) { var doc = new BpacDocument(); var printer = new BpacPrinter(); doc.Open(Template); var printerName = PrinterName ?? printer.GetInstalledPrinters().FirstOrDefault(); if (printerName == null) { console.Error.WriteLine("No printer found"); return(1); } doc.SetPrinter(printerName); for (var i = 0; i < RemainingArguments.Length; i += 2) { var key = RemainingArguments[i]; var value = RemainingArguments[i + 1]; var obj = doc.GetObject(key); if (obj == null) { console.Error.WriteLine($"The object '{key}' was not found in the template"); return(1); } obj.Text = value; } if (Database != null) { using (var file = File.OpenText(Database)) { var headerLine = await file.ReadLineAsync(); var headers = headerLine.Split(';'); doc.StartPrint(""); while (!file.EndOfStream) { var dataLine = await file.ReadLineAsync(); var data = dataLine.Split(';'); for (var i = 0; i < headers.Length; i++) { var key = headers[i]; var value = data[i]; var obj = doc.GetObject(key); if (obj == null) { console.Error.WriteLine($"The object '{key}' was not found in the template"); return(1); } obj.Text = value; } doc.PrintOut(Count); } doc.EndPrint(); } } else { doc.StartPrint(""); doc.PrintOut(Count); doc.EndPrint(); } //console.WriteLine($"{Count} copies were sent to printer '{printerName}'"); doc.Close(); return(0); }