Содержание
Обзор
Печать в
текстовом режиме
Вывод
содержимого формы на печать
Графическая
печать (объект TPrinter)
Пример
-
- Обзор
- В
данной статье
рассказывается о
возможных способах вывода
информации на печать из
программы, созданной в Delphi.
Рассматривается вывод
документа в текстовом
режиме принтера, вывод
графики с помощью объекта
TPrinter и печать содержимого
формы. О выводе на печать
отчетов с помощью
генератора отчетов ReportSmith
рассказывается ниже.
- Печать
в текстовом режиме
Если Вам
нужно напечатать на принтере
документ в текстовом режиме, то это
делается следующим образом. С
принтером Вы работаете, как с
обычным текстовым файлом, за
исключением того, что вместо
процедуры AssignFile нужно вызывать
процедуру AssignPrn. В примере на
принтер выводится одна строка
текста:
procedure TForm1.Button1Click(Sender:
TObject);
var
To_Prn : TextFile;
begin
AssignPrn(To_Prn);
Rewrite(To_Prn);
Writeln(To_Prn, 'Printer in Text
Mode');
CloseFile(To_Prn);
end;
Здесь
необходимо, видимо, пояснить, что по
сравнению с BP 7.0 в Delphi изменены
названия некоторых функций и
переменных в модуле System :
-
- AssignFile
вместо Assign
-
- CloseFile
вместо Close
-
- TextFile
вместо Text
-
- Вывод
содержимого формы на
печать
- Иногда
в программе требуется
просто получить
твердую копию
экранной формы. В Delphi
это делается более,
чем просто - у объекта
TForm есть метод Print,
который и нужно
вызвать в нужный
момент.
- Графическая
печать (объект TPrinter)
И все же,
более интересно, как из программы
созданной в Delphi можно вывести на
печать графическую информацию. Для
этого есть специальный объект Printer
(класса TPrinter). Он становится
доступен, если к программе
подключить модуль Printers (т.е.
добавить имя модуля в разделе uses
). С помощью этого объекта печать на
принтере графической информации
становится не сложнее вывода этой
информации на экран. Основным
является то, что Printer предоставляет
разработчику свойство Canvas ( работа
с канвой описана в предыдущем
уроке) и методы, выводящие
содержание канвы на принтер.
Рассмотрим подробнее свойства и
методы объекта Printer.
Свойства
Printer:
Aborted - тип
булевский; показывает,
прервал ли пользователь
работу принтера методом Abort.Canvas - канва,
место для вывода графики;
работа с Canvas описана в
Уроке 5.
Fonts - список
доступных шрифтов.
Handle -
используется при прямых
вызовах Windows API.
Orientation -
ориентация страницы,
вертикально или
горизонтально.
PageWidth, PageHeight,
PageNumber -
соответственно ширина,
высота и номер страницы.
Printers
перечисляет все
установленные в системе
принтеры, а
PrinterIndex
указывает, какой из них
является текущим. Чтобы
печатать на принтере по
умолчанию здесь должно
быть значение -1.
Printing - тип
булевский; показывает,
начата ли печать (методом BeginDoc).
Title -
заголовок для Print Manager и для
заголовка перед выводом на
сетевом принтере.
Методы Printer:
Abort - прерывает печать,
начатую методом BeginDoc
BeginDoc -
вызывается перед тем, как
начать рисовать на канве.EndDoc -
вызывается когда все
необходимое уже
нарисовано на канве,
принтер начинает печатать
именно после этого метода.
NewPage - переход
на новую страницу.
Остальными
методами объекта в обычных случаях
пользоваться не нужно.
Итак, порядок
вывода на печать графической
информации выглядит следующим
образом:
-
- выполняется
метод BeginDoc
-
- на канве
(Canvas) рисуем все, что нужно
-
- при
необходимости разместить
информацию на нескольких
листах вызываем метод NewPage
-
- посылаем
нарисованное на принтер,
выполняя метод EndDoc
-
- Пример
В примере
(проект PRINTS.DPR, рис.1 ) реализованы
все три вышеописанных ситуации.
|