Foros del Web » Programación para mayores de 30 ;) » .NET »

Imprimir Ticket con Visual Basic 2005

Estas en el tema de Imprimir Ticket con Visual Basic 2005 en el foro de .NET en Foros del Web. bueno amigo cuento corto: he tratado de imprimir un ticket que simula un boleto ya he intentado de muchas formas en las cuales he fracasado, ...
  #1 (permalink)  
Antiguo 05/07/2007, 08:49
 
Fecha de Ingreso: marzo-2006
Mensajes: 202
Antigüedad: 18 años, 8 meses
Puntos: 2
Imprimir Ticket con Visual Basic 2005

bueno amigo cuento corto: he tratado de imprimir un ticket que simula un boleto ya he intentado de muchas formas en las cuales he fracasado, pero he perseverado y he logrado imprimir el contenido de un Richtextbox, osea toda la informacion del ticket esta dentro de la propiedad .text del control imaginence como lo tenido que hacer para poder digamoslo asi "dibujar mi ticket" lo he hecho se imprime espectacular pero el manda mas quiere que ahora tenga algunas particularidades como que el texto tenga otro tramaño y en negrita ya ahy ya agote mis recursos aca es donde acudo a ustedes que puedo hacer agradeceria algo concreto ya que entre las opciones que trate de imprimir ocupe crystal pero no supe como hacerlo correctamente ya que la mayoria de ejemplos en lared estan con versiones antiguas de visual y por ahy me pierdo...
please help!!!!
  #2 (permalink)  
Antiguo 07/08/2008, 21:46
 
Fecha de Ingreso: noviembre-2006
Ubicación: Pasto
Mensajes: 154
Antigüedad: 18 años
Puntos: 1
Respuesta: Imprimir Ticket con Visual Basic 2005

jetzona, le he enviado un mensaje a su bandeja de entrada de forosdelweb, ojala pueda ayudarme... suerte!!!!
  #3 (permalink)  
Antiguo 08/08/2008, 14:40
 
Fecha de Ingreso: octubre-2004
Mensajes: 55
Antigüedad: 20 años, 1 mes
Puntos: 0
Respuesta: Imprimir Ticket con Visual Basic 2005

Hola qué tal,

Qué tipo de impresora tienes?

Es especial para tickets? Es térmica o de punto?

Yo desarrollé una aplicación para tickets pero con impresora de punto, especial para imprimir tickets en VB 2005. Aunque si fuera termica no hay mucha diferencia.

Ojalá pudieras ser un poco más concreto en relación a tu alcance y lo que realmente necesitas. De ser posible y necesario postear algo de código y si está en mis manos con gusto te asesoro.

Saludos!
  #4 (permalink)  
Antiguo 11/08/2008, 09:55
 
Fecha de Ingreso: octubre-2007
Mensajes: 3
Antigüedad: 17 años, 1 mes
Puntos: 0
Imprimir Ticket con Visual Basic 2005

Cita:
Iniciado por RugalMKing Ver Mensaje
Hola qué tal,

Qué tipo de impresora tienes?

Es especial para tickets? Es térmica o de punto?

Yo desarrollé una aplicación para tickets pero con impresora de punto, especial para imprimir tickets en VB 2005. Aunque si fuera termica no hay mucha diferencia.

Ojalá pudieras ser un poco más concreto en relación a tu alcance y lo que realmente necesitas. De ser posible y necesario postear algo de código y si está en mis manos con gusto te asesoro.

Saludos!
oooHHH.!!!! que buena... yo necesito ayuda... tengo una impresora Samsumg 270C... matriz de punto... y necesito imprimir tiket con VB6.0... me podriás ayudar por favor...??? cual sería la forma más conveniente y rápida para lograr la impresión...??? Gracias...
  #5 (permalink)  
Antiguo 11/08/2008, 12:30
 
Fecha de Ingreso: octubre-2004
Mensajes: 55
Antigüedad: 20 años, 1 mes
Puntos: 0
Respuesta: Imprimir Ticket con Visual Basic 2005

Cita:
Iniciado por anmoru Ver Mensaje
oooHHH.!!!! que buena... yo necesito ayuda... tengo una impresora Samsumg 270C... matriz de punto... y necesito imprimir tiket con VB6.0... me podriás ayudar por favor...??? cual sería la forma más conveniente y rápida para lograr la impresión...??? Gracias...
Bueno yo escribí una clase "Ticket" que encapsula todo su contenido (No., cliente, tipo, articulos, total, a cuenta, restante, quien lo imprimió, copia, etc.). Lo estructuré con Graphics y System.Drawing.Printing

Te recomiendo migrar a .net

No es difícil si sabes trabajar con clases. Ya la interfaz y la funcionalidad dependen de tu imaginación.

Saludos!
  #6 (permalink)  
Antiguo 25/08/2008, 14:03
 
Fecha de Ingreso: agosto-2008
Mensajes: 4
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Imprimir Ticket con Visual Basic 2005

Hola soy nuevo en esto, ya realizo mis reportes con Crystal, pero me gustaría trabajar con esta clase me podrías dar una introducción de los comandos, etc. como se ocupa un código de ejemplo para un ticket.

De ante mano muchas gracias
  #7 (permalink)  
Antiguo 25/08/2008, 14:09
 
Fecha de Ingreso: agosto-2008
Mensajes: 4
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Imprimir Ticket con Visual Basic 2005

quiero hacer algo como esto :

---------------------------------------------------------------------------------------------
Ticket Recepción Fruta Congelado Fecha: 25/08/2008

Nº Recepción: 1256
Productor : datos productor
Especie : especie
Variedad : variedad
Peso Bruto Kgs. : 200


---------------------------------------------------------------------------------------------------
  #8 (permalink)  
Antiguo 29/08/2008, 11:35
 
Fecha de Ingreso: agosto-2008
Mensajes: 1
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Imprimir Ticket con Visual Basic 2005

hoola que tal un saludo a todos los del foro. es la primera ves que escribo en un foro y la verdad es por que tengo un problemita. kisiera que alguien me pudiera a ayudar a realizar un codigo en visual basic 2005 para poder imprimir tickets. la impresora es especial para eso y es de punto

agradeceria sus respuestas
  #9 (permalink)  
Antiguo 08/10/2008, 09:36
Avatar de eledgarr  
Fecha de Ingreso: octubre-2008
Ubicación: La ciudad de la esperanza
Mensajes: 133
Antigüedad: 16 años, 1 mes
Puntos: 3
Respuesta: Imprimir Ticket con Visual Basic 2005

Imports System.ComponentModel
Imports System.Windows.Forms
Imports System.Drawing
Imports System.Drawing.Printing
Imports System.IO
Public Class ticket
Public LineasDeLaCabeza As ArrayList = New ArrayList()
Public LineasDeLaSubCabeza As ArrayList = New ArrayList()
Public Elementos As ArrayList = New ArrayList()
Public Totales As ArrayList = New ArrayList()
Public LineasDelPie As ArrayList = New ArrayList()
Private headerImagep As Image

Public contador As Integer = 0

Public CaracteresMaximos As Integer = 35
Public CaracteresMaximosDescripcion As Integer = 20

Public imageHeight As Integer = 0

Public MargenIzquierdo As Double = 10
Public MargenSuperior As Double = 13

Public NombreDeLaFuente As String = "Lucida Console"
Public TamanoDeLaFuente As Integer = 9

Public FuenteImpresa As Font
Public ColorDeLaFuente As SolidBrush = New SolidBrush(Color.Black)

Public gfx As Graphics

Public CadenaPorEscribirEnLinea As String = ""
Private WithEvents DocumentoAImprimir As New PrintDocument

Public Sub Ticket()


End Sub

Public Property HeaderImage() As Image
Get
Return headerImagep
End Get
Set(ByVal value As Image)
'If headerImagep.Width <> value.Width Then

'End If
headerImagep = value
End Set
End Property



Public Property MaximoCaracter() As Integer
Get
Return CaracteresMaximos
End Get
Set(ByVal value As Integer)
If (value <> CaracteresMaximosDescripcion) Then CaracteresMaximosDescripcion = value
End Set
End Property



Public Property MaximoCaracterDescripcion() As Integer
Get
Return CaracteresMaximosDescripcion
End Get
Set(ByVal value As Integer)
If (value <> CaracteresMaximosDescripcion) Then CaracteresMaximosDescripcion = value
End Set
End Property



Public Property TamanoLetra() As Integer
Get
Return TamanoDeLaFuente
End Get
Set(ByVal value As Integer)
If (value <> TamanoDeLaFuente) Then TamanoDeLaFuente = value
End Set
End Property


Public Property NombreLetra() As String
Get
Return NombreDeLaFuente
End Get
Set(ByVal value As String)
If (value <> NombreDeLaFuente) Then NombreDeLaFuente = value
End Set
End Property


Public Sub AnadirLineaCabeza(ByVal linea As String)
LineasDeLaCabeza.Add(linea)
End Sub

Public Sub AnadirLineaSubcabeza(ByVal linea As String)

LineasDeLaSubCabeza.Add(linea)
End Sub

Public Sub AnadirElemento(ByVal cantidad As String, ByVal elemento As String, ByVal precio As String)

Dim NuevoElemento As OrdenarElementos = New OrdenarElementos()
'''''items.Add(newitem.
Elementos.Add(NuevoElemento.GenerarElemento(cantid ad, elemento, precio))
End Sub

Public Sub AnadirTotal(ByVal Nombre As String, ByVal Precio As String)
Dim NuevoTotal As OrdernarTotal = New OrdernarTotal
' OrderTotal(newtotal)

Totales.Add(NuevoTotal.GenerarTotal(Nombre, Precio))
End Sub

Public Sub AnadeLineaAlPie(ByVal linea As String)
LineasDelPie.Add(linea)
End Sub

Private Function AlineaTextoaLaDerecha(ByVal Izquierda As Integer) As String

Dim espacios As String = ""
Dim spaces As Integer = MaximoCaracter() - Izquierda
Dim x As Integer
For x = 0 To spaces
espacios += " "
Next
Return espacios
End Function

Private Function DottedLine() As String

Dim dotted As String = ""
Dim x As Integer
For x = 0 To MaximoCaracter()
dotted += "="
Next
Return dotted
End Function
  #10 (permalink)  
Antiguo 08/10/2008, 09:38
Avatar de eledgarr  
Fecha de Ingreso: octubre-2008
Ubicación: La ciudad de la esperanza
Mensajes: 133
Antigüedad: 16 años, 1 mes
Puntos: 3
Respuesta: Imprimir Ticket con Visual Basic 2005

..........................

Public Function ImpresoraExistente(ByVal impresora As String) As Boolean

For Each strPrinter As String In PrinterSettings.InstalledPrinters

If impresora = strPrinter Then
Return True
End If
Next strPrinter
Return False
End Function

Public Sub ImprimeTicket(ByVal impresora As String)

FuenteImpresa = New Font(NombreLetra, TamanoLetra, FontStyle.Regular)
'Dim pr As New PrintDocument
DocumentoAImprimir.PrinterSettings.PrinterName = impresora
'pr.PrinterSettings.printpa()
' pr.PrintPage += New
' PrintPageEventHandler(pr_PrintPage)
DocumentoAImprimir.Print()

End Sub

Private Sub DocumentoAImprimir_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles DocumentoAImprimir.PrintPage
e.Graphics.PageUnit = GraphicsUnit.Millimeter
gfx = e.Graphics

'DrawImage()
'DrawHeader()
DibujaLaCabecera()
'DrawSubHeader()
DibujaLaSubCabecera()
'DrawItems()
DibujaElementos()
'DrawTotales()
DibujaTotales()
DibujarPieDePagina()

'If (headerImagep.Width <> 0) Then
' HeaderImage.Dispose()
' HeaderImage.Dispose()
'End If
End Sub

Private Function Renglon() As Double
Return MargenSuperior + (contador * FuenteImpresa.GetHeight(gfx) + imageHeight)
End Function

Private Sub DrawImage()

If (headerImagep.Width <> 0) Then

Try

gfx.DrawImage(HeaderImage, New Point(CInt(MargenIzquierdo), CInt(Renglon())))
Dim height As Double = (HeaderImage.Height / 58) * 15
imageHeight = CInt(Math.Round(height) + 3)

Catch ex As Exception

End Try


End If
End Sub

Private Sub DibujaLaCabecera()

For Each Cabecera As String In LineasDeLaCabeza

If (Cabecera.Length > MaximoCaracter()) Then

Dim CaracterActual As Integer = 0
Dim LongitudDeCabecera As Integer = Cabecera.Length

While (LongitudDeCabecera > MaximoCaracter())

CadenaPorEscribirEnLinea = Cabecera.Substring(CaracterActual, MaximoCaracter)
gfx.DrawString(CadenaPorEscribirEnLinea, FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon(), New StringFormat())
contador += 1
CaracterActual += MaximoCaracter()
LongitudDeCabecera -= MaximoCaracter()
End While
CadenaPorEscribirEnLinea = Cabecera
gfx.DrawString(CadenaPorEscribirEnLinea.Substring( CaracterActual, CadenaPorEscribirEnLinea.Length - CaracterActual), FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon(), New StringFormat())
contador += 1

Else


CadenaPorEscribirEnLinea = Cabecera
gfx.DrawString(CadenaPorEscribirEnLinea, FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon(), New StringFormat())

contador += 1
End If
Next Cabecera
DibujaEspacio()
End Sub

Private Sub DibujaLaSubCabecera()

For Each SubCabecera As String In LineasDeLaSubCabeza

If (SubCabecera.Length > MaximoCaracter()) Then

Dim CaracterActual As Integer = 0
Dim LongitudSubcabecera As Integer = SubCabecera.Length

While (LongitudSubcabecera > MaximoCaracter())

CadenaPorEscribirEnLinea = SubCabecera
gfx.DrawString(CadenaPorEscribirEnLinea.Substring( CaracterActual, MaximoCaracter), FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon(), New StringFormat())

contador += 1
CaracterActual += MaximoCaracter()
LongitudSubcabecera -= MaximoCaracter()
End While
CadenaPorEscribirEnLinea = SubCabecera
gfx.DrawString(CadenaPorEscribirEnLinea.Substring( CaracterActual, CadenaPorEscribirEnLinea.Length - CaracterActual), FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon(), New StringFormat())
contador += 1

Else

CadenaPorEscribirEnLinea = SubCabecera

gfx.DrawString(CadenaPorEscribirEnLinea, FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon(), New StringFormat())

contador += 1

CadenaPorEscribirEnLinea = DottedLine()

gfx.DrawString(CadenaPorEscribirEnLinea, FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon(), New StringFormat())

contador += 1
End If
Next SubCabecera
DibujaEspacio()
End Sub

Private Sub DibujaElementos()

Dim OrdenElemento As OrdenarElementos = New OrdenarElementos()

gfx.DrawString("CANT DESCRIPCION IMPORTE", FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon(), New StringFormat())

contador += 1
DibujaEspacio()

For Each Elemento As String In Elementos

CadenaPorEscribirEnLinea = OrdenElemento.ObtenerCantidadDeElementos(Elemento)

gfx.DrawString(CadenaPorEscribirEnLinea, FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon(), New StringFormat())
CadenaPorEscribirEnLinea = OrdenElemento.ObtenerPrecioElemento(Elemento)
CadenaPorEscribirEnLinea = AlineaTextoaLaDerecha(CadenaPorEscribirEnLinea.Len gth) + CadenaPorEscribirEnLinea

gfx.DrawString(CadenaPorEscribirEnLinea, FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon(), New StringFormat())

Dim Nombre As String = OrdenElemento.ObtenerNombreElemento(Elemento)

MargenIzquierdo = 10
If (Nombre.Length > MaximoCaracterDescripcion) Then

Dim CaracterActual As Integer = 0
Dim LongitudElemento As Integer = Nombre.Length

While (LongitudElemento > MaximoCaracterDescripcion)

CadenaPorEscribirEnLinea = OrdenElemento.ObtenerNombreElemento(Elemento)
gfx.DrawString(" " + CadenaPorEscribirEnLinea.Substring(CaracterActual, MaximoCaracterDescripcion), FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon(), New StringFormat())

contador += 1
CaracterActual += MaximoCaracterDescripcion
LongitudElemento -= MaximoCaracterDescripcion
End While

CadenaPorEscribirEnLinea = OrdenElemento.ObtenerNombreElemento(Elemento)
gfx.DrawString(" " + CadenaPorEscribirEnLinea.Substring(CaracterActual, CadenaPorEscribirEnLinea.Length - CaracterActual), FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon() + 10, New StringFormat())
contador += 1

Else

gfx.DrawString(" " + OrdenElemento.ObtenerNombreElemento(Elemento), FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon(), New StringFormat())

contador += 1
End If
Next Elemento

MargenIzquierdo = 10
DibujaEspacio()
CadenaPorEscribirEnLinea = DottedLine()

gfx.DrawString(CadenaPorEscribirEnLinea, FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon(), New StringFormat())

contador += 1
DibujaEspacio()
End Sub
  #11 (permalink)  
Antiguo 08/10/2008, 09:38
Avatar de eledgarr  
Fecha de Ingreso: octubre-2008
Ubicación: La ciudad de la esperanza
Mensajes: 133
Antigüedad: 16 años, 1 mes
Puntos: 3
Respuesta: Imprimir Ticket con Visual Basic 2005

.............................................

Private Sub DibujaTotales()

Dim ordTot As OrdernarTotal = New OrdernarTotal()

For Each total As String In Totales

CadenaPorEscribirEnLinea = ordTot.ObtenerTotalCantidad(total)
CadenaPorEscribirEnLinea = AlineaTextoaLaDerecha(CadenaPorEscribirEnLinea.Len gth) + CadenaPorEscribirEnLinea

gfx.DrawString(CadenaPorEscribirEnLinea, FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon(), New StringFormat())
MargenIzquierdo = 10

CadenaPorEscribirEnLinea = " " + ordTot.ObtenerTotalNombre(total)
gfx.DrawString(CadenaPorEscribirEnLinea, FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon(), New StringFormat())
contador += 1
Next total
MargenIzquierdo = 10
DibujaEspacio()
DibujaEspacio()
End Sub

Private Sub DibujarPieDePagina()

For Each PieDePagina As String In LineasDelPie

If (PieDePagina.Length > MaximoCaracter()) Then

Dim currentChar As Integer = 0
Dim LongitudPieDePagina As Integer = PieDePagina.Length

While (LongitudPieDePagina > MaximoCaracter())

CadenaPorEscribirEnLinea = PieDePagina
gfx.DrawString(CadenaPorEscribirEnLinea.Substring( currentChar, MaximoCaracter), FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon(), New StringFormat())

contador += 1
currentChar += MaximoCaracter()
LongitudPieDePagina -= MaximoCaracter()
End While
CadenaPorEscribirEnLinea = PieDePagina
gfx.DrawString(CadenaPorEscribirEnLinea.Substring( currentChar, CadenaPorEscribirEnLinea.Length - currentChar), FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon(), New StringFormat())
contador += 1

Else

CadenaPorEscribirEnLinea = PieDePagina
gfx.DrawString(CadenaPorEscribirEnLinea, FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon(), New StringFormat())

contador += 1
End If
Next PieDePagina
MargenIzquierdo = 10
DibujaEspacio()
End Sub

Private Sub DibujaEspacio()

CadenaPorEscribirEnLinea = " "

gfx.DrawString(CadenaPorEscribirEnLinea, FuenteImpresa, ColorDeLaFuente, MargenIzquierdo, Renglon(), New StringFormat())

contador += 1

End Sub

Public Sub New()

End Sub


End Class




Public Class OrdenarElementos

Public delimitador() As Char = " "


Public Sub OrdenarElementos(ByVal delimit As Char)
Dim delimitador As Char = delimit
End Sub


Public Function ObtenerCantidadDeElementos(ByVal orderItem As String) As String

Dim delimitado() As String = orderItem.Split(delimitador)
Return delimitado(0)
End Function

Public Function ObtenerNombreElemento(ByVal orderItem As String) As String

Dim delimitado() As String = orderItem.Split(delimitador)
Return delimitado(1)
End Function

Public Function ObtenerPrecioElemento(ByVal orderItem As String) As String

Dim delimitado() As String = orderItem.Split(delimitador)
Return delimitado(2)
End Function

Public Function GenerarElemento(ByVal cantidad As String, ByVal NombreElemento As String, ByVal Precio As String) As String

Return cantidad + delimitador(0) + NombreElemento + delimitador(0) + Precio
End Function
End Class




Public Class OrdernarTotal

Public delimitador() As Char = " "

Public Sub OrdernarTotal(ByVal delimit As Char)

Dim delimitador As Char = delimit
End Sub

Public Function ObtenerTotalNombre(ByVal totalItem As String) As String

Dim delimitado() As String = totalItem.Split(delimitador)
Return delimitado(0)

End Function
Public Function ObtenerTotalCantidad(ByVal totalItem As String) As String

Dim delimitado() As String = totalItem.Split(delimitador)
Return delimitado(1)
End Function

Public Function GenerarTotal(ByVal totalName As String, ByVal price As String) As String

GenerarTotal = totalName + delimitador(0) + price
End Function

End Class
  #12 (permalink)  
Antiguo 08/10/2008, 09:39
Avatar de eledgarr  
Fecha de Ingreso: octubre-2008
Ubicación: La ciudad de la esperanza
Mensajes: 133
Antigüedad: 16 años, 1 mes
Puntos: 3
Respuesta: Imprimir Ticket con Visual Basic 2005

.........................................


Public Class Form1






Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim a As ticket = New ticket
'a.HeaderImage = "C:\Documents and Settings\Administrador\Mis documentos\COMPU.jpg"

a.AnadirLineaCabeza("STARBUCKS COFFEE TAMAULIPAS"
a.AnadirLineaCabeza("EXPEDIDO EN:"
a.AnadirLineaCabeza("AV. TAMAULIPAS NO. 5 LOC. 101"
a.AnadirLineaCabeza("MEXICO, DISTRITO FEDERAL"
a.AnadirLineaCabeza("RFC: CSI-020226-MV4"

'El metodo AddSubHeaderLine es lo mismo al de AddHeaderLine con la diferencia
'de que al final de cada linea agrega una linea punteada "=========="
a.AnadirLineaSubcabeza("Caja # 1 - Ticket # 1"
a.AnadirLineaSubcabeza("Le atendió: Prueba"
a.AnadirLineaSubcabeza(DateTime.Now.ToShortDateStr ing() + " " + DateTime.Now.ToShortTimeString())

'El metodo AddItem requeire 3 parametros, el primero es cantidad, el segundo es la descripcion
'del producto y el tercero es el precio
a.AnadirElemento("1", "Articulo Prueba", "15.00"
a.AnadirElemento("2", "Articulo Prueba", "25.00"

'El metodo AddTotal requiere 2 parametros, la descripcion del total, y el precio
a.AnadirTotal("SUBTOTAL", "29.75"
a.AnadirTotal("IVA", "5.25"
a.AnadirTotal("TOTAL", "35.00"
a.AnadirTotal("", "" ' //Ponemos un total en blanco que sirve de espacio
a.AnadirTotal("RECIBIDO", "50.00"
a.AnadirTotal("CAMBIO", "15.00"
a.AnadirTotal("", "" '/Ponemos un total en blanco que sirve de espacio
a.AnadirTotal("USTED AHORRO", "0.00"


'//El metodo AddFooterLine funciona igual que la cabecera
a.AnadeLineaAlPie("EL CAFE ES NUESTRA PASION..."
a.AnadeLineaAlPie("VIVE LA EXPERIENCIA EN STARBUCKS"
a.AnadeLineaAlPie("GRACIAS POR TU VISITA"

'//Y por ultimo llamamos al metodo PrintTicket para imprimir el ticket, este metodo necesita un
'//parametro de tipo string que debe de ser el nombre de la impresora.
a.ImprimeTicket("SWF Printer"








End Sub
End Class
  #13 (permalink)  
Antiguo 10/01/2009, 02:37
 
Fecha de Ingreso: enero-2009
Mensajes: 1
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Imprimir Ticket con Visual Basic 2005

hola eledgarr,

he utilizado esta funcion para imprimir el ticket, la verdad que muy facil, pero ahora tengo varios problemas que no se como atacar,

1.- el ticket no se imprime en la impresora de ticket Epson TM-T85 (la tengo configurada como "Generid / Tex only" que me puede estar pasando?
2.- como puedo cortar el ticket y como puedo abrir el cajetin?

agradeceria muchisimo tu ayuda.
muchas gracias de antemano.
un saludo
  #14 (permalink)  
Antiguo 17/08/2009, 11:44
 
Fecha de Ingreso: agosto-2009
Mensajes: 1
Antigüedad: 15 años, 3 meses
Puntos: 0
De acuerdo Respuesta: Imprimir Ticket con Visual Basic 2005

eledgarr muchas gracias man me sirvio de mucho tu ayuda un gran aporte
Espero aportar proximamente gracias
  #15 (permalink)  
Antiguo 05/10/2009, 18:07
Avatar de eledgarr  
Fecha de Ingreso: octubre-2008
Ubicación: La ciudad de la esperanza
Mensajes: 133
Antigüedad: 16 años, 1 mes
Puntos: 3
Respuesta: Imprimir Ticket con Visual Basic 2005

Hace un año coloque esta traducción de VB de un codigo original en C# y vaya que me sirvio para evolucionarlo a lo que tengo hoy, si tienen duda de impresión mandenme un mensaje y con gusto ayudare por que yo sufri el que nadie te responda
__________________
Si te sirve lo que te escribo regalame un karma positivo
-----------------------------------------------------------------------
Estoy aqui no por que conozco mucho, estoy para ignorar menos
  #16 (permalink)  
Antiguo 24/11/2010, 12:38
 
Fecha de Ingreso: noviembre-2010
Mensajes: 2
Antigüedad: 14 años
Puntos: 0
Respuesta: Imprimir Ticket con Visual Basic 2005

mmm Hola Si Me PueDen AyuDar Se Los AgRadeCriA muXo l
lo q io necesito es un codigo para imprimir una factura los datos los tengo guardados en una bd en sql pero los cargo a vb en unos txtbox la cuestion esq necesito que tengan margenes predefinidos cada txt si me ayudan se los agradeceria
  #17 (permalink)  
Antiguo 10/04/2011, 19:40
 
Fecha de Ingreso: abril-2011
Ubicación: Guatemala
Mensajes: 4
Antigüedad: 13 años, 7 meses
Puntos: 0
Pregunta Respuesta: Imprimir Ticket con Visual Basic 2005

Excelente código, pero tengo problemas al imprimir el ticket, es en la parte de la Descripción la impresora me imprime la cantidad encima del articulo y si le doy un espacio desaparece el precio, alguien me podría ayudar?

El diseño del tiket lo hice así:

**********COTRAUVIN R.L.**********
******VILLA NUEVA, GUATEMALA******
*****TRANSPORTES DE GUATEMALA*****
Caja # 1 - Ticket # 1
====================================
Le atendió: Willy
====================================
10/04/2011 07:37 p.m.
====================================
CANT DESCRIPCION IMPORTE
1P1r1ueba 15.00
20 Prueba
====================================
SUBTOTAL 29.75
IVA 5.25
TOTAL 35.00
RECIBIDO 50.00
CAMBIO 15.00
USTED AHORRO
EL TRANSPORTE NACIONAL.............
..
VIVE LA EXPERIENCIA EN COTRAUVIN



Mi impresora es una TM-U220PA

Cita:
Iniciado por eledgarr Ver Mensaje
.........................................


Public Class Form1






Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim a As ticket = New ticket

a.AnadirLineaCabeza("**********COTRAUVIN R.L.**********")
a.AnadirLineaCabeza("******VILLA NUEVA, GUATEMALA******")
a.AnadirLineaCabeza("*****TRANSPORTES DE GUATEMALA*****")


'El metodo AddSubHeaderLine es lo mismo al de AddHeaderLine con la diferencia
'de que al final de cada linea agrega una linea punteada "=========="
a.AnadirLineaSubcabeza("Caja # 1 - Ticket # 1")
a.AnadirLineaSubcabeza("Le atendió: Willy")
a.AnadirLineaSubcabeza(DateTime.Now.ToShortDateStr ing() & " " & " " & " " & DateTime.Now.ToShortTimeString())
' a.AnadirLineaSubcabeza(DateTime.Now.ToShortTimeStr ing())
'El metodo AddItem requeire 3 parametros, el primero es cantidad, el segundo es la descripcion
'del producto y el tercero es el precio
a.AnadirElemento("111", "Prueba", "15.00")
a.AnadirElemento("20" & " ", "Prueba", "25.00")

'El metodo AddTotal requiere 2 parametros, la descripcion del total, y el precio
a.AnadirTotal("SUBTOTAL", "29.75")
a.AnadirTotal("IVA", "5.25")
a.AnadirTotal("TOTAL", "35.00")
a.AnadirTotal("", "") ' //Ponemos un total en blanco que sirve de espacio
a.AnadirTotal("RECIBIDO", "50.00")
a.AnadirTotal("CAMBIO", "15.00")
a.AnadirTotal("", "") '/Ponemos un total en blanco que sirve de espacio
a.AnadirTotal("USTED AHORRO", "0.00")


'//El metodo AddFooterLine funciona igual que la cabecera
a.AnadeLineaAlPie("EL TRANSPORTE NACIONAL...............")
a.AnadeLineaAlPie("VIVE LA EXPERIENCIA EN COTRAUVIN")







End Sub
End Class
  #18 (permalink)  
Antiguo 21/04/2011, 13:47
 
Fecha de Ingreso: abril-2011
Ubicación: Guatemala
Mensajes: 4
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Imprimir Ticket con Visual Basic 2005

Arreglado el problema, a esta grandiosa librería no se le puede cambiar el tipo de letra: "Lucida Console" porque luego altera los margenes. por lo menos en mi caso con una impresora TM-U220PA. la solución es quitar los margenes y con eso ya funciona bien la librería. muchas gracias al genio que la desarrollo me sirve mucho saludos.
  #19 (permalink)  
Antiguo 28/06/2011, 12:07
 
Fecha de Ingreso: junio-2011
Ubicación: Concepción
Mensajes: 1
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Imprimir Ticket con Visual Basic 2005

Me sirvió mucho esto, me hice una cuenta acá sólo para agradecerte así que muchas gracias!!

saludos
  #20 (permalink)  
Antiguo 03/09/2011, 21:47
 
Fecha de Ingreso: septiembre-2011
Mensajes: 1
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Imprimir Ticket con Visual Basic 2005

Hola a todos, tengo un problemilla y me gustaria q me ayudaran Xfa

Tengo una duda, en el codigo para la impresión del ticket que esta arriba...

tengo una base de datos en acces y en el frame de ventas quiero q se genere una tabla temporal en la cual se registren los productos que se vallan acumulando en la compra...

como le hago para que imprima esos productos.

gracias y espero su ayuda..
  #21 (permalink)  
Antiguo 14/10/2011, 10:00
 
Fecha de Ingreso: octubre-2011
Mensajes: 2
Antigüedad: 13 años, 1 mes
Puntos: 0
Pregunta Respuesta: Imprimir Ticket con Visual Basic 2005

Disculpa guatesistemas
tengo el mismo problema con una impresora tm-t58, a que te refieres con quitar los margenes?
  #22 (permalink)  
Antiguo 14/10/2011, 10:06
 
Fecha de Ingreso: octubre-2011
Mensajes: 2
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Imprimir Ticket con Visual Basic 2005

[QUOTE=guatesistemas;3825972]Arreglado el problema, a esta grandiosa librería no se le puede cambiar el tipo de letra: "Lucida Console" porque luego altera los margenes. por lo menos en mi caso con una impresora TM-U220PA. la solución es quitar los margenes y con eso ya funciona bien la librería. muchas gracias al genio que la desarrollo me sirve mucho saludos.[/QUOT

Disculpa guatesistemas
tengo el mismo problema con una impresora tm-t58, a que te refieres con quitar los margenes?
  #23 (permalink)  
Antiguo 17/06/2013, 19:32
Avatar de intcmexico236445  
Fecha de Ingreso: febrero-2011
Ubicación: cuautla, morelos
Mensajes: 2
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Imprimir Ticket con Visual Basic 2005

excelente clase, incluso trabaja perfecto en VB.net 2012. Lo unico que nomas no logro hechar a andar es como agregar la imagen arriba,

agregue esto:
Dim iticket As Image
Código:
 Dim iticket As Image = Image.FromFile("D:\logo.jpg")
        a.HeaderImage = iticket
pero aun con eso no me pone la imagen, algun detalle mas?
  #24 (permalink)  
Antiguo 17/06/2013, 19:36
Avatar de intcmexico236445  
Fecha de Ingreso: febrero-2011
Ubicación: cuautla, morelos
Mensajes: 2
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Imprimir Ticket con Visual Basic 2005

Cita:
Iniciado por sigitheblink Ver Mensaje
Hola a todos, tengo un problemilla y me gustaria q me ayudaran Xfa

Tengo una duda, en el codigo para la impresión del ticket que esta arriba...

tengo una base de datos en acces y en el frame de ventas quiero q se genere una tabla temporal en la cual se registren los productos que se vallan acumulando en la compra...

como le hago para que imprima esos productos.

gracias y espero su ayuda..
yo tengo algo como eso, solo que no uso access, sino MySQL o SQL Server. Y lo resolvi de la siguiente manera:

Primero agregue todos los articulos que voy a vender a un listview, ya agregados lo unico que hice es al mandar imprimir el ticket recorro con un for todo el listview, y agrego solo las columnas que quiero, y despues las sumo, mira asi:
Código:
 For Each sitem In lvListaRecargas.Items
            a.AnadirElemento(sitem.subitems.item(0).text, sitem.subitems.item(3).text, Format(sitem.subitems.item(4).text, "currency"))
        Next
y ya despues para sacas los totales, sumando la columna 4 en mi caso
este es mi metodo para sacar totales:

Código:
 Private Sub getTotal(ByRef sumTotal As String)
        Dim TotalSum As Double = 0
        Dim TempNode As ListViewItem
        Dim TempDbl As Double
        For Each TempNode In lvListaRecargas.Items
            If Double.TryParse(TempNode.SubItems.Item(4).Text, TempDbl) Then
                TotalSum += TempDbl
            End If
        Next
        sumTotal = TotalSum
    End Sub
Código:
Public Sub calcularTotales()
        getTotal(ctint)
        ctint = CStr(Round(CDbl(ctint), 2, MidpointRounding.ToEven))
        ctiva = (Val(ctint) / 100) * Val(ivaVal)
        ctiva = CStr(Round(CDbl(ctiva), 2, MidpointRounding.ToEven))
        cttotal = Val(ctint) + Val(ctiva)
        cttotal = CStr(Round(CDbl(cttotal), 2, MidpointRounding.ToEven))
    End Sub
Y ya con eso solo despues asigno los valores en el ticket
Código:
 a.AnadirTotal("SUBTOTAL", Format(ctint, "Currency"))
        a.AnadirTotal("IVA", Format(ctiva, "Currency"))
        a.AnadirTotal("TOTAL", Format(cttotal, "Currency"))
si necesitas ayuda postea tu codigo, asi podremos guiarte
  #25 (permalink)  
Antiguo 01/08/2014, 15:22
 
Fecha de Ingreso: abril-2005
Ubicación: Lima
Mensajes: 2
Antigüedad: 19 años, 7 meses
Puntos: 0
Respuesta: Imprimir Ticket con Visual Basic 2005

Hola..
me parece bueno el código que has colgado.
aunque aun no lo he probado jajaja.
pero veo que no hay una opción para configurar si es se imprime por lpt o por Com o por USB
  #26 (permalink)  
Antiguo 20/04/2015, 16:01
 
Fecha de Ingreso: septiembre-2014
Ubicación: peru
Mensajes: 6
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Imprimir Ticket con Visual Basic 2005

Cita:
Iniciado por eledgarr Ver Mensaje
.........................................


Public Class Form1






Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim a As ticket = New ticket
'a.HeaderImage = "C:\Documents and Settings\Administrador\Mis documentos\COMPU.jpg"

a.AnadirLineaCabeza("STARBUCKS COFFEE TAMAULIPAS"
a.AnadirLineaCabeza("EXPEDIDO EN:"
a.AnadirLineaCabeza("AV. TAMAULIPAS NO. 5 LOC. 101"
a.AnadirLineaCabeza("MEXICO, DISTRITO FEDERAL"
a.AnadirLineaCabeza("RFC: CSI-020226-MV4"

'El metodo AddSubHeaderLine es lo mismo al de AddHeaderLine con la diferencia
'de que al final de cada linea agrega una linea punteada "=========="
a.AnadirLineaSubcabeza("Caja # 1 - Ticket # 1"
a.AnadirLineaSubcabeza("Le atendió: Prueba"
a.AnadirLineaSubcabeza(DateTime.Now.ToShortDateStr ing() + " " + DateTime.Now.ToShortTimeString())

'El metodo AddItem requeire 3 parametros, el primero es cantidad, el segundo es la descripcion
'del producto y el tercero es el precio
a.AnadirElemento("1", "Articulo Prueba", "15.00"
a.AnadirElemento("2", "Articulo Prueba", "25.00"

'El metodo AddTotal requiere 2 parametros, la descripcion del total, y el precio
a.AnadirTotal("SUBTOTAL", "29.75"
a.AnadirTotal("IVA", "5.25"
a.AnadirTotal("TOTAL", "35.00"
a.AnadirTotal("", "" ' //Ponemos un total en blanco que sirve de espacio
a.AnadirTotal("RECIBIDO", "50.00"
a.AnadirTotal("CAMBIO", "15.00"
a.AnadirTotal("", "" '/Ponemos un total en blanco que sirve de espacio
a.AnadirTotal("USTED AHORRO", "0.00"


'//El metodo AddFooterLine funciona igual que la cabecera
a.AnadeLineaAlPie("EL CAFE ES NUESTRA PASION..."
a.AnadeLineaAlPie("VIVE LA EXPERIENCIA EN STARBUCKS"
a.AnadeLineaAlPie("GRACIAS POR TU VISITA"

'//Y por ultimo llamamos al metodo PrintTicket para imprimir el ticket, este metodo necesita un
'//parametro de tipo string que debe de ser el nombre de la impresora.
a.ImprimeTicket("SWF Printer"








End Sub
End Class
  #27 (permalink)  
Antiguo 20/04/2015, 17:01
 
Fecha de Ingreso: septiembre-2014
Ubicación: peru
Mensajes: 6
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Imprimir Ticket con Visual Basic 2005

Cita:
Iniciado por intcmexico236445 Ver Mensaje
yo tengo algo como eso, solo que no uso access, sino MySQL o SQL Server. Y lo resolvi de la siguiente manera:

Primero agregue todos los articulos que voy a vender a un listview, ya agregados lo unico que hice es al mandar imprimir el ticket recorro con un for todo el listview, y agrego solo las columnas que quiero, y despues las sumo, mira asi:
Código:
 For Each sitem In lvListaRecargas.Items
            a.AnadirElemento(sitem.subitems.item(0).text, sitem.subitems.item(3).text, Format(sitem.subitems.item(4).text, "currency"))
        Next
y ya despues para sacas los totales, sumando la columna 4 en mi caso
este es mi metodo para sacar totales:

Código:
 Private Sub getTotal(ByRef sumTotal As String)
        Dim TotalSum As Double = 0
        Dim TempNode As ListViewItem
        Dim TempDbl As Double
        For Each TempNode In lvListaRecargas.Items
            If Double.TryParse(TempNode.SubItems.Item(4).Text, TempDbl) Then
                TotalSum += TempDbl
            End If
        Next
        sumTotal = TotalSum
    End Sub
Código:
Public Sub calcularTotales()
        getTotal(ctint)
        ctint = CStr(Round(CDbl(ctint), 2, MidpointRounding.ToEven))
        ctiva = (Val(ctint) / 100) * Val(ivaVal)
        ctiva = CStr(Round(CDbl(ctiva), 2, MidpointRounding.ToEven))
        cttotal = Val(ctint) + Val(ctiva)
        cttotal = CStr(Round(CDbl(cttotal), 2, MidpointRounding.ToEven))
    End Sub
Y ya con eso solo despues asigno los valores en el ticket
Código:
 a.AnadirTotal("SUBTOTAL", Format(ctint, "Currency"))
        a.AnadirTotal("IVA", Format(ctiva, "Currency"))
        a.AnadirTotal("TOTAL", Format(cttotal, "Currency"))
si necesitas ayuda postea tu codigo, asi podremos guiarte

Podrian Ayudarme por Alguna Razon me Sale el Subtotal con Cada Item de la Venta
aqui mi codigo que calcula el Subtotal y como le jago para el resto de los Totales por favor

Private Sub PrintTotals(tk As Ticket)
For Each totales As DataRow In _totales.Rows
tk.AddTotal("Sub Total", totales.Table.Compute("Sum(Importe)", Nothing))
Next
End Sub
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 5 personas




La zona horaria es GMT -6. Ahora son las 18:07.