vb6控制ESC/POS指令打印

QQ:954486673

微信:13822155058

淘宝:https://shop73172356.taobao.com/

 

Public Type DOCINFO

  pDocName As String

  pOutputFile As String

  pDatatype As String

End Type

    

Public CR As String

     

Public Declare Function ClosePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long

Public Declare Function EndDocPrinter Lib "winspool.drv" (ByVal  hPrinter As Long) As Long

Public Declare Function EndPagePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long

Public Declare Function OpenPrinter Lib "winspool.drv" Alias  "OpenPrinterA" (ByVal pPrinterName As String, phPrinter As Long, ByVal pDefault As Long) As Long

Public Declare Function StartDocPrinter Lib "winspool.drv" Alias  "StartDocPrinterA" (ByVal hPrinter As Long, ByVal Level As Long,   pDocInfo As DOCINFO) As Long

Public Declare Function StartPagePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long

Public Declare Function WritePrinter Lib "winspool.drv" (ByVal  hPrinter As Long, pBuf As Any, ByVal cdBuf As Long, pcWritten As Long) As Long

 

Public Sub Print_axis(P1 As String, str As String)

       Dim PrintinfByte() As Byte

       Dim lhPrinter As Long

       Dim lReturn As Long

       Dim lpcWritten As Long

       Dim lDoc As Long

       Dim sWrittenData As String

       Dim MyDocInfo As DOCINFO

             

       PrintinfByte = StrConv(str, vbFromUnicode)      '将要打印的信息转化成字节数组,这样才能算出准确的打印长度,直接用len函数不行

       lpcWritten = UBound(PrintinfByte) + 1

      

       CR = Chr(13) & Chr(10)

       lReturn = OpenPrinter(P1, lhPrinter, 0)

       If lReturn = 0 Then

           Exit Sub

       End If

       MyDocInfo.pDocName = "标签"

       MyDocInfo.pOutputFile = vbNullString

       MyDocInfo.pDatatype = vbNullString

       lDoc = StartDocPrinter(lhPrinter, 1, MyDocInfo)

       Call StartPagePrinter(lhPrinter)

       lReturn = WritePrinter(lhPrinter, ByVal str, lpcWritten, lpcWritten)

       lReturn = EndPagePrinter(lhPrinter)

       lReturn = EndDocPrinter(lhPrinter)

       lReturn = ClosePrinter(lhPrinter)

End Sub

 

Private Sub Command3_Click()

        Dim printstr as string

        Dim I as integer

 

        printstr = Chr(27) & Chr(64)  '初始化

        printstr = printstr + Chr(27) & Chr(74) & Chr(23) '执行n/144英寸走纸

       

        For i = 0 To 3  '页头空行

            printstr = printstr + Chr(13) & Chr(10)

        Next

       

        printstr = printstr + "         IC卡补卡票据           "

        printstr = printstr & Chr(27) & Chr(74) & Chr(10)

        printstr = printstr & Chr(27) & Chr(33) & Chr(0)

        printstr = printstr + "--------------------------------"

        printstr = printstr & Chr(27) & Chr(74) & Chr(10)       

        printstr = printstr + "卡号:" + Trim(Text7) + "    姓名:" + Trim(Text2)

        printstr = printstr & Chr(27) & Chr(74) & Chr(25)    

        printstr = printstr + "现金账户补卡:" + Format(Val(Text5), "0.00") + " 元"

        printstr = printstr & Chr(27) & Chr(74) & Chr(25)       

        printstr = printstr + "补贴账户补卡:" + Format(Val(Text10), "0.00") + " 元"

        printstr = printstr & Chr(27) & Chr(74) & Chr(25)       

        printstr = printstr + "收新卡工本费:" + Format(Val(Text6), "0.00") + " 元"

        printstr = printstr & Chr(27) & Chr(74) & Chr(25)       

        printstr = printstr + "补卡时间:" + Format(Now, "YYYY-MM-DD HH:MM:SS")

        printstr = printstr & Chr(27) & Chr(74) & Chr(25)       

        printstr = printstr + "操 作 员:" + Trim(czymc)

        printstr = printstr & Chr(27) & Chr(74) & Chr(25)                

        printstr = printstr + "--------------------------------"

        printstr = printstr & Chr(27) & Chr(74) & Chr(20)

       

        printstr = printstr + FlootInf

        printstr = printstr & Chr(27) & Chr(74) & Chr(10)

       

        For i = 0 To 5   '页脚空行

            printstr = printstr & Chr(13) & Chr(10)

        Next

        printstr = printstr + Chr(27) & Chr(106) & Chr(20)

       

        If cutp > 0 Then printstr = printstr + Chr(27) & Chr(105) '切纸指令

       

        Call Print_axis(PrintName, printstr)            ‘PrintName 打印机名称   printstr 打印的信息     

End Sub

猜你喜欢

转载自blog.csdn.net/zhangjin7422/article/details/113244808