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:
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
