The following is code I use to send raw control codes to a Receipt or Ticket printer in VB6
Code: Select all
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 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 WritePrinter Lib "winspool.drv" (ByVal hPrinter As Long, pBuf As Any, ByVal cdBuf As Long, pcWritten As Long) As Long
Public Type DOCINFO
   pDocName As String
   pOutputFile As String
   pDatatype As String
End Type
Public Sub usbPrint(ByVal DataToBePrinted As String)
   Dim lhPrinter As Long
   Dim lReturn As Long
   Dim lpcWritten As Long
   Dim lDoc As Long
   Dim sWrittenData As String
   Dim MyDocInfo As DOCINFO
   lReturn = OpenPrinter(Printer.DeviceName, lhPrinter, 0)
   If lReturn = 0 Then
      MsgBox "Printer Error!" & Chr(10) & "Please Check Printer!", vbExclamation
      Exit Sub
   End If
   MyDocInfo.pDocName = "Receipt"
   MyDocInfo.pOutputFile = vbNullString
   MyDocInfo.pDatatype = vbNullString
   lDoc = StartDocPrinter(lhPrinter, 1, MyDocInfo)
   sWrittenData = DataToBePrinted
   lReturn = WritePrinter(lhPrinter, ByVal sWrittenData, Len(sWrittenData), lpcWritten)
   lReturn = EndDocPrinter(lhPrinter)
   lReturn = ClosePrinter(lhPrinter)
End Sub
From a search I see that it is a common problem. The person with the Zebra printer issue is at the very least one.

