|  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
     |