Hola compañeros!!
Tengo este codigo para imprimir:
Dim lineasPorPag As Single
Dim posY As Single
Dim margenIzq As Single = 20
Dim margenSup As Single = 20
Dim fuente As Font = TextBox1.Font
Dim altoFuente As Single = fuente.GetHeight(e.Graphics)
lineasPorPag = e.MarginBounds.Height / altoFuente
Dim lineasImpresasPorPag As Double = 0
Dim areaAlto As Integer = PrintDocument1.DefaultPageSettings.PaperSize.Heigh t - PrintDocument1.DefaultPageSettings.Margins.Top - PrintDocument1.DefaultPageSettings.Margins.Bottom
Dim areaAncho As Integer = PrintDocument1.DefaultPageSettings.PaperSize.Width - PrintDocument1.DefaultPageSettings.Margins.Left - PrintDocument1.DefaultPageSettings.Margins.Right
Dim margenIzquierdo As Integer = PrintDocument1.DefaultPageSettings.Margins.Left
Dim margenSuperior As Integer = PrintDocument1.DefaultPageSettings.Margins.Top
Dim formato As New StringFormat(StringFormatFlags.LineLimit)
Dim rectangulo As New RectangleF(margenIzquierdo, margenSuperior, areaAncho, areaAlto)
'Imprimir cada una de las lineas.
While totalLineasImpresas < linea.Length And lineasImpresasPorPag < lineasPorPag
posY = margenSup + (lineasImpresasPorPag * altoFuente)
e.Graphics.DrawString(linea(totalLineasImpresas), fuente, Brushes.Black, New RectangleF(margenIzquierdo, posY, areaAncho, areaAlto), formato)
lineasImpresasPorPag += 0.5
totalLineasImpresas += 1
End While
Imprime bien con margenes y todo. El unico problema que tengo es si la linea es demasiado grande y tiene que bajar un renglon, se sobreescribe en el folio con la siguiente linea.
Alguien me puede echar una mano??
Gracias!!