Visual Basic.NET - Ajustar linea impresion

   
Vista:

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
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder