Printing Receipts to a Sewoo from VBA

printing receipts to a sewoo from vba

For a recent project we needed to print receipts on a mobile sewoo printer. First we connected the Sewoo printer via bluetooth to the laptop.

Once a connection was created we then assigned the bluetooth to a com port and used the following code to output the receipt. In my case the com port was assigned as com4. In my code I use system preferences to save the settings. In the code the SEWOO port is retrieved using this line comPort = GetPref(“Com Port”).

sewoo
Sample Print out on a SEWOO LK-P30
Sewoo Print Code
Function PrintLottoTicket(tmpID, tmpLine1, tmpLine2, tmpLine3, tmpContact, tmpName, tmpTicketName, tmpTotal, tmpPrice, tmpLines, tmpNotes)
On Error Resume Next
'code for sweoo printing
'sample lotto tcket variables passed to calling function
Dim comPort As String
Dim fileNum As Integer
Dim command As String
' Configure the COM port
comPort = GetPref("Com Port")

fileNum = FreeFile
DoEvents
Open comPort For Binary Access Write As #fileNum

If Len(tmpNotes & "") > 0 Then
    'cancelled print confirmation
    command = ""
    command = "! 0 200 200 320 1" & vbNewLine
    command = command & "TEXT 9 0 10 40  " & UCase(GetPref("Club Name")) & vbNewLine
    command = command & "TEXT 9 0 70 85 LOTTO DRAW " & vbNewLine
    command = command & "TEXT 12 0 10 135 Printed Date & Time :" & Format(Now(), "dd-mmm-yy hh:nn") & vbNewLine
    command = command & "TEXT 12 0 10 185 " & GetPref("Terms") & vbNewLine
    command = command & "TEXT 9 0 10 220 #: " & tmpID & " Cancelled " & vbNewLine
    command = command & "TEXT 9 0 10 265 ________________________" & vbNewLine
Else
    If Len(tmpName & "") > 0 And tmpLines = 3 Then
        '3 lines with a name entered
        command = ""
        command = command & "! 0 200 200 730 1" & vbNewLine
        command = command & "TEXT 9 0 10 40  " & UCase(GetPref("Club Name")) & vbNewLine
        command = command & "TEXT 9 0 70 85 LOTTO DRAW " & vbNewLine
        command = command & "TEXT 12 0 10 135 Printed Date & Time :" & Format(Now(), "dd-mmm-yy hh:nn") & vbNewLine
        command = command & "TEXT 12 0 10 160 " & GetPref("Terms") & vbNewLine
        command = command & "TEXT 4 0 10 190 ________________________" & vbNewLine
        command = command & "TEXT 9 0 10 235 Line 1: " & tmpLine1 & vbNewLine
        command = command & "TEXT 9 0 10 280 Line 2: " & tmpLine2 & vbNewLine
        command = command & "TEXT 9 0 10 325 Line 3: " & tmpLine3 & vbNewLine
        command = command & "TEXT 9 0 10 370 ________________________" & vbNewLine
        command = command & "TEXT 9 0 10 415 " & tmpTicketName & vbNewLine
        command = command & "TEXT 9 0 10 460 #: " & tmpID & " Price Paid : €" & tmpPrice & vbNewLine
        command = command & "TEXT 9 0 10 505 Contact : " & tmpContact & vbNewLine
        command = command & "TEXT 9 0 10 550 Name #: " & tmpName & vbNewLine
        command = command & "TEXT 9 0 10 595  " & vbNewLine
        command = command & "TEXT 9 0 10 640 Thanks for Playing " & vbNewLine
    ElseIf Len(tmpName & "") = 0 And tmpLines = 3 Then
        'no name
        command = ""
        command = command & "! 0 200 200 730 1" & vbNewLine
        command = command & "TEXT 9 0 10 40 " & UCase(GetPref("Club Name")) & vbNewLine
        command = command & "TEXT 9 0 70 85 LOTTO DRAW " & vbNewLine
        command = command & "TEXT 12 0 10 135 Printed Date & Time :" & Format(Now(), "dd-mmm-yy hh:nn") & vbNewLine
        command = command & "TEXT 12 0 10 160 " & GetPref("Terms") & vbNewLine
        command = command & "TEXT 4 0 10 190 ________________________" & vbNewLine
        command = command & "TEXT 9 0 10 235 Line 1: " & tmpLine1 & vbNewLine
        command = command & "TEXT 9 0 10 280 Line 2: " & tmpLine2 & vbNewLine
        command = command & "TEXT 9 0 10 325 Line 3: " & tmpLine3 & vbNewLine
        command = command & "TEXT 9 0 10 370 ________________________" & vbNewLine
        command = command & "TEXT 9 0 10 415 " & tmpTicketName & vbNewLine
        command = command & "TEXT 9 0 10 460 #: " & tmpID & " Price Paid : €" & tmpPrice & vbNewLine
        command = command & "TEXT 9 0 10 505 Contact : " & tmpContact & vbNewLine
        command = command & "TEXT 9 0 10 550  " & vbNewLine
        command = command & "TEXT 9 0 10 595 Thanks for Playing " & vbNewLine
    Else
        If tmpLines = 1 And Len(tmpName & "") > 0 Then
            'single line ticket type
            command = ""
            command = command & "! 0 200 200 630 1" & vbNewLine
            command = command & "TEXT 9 0 10 40 " & UCase(GetPref("Club Name")) & vbNewLine
            command = command & "TEXT 9 0 70 85 LOTTO DRAW " & vbNewLine
            command = command & "TEXT 12 0 10 135 Printed Date & Time :" & Format(Now(), "dd-mmm-yy hh:nn") & vbNewLine
            command = command & "TEXT 12 0 10 160 " & GetPref("Terms") & vbNewLine
            command = command & "TEXT 4 0 10 190 ________________________" & vbNewLine
            command = command & "TEXT 9 0 10 235 Line 1: " & tmpLine1 & vbNewLine
            command = command & "TEXT 9 0 10 280 ________________________" & vbNewLine
            command = command & "TEXT 9 0 10 325 " & tmpTicketName & vbNewLine
            command = command & "TEXT 9 0 10 370 #: " & tmpID & " Price Paid : €" & tmpPrice & vbNewLine
            command = command & "TEXT 9 0 10 415 Contact : " & tmpContact & vbNewLine
            command = command & "TEXT 9 0 10 460 Name #: " & tmpName & vbNewLine
            command = command & "TEXT 9 0 10 505  " & vbNewLine
            command = command & "TEXT 9 0 10 550 Thanks for Playing " & vbNewLine
        Else
            command = ""
            command = command & "! 0 200 200 550 1" & vbNewLine
            command = command & "TEXT 9 0 10 40 " & UCase(GetPref("Club Name")) & vbNewLine
            command = command & "TEXT 9 0 70 85 LOTTO DRAW " & vbNewLine
            command = command & "TEXT 12 0 10 135 Printed Date & Time :" & Format(Now(), "dd-mmm-yy hh:nn") & vbNewLine
            command = command & "TEXT 12 0 10 160 " & GetPref("Terms") & vbNewLine
            command = command & "TEXT 4 0 10 155 ________________________" & vbNewLine
            command = command & "TEXT 9 0 10 190 Line 1: " & tmpLine1 & vbNewLine
            command = command & "TEXT 9 0 10 235 ________________________" & vbNewLine
            command = command & "TEXT 9 0 10 280 " & tmpTicketName & vbNewLine
            command = command & "TEXT 9 0 10 325 #: " & tmpID & " Price Paid : €" & tmpPrice & vbNewLine
            command = command & "TEXT 9 0 10 370 Contact : " & tmpContact & vbNewLine
            command = command & "TEXT 9 0 10 415  " & vbNewLine
            command = command & "TEXT 9 0 10 460 Thanks for Playing " & vbNewLine
        End If

    End If
End If
command = command & "FORM" & vbNewLine & "PRINT" & vbNewLine
Put #fileNum, , command
Debug.Print command

' Close the COM port
Close #fileNum

End Function

Steps to Configure your SEWOO Printer

1) Turn on the sewoo printer.
2) Go to [Settings] – [Devices] – [Bluetooth & other devices] in Windows.
3) Click the “Add device” button, then select and pair the device you find.
4) Check if the device has been added to the list with its Bluetooth name.
5) Select “Additional Bluetooth settings located below the [Bluetooth & other devices].
6) In the Additional Bluetooth Options window, go to the COM tab and confirm the [Outgoing] Serial (COM) port number from the options below.
e.g., com1, com2, etc

When this is complete add the printer driver to your printers using the outgoing com port defined above.

If you are using our sample app for Lotto you will need to ensure that the com port is defined in the preferences.

Link to Sewoo Printer Configurations

See our sample app to get a working version of this code


Leave a Reply

Your email address will not be published. Required fields are marked *