PDA

Ver la Versión Completa : largo de pagina, impresion en Printer.Canvas


jac000y
22-12-2003, 17:14:48
tengo que imprimir facturas en el canvas por cuestiones de velocidad de impresion, y no logre aun setear el largo de pagina

si alguien lo sabe, gracias

aLe

marcoszorrilla
22-12-2003, 17:29:14
procedure SetPaperSize (intAlto,intAncho : Integer);
{aqui se define el tamaño del papel}
var
ADevice, ADriver, APort : array [0..255] of Char;
ADeviceMode : THandle;
DevMode : PDevMode;
begin
with Printer do
begin
GetPrinter (ADevice, ADriver, APort, ADeviceMode);
SetPrinter (ADevice, ADriver, APort, 0);
GetPrinter (ADevice, ADriver, APort, ADeviceMode);
DevMode := GlobalLock(ADeviceMode);
if not Assigned(DevMode) then
ShowMessage('Ha entrado en -> if not Assigned(DevMode) ...')
else
begin
with DevMode^ do
begin
dmPaperSize:= DMPAPER_User;
dmPaperLength := intAlto;
dmPaperWidth:= intAncho;
dmFields := dmFields or DM_PAPERSIZE or DM_PAPERLength or DM_PAPERWidth;
end;
GlobalUnLock(ADeviceMode);
SetPrinter(ADevice, ADriver, APort, ADeviceMode);
end;
end;
end;



Un Saludo.