Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Podesavanje Velicinu Papira za stampanje

[es] :: Pascal / Delphi / Kylix :: Podesavanje Velicinu Papira za stampanje

[ Pregleda: 1836 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Milan Milosevic

Član broj: 67
Poruke: 932
*.dynamic.isp.telekom.rs.



+31 Profil

icon Podesavanje Velicinu Papira za stampanje21.06.2013. u 18:40 - pre 131 meseci
Pozdrav ljudi
Evo koda

var
FDevice: array [0..255] of Char;
FDriver: array [0..255] of Char;
FPort: array [0..255] of Char;
DeviceMode: THandle;
DevMode: PDeviceMode;
begin

Printer.GetPrinter(FDevice, FDriver, FPort, DeviceMode);
DevMode := GlobalLock(DeviceMode);
DevMode^.dmFields := DevMode.dmFields or DM_PAPERSIZE;
DevMode^.dmPaperSize :=DMPAPER_A4;
DevMode^.dmFormName := 'Podeseno A4';
Memo1.Lines.Add(DevMode^.dmFormName);
Printer.SetPrinter(FDevice, FDriver, FPort, DeviceMode);
GlobalUnlock(DeviceMode);
end;

Kod bi trebalo da podesava PaperSize na A4 , ovo radi ukoliko pre toga aktiviram PrinterSetupDialog, ali pre toga ne.
Sto znaci da mi neki deo fali.
Dakle, kada pozivam proceduru iznad i proverim printer.PageWidth ona se ne menja

a ukoliko preko PrinterSetupDialog podesim PaperSize na neku vrednost kod mi prebacuje na A4, po defoltu je na letter.


 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Podesavanje Velicinu Papira za stampanje22.06.2013. u 00:17 - pre 131 meseci
Pisao sam ovo za globalno podešavanje rezolucije (ceo Windows), verujem da ga možeš prilagoditi i za papir.

Code:

procedure SetGlobalPrintQuality(const APrinterIndex: Integer; const AQuality: SHORT);
var
  Device, Driver, Port: array[0..80] of Char;
  DevMode: THandle;
  hPrinter: THandle;
  pDevmode: PDeviceMode;
begin
  Printer.PrinterIndex := APrinterIndex;
  Printer.GetPrinter(Device, Driver, Port, DevMode);
  OpenPrinter(Device, hPrinter, nil);
  if (Devmode <> 0) and (hPrinter <> 0) then
  begin
    pDevMode := GlobalLock(Devmode);
    if pDevmode <> nil then
    try
      pDevMode^.dmPrintQuality := AQuality;
      pDevMode^.dmYResolution := AQuality;
      pDevMode^.dmFields := pDevMode^.dmFields or DM_PRINTQUALITY or DM_YRESOLUTION;

      DocumentProperties(0, hPrinter, Device, pDevMode^, pDevMode^, DM_IN_BUFFER or DM_UPDATE);
      WinSpool.SetPrinter(hPrinter, 9, @pDevMode, 0);
    finally
      GlobalUnlock(DevMode);
    end;

    ClosePrinter(hPrinter);
  end;
end;

 
Odgovor na temu

Milan Milosevic

Član broj: 67
Poruke: 932
*.dynamic.isp.telekom.rs.



+31 Profil

icon Re: Podesavanje Velicinu Papira za stampanje22.06.2013. u 06:36 - pre 131 meseci
Hvala na odgovoru.

Dodavanjem linije koda

DevMode^.dmPaperSize :=DMPAPER_A4;

podesava se printer na A4 format.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Podesavanje Velicinu Papira za stampanje

[ Pregleda: 1836 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.