0% encontró este documento útil (0 votos)
31 vistas1 página

Imprimir RTF desde RichTextBox

Este documento describe cómo imprimir el contenido de un RichTextBox sin controlar la longitud de línea. Se puede cargar un archivo RTF en el RichTextBox usando un cuadro de diálogo. Al hacer clic en un botón, se crea un objeto PrintDocument que imprime cada línea del RichTextBox una por una sin comprobar si son demasiado largas. Se usa una variable global para llevar la cuenta de la próxima línea a imprimir y generar nuevas páginas cuando se alcance el margen inferior.

Cargado por

Uvaldo pq
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
31 vistas1 página

Imprimir RTF desde RichTextBox

Este documento describe cómo imprimir el contenido de un RichTextBox sin controlar la longitud de línea. Se puede cargar un archivo RTF en el RichTextBox usando un cuadro de diálogo. Al hacer clic en un botón, se crea un objeto PrintDocument que imprime cada línea del RichTextBox una por una sin comprobar si son demasiado largas. Se usa una variable global para llevar la cuenta de la próxima línea a imprimir y generar nuevas páginas cuando se alcance el margen inferior.

Cargado por

Uvaldo pq
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Imprimir un RICHTEXTBOX sin control de longitud de lnea.

Se puede cargar un RTF en el RichTextBox


Public Class Form1 Dim g_sig_linea As Integer ' debe ser una var. global pues se utiliza en dos subrutinas

Private Sub Button3_Click(ByVal sender As [Link], ByVal e As [Link]) Handles [Link] ' Boton Cargar RTF (Ejemplo estandar de Uso de Cuadro de Dialogo) ' 1.- Crear Componente OpenFileDialog por codigo Dim openfiledialog1 As New [Link] ' 2.- Preparar OpenFileDialog [Link] = [Link]([Link]) 'para mostrar inicialmente "Mis documnetos" [Link] = "Archivos RTF|*.rtf|Todos los archivos|*.*" ' Tipos de archivo que se mostraran [Link] = "rtf" ' extension que se pondra si escribimos un nombre a mano sin extension [Link] = "" ' para que inicialmente aparezca en blanco ' 3.- Utilizar OpenFileDialog If [Link] = [Link] Then [Link]([Link], [Link]) End If ' 4.- Eliminar OpenFileDialog [Link]() End Sub Private Sub Button4_Click(ByVal sender As [Link], ByVal e As [Link]) Handles [Link] ' BOTON IMPRIMIR RTF ( Creando todo desde codigo) Try '1.-Crear componente de Impresion Dim printdocument3 As New [Link] '2.- Crear un manejador del evento (al crear pro codigo un objeto hay que hacer esto a mano) AddHandler [Link], AddressOf imprimiendo_documento '3.- Llamar al metodo print g_sig_linea = 0 ' en esta var. global indicamos la sig. liena a imprimir (0=la primera) [Link]() Catch ex As Exception [Link]("Error al imprimir, posiblemente no haya una impresora preparada") End Try '4.- Comprobar que esta escrita la subrutina 'imprimiendo_documento' End Sub Sub imprimiendo_documento(ByVal sender As [Link], ByVal e As [Link])
'CUANDO DE EJECUTE EL METODO [Link] ocurrira el evento [Link] y se llamara a esta subrutina

'1.- Definir la fuente con la que se imprime (puede ser diferente para cada trozo de texto) Dim fuente As Font = New Font("Arial", [Link]) Dim incremento_de_ypos As Integer = [Link]([Link]) 'determina el alto de cada linea en ([Link]) Dim s As String 'Iremos imprimiendo linea a linea, la linea a imprimir cada vez la metemos en el string s Dim xpos As Integer = [Link] ' para imprimir a la izquierda pegado al margen Dim ypos As Integer = 0 'indica en que posicion vertical imprimiremos, inicialmente arriba=0 Dim n_de_linea_a_imprimir As Integer = g_sig_linea 'Inicialmente tiene el valor de 0 Dim yposfinal As Integer While n_de_linea_a_imprimir <= [Link](0) s = [Link](n_de_linea_a_imprimir) 'Lines es una matriz unidim., en cada linea hay un string ' IMPRIMO [Link](s, fuente, [Link], xpos, ypos) 'nos preparamos para la siguiente linea n_de_linea_a_imprimir = n_de_linea_a_imprimir + 1 ypos = ypos + incremento_de_ypos yposfinal = ypos + incremento_de_ypos If yposfinal >= [Link] Then 'Ya no cabria en la pagina actual, por tanto, llamar a NUEVA PAGINA g_sig_linea = n_de_linea_a_imprimir ' Aqui guardamos la siguiente linea a imprimir [Link] = True ' cuando se pone a true se genera otra vez el evento printpage, Exit Sub End If End While [Link] = False End Sub End Class

Se imprime el contenido del RichTextBox1 leyendo cada una de las lneas (la lnea acaba en un Enter) e imprimindolas una a una No se controla si la lnea es demasiado larga y se sale y queda cortada

RichTextBox1 Button3 Button4 NumericUpDown1

También podría gustarte