Visual Basic.NET - problemas al imprimir un textbox multilinea vb.net

 
Vista:
sin imagen de perfil

problemas al imprimir un textbox multilinea vb.net

Publicado por fernando (4 intervenciones) el 14/01/2017 20:28:59
Captura
15991763_10211298826617368_761833190_o-2


buenas tardes, tengo el siguiente problema, cuando imprimo un textbox multilinea, esta imprime solo la primer linea, como hago para que me haga saltos de pagina, adjunto imagenes.
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
sin imagen de perfil
Val: 481
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

problemas al imprimir un textbox multilinea vb.net

Publicado por Miguel (476 intervenciones) el 14/01/2017 22:27:25
Pues en los TextBox Multiline - dependiendo de tu configuración - se realiza un ajuste automático para mostrar el contenido (y no usar las barras de desplazamiento) dentro del control, pero no se agregan saltos de línea, así que si quieres imprimir ese contenido 'casi' como se ve vas a tener que agregar los saltos de línea "manualmente" (agregar un salto de línea cada 40 caracteres por ejemplo).

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problemas al imprimir un textbox multilinea vb.net

Publicado por Fernando (4 intervenciones) el 14/01/2017 23:36:09
Gracias por tu respuesta, me puedes dar un ejemplo de como seria ? actualmente un textbox normal lo imprimo asi

page.AddAligned(50, 0, 305, 0, New RepString(fp, TextBox4.Text))


Como seria para hacer el salto de linea ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 481
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

problemas al imprimir un textbox multilinea vb.net

Publicado por Miguel (476 intervenciones) el 15/01/2017 06:17:51
Prueba con esta función (verifica que no tenga errores porque no la probé):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Public Shared Function dividirTexto(ByVal texto As String, ByVal maxCaracteres As Integer) As String
        Dim count As Integer = 0
        Dim result As String = ""
        For Each palabra In texto.Split(Convert.ToChar(" "))
            If (palabra.Length  + count <= maxCaracteres)  OrElse (result = "") Then
                result = result  & palabra & " "
                count = count  + palabra.Length + 1
            End If
 
            If (count >= maxCaracteres) Then
                result = result & Environment.NewLine
                count = 0
            End If
        Next
        Return result
    End Function

Uso:
1
2
'' Dividiendo el texto del TextBox multiline  en 50 caracteres (palabras completas) por línea
Dim resultado As String = dividirTexto(TextBoxMultiline.Text, 50)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

problemas al imprimir un textbox multilinea vb.net

Publicado por Fernando (4 intervenciones) el 15/01/2017 19:49:00
no funciono, lo otro que me dijeron fue crear una tabla que sea solo de una linea, y hacer la impresion, pero la verdad no se como hacerlo, nada funciona,

o como otro lo podria realizar ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 481
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

problemas al imprimir un textbox multilinea vb.net

Publicado por Miguel (476 intervenciones) el 16/01/2017 11:21:22
Creo que con ese método (AddAligned) sólo se puede insertar una línea, así que vas a tener que dividir el texto, y luego imprimir cada división individualmente.

Si en tu TextBox Multiline no se emplean saltos de línea, la función que te coloqué anteriormente puede quedar algo así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Public Shared Function dividirTexto(ByVal texto As String, ByVal maxCaracteres As Integer) As List(Of String)
        Dim list As New List (Of String)
        Dim result = ""
        Dim count As Integer = 0
        For Each palabra In texto.Split(Convert.ToChar(" "))
            If (palabra.Length  + count <= maxCaracteres)  OrElse (result = "") Then
                result = result  & palabra & " "
                count = count  + palabra.Length + 1
            End If
 
            If (count >= maxCaracteres) Then
                list.Add(result)
                result = ""
                count = 0
            End If
        Next
        Return list
    End Function

Ahora si el TextBox tiene los saltos de línea correspondientes sería más fácil, algo como:

1
2
3
4
For Each (linea In TextBoxConSaltosDeLinea.Text.Split(Environment.NewLine))
   ''codigo para insertar linea
   '' aumentar un contador para indicar la siguiente coordenada "Y", si es necesario (para que no se imprima en la misma línea)
Next
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

problemas al imprimir un textbox multilinea vb.net

Publicado por Fernando (4 intervenciones) el 16/01/2017 16:00:33
gracias por tu ayuda amigo, pero la verdad no funciono, ya me quito todas las canas que tenia, la otra que he visto es con text area de HTML, pero no se como agregarlo aqui page.AddAligned(50, 0, 305, 0, New RepString(fp, TextBox4.Text))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar