Initial commit
Initial commit til Git. V2 er deployed
This commit is contained in:
72
PointOfSale/Pos.EpsonPrinter/ReceiptFormatter.cs
Normal file
72
PointOfSale/Pos.EpsonPrinter/ReceiptFormatter.cs
Normal file
@@ -0,0 +1,72 @@
|
||||
namespace EpsonReceiptPrinter;
|
||||
|
||||
public static class ReceiptFormatter
|
||||
{
|
||||
public static byte[] Format(Receipt receipt, PrinterCodePage codePage = PrinterCodePage.PC865_Nordic)
|
||||
{
|
||||
ArgumentNullException.ThrowIfNull(receipt);
|
||||
|
||||
var width = receipt.PaperWidthCharacters <= 0 ? 42 : receipt.PaperWidthCharacters;
|
||||
|
||||
var builder = new EscPosBuilder(codePage)
|
||||
.Initialize()
|
||||
.AlignCenter();
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(receipt.Header))
|
||||
{
|
||||
builder
|
||||
.SetTextSize(TextSize.DoubleWidthAndHeight)
|
||||
.BoldOn()
|
||||
.WriteLine(receipt.Header)
|
||||
.BoldOff()
|
||||
.SetTextSize(TextSize.Normal);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(receipt.SubHeader))
|
||||
{
|
||||
builder.WriteLine(receipt.SubHeader);
|
||||
}
|
||||
|
||||
builder
|
||||
.Feed(1)
|
||||
.AlignLeft()
|
||||
.Separator(width);
|
||||
|
||||
foreach (var line in receipt.Lines)
|
||||
{
|
||||
builder.SetTextSize(line.TextSize);
|
||||
|
||||
if (line.Emphasize)
|
||||
{
|
||||
builder.BoldOn();
|
||||
}
|
||||
else
|
||||
{
|
||||
builder.BoldOff();
|
||||
}
|
||||
|
||||
builder.WriteColumns(line.Left, line.Right, width);
|
||||
builder.SetTextSize(TextSize.Normal);
|
||||
builder.BoldOff();
|
||||
}
|
||||
|
||||
builder
|
||||
.Separator(width)
|
||||
.Feed(1)
|
||||
.AlignCenter();
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(receipt.Footer))
|
||||
{
|
||||
builder.WriteLine(receipt.Footer);
|
||||
}
|
||||
|
||||
builder.Feed(3);
|
||||
|
||||
if (receipt.CutPaper)
|
||||
{
|
||||
builder.Cut();
|
||||
}
|
||||
|
||||
return builder.Build();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user