Problem mit (Bon)drucker

  • VB.NET

Es gibt 24 Antworten in diesem Thema. Der letzte Beitrag () ist von Dizzy.

    jannik01 schrieb:

    Was
    So was zum Beispiel.
    Da musst Du Dich mal gezielt auf die Suche machen.

    jannik01 schrieb:

    Also wie kann ich den Drucker dann genau ansteuern, über POS.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Wie ich schon geschrieben habe. in meinem Post sind ja die Links dabei.
    zuerst musst du dir das Pos für .Net fon Microsoft installieren.
    und dann den passenden Pos Treiber für den drucker. theoretisch müsste der von Epson funktuinieren. auch dazu habe ich ja einen Link gepostet.
    Und wie schon gesagt nicht jeder Drucker ist Pos kompatiebel. da must du selber rechachieren. probier es mal mit dem aus was ich geschrieben habe.
    und wie das dann mit dem drucken ist habe ich auch geschrieben, bei dem EPSON OPOS for .Net sind Beispiele dabei.

    aber hier mal ein kleines Beispiel wie das ungefähr aussieht.

    VB.NET-Quellcode

    1. Option Strict On
    2. Imports Microsoft.PointOfService
    3. Imports System.Globalization
    4. Public Class Form1
    5. Inherits System.Windows.Forms.Form
    6. Private m_Printer As Microsoft.PointOfService.PosPrinter = Nothing
    7. Private CtInfo As New CultureInfo("de-De")
    8. ' Private CtInfo As New CultureInfo("de-De")
    9. 'ESC command
    10. Private ESC As String = Chr(&H1B)
    11. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    12. '<<<step1>>>--Start
    13. 'Use a Logical Device Name which has been set on the SetupPOS.
    14. Dim strLogicalName As String
    15. Dim deviceInfo As DeviceInfo
    16. Dim m_posExplorer As PosExplorer
    17. Dim flag_op As Boolean = True
    18. strLogicalName = "PosPrinter"
    19. 'Create PosExplorer
    20. m_posExplorer = New PosExplorer
    21. m_Printer = Nothing
    22. If flag_op = True Then
    23. Timer1.Enabled = True
    24. Timer1.Interval = 1500
    25. End If
    26. Try
    27. deviceInfo = m_posExplorer.GetDevice(DeviceType.PosPrinter, strLogicalName)
    28. m_Printer = CType(m_posExplorer.CreateInstance(deviceInfo), PosPrinter)
    29. Catch ex As Exception
    30. ChangeButtonStatus()
    31. Return
    32. End Try
    33. Try
    34. 'Open the device
    35. m_Printer.Open()
    36. 'Get the exclusive control right for the opened device.
    37. 'Then the device is disable from other application.
    38. m_Printer.Claim(1000)
    39. 'Enable the device.
    40. m_Printer.DeviceEnabled = True
    41. Label1.Text = m_Printer.DeviceName
    42. Label2.Text = m_Printer.CoverOpen.ToString
    43. Catch ex As PosControlException
    44. ChangeButtonStatus()
    45. End Try
    46. '<<<step1>>>--End
    47. End Sub
    48. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    49. '<<<step2>>>--Start
    50. 'Initialization
    51. 'Dim ESC As String * 1
    52. Dim dateTime As DateTime = New DateTime
    53. Dim dateFormat As DateTimeFormatInfo = New DateTimeFormatInfo
    54. Dim strDate As String
    55. 'Get current date
    56. dateTime = System.DateTime.Now()
    57. dateFormat.MonthDayPattern = "MMMM"
    58. strDate = dateTime.ToString("MMMM,dd,yyyy, HH:mm", dateFormat)
    59. Try
    60. 'Print address
    61. m_Printer.PrintNormal(PrinterStation.Receipt, ESC + "|N" _
    62. + "123xxstreet,xxxcity,xxxxstate" + vbCrLf)
    63. 'Print phone number
    64. m_Printer.PrintNormal(PrinterStation.Receipt, ESC + "|rA" _
    65. + "TEL 9999-99-9999 C#2" + vbCrLf)
    66. 'Print date
    67. 'ESC|cA = Centaring char
    68. m_Printer.PrintNormal(PrinterStation.Receipt, ESC + "|cA" + strDate + vbCrLf + vbCrLf)
    69. 'Print buying goods
    70. m_Printer.PrintNormal(PrinterStation.Receipt, "apples $20.00" + vbCrLf)
    71. m_Printer.PrintNormal(PrinterStation.Receipt, "grapes $30.00" + vbCrLf)
    72. m_Printer.PrintNormal(PrinterStation.Receipt, "bananas $40.00" + vbCrLf)
    73. m_Printer.PrintNormal(PrinterStation.Receipt, "lemons $50.00" + vbCrLf)
    74. m_Printer.PrintNormal(PrinterStation.Receipt, "oranges $60.00" + vbCrLf + vbCrLf)
    75. '//Print the total cost
    76. '//ESC|bC = Bold
    77. '//ESC|uC = Underline
    78. '//ESC|2C = Wide charcter
    79. m_Printer.PrintNormal(PrinterStation.Receipt, ESC + "|bC" _
    80. + "Tax excluded. $200.00" + ESC + "|N" + vbCrLf)
    81. m_Printer.PrintNormal(PrinterStation.Receipt, ESC + "|uC" _
    82. + "Tax 5.0% $10.00" + ESC + "|N" + vbCrLf)
    83. m_Printer.PrintNormal(PrinterStation.Receipt, ESC + "|bC" + ESC + "|2C" _
    84. + "Total $210.00" + ESC + "|N" + vbCrLf)
    85. m_Printer.PrintNormal(PrinterStation.Receipt, "Customer's payment $250.00" + vbCrLf)
    86. m_Printer.PrintNormal(PrinterStation.Receipt, "Change $40.00" + vbCrLf + vbCrLf)
    87. m_Printer.PrintNormal(PrinterStation.Receipt, ESC + "|cA" + ESC + "|2C" + "Thaks for shoping")
    88. 'Feed the receipt to the cutter position automatically, and cut.
    89. 'ESC|#fP = Line Feed and Paper cut
    90. Dim TestCutting As String = ESC & "|100fP"
    91. m_Printer.PrintNormal(PrinterStation.Receipt, TestCutting)
    92. Catch ex As PosControlException
    93. End Try
    94. '//<<<step2>>>--End
    95. End Sub

    Hi zusammen, hatte das selbe Problem. Falls das Problem noch aktuell ist, schau Dir das mal an
    vbarchiv.net/tipps/tipp_2375-k…s-befehle-ansprechen.html

    Funktioniert ohne jeglichen Treiber mit fast allen POS Druckern. Ich habe einen 4610 und bis auf den Grafikdruck, der leider noch nicht funktioniert, arbeitet die Bibliothek super.

    Ich hoffe ich konnte Dir und anderen helfen.
    hi Net_checker!
    Guter Tip; leider hat die Sache einen kleinen Haken. man kann nur drucken, aber die Sensoren nicht abfragen. (z.B.: Drucker offen, Papier fast aus, Kassenlade offen u.s.w.)
    aber wenn man nur drucken will ist das eine gute alternative.
    Mein Problem ist eigentlich nur, dass das Epson OPS for Net (auch die letzte Version) nur .Net Framework bis 3.5 unterstützt.
    Aber für mein Kassenprogramm reicht eigentlich das Framework 3.5 vollkommen aus.
    Auch mit den verschiedenen Betriebssystemen habe ich keine Probleme mit dem Driver, läuft von XP bis Windows 10 einwandfrei.
    Ich bin aber zuversichtlich das bald mal ein update rauskommt, dass das Aktuelle Framework unterstützt.