Как распечатать QR-код, используя термопринтер с командами EPSON? - PullRequest
0 голосов
/ 14 мая 2019

Мне нужно напечатать QR-код на термопринтере, я пытался использовать команды EPSON, чтобы он работал, но он не работал. Когда я пытаюсь распечатать QR с этим кодом, я получаю только распечатанную информацию о принтере. Кто-нибудь имел дело с такой проблемой?

Это код, который я использовал безрезультатно.

var m_encoding = Encoding.Default;
string QRdata = Purchase.TransactionReference.BookingId;
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[] { 9 }); //TAB
txt += m_encoding.GetString(new byte[] { 9 }); //TAB
txt += m_encoding.GetString(new byte[] { 9 }); //TAB
txt += m_encoding.GetString(new byte[] { 9 }); //TAB
txt += m_encoding.GetString(new byte[] { 29, 40, 107, store_pL, store_pH, 49, 80, 48 }); //FUNCTION 80
txt += QRdata;
txt += m_encoding.GetString(new byte[] { 29, 40, 107, 3, 0, 49, 69, 48 }); //FUNCTION 69
txt += m_encoding.GetString(new byte[] { 29, 40, 107, 3, 0, 49, 67, 5 }); //FUNCTION 67
txt += m_encoding.GetString(new byte[] { 29, 40, 107, 4, 0, 49, 65, 50, 0 }); //FUNCTION 65
txt += m_encoding.GetString(new byte[] { 29, 40, 107, 3, 0, 49, 81, 48 }); //FUNCTION 81                        
txt += m_encoding.GetString(new byte[] { 13 }); //CR
txt += m_encoding.GetString(new byte[] { 10 }); //LF
txt += m_encoding.GetString(new byte[] { 10 }); //LF
txt += m_encoding.GetString(new byte[] { 10 }); //LF
txt += m_encoding.GetString(new byte[] { 27, 105 }); //CUT
var resultQR = GenerateStreamFromString(txt);
BinaryReader binaryQR = new BinaryReader(resultQR, Encoding.Default);
port.Write(binaryQR.ReadBytes((int)resultQR.Length), 0, (int)resultQR.Length);
...