none
Vb.net Epson TM-U220AFII RRS feed

  • Pregunta

  • Hola, espero esten bien. 

    Armé un sistema sencillo de caja, stock, compra y venta para un super familiar. Compraron una impresora fiscal Epson TM-U220AFII. Cuando quiero imprimir el ticket no imprime. paso un código de prueba que tengo imprimiendo en una impresora laser normal.

     newpage = True
            With FormCmsCaja.DGV
                Dim fmt As StringFormat = New StringFormat(StringFormatFlags.LineLimit)
                fmt.LineAlignment = StringAlignment.Center
                Dim blackPen As New Pen(Color.Black, 1)
                Dim prFont As New Font("Arial", 10, FontStyle.Bold)
                Dim y As Single = e.MarginBounds.Top + 60
                Do While mrow < .RowCount
                    Dim row As DataGridViewRow = .Rows(mrow)
                    Dim x As Single = 20
                    Dim h As Single = 0
                    If (newpage) Then
                    End If
                    Dim i As Integer
                    Dim s As Integer = 30
    
                    For i = 0 To FormCmsCaja.DGV.RowCount - 2
                        If i = 0 Then
                            s = 180
                        ElseIf i > 0 Then
                            s = s + 30
                        End If
                        e.Graphics.DrawString(FormCmsCaja.DGV.Rows(i).Cells("Cantidad").Value, prFont, Brushes.Black, 30, s)
                        e.Graphics.DrawString(FormCmsCaja.DGV.Rows(i).Cells("Articulo").Value, prFont, Brushes.Black, 60, s)
                        e.Graphics.DrawString("  $" & FormCmsCaja.DGV.Rows(i).Cells("Venta").Value, prFont, Brushes.Black, 500, s)
    
                        s = s + 1
                    Next
                    Dim prFont1 As New Font("Arial", 15, FontStyle.Bold)
                    e.Graphics.DrawString("Total:  $" & FormCmsCaja.Total.Text, prFont1, Brushes.Black, 400, s + 50)
                    e.Graphics.DrawString(FormCmsCaja.DGV.Rows(0).Cells("Cantidad").Value = 1, prFont, Brushes.Black, 30, 10)
                    ' Next
                    y += h
                    mrow += 1
                    If y + h > e.MarginBounds.Bottom Then
                        e.HasMorePages = True
                        mrow -= 0
                        newpage = True
                        Exit Sub
                    End If
                Loop
                mrow = 0
            End With

    No está prolijo ese código ero para ejemplo es efectivo.

    La pregunta es: Tengo que descargar una librería? O configurar algo que no conozca porque la conexion con las imresoras fiscales es diferente? El programa lo tengo corriendo en w7 32bits y la impresora fiscal conectada en el com1.

    De antemano. Muchísimas gracias por la ayuda.

    jueves, 21 de diciembre de 2017 13:30

Respuestas

  • creo que no has entendido o no te estas dando a entender.

    1. Debes de tener instalado el driver de la impresora en la PC como una impresora normal.
    2. Luego de instalar la impresora puedes usar la clase antes publicada para enviar a imprimir a la impresora, cuando digo enviar a imprimir es enviar un string (StringBuilder x ejemplo) que puede contener comandos ESC/POS yo lo utilizo en C#, ya como 10 año y en ningún momento he tenido problemas, hasta usando impresoras SAMSUNG de punto de venta.

    las mayorias de las impresoras aqui son USB y no tengo problemas haciendolo de esta manera.

    no veo la necesidad de abrir el puerto y enviar a imprimir a esta, así que si no hemos entendido tu problema, te sugeriría que nos expliques mejor.

    Salu2,


    Marvin E. Pineda

      ComboBoxMultiColumns

     NetBarControl

      TextEditor


    sábado, 23 de diciembre de 2017 16:16

Todas las respuestas

  • hola robert

    por que no utilizas cristalReports o el reporteador que viene el Visual Studio

    https://msdn.microsoft.com/es-es/library/ms252073.aspx

    jueves, 21 de diciembre de 2017 13:55
  • para este tipo de impresoras no te recomendaría usar Crystal Report u otro reporteador, lo ideal es imprimir directamente a ellas ya que están hechas para eso, lo que yo uso es el RAW PRINTER HELPER y en el mismo string que se envía a la impresora puedes enviar los comando ESC/POS para abrir y cortar el papel si la impresora tiene tales funcionalidades.

    Salu2,


    Marvin E. Pineda

      ComboBoxMultiColumns

     NetBarControl

      TextEditor

    jueves, 21 de diciembre de 2017 15:01
  • Buenos Días 

    Por casualidad tienes un ejemplo para poder hacer pruebas yo tengo el mimo problema :D

    Gracias


    Freddy Aragon

    jueves, 21 de diciembre de 2017 15:19
  • Gracias a ambos por responder. Estoy leyendo : Cómo usar Visual Basic .NET para enviar datos sin formato a una impresora.

    Y puedo entender como viene el tema. Ni bien lo tenga andando ("espero"), posteo como quedo. Muchas gracias.!!!!!

    jueves, 21 de diciembre de 2017 19:04
  • Hola, creo que dormí 1 hora y media en los últimos 2 días. Pero no dí con la respuesta. 

    Primero no había forma de conectarme. Y pude hacerlo por una instrucción al com4 (Ya que no se entiende como una impresora y la clase e.graphics) no sirve.

    Una vez me comunique con el puerto pude abrirlo, pero a la hora de querer imprimir una linea me aparece un cartel de error diciéndome:"se ha denegado el acceso al puerto 'com4. No hay problemas al abrir o cerrar el puerto, por ejemplo, pero si al querer imprimir.

    Dim puerto As Ports.SerialPort = Nothing
            puerto = New Ports.SerialPort
            puerto.PortName = "com4"
            puerto.BaudRate = 9600I
            puerto.Parity = Ports.Parity.None
            puerto.DataBits = 8I
            puerto.StopBits = StopBits.One
            puerto.RtsEnable = True
            puerto.Handshake = Handshake.None
            If puerto.IsOpen Then
                puerto.Close()
            End If
            puerto.Open()
            puerto.WriteLine(" " & "Gracias Por Su Compra")

    sábado, 23 de diciembre de 2017 15:12
  • creo que no has entendido o no te estas dando a entender.

    1. Debes de tener instalado el driver de la impresora en la PC como una impresora normal.
    2. Luego de instalar la impresora puedes usar la clase antes publicada para enviar a imprimir a la impresora, cuando digo enviar a imprimir es enviar un string (StringBuilder x ejemplo) que puede contener comandos ESC/POS yo lo utilizo en C#, ya como 10 año y en ningún momento he tenido problemas, hasta usando impresoras SAMSUNG de punto de venta.

    las mayorias de las impresoras aqui son USB y no tengo problemas haciendolo de esta manera.

    no veo la necesidad de abrir el puerto y enviar a imprimir a esta, así que si no hemos entendido tu problema, te sugeriría que nos expliques mejor.

    Salu2,


    Marvin E. Pineda

      ComboBoxMultiColumns

     NetBarControl

      TextEditor


    sábado, 23 de diciembre de 2017 16:16