Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 2 odgovora
  • 2.337 pregleda

Najnovija ↓

Podesavanje Velicinu Papira za stampanje 21.06.2013. u 19:40 · pre 162 meseca #1
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.


Re: Podesavanje Velicinu Papira za stampanje 22.06.2013. u 01:17 · pre 162 meseca #2
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;
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme