КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Программирование печати документов
Для обслуживания принтера используется специальный класс 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);
Дата добавления: 2014-01-07; Просмотров: 219; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |