Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Numerar páginas en un TRichEdit (https://www.clubdelphi.com/foros/showthread.php?t=85159)

noeljr 07-02-2014 11:35:32

Numerar páginas en un TRichEdit
 
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:
Código Delphi [-]
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,


La franja horaria es GMT +2. Ahora son las 10:55:42.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi