Drukowanie w Delphi wcale nie jest trudne. Trzeba tylko
zrozumieµ istotΩ dzia│ania niekt≤rych funkcji. Istnieje spos≤b na
proste drukowanie. Np. komponent RichEdit posiada funkcje "Print".
Wystarczy j▒ wywo│aµ, aby wydrukowaµ dokument:
RichEdit.Print('Plik
Readme.txt');
Mo┐esz tak┐e skorzystaµ z pomocy
innych edytor≤w. Oto przyk│ad jak to zrobiµ:
uses
ShellAPI;
ShellExecute(Handle, 'print', 'Plik.doc', nil,
nil, SW_HIDE);
W tym wypadku wdrukowany zostanie plik
"Plik.doc". Program najpierw odczyta jaki program skojarzony
jest z rozszerzniem *.doc, a nastΩpnie u┐yje go do wydrukowania pliku.
DziΩki parametrowi "SW_SHIDE" okno programu nie zostanie
nawet pokazane! Je┐eli chcesz siΩ dowiedzieµ co╢ wiΩcej na temat
funkcji "ShellExecute" kliknij tutaj.
Na
zak│adce "Dialogs" znajduj▒ siΩ komponenty "PrintDialog"
i "PrinterSetupDialog". Najpierw om≤wiΩ pierwszy z
nich.
Po umieszczeniu komponentu "PrintDialog" na formularzu ujrzysz
w Inspektorze Obiekt≤w takie oto pozycje:
Collate
- je┐eli ta opcja ustawiona jest na True przy wielu kopiach
wydruku najpierw drukowane s▒ pierwsze strony w kilku kopiach. Je┐eli
ta warto╢µ ma "False" najpierw wydrukowane zostan▒
wszystkie strony pierwszej kopii, a dopiero p≤╝niej drugiej.
Copies
- okre╢la liczbΩ kopii wydruku.
FromPage
- w│a╢ciwo╢µ ta okre╢la od kt≤rej strony rozpocznie siΩ
proces drukowania.
PrintRage - okre╢la, kt≤re przyciski s▒ aktywne.
PrintToFile
- okre╢la, czy u┐ytkownik wybra│ opcje drukowania do pliku (
zapisywania ).
Options - tutaj
znajduj▒ siΩ opcje okre╢laj▒ce wygl▒d i zachowanie
komponentu.
Komponent "PrinterSetupDialogs"
umo┐liwia ustawienie opcji wydruku przed rozpoczΩciem drukowania. Okno
( komponent ) wywo│uje siΩ poprzez metodΩ EXecute - np:
PrinterSetupDialog.Execute;
Delphi
udostΩpnia klasΩ "Printers". Wystarczy, ┐e dodasz te s│owo
to listy "uses".
Aborted -
Je┐eli ta warto╢µ przybierze "True" do znaczy, ┐e
proces drukowania zosta│ przerwany.
Canvas
- reprezentuje p│≤tno drukarki. Mo┐na po nim rysowaµ jak po
zwyk│ym "Canvasie".
Copies -
liczba kopii wydruku.
Fonts - lista czcionek reprezentowanych przez drukarkΩ.
Orientation
- ta w│a╢ciwo╢µ mo┐e przybraµ warto╢ci "poPortrait",
"poLandscape".
PageHeight -
wysoko╢µ strony w pikselach.
PageNumber
- numer aktualnie drukowanej strony.
Printing
- je┐eli ta w│a╢ciwo╢µ posiada warto╢µ "True" to
znaczy, ┐e trwa proces drukowania.
Abort
- u┐ycie tej funkcji oznacza przerwanie procesu drukowania.
BeginDoc
- rozpoczyna proces wydruku.
EndDoc -
ko±czy proces wydruku.
Je┐eli chcesz np.
wydrukowaµ jaki╢ obrazek to piszesz:
var
B : TBitmap;
brgin
B := TBitmap.Create;
B.LoadFromFile('C:\obrazek.bmp');
Printer.BeginDoc;
Printer.Canvas.Draw(20, 20, B);
Printer.EndDoc;
B.Free;
end;
Lepszym rozwi▒zaniem jednak bΩdzie u┐ycie
funkcji "StretchDraw", gdy┐ umo┐liwia ona dopasowanie
rozmiaru wydruku to rozmiar≤w drukarki.
var
R : TRect;
begin
// zaladuj obrazek
Image1.Picture.LoadFromFile('e:\mikolaj.bmp');
// pobierz jego wymiary
Image1.Canvas.FillRect(R);
Printer.BeginDoc; // rozpocznij drukowanie
// umiesc obrazek
Printer.Canvas.StretchDraw(R, Image1.Picture.Graphic);
// zakoncz
Printer.EndDoc;
end;