Visual Basic Foro
Programación => Visual Basic .NET / C# => Mensaje iniciado por: wolf_kof en Marzo 20, 2014, 04:09:38 pm
-
Señores buenas tardes, quisiera que me orientaran para poder desenmarañar este problemita que tengo, quiero hacer la impresión de Ticket o Factura con una impresora de Ticket pero quiero centrar bien y hacer bien las cosas, el problema es que tengo estos códigos y no se si son los correctos para hacer esto. Necesito orientación Gracias.
Perdon, el ancho del papel es de 7.5 centimetros.
Imports Microsoft.VisualBasic
Imports System
Imports System.Windows.Forms
Imports System.Drawing
Imports System.Drawing.Printing
Public Class Form1
Private prtDoc As PrintDocument
Private Sub imprimir()
If prtDoc Is Nothing Then
prtDoc = New PrintDocument
AddHandler prtDoc.PrintPage, AddressOf prt_PrintPage
End If
PrintPreviewControl1.Document = prtDoc
PrintPreviewControl1.Refresh()
End Sub
Private Sub prt_PrintPage(ByVal sender As Object, _
ByVal e As PrintPageEventArgs)
e.PageSettings.Margins.Right = 19
e.PageSettings.Margins.Left = 19
Dim fontTitulo As New Font("Arial", 11, FontStyle.Bold)
Dim fontEncabezado As New Font("Arial", 9, FontStyle.Bold)
Dim fontCuerpo As New Font("Arial", 9, FontStyle.Regular)
Dim fontPie As New Font("Arial", 10, FontStyle.Bold)
Dim xPoint As New Point
Dim xSize As New Size(190, 15)
Dim FormatoCentro As New StringFormat
FormatoCentro.Alignment = StringAlignment.Center
Dim FormatoIzquierda As New StringFormat
FormatoIzquierda.Alignment = StringAlignment.Far
Dim FormatoDerecha As New StringFormat
FormatoDerecha.Alignment = StringAlignment.Near
Dim Renglon1 As New Rectangle(New Point(0, 0), New Size(190, 15))
Dim Renglon2 As New Rectangle(New Point(0, 15), New Size(190, 15))
Dim Renglon3 As New Rectangle(New Point(0, 30), New Size(190, 15))
e.Graphics.DrawString("DICO S.A.", fontTitulo, Brushes.Black, Renglon1, FormatoCentro)
e.Graphics.DrawRectangle(Pens.Black, Renglon1)
e.Graphics.DrawString("Finca el Oasis, La Fragua", fontEncabezado, Brushes.Black, Renglon2, FormatoIzquierda)
e.Graphics.DrawRectangle(Pens.Black, Renglon2)
'For n As Integer = 0 To 10
' xPoint.Y = 50 + (n * 15)
' Renglon3 = New Rectangle(xPoint, xSize)
' e.Graphics.DrawString("Item " & n, fontCuerpo, Brushes.Black, vRectangulo, FormatoIzquierda)
'Next
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
imprimir()
End Sub
End Class
-
Amigos buenas tardes ya tengo casi solucionado este temita, el código:
Private Sub GenerarFactura(ByVal IdFactura As Integer, ByVal CantLineas As Integer)
Factura.DocumentName = "FAC" & IdFactura
Dim Alto As Integer = 390 + (CantLineas * 15)
Dim Tamaño As New Printing.PaperSize("Factura", 291, Alto)
Factura.DefaultPageSettings.PaperSize = Tamaño
Factura.PrinterSettings.DefaultPageSettings.Margins.Top = 10
Factura.PrinterSettings.DefaultPageSettings.Margins.Bottom = 5
Factura.PrinterSettings.DefaultPageSettings.Margins.Left = 5
Factura.PrinterSettings.DefaultPageSettings.Margins.Right = 5
AddHandler Factura.PrintPage, AddressOf prt_PrintPage
Factura.Print()
End Sub
Private Sub prt_PrintPage(ByVal sender As Object, ByVal e As PrintPageEventArgs)
Dim fontTitulo As New Font("Arial", 14, FontStyle.Bold)
Dim fontEncabezado As New Font("Arial", 9, FontStyle.Regular)
Dim fontCuerpo As New Font("Arial", 8, FontStyle.Regular)
Dim fontTituloColumna As New Font("Arial", 8, FontStyle.Bold)
Dim FormatoCentro As New StringFormat
FormatoCentro.Alignment = StringAlignment.Center
FormatoCentro.LineAlignment = StringAlignment.Center
Dim FormatoIzquierda As New StringFormat()
FormatoIzquierda.Alignment = StringAlignment.Near
FormatoIzquierda.LineAlignment = StringAlignment.Center
Dim FormatoDerecha As New StringFormat()
FormatoDerecha.Alignment = StringAlignment.Far
FormatoDerecha.LineAlignment = StringAlignment.Center
Dim Parrafo As Rectangle
Parrafo = New Rectangle(0, 5, 291, 16)
e.Graphics.DrawString("DICO S.A.", fontTitulo, Brushes.Black, Parrafo, FormatoCentro)
Parrafo = New Rectangle(0, 20, 291, 12)
e.Graphics.DrawString("Distribuidora y Comercializadora", fontEncabezado, Brushes.Black, Parrafo, FormatoCentro)
Parrafo = New Rectangle(0, 35, 291, 12)
e.Graphics.DrawString("de Oriente S.A.", fontEncabezado, Brushes.Black, Parrafo, FormatoCentro)
Parrafo = New Rectangle(0, 50, 291, 12)
e.Graphics.DrawString("Finca El Oasis, La Fragua, Zacapa", fontEncabezado, Brushes.Black, Parrafo, FormatoCentro)
Parrafo = New Rectangle(0, 65, 291, 12)
e.Graphics.DrawString("Nit: 8027636-9", fontEncabezado, Brushes.Black, Parrafo, FormatoCentro)
Parrafo = New Rectangle(0, 80, 291, 12)
e.Graphics.DrawString("Tel: 50168594", fontEncabezado, Brushes.Black, Parrafo, FormatoCentro)
Parrafo = New Rectangle(0, 105, 291, 12)
e.Graphics.DrawString("RES:2007-1-28-18731", fontCuerpo, Brushes.Black, Parrafo, FormatoCentro)
Parrafo = New Rectangle(0, 120, 291, 12)
e.Graphics.DrawString("DE FECHA: 21/03/2014", fontCuerpo, Brushes.Black, Parrafo, FormatoCentro)
Parrafo = New Rectangle(0, 135, 291, 12)
e.Graphics.DrawString("VALE", fontCuerpo, Brushes.Black, Parrafo, FormatoCentro)
Parrafo = New Rectangle(0, 150, 291, 12)
e.Graphics.DrawString("SERIE: " & vSerie & " NO. " & vIdVenta, fontCuerpo, Brushes.Black, Parrafo, FormatoCentro)
Parrafo = New Rectangle(0, 165, 291, 12)
e.Graphics.DrawString("FECHA EMISION: " & lblFecha.Text, fontCuerpo, Brushes.Black, Parrafo, FormatoCentro)
Parrafo = New Rectangle(0, 190, 291, 12)
e.Graphics.DrawString("CODIGO: " & FrmPDV.txtCodigo.Text, fontCuerpo, Brushes.Black, Parrafo, FormatoIzquierda)
Parrafo = New Rectangle(0, 205, 291, 12)
e.Graphics.DrawString("NIT: " & FrmPDV.lblNit.Text, fontCuerpo, Brushes.Black, Parrafo, FormatoIzquierda)
Parrafo = New Rectangle(0, 220, 291, 12)
e.Graphics.DrawString("NOMBRE:", fontCuerpo, Brushes.Black, Parrafo, FormatoIzquierda)
Parrafo = New Rectangle(0, 235, 291, 12)
e.Graphics.DrawString(FrmPDV.lblNombre.Text, fontCuerpo, Brushes.Black, Parrafo, FormatoIzquierda)
Parrafo = New Rectangle(0, 260, 50, 15)
e.Graphics.DrawString("CANT.", fontTituloColumna, Brushes.Black, Parrafo, FormatoCentro)
Parrafo = New Rectangle(50, 260, 175, 15)
e.Graphics.DrawString("DESCRIPCION", fontTituloColumna, Brushes.Black, Parrafo, FormatoIzquierda)
Parrafo = New Rectangle(225, 260, 50, 15)
e.Graphics.DrawString("COSTO", fontTituloColumna, Brushes.Black, Parrafo, FormatoDerecha)
Dim Linea As Integer = 275
Dim CantLinea As Integer = 0
For n As Integer = 0 To FrmPDV.ListView1.Items.Count - 1
Parrafo = New Rectangle(0, Linea + (n * 15), 50, 12)
e.Graphics.DrawString(FrmPDV.ListView1.Items(n).SubItems(1).Text, fontCuerpo, Brushes.Black, Parrafo, FormatoCentro)
Parrafo = New Rectangle(50, Linea + (n * 15), 175, 12)
e.Graphics.DrawString(FrmPDV.ListView1.Items(n).SubItems(2).Text, fontCuerpo, Brushes.Black, Parrafo, FormatoIzquierda)
Parrafo = New Rectangle(225, Linea + (n * 15), 50, 12)
e.Graphics.DrawString(FormatNumber(FrmPDV.ListView1.Items(n).SubItems(4).Text), fontCuerpo, Brushes.Black, Parrafo, FormatoDerecha)
CantLinea = (n * 15)
Next
Linea += CantLinea + 10
Parrafo = New Rectangle(225, Linea, 50, 12)
e.Graphics.DrawString("---------------", fontCuerpo, Brushes.Black, Parrafo, FormatoDerecha)
Linea += 10
Parrafo = New Rectangle(50, Linea, 175, 15)
e.Graphics.DrawString("TOTAL", fontTituloColumna, Brushes.Black, Parrafo, FormatoIzquierda)
Parrafo = New Rectangle(225, Linea, 50, 12)
e.Graphics.DrawString(lblMonto.Text, fontCuerpo, Brushes.Black, Parrafo, FormatoDerecha)
Linea += 15
Parrafo = New Rectangle(50, Linea, 175, 15)
e.Graphics.DrawString("EFECTIVO", fontTituloColumna, Brushes.Black, Parrafo, FormatoIzquierda)
Parrafo = New Rectangle(225, Linea, 50, 12)
e.Graphics.DrawString(txtPago.Text, fontCuerpo, Brushes.Black, Parrafo, FormatoDerecha)
Linea += 15
Parrafo = New Rectangle(50, Linea, 175, 15)
e.Graphics.DrawString("VUELTO", fontTituloColumna, Brushes.Black, Parrafo, FormatoIzquierda)
Parrafo = New Rectangle(225, Linea, 50, 12)
e.Graphics.DrawString(lblVuelto.Text, fontCuerpo, Brushes.Black, Parrafo, FormatoDerecha)
Linea += 50
Parrafo = New Rectangle(0, Linea, 291, 12)
e.Graphics.DrawString("- - - - - SUJETO A PAGOS TRIMESTRALES - - - - -", fontCuerpo, Brushes.Black, Parrafo, FormatoCentro)
Linea += 15
Parrafo = New Rectangle(0, Linea, 291, 12)
e.Graphics.DrawString("GRACIAS POR SU COMPRA, VUELVA PRONTO", fontCuerpo, Brushes.Black, Parrafo, FormatoCentro)
e.HasMorePages = False
End Sub
La Ticket me queda rebien, el problema es que ahora me imprime varios documentos en ves de solo uno, igual necesito ayuda si alguien puede hecharme la mano muy agradecido.
-
Hola, disculpa que te responda con una pregunta pero al imprimir el ticket te sale completo por que a mi no me imprime la ultima linea y me la deja para el siguiente ticket...
-
Ese es problema de largo del papel, dale unos cms mas y veras.
-
Amigos buenas tardes ya tengo casi solucionado este temita, el código:
Private Sub GenerarFactura(ByVal IdFactura As Integer, ByVal CantLineas As Integer)
Factura.DocumentName = "FAC" & IdFactura
Dim Alto As Integer = 390 + (CantLineas * 15)
Dim Tamaño As New Printing.PaperSize("Factura", 291, Alto)
Factura.DefaultPageSettings.PaperSize = Tamaño
Factura.PrinterSettings.DefaultPageSettings.Margins.Top = 10
Factura.PrinterSettings.DefaultPageSettings.Margins.Bottom = 5
Factura.PrinterSettings.DefaultPageSettings.Margins.Left = 5
Factura.PrinterSettings.DefaultPageSettings.Margins.Right = 5
AddHandler Factura.PrintPage, AddressOf prt_PrintPage
Factura.Print()
End Sub
Private Sub prt_PrintPage(ByVal sender As Object, ByVal e As PrintPageEventArgs)
Dim fontTitulo As New Font("Arial", 14, FontStyle.Bold)
Dim fontEncabezado As New Font("Arial", 9, FontStyle.Regular)
Dim fontCuerpo As New Font("Arial", 8, FontStyle.Regular)
Dim fontTituloColumna As New Font("Arial", 8, FontStyle.Bold)
Dim FormatoCentro As New StringFormat
FormatoCentro.Alignment = StringAlignment.Center
FormatoCentro.LineAlignment = StringAlignment.Center
Dim FormatoIzquierda As New StringFormat()
FormatoIzquierda.Alignment = StringAlignment.Near
FormatoIzquierda.LineAlignment = StringAlignment.Center
Dim FormatoDerecha As New StringFormat()
FormatoDerecha.Alignment = StringAlignment.Far
FormatoDerecha.LineAlignment = StringAlignment.Center
Dim Parrafo As Rectangle
Parrafo = New Rectangle(0, 5, 291, 16)
e.Graphics.DrawString("DICO S.A.", fontTitulo, Brushes.Black, Parrafo, FormatoCentro)
Parrafo = New Rectangle(0, 20, 291, 12)
e.Graphics.DrawString("Distribuidora y Comercializadora", fontEncabezado, Brushes.Black, Parrafo, FormatoCentro)
Parrafo = New Rectangle(0, 35, 291, 12)
e.Graphics.DrawString("de Oriente S.A.", fontEncabezado, Brushes.Black, Parrafo, FormatoCentro)
Parrafo = New Rectangle(0, 50, 291, 12)
e.Graphics.DrawString("Finca El Oasis, La Fragua, Zacapa", fontEncabezado, Brushes.Black, Parrafo, FormatoCentro)
Parrafo = New Rectangle(0, 65, 291, 12)
e.Graphics.DrawString("Nit: 8027636-9", fontEncabezado, Brushes.Black, Parrafo, FormatoCentro)
Parrafo = New Rectangle(0, 80, 291, 12)
e.Graphics.DrawString("Tel: 50168594", fontEncabezado, Brushes.Black, Parrafo, FormatoCentro)
Parrafo = New Rectangle(0, 105, 291, 12)
e.Graphics.DrawString("RES:2007-1-28-18731", fontCuerpo, Brushes.Black, Parrafo, FormatoCentro)
Parrafo = New Rectangle(0, 120, 291, 12)
e.Graphics.DrawString("DE FECHA: 21/03/2014", fontCuerpo, Brushes.Black, Parrafo, FormatoCentro)
Parrafo = New Rectangle(0, 135, 291, 12)
e.Graphics.DrawString("VALE", fontCuerpo, Brushes.Black, Parrafo, FormatoCentro)
Parrafo = New Rectangle(0, 150, 291, 12)
e.Graphics.DrawString("SERIE: " & vSerie & " NO. " & vIdVenta, fontCuerpo, Brushes.Black, Parrafo, FormatoCentro)
Parrafo = New Rectangle(0, 165, 291, 12)
e.Graphics.DrawString("FECHA EMISION: " & lblFecha.Text, fontCuerpo, Brushes.Black, Parrafo, FormatoCentro)
Parrafo = New Rectangle(0, 190, 291, 12)
e.Graphics.DrawString("CODIGO: " & FrmPDV.txtCodigo.Text, fontCuerpo, Brushes.Black, Parrafo, FormatoIzquierda)
Parrafo = New Rectangle(0, 205, 291, 12)
e.Graphics.DrawString("NIT: " & FrmPDV.lblNit.Text, fontCuerpo, Brushes.Black, Parrafo, FormatoIzquierda)
Parrafo = New Rectangle(0, 220, 291, 12)
e.Graphics.DrawString("NOMBRE:", fontCuerpo, Brushes.Black, Parrafo, FormatoIzquierda)
Parrafo = New Rectangle(0, 235, 291, 12)
e.Graphics.DrawString(FrmPDV.lblNombre.Text, fontCuerpo, Brushes.Black, Parrafo, FormatoIzquierda)
Parrafo = New Rectangle(0, 260, 50, 15)
e.Graphics.DrawString("CANT.", fontTituloColumna, Brushes.Black, Parrafo, FormatoCentro)
Parrafo = New Rectangle(50, 260, 175, 15)
e.Graphics.DrawString("DESCRIPCION", fontTituloColumna, Brushes.Black, Parrafo, FormatoIzquierda)
Parrafo = New Rectangle(225, 260, 50, 15)
e.Graphics.DrawString("COSTO", fontTituloColumna, Brushes.Black, Parrafo, FormatoDerecha)
Dim Linea As Integer = 275
Dim CantLinea As Integer = 0
For n As Integer = 0 To FrmPDV.ListView1.Items.Count - 1
Parrafo = New Rectangle(0, Linea + (n * 15), 50, 12)
e.Graphics.DrawString(FrmPDV.ListView1.Items(n).SubItems(1).Text, fontCuerpo, Brushes.Black, Parrafo, FormatoCentro)
Parrafo = New Rectangle(50, Linea + (n * 15), 175, 12)
e.Graphics.DrawString(FrmPDV.ListView1.Items(n).SubItems(2).Text, fontCuerpo, Brushes.Black, Parrafo, FormatoIzquierda)
Parrafo = New Rectangle(225, Linea + (n * 15), 50, 12)
e.Graphics.DrawString(FormatNumber(FrmPDV.ListView1.Items(n).SubItems(4).Text), fontCuerpo, Brushes.Black, Parrafo, FormatoDerecha)
CantLinea = (n * 15)
Next
Linea += CantLinea + 10
Parrafo = New Rectangle(225, Linea, 50, 12)
e.Graphics.DrawString("---------------", fontCuerpo, Brushes.Black, Parrafo, FormatoDerecha)
Linea += 10
Parrafo = New Rectangle(50, Linea, 175, 15)
e.Graphics.DrawString("TOTAL", fontTituloColumna, Brushes.Black, Parrafo, FormatoIzquierda)
Parrafo = New Rectangle(225, Linea, 50, 12)
e.Graphics.DrawString(lblMonto.Text, fontCuerpo, Brushes.Black, Parrafo, FormatoDerecha)
Linea += 15
Parrafo = New Rectangle(50, Linea, 175, 15)
e.Graphics.DrawString("EFECTIVO", fontTituloColumna, Brushes.Black, Parrafo, FormatoIzquierda)
Parrafo = New Rectangle(225, Linea, 50, 12)
e.Graphics.DrawString(txtPago.Text, fontCuerpo, Brushes.Black, Parrafo, FormatoDerecha)
Linea += 15
Parrafo = New Rectangle(50, Linea, 175, 15)
e.Graphics.DrawString("VUELTO", fontTituloColumna, Brushes.Black, Parrafo, FormatoIzquierda)
Parrafo = New Rectangle(225, Linea, 50, 12)
e.Graphics.DrawString(lblVuelto.Text, fontCuerpo, Brushes.Black, Parrafo, FormatoDerecha)
Linea += 50
Parrafo = New Rectangle(0, Linea, 291, 12)
e.Graphics.DrawString("- - - - - SUJETO A PAGOS TRIMESTRALES - - - - -", fontCuerpo, Brushes.Black, Parrafo, FormatoCentro)
Linea += 15
Parrafo = New Rectangle(0, Linea, 291, 12)
e.Graphics.DrawString("GRACIAS POR SU COMPRA, VUELVA PRONTO", fontCuerpo, Brushes.Black, Parrafo, FormatoCentro)
e.HasMorePages = False
End Sub
La Ticket me queda rebien, el problema es que ahora me imprime varios documentos en ves de solo uno, igual necesito ayuda si alguien puede hecharme la mano muy agradecido.
hola mil disculpa, necesito tu ayuda, me gustaria saber si ya resolviste este problema? y si ya lo hiciste pues me ayude y me facilite
-
hola alturito51@gmail.com creo que Abner(wolf_kof) tiene tiempo sin aparecer por este foro es mas ya no es forista, pero a lo mejor algun otro forista pueda apoyarte saludos