PDA

Ver la Versión Completa : Numerar páginas en un TRichEdit


noeljr
07-02-2014, 11:35:32
hola:
trato de imprimir un TRichEdit pero quisiera ponerle el número de página y no encuentro nada que me permita hacerlo.

¿alquien podría decirme si sabe alguna solución?

gracias, saludos

ecfisa
07-02-2014, 13:10:45
Hola noeljr.

¿ Como y mediante que lo estas imprimiendo ?

Saludos :)

noeljr
07-02-2014, 18:34:09
hola:

bueno, normalmente yo hago la impresión de los listados y memos de forma directa comando a comando y línea por línea con la declaración de tipos de letras, tamaño, etc., pero en el caso de los RichEdit que pueden albergar gráficos y no saber como extraerlo uso simplemente el comando Print (RichEdit.Printe('xx') aunque ahora y mediante una rutina encontrada en estas páginas (PrintRichEdtit(....)) configuro los márgenes pero no dice nada de la numeración de páginas y después intentar varias cosillas no he conseguido nada.

gracias, saludos

ecfisa
07-02-2014, 23:11:19
Hola noeljr.

La clase TPrinter posee la propiedad PageNumber de la que podes obtener el número de página que se está imprimiendo actualmente. El uso de esta, logicamente es incompatible con imprimir de la forma: RichEdit1.Print('...')

Se me ocurren dos posibles opciones y ambas se me figuran complicadas, ya que requieren calcular previamente la cantidad de líneas que conforman una hoja para ir agregando el número de página. Y como bién comentas en tu segundo mensaje, existiendo diferentes tamaños de caracteres (y gráficos para empeorar la cosa) el cálculo previo de la cantidad de lineas por hoja no es tarea sencilla en absoluto.

Habiendo superado el obstáculo de obtener la cantidad de lineas por hoja, la primera opción es insertar los números de página correspondientes en el RichEdit antes de imprimir mediante el método Insert de la propiedad Lines.

La segunda es imprimir el TRichEdit línea a línea e insertar el número de página al inicio de la misma o al final, antes del salto de página (TPrinter.NewPage).

Sinceramente creo que usar un generador de reportes te simplificaría la vida...

Saludos :)

noeljr
08-02-2014, 21:28:45
Hola:

mi primera intención fué imprimir el TRichEdit línea a línea, eso creo que lo tengo resuelto, el problema se me presentaba cuando llegaba aun grárfico que ahí no sé como recuperarlo para poder imprimirlo.

en fin, aunque no me gusta usar un generador de reporte, me parece que no tendré más remedio.

gracias, mucgas gracias y saludos,