Модель принтера: Eurosys POSIMPT9BT02 (универсальный принтер/поддерживает Метод печати ESC POS)
Язык: Xamarin.Forms (C#)
Я отправляю это через BluetoothSocket в Xamarin.Forms.
У меня есть термопринтер, и я уже печатаю текст через BluetoothSocket, и я могу печатать QRC-коды, но только маленькие QRC-коды. Если я распечатаю QRC-код, содержащий более 500 символов, он отправит QRC-код, который имеет неправильный формат. и камера не может его прочитать. Вот код, который у меня есть на данный момент.
Код: Выделить всё
var byteslist = new List();
byte[] qrBytes = System.Text.Encoding.ASCII.GetBytes("HERE IS THE TEXT FOR THE QRCODE");
int dataLength = qrBytes.Length + 3;
byte dataPL = (byte)(dataLength % 256);
byte dataPH = (byte)(dataLength / 256);
var bytes = new List();
bytes.AddRange(new byte[] { 0x1D, 0x28, 0x6b, 0x04, 0x00, 0x31, 0x41, 0x33, 0x00 });
bytes.AddRange(new byte[] { 0x1D, 0x28, 0x6b, 0x03, 0x00, 0x31, 0x43, 0x05 });
bytes.AddRange(new byte[] { 0x1D, 0x28, 0x6b, 0x03, 0x00, 0x31, 0x45, 0x30 });
bytes.AddRange(new byte[] { 0x1D, 0x28, 0x6B, dataPL, dataPH, 0x31, 0x50, 0x30 });
bytes.AddRange(qrBytes);
bytes.AddRange(new byte[] { 0x1D, 0x28, 0x6b, 0x03, 0x00, 0x31, 0x51, 0x30 });
await socket.OutputStream.WriteAsync(bytes.ToArray(), 0, bytes.Count);
socket.Close();
Пример строки, которую я использую для печати этого QRCode:
A:503745561B:C:D:FTE:NF:20211027G:21
/H:I1: ESN:0O:0*Q:fH3HRTUk2V7rlYr1xdpc8lfrEVZCxTrR7ylpzKRv0KWtyBAmESRzl33Qq0Etb6RQcuHo9boupsp6
S20gtjLCjVg6sA4qEZfQ9uBaDtB4Au2jyQeFdmm5HAo0GP USILpRy5fcq0jI2FgNVANnpcV4RbvI
BkgFGCEQc6xbx1HhiDw=*R:0008
**
Это мой текущий результат: QRC-код работает неправильно:

Подробнее здесь: https://stackoverflow.com/questions/698 ... al-printer