我正在使用找到的POS-8330热敏收据打印机HERE
我正在编写将python字符串发送到打印机的代码,下面是实现这一点的代码
companyName = "Hilton Steel and Cement"
paytype = self.payment_Mode
companyName = companyName + "\n\nSale Receipt\n\nOpp Golden Line Mall\nP.O BOX 3404-20100\n TEL: 0727441192\nEMAIL: Hiltonltd@yandex.com"
receiptNo = randint(1, 100000)
finalString = companyName + "\n\nReceipt No:" + str(receiptNo) + "\n\n" + self.getproductList()\
+ "\n______________________________________\n" + "Total Due: " + str(self.totaltoBePaid) + "\n______________________________________\n\n" + "Paid In: " + paytype + "\n\n"+ "Served By: " + str(self.user) +"\n" + "Payment: " + str(self.finalvariables[1])+ "\nBalance: " + str(self.finalvariables[0]) + "\n\n\nWelcome Back"
open(self.filename, "w").write(finalString)
os.startfile(self.filename, "print")
打印机上有一本编程手册,但我无法从中了解任何内容,尤其是如何应用它。请在以下方面给我一些帮助
在常规的全尺寸打印机上
这正是我想要的
查看手册,这台打印机使用control characters(ASCII中的前32个字符)启动命令并将其与文本分开
因此,您可以插入文本和打印机命令。只需确保在
binary
模式下打开输出文件例如,查看编程手册第17页,命令
ESC @
会重置打印机。 该命令由两个字符(字节)组成;小数点27后接小数点64。 可以按如下方式创建该命令:您必须设置左边距(命令
GS L
,第37页)和打印区域宽度(命令GS W
,第38页)。 请注意,第38页的GS P
命令中解释了“水平运动单位”。默认水平运动单位为25.4/180=0.1411 mm或1/180=0.0055 in因此,如果要将左侧边距设置为大约5 mm(精确地说是4.94 mm),则必须发送以下命令:
值35的计算如下:
如果还希望将打印宽度设置为60 mm,
GS W
命令的参数必须为:这大于255,因此必须将其分散在两个字节上
命令是:
我认为,您可以组合这些命令:
编辑:
将打印命令添加到数据很容易:
请注意,您确实需要
encode
字符串,因为打印机命令是二进制的还请注意,您需要以二进制模式将字符串写入文件
最后,我使用了
with
,以便在写入后正确关闭文件。您使用它的方式使文件保持打开状态相关问题 更多 >
编程相关推荐