Direktes Drucken auf Zebra Labelprinter mit EPL

Mit dem folgenden Code gelingt es mir, eine SW-Pixelgrafik direkt auf dem Etikettendrucker LP2824 auszugeben, ohne dass im System ein Treiber installiert werden muss.

  • Der Drucker muss (über seine interne Webseite) auf die Etikettengröße und die Erkennungsart (Durchsicht oder Marken) programmiert sein.
  • Die IP-Adresse muss bekannt sein, der IP-Port ist 9100.
  • Die Bildbreite muss durch 8 teilbar sein
  • Die Bildgröße darf (bei 201 dpi = 79pix/cm) nicht größer sein als das Etikett

Funktion 1 liefert einen String vom Picture-Objekt
Funktion 2 sendet diesen mit Prefix und Postfix an den Drucker

Public Function eplCreate(pict as picture) As string
Dim rgbs As RGBSurface
Dim x,y,z,Oct As Integer
Dim hx() As Integer = Array(128,64,32,16,8,4,2,1)
Dim line,buf As String = “”
rgbs = pict.RGBSurface
For y=0 To pict.Height-1 //— line
line = “”
For x=0 To pict.Width-1 Step 8 //— step in column 8
Oct = 0
For z = 0 To 7 //— 8 pixels in column step
If rgbs.Pixel(x+z,y).Value>0.5 Then Oct = Oct + hx(z)
Next
line = line+ChrB(Oct)
Next
buf=buf+line
Next
Return buf
End Function

Public Sub eplPrint(addr as string, port as integer, width as integer, height as integer, data as string)
Dim tc As New TCPSocket
tc.Address = addr
tc.port = port
tc.Connect
tc.write “N”+ChrB(10)+“GW0,0,”+Str(width\8)+“,”+Str(height)+“,”+data+“P1”+ChrB(10)
While tc.BytesLeftToSend>0
app.DoEvents
Wend
tc.Disconnect
End Sub

Kann ich in Kürze auch für ZPL liefern …

1 Like