Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Imprimir texto con textout y sin rectangulo (https://www.clubdelphi.com/foros/showthread.php?t=74073)

saldanaluis 29-05-2011 00:28:17

Imprimir texto con textout y sin rectangulo
 
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.
Código Delphi [-]
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.


La franja horaria es GMT +2. Ahora son las 03:55:00.

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