c# - 如何使用带有 EPSON 命令的热敏打印机打印 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);
解决方案
推荐阅读
- xamarin - Xamarin Forms ListView里面的ListView问题
- mqtt - Mosquitto Broker 中的多个客户端 ID 前缀
- java - java- javax.persistence.PersistenceException:org.hibernate.exception.GenericJDBCException:无法执行语句
- javascript - Jquery 到 Javascript Bootstrap 滚动功能
- apache-kafka - kafka 中集群资源的 ACL
- xml - Scala XML,通过模式匹配删除节点
- java - JAVA - 如何加快顺序任务
- c++ - 函数模板的模板形参名称能否在函数形参列表中多次使用?
- apache-flex - 将基于 Adobe flex 的 UI 迁移到更新的框架
- c# - 如何授权 Swagger 使用 MS Graph API