В данной статье рассказывается о
возможных способах вывода
информации на печать из программы,
созданной в 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 )
реализованы все три вышеописанных
ситуации.
[ Предыдущий урок | Содержание | Следующий урок ]
|