由于项目需要学习怎么用打印机,老员工给了我一段Python代码,可以实现发送指令打印指定内容,由于之前没接触过,所以记录一下
装Python环境就不说了,百度搜索Python,或者直接输入https://www.python.org/getit/去下载,安装过程也没有什么特殊的,你可以先把这篇收藏了,然后装好再来看。
装好以后,接下来还是跟我一起操作。
1、随便找个目录,2、右键新建文本文档,改拓展名为.py,3、右键Edit with IDLE
复制如下内容,具体解释看注释
#!/usr/bin/env python
# -*- coding: cp936 -*-
# -*- coding: utf-8 -*-
#如果要在python2的py文件里面写中文,
#则必须要添加一行声明文件编码的注释,
#否则python2会默认使用ASCII编码。
import socket
import time
#在这里指定IP地址和端口
IP_port=("10.3.0.87",9100)
#AF_INET表示使用IPV4连接,SOCK_STREAM表示使用TCP,如果要用UDP则改为SOCK_DGRAM
s = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
#连接server端
s.connect(IP_port)
#打开文件,该文件与该代码放在同一目录下
CMD = open("./2018-1-19printTest.txt")
print "打印机:%s" % ( str(IP_port) )
print "CMD:%s" % (CMD)
#读取一行
line = CMD.readline();
#发送一行,读取一行,直到结束
while line:
s.send(line)
#s.send(line + "\r\n")
print line
line = CMD.readline()
time.sleep(5000)#为了给调试工具查看用,连打印机时请注释掉
s.close()
复制完了以后,
1、在同目录下新建一个文本文档,这次不用改拓展名,
2、文件名称可以是2018-1-19printTest.txt,反正跟上面一样就可以了,
3、输入如下内容(部分内容涉及生产,作了一定修改,打印机的版本是GP-9035T,其实无所谓,我主要是为了备份一下参数,下次好找一点,txt的内容你写个1234也一样)
SIZE 60 mm,100 mm
GAP 0 mm,0 mm
REFERENCE 0,0
SPEED 5
DENSITY 6
DIRECTION 0
SHIFT 5
OFFSET 0 mm
SET PEEL ON
SET CUTTER ON
SET PARTIAL_CUTTER OFF
SET REPRINT ON
SET PEEL ON
CLS
dot_per_mm=12
cut_len=30
BOX 3*dot_per_mm,0*dot_per_mm,58*dot_per_mm,98*dot_per_mm,3
TEXT 50*dot_per_mm,12*dot_per_mm,"TSS24.BF2",90,3,3,"1234567"
TEXT 43*dot_per_mm,12*dot_per_mm,"TSS24.BF2",90,3,3,"2345678"
TEXT 36*dot_per_mm,12*dot_per_mm,"TSS24.BF2",90,2,2,"片状高品质氢氧化钠"
TEXT 29*dot_per_mm,12*dot_per_mm,"TSS24.BF2",90,3,3,"20170304A122"
TEXT 20*dot_per_mm,12*dot_per_mm,"TSS24.BF2",90,3,3,"53.5 KG"
TEXT 50*dot_per_mm,65*dot_per_mm,"TSS24.BF2",90,7,7,"78"
QRCODE 35*dot_per_mm,60*dot_per_mm,H,9,A,90,1,7,"1234567 2345678 片状高品质氢氧化钠 20170304A122 53.5 KG"
PRINT 1,1
1、接下来打开socket调试工具,新建一个server端,输入端口,然后查看IP是多少
2、回到Python,修改IP和端口
3、按下F5,或者点击Run-Run Module
如果没有成功,查看IP和端口是否正确,或者文件名称是否正确。
后记:Python语言跟java或者C++差别感觉还真是挺大的,变量不用定义就可以直接用,读取文件和socket发送只用一句话就完成,太可怕了!