任何人都可以帮助我解决这种情况吗?我需要帮助使用 Xamarin.Forms(iOS 和 Android)打印二维码(我只需要 Android 版本)。
打印机型号:Eurosys POSIMPT9BT02(通用打印机/支持ESC POS打印方式) 语言:Xamarin.Forms (C#)
我通过 Xamarin.Forms 中的 BluetoothSocket 发送此信息。
我有一台热敏打印机,并且我已经通过BluetoothSocket打印文本,并且我可以打印QRCode,但只能打印小QRCode,如果我打印超过500个字符的QRCode,它将发送格式不正确的QRCode并且相机无法读取它。这是我到目前为止的代码。
var byteslist = new List<byte>();
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<byte>();
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 S20gtjLCjVg6sA4qEZfQ9uBaDtB4Au2jyQeFdmm5HAo0GPUSILpRy5fcq0jI2FgNVANnpcV4RbvI BkgFGCEQc6xbx1HhiDw=*R:0008
**
对于 .Net Maui 的 Sunmi 打印问题,我建议使用以下链接中提供的 SunmiPOSLib 库:https://www.nuget.org/packages/SunmiPOSLib/.
该库提供了与商米打印机配合使用的功能,应该可以帮助您成功打印二维发票。您可以通过安装 NuGet 包并按照提供的文档将其集成到您的项目中。我将很快在下一次更新中启用图像打印