Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Программирование печати документов






 

 

Для обслуживания принтера используется специальный класс 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);






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.