Ver Mensaje Individual
  #10 (permalink)  
Antiguo 08/10/2008, 09:38
Avatar de eledgarr
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