PDA

Ver la Versión Completa : Impresion Directa Ala Impresora


armando
29-08-2006, 03:02:16
HOLA :eek:
TRABAJO CON DELPHI 6 Y PARADOX
INTENTO IMPRIMIR EN UNA IMPRESORA LX-300
CON EL SIGUIENTE CODIGO

procedure TMENU1.BitBtn1Click(Sender: TObject);
VAR
X,H:INTEGER;
begin
H:=10;
X:=300;


SEtPaperSize(x,710);
Printer.BeginDoc;
{definimos el sistema de medicion}
SetMapMode(Printer.Handle,MM_LoMetric);

pp.First;
WHILE NOT pp.eof do
BEGIN
PRINTER.Canvas.Font.Size:=12;
Printer.Canvas.TextOut(50,-H,ppCANT.asstring);
Printer.Canvas.TextOut(100,-H,PPDESCRIPCION.asstring);
Printer.Canvas.TextOut(500,-H,ppPRECIO.asstring);
Printer.Canvas.TextOut(600,-H,ppimporte.asstring);
H:=H-(-30);
pp.NEXT;
END;
Printer.EndDoc;
end;


IMPRIME BIEN PERO LA CANTIDAD, EL PRECIO Y EL IMPORTE NO LOS ALINEA
¿HAY UNA FUNCION QUE LOS ALINIE AUTOMATICAMENTE ??
P/E
EN IMPORTE SALE
156.30
2.30
157.30
NO SE SI ME EXPLIQUE DE ANTEMANO GRACIAS :o

delphi.com.ar
29-08-2006, 23:08:14
Por Ala!.. primero quiero recomendarte releer la Guía de Estilos (http://www.clubdelphi.com/foros/guiaestilo.php) de los foros para participar en ellos.
Luego quiero comentarte que lo que estas haciendo no es lo que habitualmente referimos, como imprimir directamente en la impresora. Simplemente estas haciendo lo que hace cualquier herramienta de reportes.
Si quieres alinear el texto, tienes que indicar el sector donde quieras alinearlo, puedes hacer algo como:

var
S: string;
R: TRect;
begin
S := 'Texto';
R := Rect(0, 0, 100, 100);
DrawText(Image1.Canvas.Handle, PChar(S), Length(S), R, DT_CENTER + DT_WORDBREAK);
Te recomiendo ver este hilo (http://www.clubdelphi.com/foros/showthread.php?t=24209), donde utilizo esta función con una aplicación lógica.

Saludos!