PDA

Ver la Versión Completa : La impresión real es distinta al PreviewModal en QuickReport


Tortuguica
21-06-2011, 19:20:01
Hola, amigos del Club Delphi:
Ante todo, gracias por prestarme atención. En segundo lugar, un aviso: sigo siendo un poco (bastante) bisoño en todo esto del mundo de la programación. Aprovecho este prólogo para pedir perdón por la extensión de este post. Y, ahora sí, la consulta en cuestión:
Estoy diseñando un editor de textos. Para ser más exacto, de exámenes de mecanografía. Todos los exámenes se muestran sobre una única plantilla compuesta, a saber, por el encabezado, en el que aparece el título del examen, y el texto que conforma el cuerpo del examen. El texto se carga en un TMemo desde el archivo *.txt donde está guardado el examen. El examen se muestra sobre el formulario correctamente.
Espero fervientemente que nadie se lleve las manos a la cabeza cuando prosiga leyendo la exposición de mis cuitas. El problema llega a la hora de imprimir el examen. Se me ha ocurrido utilizar un TQuickRep, pero sin bandas de detalle. Esto es: inserto una única banda (de tipo cabecera) y en ella coloco un TQRLabel (para el título) y un TQRRichText (utilizo esta clase en lugar del TQRMemo porque, aunque, por ahora, la impresión será en blanco y negro, puede que en un futuro haya que hacerla a color). Además, cuando se crea el formulario en el que está contenido el TQuickRep, aplica al TQRRichText la misma fuente y el mismo tamaño de fuente del examen. Como el TQRMemo no tiene la propiedad Text, para cargar el cuerpo del examen en el TQRRichText lo hago agregando las líneas una a una a partir de las líneas del TMemo. Para mí, lo ideal hubiera sido escribir

TQRRichText.Text:=TMemo.Text

pero Delphi no me deja, claro, así que he tenido que utilizar el siguiente código

for i:=0 to TMemo.Lines.Count-1 do
TQRRichText.Lines.Add(TMemo.Lines[i]);

Bueno, en todo caso, cuando le doy a PreviewModal me lo muestra tal y como aparece en el formulario. Cuando no aparece igual, ay, es cuando lo imprime de verdad... virtual. Como no tengo impresora en casa, utilizo PrimoPDF, NitroPDF y Microsoft XPS Document Writter para hacer las pruebas, y todas me dan el mismo resultado: muchas líneas, que en el PreviewModal se mostraban correctamente, se truncan y la última parte de la línea se convierte en una nueva línea. Para que os hagáis una idea, imaginad que tuviera que imprimirse este texto:

Con diez cañones por banda,
viento en popa a toda vela

y sale esto:

Con diez cañones por
banda,
viento en popa a toda
vela

He dejado el margen derecho del TQuickRep a 0, y he ampliado el TQRRichText hasta el borde derecho del TQuickRep, pero no hay forma. Por favor, ¿se le ocurre a alguien la forma de solucionar esto? Lo olvidaba: utilizo el Delphi 2010 y el QuickReport5042.

Os agradezco por adelantado vuestro interés y os pido disculpas por el tostón que os he metido. Un saludo.

Caral
22-06-2011, 05:09:46
Hola
Si no sale igual el Preview y el resultado impreso se tiene que modificar la configuracion de la hoja del qreport, dandole doble click salen las caracteristicas.
Saludos

Tortuguica
22-06-2011, 16:00:27
Hola, Caral. Gracias por responderme. Te cuento: ya había configurado los márgenes del TQuickRep. Los tenía a 1 cm a la izquierda y 1 cm a la derecha. Así que se me ha ocurrido que, si la impresora no tenía más margen, adaptarme a la impresora, o sea, que he aumentado el margen hasta 2,5 cm a cada lado, reduciendo también la anchura del examen en el formulario con el fin de que las líneas sean las mismas tanto en el formulario como en el quickrep. Pero nada, sigo obteniendo el mismo resultado. No obstante, voy a hacer pruebas con distintos márgenes y tamaños a ver si cuela por algún sitio.
Gracias de nuevo por tu interés. Un saludo.