Zebra Etiketten-Drucker über USB mit VB6 Ansprechen

  • VB6

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von FloPes.

    Zebra Etiketten-Drucker über USB mit VB6 Ansprechen

    Hallo Leute ich hoffe ihr könnt mir weiter helfen.

    Ich habe einen Zebra Etiketten-Drucker, der über die Programmiersprache ZPLII Programmiert werden kann. Der Drucker wird über USB an den PC angeschlossen. VB6 soll die Befehle zum Drucken eines Etikettes über die USB-Schnittstelle an den Drucker senden.

    Wie kann ich soetwas realisieren? Ich habe schon einiges gefunden, komme damit aber nicht so zurecht. Habe mir z.B. ein Programm von Elektor angeschaut (USB Thermometer von B. Kainka), dann hab ich mich mal hier umgeschaut lvr.com/ sehr kompliziert alles... und das Control hidcomm.ocx hab ich gefunden aber keine Ahnung wie das und ob es überhaupt mit dem Drucker funktioniert.

    So schonmal vielen Dank für eure Hilfe!!!

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Also ich hab auch ein Zebra Drucker den ich für Etikettendruck verwende.

    Mit VB6 war das ganz einfach passende Form(Etikettengröße) erstellt, mit einigen Labels und Textfelder versorgt noch ein Barcode Feld drauf und das Ganze über Printform an den Drucker gesendet funktioniert prima.

    Man kann ja Parameter mitgeben soviel man möchte Kopien, Ausrichtung usw.
    OK momentan bin ich noch an der Informationssammlung, den Drucker hab ich schon. Jetzt muss nur noch das richtige Farb bzw. Thermoband her. Wenn das kommt, dann kann ich mal loslegen. Bis dahin hab ich noch ein bisschen Zeit zum recherchieren.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Hariboo83“ ()

    So ich hab jetzt alle nötigen Teile um den Drucker in Verbindung mit VB zu testen. Über USB funktioniert das aber nicht so richtig, denn mit dem Print Befehl druckt er mir die Steuerbefehle...

    Also z.B. ein Steuerbefehl zum Starten des Druckes ist ^XA aber über den Befehl Printer.Print "^XA" druckt der Drucker mir den Befehl ?( , irgendwie nicht ganz richtig. Gibts da noch ne andere Möglichkeit?
    Wenn du Printer.Print "^XA" hinschreibst ist ja klar, dass auf dem Drucker dann ^XA ausgedruckt wird. Das bewirkt ja der Print-Befehl.
    Der Befehl zum Starten des Ausdrucks ist Printer.EndDoc, um alles weitere - also wie welche Zeichen und Befehle beim Drucker ankommen - kümmert sich dann der Druckertreiber.
    Also das verstehe ich jetzt nicht so richtig, wie sende ich dann die Steuerbefehle zum Drucker damit diese vom Drucker auch als Befehle erkannt werden und nicht als Text ausgedruckt werden?

    Und noch ne Frage zu Printer.EndDoc kommt dieser Befehl nicht zum Schluss?
    Natürlich kommt Printer.EndDoc zum Schluß. Das ist ja der Befehl, dass das Dokumen bzw die auszudruckenden Daten fertig sind und ausgedruckt werden können. Bei meheren Etiketten sollte auch Printer.NewPage zwischendurch funktionieren

    Ich verstehe jetzt nicht, welche speziellen Befehle du an den Drucker senden willst.
    Geht normalerweise alles über das Printer-Objekt.
    Hier mal ein Schnipsel aus einem Projekt in dem auch auf einen (Zebra?)-Etikettendrucker gedruckt wird. (läuft seit meheren Jahren)

    Visual Basic-Quellcode

    1. '--> drucke Datum
    2. Printer.FontSize = 9
    3. Printer.Font = "FontA11"
    4. Printer.Print " " & "Datum: " & Date
    5. '--> drucke Lieferscheinnummer
    6. Printer.FontSize = 9
    7. Printer.Font = "FontA11"
    8. Printer.Print " " & "LSNr: " & liefNr
    9. Printer.Print ""
    10. '--> drucke Barcode
    11. Printer.FontSize = 40
    12. Printer.Font = "Code39"
    13. Printer.Print Barcode
    14. Printer.Print ""
    15. Printer.Print ""
    16. Printer.EndDoc
    OK Danke erstmal für deine Hilfe Gaga, ich bin gerade am Testen... Momenntan funktioniert es leider noch nicht so wie ich das möchte. Wenn es nicht über die USB-Schnittstelle funktioniert, dann muss ich doch wohl oder übel die Befehle über die serielle Schnittstelle schicken. Da kann man dan nämlich direkt die ZPLII Befehle an den Drucker senden.

    Es muss doch möglich sein dass man die Daten wie bei der Seriellen Schnittstelle auch über die USB Schnittstelle schicken kann??
    unter VB6 kannst du das wie folgt machen

    Visual Basic-Quellcode

    1. Private Sub Drucken()
    2. Dim x As Printer
    3. For Each x In Printers
    4. If (x.DeviceName = "Zebra TLP2844") Or (x.DeviceName = "TLP2844-WE2") Then
    5. Set Printer = x
    6. End If
    7. Next
    8. With Printer
    9. .Copies = "2"
    10. .Orientation = vbPRORPortrait
    11. End With
    12. Etikett.PrintForm
    13. End Sub


    lass dich von dem hier nicht beirren es dient nur dazu den richtigen Drucker vor dem Druck auszuwählen

    Visual Basic-Quellcode

    1. For Each x In Printers
    2. If (x.DeviceName = "Zebra TLP2844") Or (x.DeviceName = "TLP2844-WE2") Then
    3. Set Printer = x
    4. End If
    5. Next
    Ich hänge mich einfach mal frecherweise an das Thema dran, da es quasi exakt meine Problemstellung trifft.
    Allerdings mit einer Einschränkung: Mein komplettes ZPL liegt als Datei vor.
    Was ich also erreichen muss ist, dass eine komplette Datei an den USB-Drucker geschickt wird und zwar genau so, wie sie ist, damit der Drucker das richtig interpretiert.

    Momentan habe ich das so geschrieben:

    Visual Basic-Quellcode

    1. Dim pPrinter As Printer
    2. For Each pPrinter In Printers
    3. If (pPrinter.DeviceName = sPrinterName) Then
    4. Set Printer = pPrinter
    5. End If
    6. Next
    7. Printer.Print myTextStream.ReadAll


    Der myTextStream ist die Datei, welche gedruckt werden muss. Diese enthält dann ZPL-Anweisungen. Ist das der richtige Ansatz dafür?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „FloPes“ ()