|
В данной статье рассказывается о возможных способах вывода информации
на печать из программы, созданной в Delphi. Рассматривается вывод документа
в текстовом режиме принтера, вывод графики с помощью объекта TPrinter
и печать содержимого формы. О выводе на печать отчетов с помощью генератора
отчетов ReportSmith рассказывается ниже.
Печать в текстовом режиме
Если Вам нужно напечатать на принтере документ в текстовом режиме, то
это делается следующим образом. С принтером Вы работаете, как с обычным
текстовым файлом, за исключением того, что вместо процедуры AssignFile
нужно вызывать процедуру AssignPrn. В примере на принтер выводится одна
строка текста:
procedure TForm1.Button1Click(Sender: TObject);
var
To_Prn : TextFile;
begin
AssignPrn(To_Prn);
Rewrite(To_Prn);
Writeln(To_Prn, 'Pinter 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 ) реализованы все три вышеописанных
ситуации.
[ Предыдущий урок | Содержание
| Следующий урок ]
|
|
|