После настройки и просмотра документа можно перейти к его печати. Пе-
чать документа осуществляется методом Printout. Синтаксис вызова этого
метода:
Printout(from, To, Copies, Preview, ActivePrinter, PrintToFile, Collate);
Аргументы метода, их тип и назначение представлены в табл. 15.2.
Таблица 15.2. Аргументы метода Printout
При использовании метода PrintOut без аргументов печать будет выполнена
в режиме "по умолчанию". Этот метод можно использовать с любым набо-
ром аргументов. Если в системе установлен не один, а несколько принте-
ров, то, чтобы использовать один из них, нужно при вызове метода PrintOut
задать в аргументе ActivePrinter его имя. Чтобы получить список установ-
ленных в системе принтеров, используем стандартный объект Delphi
TPrinter (см. следующую процедуру).
Получение списка принтеров, установленных в системе
procedure TForm1.ButtonlClick(Sender: TObject);
var a_:integer;
pr:TPrinter;
begin
ListBoxl.Items.Clear;
pr:=TPrinter.Create;
for a_:=0 to pr.Printers.Count-1 do
ListBoxl.Items.Add(pr.Printers[a_]);
pr.Free;
end;
На рис. 15.8 представлен компонент ListBox (список) с загруженным переч-
нем установленных в системе принтеров.
Чтобы для печати документа использовать один из принтеров, имя которого
находится в списке ListBox, достаточно выполнить следующую процедуру.
Выбор активного принтера и печать документа
procedure TForm1.Button11Click(Sender: TObject);
begin
Е.ActivePrinter:=ListBoxl.Items.Strings[ListBoxl.Itemlndex];
E.ActiveWorkBook.Printout(ActivePrinter:=
ListBoxl.Items.Strings[ListBox1.Itemlndex]);
end;.
Рис. 15.8. Список установленных в системе принтеров
Важно!
При выполнении этой процедуры возможны ошибки, связанные с отличием
форматов представления имени принтера в объекте TPrinter и имени, исполь-
зуемого при вызове метода Printout. Например, если имя принтера для объекта
TPrinter представляет собой строку:
"HP DeskJet 850C on LPTlj",
то при вызове метода Printout необходимо использовать несколько видоизме-
ненную строку:
"HP DeskJet 850C (LPT1:)".
|