Ajustar linea impresion
Publicado por Lucas (8 intervenciones) el 09/03/2010 16:46:24
Hola!
Quisiera que me ayudaran en este temilla. Por mas vueltas que doy no consigo averiguarlo.
Lo qued trato es de imprimir un texto de un bloc de notas con margenes, pero cuando una linea es grande,la recorto, dependiendo del numero de caracteres.Es valido mientras utilizo un determinado tamaño de fuente, cuando le aumento, falla.
Este es el codigo que tengo:
If linea(totalLineasImpresas).Length > 90 Then
If ComprobarTodosCaracteres(linea(totalLineasImpresas)) Then
Dim cad1 As String = Mid(linea(totalLineasImpresas), 1, 90)
Dim cad2 As String = Mid(linea(totalLineasImpresas), 91)
e.Graphics.DrawString(cad1, fuente, Brushes.Black, margenIzq, posY, New StringFormat)
lineasImpresasPorPag += 1
totalLineasImpresas += 1
posY = margenSup + (lineasImpresasPorPag * altoFuente)
e.Graphics.DrawString(cad2, fuente, Brushes.Black, margenIzq, posY, New StringFormat)
lineasImpresasPorPag += 1
totalLineasImpresas += 1
Else
Dim cad1 As String = ""
Dim cad2 As String = ""
SepararLinea(linea(totalLineasImpresas), cad1, cad2)
e.Graphics.DrawString(cad1, fuente, Brushes.Black, margenIzq, posY, New StringFormat)
lineasImpresasPorPag += 1
totalLineasImpresas += 1
posY = margenSup + (lineasImpresasPorPag * altoFuente)
e.Graphics.DrawString(cad2, fuente, Brushes.Black, margenIzq, posY, New StringFormat)
lineasImpresasPorPag += 1
totalLineasImpresas += 1
End If
Else
e.Graphics.DrawString(linea(totalLineasImpresas), fuente, Brushes.Black, margenIzq, posY, New StringFormat)
lineasImpresasPorPag += 0.5
totalLineasImpresas += 1
End If
Private Function ComprobarTodosCaracteres(ByVal cadena) As Boolean
Dim iguales = True
For i = 0 To cadena.Length - 1
If cadena.Chars(i) <> " " Then
iguales = False
End If
Next
End Function
Public Sub SepararLinea(ByVal linea As String, ByRef cad1 As String, ByRef cad2 As String)
Dim i As Integer = 90
Do While linea.Chars(i) <> " " And i >= 0
i -= 1
Loop
cad1 = Mid(linea, 1, i)
cad2 = Mid(linea, i + 2)
End Sub
Gracias!!xD
Quisiera que me ayudaran en este temilla. Por mas vueltas que doy no consigo averiguarlo.
Lo qued trato es de imprimir un texto de un bloc de notas con margenes, pero cuando una linea es grande,la recorto, dependiendo del numero de caracteres.Es valido mientras utilizo un determinado tamaño de fuente, cuando le aumento, falla.
Este es el codigo que tengo:
If linea(totalLineasImpresas).Length > 90 Then
If ComprobarTodosCaracteres(linea(totalLineasImpresas)) Then
Dim cad1 As String = Mid(linea(totalLineasImpresas), 1, 90)
Dim cad2 As String = Mid(linea(totalLineasImpresas), 91)
e.Graphics.DrawString(cad1, fuente, Brushes.Black, margenIzq, posY, New StringFormat)
lineasImpresasPorPag += 1
totalLineasImpresas += 1
posY = margenSup + (lineasImpresasPorPag * altoFuente)
e.Graphics.DrawString(cad2, fuente, Brushes.Black, margenIzq, posY, New StringFormat)
lineasImpresasPorPag += 1
totalLineasImpresas += 1
Else
Dim cad1 As String = ""
Dim cad2 As String = ""
SepararLinea(linea(totalLineasImpresas), cad1, cad2)
e.Graphics.DrawString(cad1, fuente, Brushes.Black, margenIzq, posY, New StringFormat)
lineasImpresasPorPag += 1
totalLineasImpresas += 1
posY = margenSup + (lineasImpresasPorPag * altoFuente)
e.Graphics.DrawString(cad2, fuente, Brushes.Black, margenIzq, posY, New StringFormat)
lineasImpresasPorPag += 1
totalLineasImpresas += 1
End If
Else
e.Graphics.DrawString(linea(totalLineasImpresas), fuente, Brushes.Black, margenIzq, posY, New StringFormat)
lineasImpresasPorPag += 0.5
totalLineasImpresas += 1
End If
Private Function ComprobarTodosCaracteres(ByVal cadena) As Boolean
Dim iguales = True
For i = 0 To cadena.Length - 1
If cadena.Chars(i) <> " " Then
iguales = False
End If
Next
End Function
Public Sub SepararLinea(ByVal linea As String, ByRef cad1 As String, ByRef cad2 As String)
Dim i As Integer = 90
Do While linea.Chars(i) <> " " And i >= 0
i -= 1
Loop
cad1 = Mid(linea, 1, i)
cad2 = Mid(linea, i + 2)
End Sub
Gracias!!xD
Valora esta pregunta


0