![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Программирование печати документов
Для обслуживания принтера используется специальный класс TPrinter, который описан в модуле Printers. Класс TPrinter инкапсулирует функции Windows по обслуживанию принтера. В модуле Printers на базе класса TPrinter создан объект Printer: TPrinter; который используется в программах.
Свойства класса TPrinter: Canvas; - это дисплейный контекст принтера, в котором происходит вывод информации.
Fonts; - содержит список шрифтов, поддерживаемых принтером.
Orientation = (poPortrait, poLandscape); - позволяет задавать тип расположения информации на листе;
PageHeight; - содержит размер текущей принтерной страницы в пикселях
PageNumber; - содержит номер текущей принтерной страницы. Это значение увеличивается на единицу при каждом вызове метода NewPage. Свойство только для чтения;
PageWidth; - ширина принтерной страницы;
Printers; - содержит список всех принтеров, доступных приложениям. Свойство только для чтения;
PrinterIndex; - указывает, какой из принтеров в списке является текущим. Чтобы использовать принтер “по умолчанию” следует положить PrinterIndex = -1;
Title; - позволяет задавать заголовок страницы.
Unit DemoPrinter; Interface Uses , Printers; Type TForm1 = class (TForm) ComboBox1: TComboBox; ComboBox2: TComboBox; RadioButton1: TRadioButton; RadioButton2: TRadioButton; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Button1: TButton; Button2: TButton; Procedure FormCreate(Sender: TObject); Procedure RadioButton1Click(Sender: TObject); Procedure Button1Click(Sender: TObject); Procedure Button2Click(Sender: TObject); end;
var Form1: TForm1; Interface
Procedure TForm1.FormCreate(Sender: TObject); begin //вывести список принтеров ComboBox1.Items: = Printer.Printers; //вывести список поддерживаемых шрифтов ComboBox2.Items: = Printer.Fonts; ComboBox1.ItemsIndex: = 0; ComboBox2.ItemsIndex: = 0; //по умолчанию ориентация страницы poPortrait RadioButton1.Checked: = true; Printer.Orientation: = poPortrait; //получить текущую высоту листа Edit1.Text: = IntToStr(Printer.PageHeight); //получить текущую ширину листа Edit2.Text: = IntToStr(Printer.PageWidth); //активизировать Edit3 ActiveControl: = Edit3; end;
Procedure TForm1.RadioButton1Click(Sender: TObject); begin if (Sender as TRadioButton).Checked then if (Sender as TRadioButton).Caption = ‘Горизонтальная’ then Printer.Orientation: = poLandScape else Printer.Orientation: = poPortrait; end;
Procedure TForm1.Button1Click(Sender: TObject); begin Printer.Title: = Edit3.Text; end;
Procedure TForm1.Button1Click(Sender: TObject); begin Printer.Title: = Edit3.Text; end;
Procedure TForm1.Button2Click(Sender: TObject); begin //печать информации Print; //вывод содержимого формы или if PrintDialog1.Execute then Form1.Print; end; end;
Методы класса TPrinter: Abort; - аварийное завершение вывода на печать. Этот метод используется, если пользователь решил прервать печать досрочно. Пример. Procedure TForm1.FormKeyDown(Sender: TObject; var Key; Word; Shift: TShiftState); begin //если во время печати нажата клавиша ESC if (Key = vk_ESCAPE) and Printer.Printing then begin Printer.Abort; MessageDlg(‘Печать прервана‘, mtInformation, [mbOK], 0); end; end;
BeginDoc; - посылает информацию на принтер;
EndDoc; - начало процесса печати;
NewPage; - переход на новый лист печати. Этот метод увеличивает на 1 свойство PageNumber и устанавливает курсор в координату (0, 0);
|