Drukowanie z marginesami
jozkan
Jak w temacie:
delphi
uses Printers;
procedurę DrukujRichEdita(RE:TRichEdit;margL,margT,margR,margB:Extended);//marginesy w mm
var
log_pixelsX,log_pixelsY,non_printL,non_printT:Integer;//drukarka
page_rect:TRect;
begin
log_pixelsX := GetDeviceCaps(Printer.Handle, LOGPIXELSX);
log_pixelsY := GetDeviceCaps(Printer.Handle, LOGPIXELSY);
non_printL := GetDeviceCaps(Printer.Handle, PHYSICALOFFSETX);
non_printT := GetDeviceCaps(Printer.Handle, PHYSICALOFFSETY);
margL:=margL/25.4;
margR:=margR/25.4;
margT:=margT/25.4;
margB:=margB/25.4;
page_rect.Left := Round(log_pixelsX * margL) - non_printL;
page_rect.Right := Printer.PageWidth-Round(log_pixelsX * margR) - non_printL;
page_rect.Top := Round(log_pixelsY * margT) - non_printT;
page_rect.Bottom:= Printer.PageHeight - Round(log_pixelsY * margB)- non_printT;
RE.PageRect:=page_rect;
RE.Print('Drukowanie z marginesami');
end;
Poniższy komentarz jest zamieszczony dla tych, co nie rozumieją lub nie wiedzą, jak skorzystać z tego, co jest widoczne powyżej. Ja przedstawiam to trochę inaczej, chyba prościej, posługując się działającym przykładem. Przykład wszystko wyjaśni. Zrób tak.
// oraz
Klikając w ** Button2 ** wydrukujesz kwadrat o boku 50 mm, 10 mm od górnej i lewej krawędzi kartki. Wielkość wydruku można zmieniać zależnie od wartości wstawionych do pól ** Edit1 ** i ** Edit2 **. Funkcję ** MM_na_DPI() ** można wykorzystać w każdej aplikacji. Jeżeli chcesz wydrukować jakąkolwiek grafikę lub cos innego, 127 milimetrów od lewej krawędzi i 43 milimetrów od górnej krawędzi kartki, to obie wartości przepuszczasz przez funkcję i od uzyskanej wartości odejmujesz margines drukarki, zgodnie z załączonym wzorem. I jeszcze jedno! Musisz pamiętać, że skoro marginesy drukarki laserowej wynoszą około 5 milimetrów, to nie da rady coś wydrukować 3 milimetry od krawędzi kartki.
Sprawdź, a zobaczysz jakie to proste.
mi to jakoś nie włazi...;(
Ja również mam problem z marginesami.
czy to działa na kazdej drukarce, bo prawde powiedziawszy mam problem z uzyskaniem tych marginesów