ASCII Code an Printer senden über LAN/SERIAL oder USB

  • VB.NET
  • .NET (FX) 3.0–3.5

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von NudelHolz.

    ASCII Code an Printer senden über LAN/SERIAL oder USB

    Hallo,

    kennt sich jemand mit Schnittstellenprogrammierung für VB.NET / VB6.0 aus?

    Ich möchte gerne mit einem Fenster - den Drucker auswählen. In eine INI oder COnfig werden die Informationen geschrieben (Druckername, ggf. IP oder Port)
    In einem anderen Fenster möchte ich diesem Drucker einen ASCII Code zum Zurücksetzen der Druckerwarteschlange schicken. Besagter Drucker ist aber kein
    normaler Drucker sondern ein Etikettendrucker. Dieser Druckt auf Basis von ASCII Befehlen.

    Kann mir jemand dabei helfen?
    Also den Drucker auswählen und zumindest den genauen Namen kann ich in eine .cfg eintragen.


    Hier sind die Commands:
    drive.google.com/open?id=0BwlV_D6cw_0cLWhReUk5bGMtNGc



    Releases:
    IceTea | QR-Converter by NudelHolz - einfach Text & URL zu QR Konvertieren.

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

    Hey @NudelHolz,
    ich frage mal kurz noch etwas nach, bevor ich hier eine Idee reinschreibe:
    Bekommst du das Gerät unter "Geräte und Drucker" aufgelistet? Soll dieser Etikettendrucker an mehreren Clients ansprechbar sein?

    Grüße
    Option Strict On!

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

    Das ist doch schonmal die halbe Miete. :)

    Klasse

    VB.NET-Quellcode

    1. Public Class MyPrinter
    2. Friend TextToBePrinted As String
    3. Public Sub Print(ByVal text As String, ByVal device As String)
    4. TextToBePrinted = text
    5. Dim prn As New Printing.PrintDocument
    6. Using (prn)
    7. prn.PrinterSettings.PrinterName = device
    8. AddHandler prn.PrintPage, AddressOf Me.PrintPageHandler
    9. prn.Print()
    10. RemoveHandler prn.PrintPage, AddressOf Me.PrintPageHandler
    11. End Using
    12. End Sub
    13. Private Sub PrintPageHandler(ByVal sender As Object, ByVal args As Printing.PrintPageEventArgs)
    14. Dim myFont As New Font("Microsoft San Serif", 8)
    15. args.Graphics.DrawString(TextToBePrinted, New Font(myFont, FontStyle.Regular), Brushes.Black, 40, 0)
    16. End Sub
    17. End Class


    Aufruf
    Dim MyPrint As New MyPrinter
    'MyPrint.Print("Mein Text,...", "Dein Druckername")


    Das wäre schonmal das Drucken, natürlich könnte man das noch mit der Font variabel gestalten- habe ich in dem Part damals nicht gebraucht, weswegen ich es jetzt auch einfach mal 'copy&paste' habe.
    Wenn dein Etikettendrucker Barcodes ausgeben soll müsstest du da noch die Font für hinterlegen.

    Die Queue kannst du mit PrintQueue.Purge() leeren- allerdings leert die, glaube ich, alle in der Druckerwarteschlange befindliche Aufträge...

    Edit [15:10]:
    Schau mal hier, die PrintServer-Klasse; Verwaltet die Druckwarteschlangen auf einem Druckerserver. Hierbei kann es sich um einen Computer oder um ein dediziertes als Druckerserver fungierendes Hardwaregerät handeln.

    Grüße,
    Drahuverar
    Option Strict On!

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

    Jawohl :) Aber soweit war ich ca. auch schon.
    Ich möchte aber leider dem Drucker nur einen ASCII Befehl an seine Schnittstelle schicken.

    Undzwar ein Command um die Warteschlange zu Resetten.


    EDIT: Man denke dran - es handelt sich nicht um einen normalen Txt-Drucker von HP oder so, sondern einen Etikettierdrucker!!

    Releases:
    IceTea | QR-Converter by NudelHolz - einfach Text & URL zu QR Konvertieren.
    Also ich habe schon die Erfahrung gemacht, mit einem DYMO Etikettendrucker, dass ich dort ein Layout bzw. "Label" definieren musste. Dieses Label konnte ich später als Format-Vorlage nehmen und durch eine Schnittstelle des Herstellers war dann der Rest auch so gut wie gegessen.

    Bietet der Hersteller keine Schnittstelle, hast du schon nachgeschaut?
    Vielleicht mal schauen ob die PrintServer-Klasse deine Anfrage abdeckt- hast du mein Edit gesehen?

    Grüße
    Option Strict On!
    Es gibt auch ein fertiges Programm, in Delphi geschrieben. Allerdings birgt diese auf verschiedenen Systemen - verschiedene Fehler.

    Releases:
    IceTea | QR-Converter by NudelHolz - einfach Text & URL zu QR Konvertieren.
    Hallo,

    ja ich schaue mal. Habe da auch was gelesen - dass die PrintQeue einfach so gelöscht werden kann.
    Aber ich glaube, damit spricht er nur die Qeue vom Windows Treiber an. und Löscht damit die Druckaufträge, die bei Windows gegeben sind.
    Ich muss ja einen Befehl an einen Drucker senden.

    Ob das damit geht, weiß ich nicht so

    Releases:
    IceTea | QR-Converter by NudelHolz - einfach Text & URL zu QR Konvertieren.