PDA

Ver la Versión Completa : Imprimir texto con textout y sin rectangulo


saldanaluis
29-05-2011, 00:28:17
Amigos del foro.
Tengo una aplicación que imprime dos tipos de información por cada orden de venta a embarcar, una hoja con texto y con una imagen (el logo de mi cliente) que corresponde a la información de los artículos que se están embarcando (primer tipo de información de la orden de venta a embarcar). Una vez que imprimo esta hoja, hago un 'Printer.EndDoc;' y luego hago un 'Printer.BeginDoc;' para pasar a imprimir la información de lo que contiene cada caja del pedido que se está embarcando (segundo tipo de información de la orden de venta a embarcar), una hoja por cada caja del embarque de la orden de venta que se imprimió al principio.

Les muestro el código que uso al iniciar a imprimir la información de cada caja del embarque.

procedure TFVerificaOrdenVenta.Imprime_Etiquetas;
var
NumPartida: integer;
begin
Printer.Title := 'Etiquetas';
Printer.BeginDoc;
Printer.Canvas.Font.Size := 8;
altura := Printer.Canvas.TextHeight('qadgW')+1;
// más codigo que contiene comandos 'TextOut'


El problema que tengo es que al imprimir las etiquetas de las cajas (segundo tipo de información), todo el texto que imprimo directo al canvas con un 'textout' sale enmarcado con un rectangulo del tamaño exacto del texto que se está imprimiendo.
De aqui en adelante, todo el texto que imprimo sale enmarcado con un rectangulo, incluso la información de los artículos que se están embarcando (primer tipo de información).
Cabe hacer notar que la primera hoja de la información de los artículos que se estan embarcando sale bien, pero la información del segundo embarque ya sale con el texto enmarcado. despues de haber impreso las etiquetas de cada caja del embarque.

¿De que manera me puedo asegurar que los textos NO salgan enmarcados con un rectangulo?

Gracias por su amable ayuda.

Luis :(

newtron
29-05-2011, 09:23:26
Hola.

No das muchas pistas pero ¿es posible que no asignes la fuente al texto y por eso salga de esa manera?

Saludos

P.D: cuando me refiero a la fuente me refiero al tipo de fuente

saldanaluis
29-05-2011, 23:48:07
Te refieres a que le ponga algo como:

Printer.Canvas.Font.Name := 'Arial';

¿es correcto?

Saludos...

newtron
30-05-2011, 08:58:35
Claro, si no pones el tipo de fuente con el que quieres imprimir es posible que se le vaya la perola.

Lepe
30-05-2011, 09:21:14
Si quieres pintar en el canvas, debes establecer las propiedades más relevantes, de otra forma usarás las que ha dejado otra aplicación establecida o las que tiene por defecto la impresora.

Revisa la propiedad Pen y brush del canvas y todas sus propiedades.
- Pen es para pintar el borde, normalmente Pen.Style := psClear elimina el marco alrededor
- brush es para el color de fondo y el patrón que se usará.

Saludos

saldanaluis
17-06-2011, 18:00:41
Muchas gracias.

Ya no me sale el marco alrrededor de la información que mando imprimir. Aunque también le hice otro cambio. Dado que ya tengo la 2a impresora, ahora no ando enviando los dos reportes a la misma impresora, sino que cada reporte se va a su impresora correspondiente. No se si eso pudiera haber afectado positivamente para corregir esta situación, pero hago saber que ya se corrigió con las sugerencias recibidas por si a alguien más le sucede lo mismo, sepa que esto se puede corregir.

Gracias nuevamente.