63 lines
1.8 KiB
C#
63 lines
1.8 KiB
C#
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<KitchenReceipt>(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);
|
|
}
|
|
} |