2
我无法在qr码中打印超过380个字符。EPSON ESCPOS QRCode> 380个字符不打印
跟随在C#代码:
protected ASCIIEncoding m_encoding = new ASCIIEncoding();
string QRdata = @"35150909165024000175590000193130072726117830|20150924062259|50.00||hdMEPiER6rjZKyKA+4+voi1nncxsAGFbYsEEqnh04SbvUEI/haUF4GUBPxT6Q2Uhf9f8QYgxiwxWo3GxRrvj4WnNeTYgAqUAYmOANPItNkOw0CppmZ4R8i1ZOlnftVhksCM0zrl4RiKgoazbN44hUu2nQf0W/JLvFXzXu12JlcSThNtmyJ6m9WBsMc/sf9BE14HDoXMyKRIQYt5TkEjilHH9Ffa0saRyUIp+Fji89/Moq8YCCFC+qC44XGxsvNCeeHUNOc1LgPP0DbU1miwpVnrBlEl87RU8Iy0r8fN/fNhbcStkwfTEvhYvZz42nEKHrmGTpGZYkHuTFCNZPq7aCA==";
int store_len = QRdata.Length + 3;
byte store_pL = (byte)(store_len % 256);
byte store_pH = (byte)(store_len/256);
string txt = m_encoding.GetString(new byte[] { 29, 40, 107, store_pL, store_pH, 49, 80, 48 }); //FUNCTION 180
txt += QRdata;
txt += m_encoding.GetString(new byte[] { 29, 40, 107, 3, 0, 49, 69, 48 });//FUNCTION 169
txt += m_encoding.GetString(new byte[] { 29, 40, 107, 3, 0, 49, 67, 5 });//FUNCTION 167
txt += m_encoding.GetString(new byte[] { 29, 40, 107, 4, 0, 49, 65, 50, 0 });//FUNCTION 165
txt += m_encoding.GetString(new byte[] { 29, 40, 107, 3, 0, 49, 81, 48 });//FUNCTION 181
当试图打印显示如下:
请问,您如何使用字符串?据我所知,你把它发送到串口。为什么不使用字节数组呢?它看起来像ASCII是你的问题,因为它是7位编码,但是你的低部分长度超过了7位,所以你在'txt'变量中得到'?'。你可以使用'Encoding m_encoding = Encoding.GetEncoding(“iso-8859-1”);'为串口设置相同的编码,或者从头开始使用字节数组。顺便说一句,你可以尝试打印QR码与您当前的代码长度为128到255之间的文本? –
我使用Winspool进行打印。 我改变了我的代码,以此编码发送字节到winspool并完美工作。 打印前最多可输入380个字符。 现在,它的工作,非常感谢你的帮助! –
很高兴帮助,我发布了一个答案,如果有人会寻找同样的问题。 –