PDA

Ver la Versión Completa : Duda sobre Printer.EndDoc


Javi2
05-01-2006, 13:13:00
Hola,

Estoy utilizando Printer.BeginDoc y Printer.EndDoc para imprimir tickets y me gustaría saber si existe alguna manera de evitar que al ejecutarse el Printer.EndDoc se produzca el salto de varias líneas y se quede el cursor justo al final del ticket impreso.

Muchas gracias de antemano.

Ah!! Utilizo Delphi 7 (por si sirve de algo)

delphi.com.ar
05-01-2006, 14:21:52
...me gustaría saber si existe alguna manera de evitar que al ejecutarse el Printer.EndDoc se produzca el salto de varias líneas y se quede el cursor justo al final del ticket impreso...
Seguramente esta completando las líneas necesarias para que la página tenga el alto definido en PageHeight.
Fíjate probar redifiniendo el tamaño de la página con un TPageSetupDialog o bien "a mano", supongo que podrás utilizar la WinApi SetForm

Saludos!

Javi2
09-01-2006, 11:41:57
Estoy intentando redefinir la altura de la página mediante el siguiente código, tal y como indica el libro "Guía de Desarrollo Delphi 5"

procedure TPrintDocument.SetPrinterSize;
var
Device : array[0..255] of char;
Driver : array[0..255] of char;
Port : array[0..255] of char;
hDMode : THandle;
PDMode : PDEVMODE;
begin
Printer.GetPrinter(Device, Driver, Port, hDMode);
if hDMode <> 0 then begin
pDMode := GlobalLock(hDMode);
if pDMode <> nil then begin
pDMode^.dmFields := pDMode^.dmFields or dm_PaperSize;
pDMode^.dmPaperLength := 50;
end;
GlobalUnlock(hDMode);
end;
end;

....

Printer.BeginDoc
Printer.EndDoc;


Pero sigue sin hacerme caso, es decir, sigue haciendo líneas en blanco después de imprimir.

¿Estoy haciendo algo mal?

Muchas gracias