Files
Bjarne Pedersen 41e23b6184 Initial commit
Initial commit til Git.
V2 er deployed
2026-06-13 17:31:50 +02:00

64 lines
2.1 KiB
C#

namespace EpsonReceiptPrinter;
public static class EscPosCommands
{
public static readonly byte[] Initialize = [0x1B, 0x40];
public static readonly byte[] BoldOn = [0x1B, 0x45, 0x01];
public static readonly byte[] BoldOff = [0x1B, 0x45, 0x00];
public static readonly byte[] UnderlineOn = [0x1B, 0x2D, 0x01];
public static readonly byte[] UnderlineOff = [0x1B, 0x2D, 0x00];
public static readonly byte[] AlignLeft = [0x1B, 0x61, 0x00];
public static readonly byte[] AlignCenter = [0x1B, 0x61, 0x01];
public static readonly byte[] AlignRight = [0x1B, 0x61, 0x02];
public static readonly byte[] FontA = [0x1B, 0x4D, 0x00];
public static readonly byte[] FontB = [0x1B, 0x4D, 0x01];
public static byte[] Feed(int lines)
{
if (lines < 0 || lines > 255)
{
throw new ArgumentOutOfRangeException(nameof(lines));
}
return [0x1B, 0x64, (byte)lines];
}
public static byte[] CutFull() => [0x1D, 0x56, 0x00];
public static byte[] CutPartial() => [0x1D, 0x56, 0x01];
public static byte[] OpenCashDrawer() => [0x1B, 0x70, 0x00, 0x19, 0xFA];
public static byte[] SelectCodePage(PrinterCodePage codePage) => [0x1B, 0x74, (byte)codePage];
public static byte[] TextSize(TextSize size) =>
size switch
{
TextSize.Normal => [0x1D, 0x21, 0x00],
TextSize.DoubleWidth => [0x1D, 0x21, 0x10],
TextSize.DoubleHeight => [0x1D, 0x21, 0x01],
TextSize.DoubleWidthAndHeight => [0x1D, 0x21, 0x11],
_ => [0x1D, 0x21, 0x00]
};
public static byte[] TextSize(int widthMultiplier, int heightMultiplier)
{
if (widthMultiplier < 1 || widthMultiplier > 8)
{
throw new ArgumentOutOfRangeException(nameof(widthMultiplier));
}
if (heightMultiplier < 1 || heightMultiplier > 8)
{
throw new ArgumentOutOfRangeException(nameof(heightMultiplier));
}
var value = (byte)(((widthMultiplier - 1) << 4) | (heightMultiplier - 1));
return [0x1D, 0x21, value];
}
}