using Inspectron.Epson.PrintServer.Printers.Utils; using Inspectron.Epson.PrintServer.Printers.Utils.KitchenReceipt; using Inspectron.Epson.PrintServer.PrintServices; using System.Reflection; using System.Text.Json; namespace Inspectron.Epson.PrintServer.Printers; public class TM_U220IITranslated:IPrinter { private readonly IEpsonPrinter _printer; public TM_U220IITranslated(IEpsonPrinter printer) { _printer = printer; } public async Task InitAsync() { await _printer.InitAsync(); await Task.Delay(200); } public Task PrintImageAsync(string path) { return Task.CompletedTask; } public async Task SetFontSizeAsync(int fontSize) { //await _printer.SetBiggerFontTM220(fontSize == 2); //await Task.Delay(200); //await _printer.SelectFont(EpsonCommands.PrinterFont.A); //await Task.Delay(200); } public async Task PrintTextAsync(string text) { var deserializedReceipt = JsonSerializer.Deserialize(text); KitchenReceiptConverter translator = new KitchenReceiptConverter(bigLineWidth: 20, lineWidth: 33); var commands = translator.ConvertToPrintCommands(deserializedReceipt); foreach (var command in commands) { await _printer.SetBiggerFontTM220(command.IsBig); await Task.Delay(200); await _printer.SetRedColor(command.IsRed); await Task.Delay(200); await _printer.SetEmphasized(command.IsBold); await Task.Delay(200); await _printer.PrintTextAsync(command.Text + "\n"); await Task.Delay(200); } await _printer.FeedLinesAsync(10); await Task.Delay(1000); } public async Task Cut() { await _printer.CutAsync(); await Task.Delay(200); } }