PDA

Ver la Versión Completa : Solo imprime la primera vez


Chogo
19-07-2006, 19:38:06
Hola.
Quiero imprimir cheques, lo que estoy usando es el Tcanvas, en Delphi 7, este es el codigo que uso.

with Printer do
begin
SetMapMode(Printer.Handle,MM_LOMETRIC);
BeginDoc;
Canvas.Font.Size:= 10;
Canvas.TextOut(100,200,ATChequesNumeroCheque.AsString);
EndDoc;
end;

Imprime bien la primera vez, pero si vuelvo a imprimir sale la hoja en blanco

nemesio
19-07-2006, 20:10:02
Hola

Puede ser que en algún momento después de la impresión saltes un registro o cierres el archivo. Revisa y si no es eso entonces escribe de nuevo.

Suerte.

Chogo
19-07-2006, 20:45:05
Ya verifique con respecto a los datos que envio, esta todo correcto.

Veo que cuando cierro y vuelvo entra al programa imprime correctamente.
pienso que podria crear o liberar el objeto tprinter cada vez que imprimo, pero no se como hacer eso.

Si tienen alguna idea, se los agradecere mucho.

seoane
19-07-2006, 21:36:45
Prueba con esto:


var
DeviceMode: THandle;
Device, Driver, Port: array[0..1023] of char;
begin
Printer.GetPrinter(Device, Driver, Port, DeviceMode);;
with Printer do
begin
SetMapMode(Printer.Handle,MM_LOMETRIC);
BeginDoc;
Canvas.Font.Size:= 10;
Canvas.TextOut(100,200,'hola mundo');
EndDoc;
end;
Printer.SetPrinter(Device, Driver, Port, DeviceMode);;
end;

Chogo
19-07-2006, 23:26:25
Gracias, me funciona ahora perfecto, lo que aun no entiendo muy bien, es como funciona a ciencia cierta

Pero esto es lo entiendo.

GetPrinter: es para obtener infarmcion de la impresora actual y que el controla todo y manipula esa empresora.
Pero no se que es lo que hace el "SetPrinter"

Por favor me gustaria que me aclararan, no solo quiero resolver el problema, si no aprender.

!!Pero gracias a todos!!, gracias Seoane.

seoane
19-07-2006, 23:31:14
Por algún motivo, el cual desconozco y no voy a buscar :p , parte de la información sobre la impresora se pierde durante la impresión. Yo solo guardo la información antes de empezar (GetPrinter) y la restauro al terminar (SetPrinter).

Chogo
20-07-2006, 00:24:57
jaja :D, pero ya comprendo lo que haces. gracias