Principales respuestas
Vb.net Epson TM-U220AFII

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.
Respuestas
-
creo que no has entendido o no te estas dando a entender.
- Debes de tener instalado el driver de la impresora en la PC como una impresora normal.
- 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
- Editado Marvin E. Pineda sábado, 23 de diciembre de 2017 16:17
- Marcado como respuesta Roberto Carrillo 1976 jueves, 27 de diciembre de 2018 21:25
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
-
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
- Marcado como respuesta Roberto Carrillo 1976 jueves, 21 de diciembre de 2017 19:00
- Desmarcado como respuesta Roberto Carrillo 1976 sábado, 23 de diciembre de 2017 15:02
-
-
-
-
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")
-
creo que no has entendido o no te estas dando a entender.
- Debes de tener instalado el driver de la impresora en la PC como una impresora normal.
- 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
- Editado Marvin E. Pineda sábado, 23 de diciembre de 2017 16:17
- Marcado como respuesta Roberto Carrillo 1976 jueves, 27 de diciembre de 2018 21:25