Witam mam takie pytanko. Napisałem program który pobiera konkretne dane od urzytkownika następnie generuje stronę html i ją drukuje, no i tu jest problem bo niewiem jak sie pozbyc nagłowka i stopki podczas drukowania pliku html. Wiem ze da sie to zrobic nawet opera ma taka funkcje IE chyba tez, tylko jak to zrobic bezposrednio z poziomu programu. użytkownik tylko klika na drukuj a strona sie drukuje juz bez nagłowka i stopki. Proszę o pomoc
0
0
Np. tak:
procedure TMainForm.KDrukujClick(Sender: TObject);
var
Klucz : String;
footer, header : String;
rejestr : TRegistry;
begin
//Drukowanie WebBrowsera
//zmieniamy ustawienia do druku na własne, zapamiętując stare do przywrócenia
rejestr := TRegistry.Create;
rejestr.RootKey:= HKEY_CURRENT_USER;
Klucz := 'Software\Microsoft\Internet Explorer\PageSetup';
if rejestr.KeyExists(Klucz) then
begin
rejestr.OpenKey(Klucz, true);
footer := rejestr.ReadString('footer');
header := rejestr.ReadString('header');
rejestr.WriteString('header', '');
//wartosci w footer mogą być różne - zależnie od tego np. drukuje liczbę stron
//pusty string = brak stopki (to samo z header)
rejestr.WriteString('footer', '&bstrona &p z &P&b');
Rejestr.CloseKey;
end;
//jeśli uruchamiam program spod środowiska, to nie drukuję, ale tylko podglądam
if FindWindow('TAppBuilder', nil) > 0 then
WebBrowser.ExecWB(OLECMDID_PRINTPREVIEW, 0)
else
WebBrowser.ExecWB(OLECMDID_PRINT, 0);
//przywracam stare ustawienia dla WebBrowsera
if rejestr.KeyExists(Klucz) then
begin
rejestr.OpenKey(Klucz, true);
rejestr.WriteString('header', header);
rejestr.WriteString('footer', footer);
Rejestr.CloseKey;
end;
rejestr.Free;
end;
Tak samo można ustawić marginesy...
BTW: UŻYTKOWNIK
0
dzieki oto własnie mi chodzilo
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.