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ć:
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;
|