简介
因为某个项目的POS机用了SP-POS802的打印机,针对这个打印机要开发一个调用打印机的动态库。收到了厂家发来的打印机指令和动态库的开发要求。做了这个,好久没用Delphi开发东西了,正好借次再熟悉一下。
动态库的文档
动态库的文件
需要加入的接口
开发
用delphi7新建一个Library起名为OtherPrinter
新建一个窗体文件Comform,在窗体中增加一个TComPort控件,不用写任何代码。
然后我们现新建一个单元文件OthPrint,这个单元文件处理写所有入口函数。
初始化打印机
调用接口的文档里要求函数名为Other_InitPrinter,所以一会儿我们写代码时初始化打印机的函数名为这个。
然后再看一下厂家的指令集里初始化打印机的方法
可以看到红框上面就是我们初始化打印机的指令集。Hex是十六进制的字符,Decimal是十进制的字符。我们的初始化代码如下:
初始化的函数里面我们对串口进行打开,包括端口号设置,波特率,停止位,数据位,然后再打开串口发送初始化的指令
ComPort1.WriteStr(chr($1B)+chr($40));
打印字符串
接口文档里
打印的字符串就是往串口发送数据即可,这个里面用到的厂家指令集就是设置字体标号和颜色标号,因为这个厂家指令集里没有颜色的指令,所以我们只关注字体标号就可以了
厂家指令集
指令集里面标注的也是很清楚了,只不过上在有个标号的大小说明,最大的是8,如果超过8则忽略这条指令了。
我的们代码如下:
frmComform.ComPort1.WriteStr(chr($1D)+chr($21)+chr(SizeType));
全切纸和部分切纸
厂家指令集中全切纸和部分切纸都是一个指令集,所以我们也写在一起了。
接口说明
厂家指令集
代码如下:
全切纸
frmComForm.ComPort1.WriteStr(chr($1D)+chr($56)+chr(0));
部分切纸
frmComForm.ComPort1.WriteStr(chr($1D)+chr($56)+chr(1));
走纸
接口说明
厂家指令集
代码如下:
frmComForm.ComPort1.WriteStr(chr($1B)+chr($64)+chr(Count));
开钱箱
接口说明
厂家指令集
代码如下:
//组合开钱箱指令,开启钱箱 sCmd := Chr($1B) + Chr($70) + Chr(m) + Chr(t1) + Chr(t2); frmComForm.ComPort1.WriteStr(sCmd);
关闭打印机
接口说明
关闭打印机厂家没有指令,实际上我们也直接用关闭串口的方式即可。
代码如下:
打开/关闭黑标功能
接口说明
查了一下厂家指令集里没有开关黑标功能,在说明书上看到是用FEED的键进行黑标的开关。所以我们的代码什么也不用写了。
这样写完了,我们通过Ctrl+F9进行编译,生成的DLL文件就可以看到了
-END-