Impressao - setando tamanho papel, etc |
Top Previous Next |
|
uses Printers;
procedure SetPrinterSettings(FPrinter: TPrinter); var FDevice : PChar; FDriver : PChar; FPort : PChar; DeviceMode: THandle; DevMode : PDeviceMode; begin // reserva memoria para isto GetMem(fDevice, cchDeviceName); GetMem(fDriver, MAX_PATH); GetMem(fPort, MAX_PATH);
// to get a current printer settings FPrinter.GetPrinter(FDevice, FDriver, FPort, DeviceMode); // lock a printer device DevMode := GlobalLock(DeviceMode);
// set a paper size as A4-Transverse if ((DevMode^.dmFields and DM_PAPERSIZE) = DM_PAPERSIZE) then begin DevMode^.dmFields := DevMode^.dmFields or DM_PAPERSIZE; DevMode^.dmPaperSize := DMPAPER_A4_TRANSVERSE; end;
// set a paper source as Tractor bin if ((DevMode^.dmFields and DM_DEFAULTSOURCE) = DM_DEFAULTSOURCE) then begin DevMode^.dmFields := DevMode^.dmFields or DM_DEFAULTSOURCE; DevMode^.dmDefaultSource := DMBIN_TRACTOR; end;
// set a Landscape orientation if ((DevMode^.dmFields and DM_ORIENTATION) = DM_ORIENTATION) then begin DevMode^.dmFields := DevMode^.dmFields or DM_ORIENTATION; DevMode^.dmOrientation := DMORIENT_LANDSCAPE; end;
// set a printer settings FPrinter.SetPrinter(FDevice, FDriver, FPort, DeviceMode); // É ESTA QUE MODIFICA CONFIG
// unlock a device GlobalUnlock(DeviceMode);
// Free mem FreeMem(fDevice, cchDeviceName); FreeMem(fDriver, MAX_PATH); FreeMem(fPort, MAX_PATH); end;
procedure TForm1.Button1Click(Sender: TObject); begin SetPrinterSettings( Printers.Printer ); end; . |