Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Solo imprime la primera vez (https://www.clubdelphi.com/foros/showthread.php?t=33886)

Chogo 19-07-2006 19:38:06

Solo imprime la primera vez
 
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:

Código Delphi [-]
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


La franja horaria es GMT +2. Ahora son las 11:58:06.

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