请教VB控制POS机上的票据打印机问题~用ESC/POS控制命令往串口发送字符的问题~各位兄弟,最近我在用VB开发一个POS系统,在打印方面我遇到了一个问题,
我用的是EPSON-TM-300UB的打印机,其缓存较小,我在连续打印的时候,
打印了七八行顺序没乱,但内容就开始乱了,如果我加了延时程序的话,就会出现
内容没乱,但顺序乱了的情况,请高人指点一二,这种情况应该如何解决??
我试过打印完一行后就清除其发送缓冲区,仍是没用~以下是源码每打印一行就调用一次prtESC/POS控制命令发送中英文混合字符
Public Function chanchar(d As String) As String
On Error Resume Next
Dim b As String, c As String, e As StringDim bbb As String
Dim i As IntegerDim ddd As String
c = Chr(28) + Chr(38)   '选择汉字模式
e = Chr(28) + Chr(46)   '取消汉字模式
For i = 1 To Len(d)bbb = Mid(d, i, 1)If Asc(Mid(d, i, 1)) < 0 Thenddd = ddd & c & bbbElseddd = ddd & e & bbbEnd IfNextchanchar = dddEnd Function
打印主体
Public Sub prt(ab As String) '打印主体On Error Resume NextDim a As String, ccc As String, bccc As String''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''ccc = Chr(28) + Chr(120) + Chr(1) '设定高速高密模式,在高密高速模式下,打印速度提高一倍
ab = chanchar(ab)
ab = ccc + ab
a = cprinter   '打印机端口
Dim aty() As Byteaty() = StrConv(ab, vbNarrow)  '转换成字节数组DoEventslinea:
Open a For Output As #1  '打开打印机端口
'''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''Print #1, aty''''''''''''''''''''''''''''''''''''''''''''Close #1End Sub

解决方案 »

  1.   

    你的打开方式用的是打开并口方式去打印内容,和发送那些打印命令,有厂家应该有这种驱动,你可以直接用printer对象去打印更好。
    如果用串口方式打开,那么代码方面应该要改变一些才行,本人,作过这方面的东东。
      

  2.   

    用金额显示牌的时候用串口。
    打印的时候就用并口就可以了。
    我的做法就是用DataReport
      

  3.   

    如果是针打,用printer对象打印会非常慢。
    ESC/POS打印机有个好处就是带硬字库,速度快很多。你试试打印一行就延时一下。